File: C:\NOAA\NEMS_11731\src\chem\gocart\src\GMAO_Shared\MAPL_Base\allgatherv.H
1 ! $Id: allgatherv.H,v 1.2 2008/12/11 14:45:02 trayanov Exp $
2
3 #ifdef NAME_
4 #undef NAME_
5 #endif
6
7 #define NAME_ MAPL_CommsAllGatherV_
8
9 #include "overload.macro"
10
11 subroutine SUB_ (layout, sendbuf, sendcnt, &
12 recvbuf, recvcnts, displs, RC)
13 type (ESMF_DELayout) :: layout
14 TYPE_(kind=EKIND_), intent(IN ) :: sendbuf DIMENSIONS_
15 integer, intent(IN ) :: sendcnt
16 TYPE_(kind=EKIND_), intent(INOUT) :: recvbuf DIMENSIONS_
17 integer, intent(IN ) :: recvcnts(:)
18 integer, intent(IN ) :: displs(:)
19 integer , intent( OUT), optional :: RC
20
21 character(len=ESMF_MAXSTR), parameter :: IAM='MAPL_CommsAllGatherV'
22 integer :: status
23 integer :: comm
24 type(ESMF_VM) :: vm
25
26 call ESMF_DELayoutGet(layout, vm=vm, rc=status)
27 VERIFY_(STATUS)
28
29 call ESMF_VMGet(vm, mpiCommunicator=COMM, rc=status)
30 VERIFY_(STATUS)
31
32 call mpi_allgatherv ( sendbuf, sendcnt, MPITYPE_, &
33 recvbuf, recvcnts, displs, MPITYPE_, &
34 comm, status )
35 VERIFY_(STATUS)
36
37
38 RETURN_(ESMF_SUCCESS)
39 END SUBROUTINE SUB_
40
41 #undef NAME_
42
43 #undef DIMENSIONS_
44 #undef RANK_
45 #undef VARTYPE_
46
47