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