SURFEX v8.1
General documentation of Surfex
mpl_allgather_mod.F90
Go to the documentation of this file.
2 
3 !**** MPL_ALLGATHER Send data to all processes
4 
5 ! Purpose.
6 ! --------
7 ! Send a message to all processes from a buffer.
8 ! The data may be REAL*4, REAL*8,or INTEGER, one dimensional array
9 ! REAL*4,or REAL*8, two dimensional array
10 ! or INTEGER scalar
11 
12 !** Interface.
13 ! ----------
14 ! CALL MPL_ALLGATHER
15 
16 ! Input required arguments :
17 ! -------------------------
18 ! PSENDBUF - buffer containing message
19 ! (can be type REAL*4, REAL*8 or INTEGER)
20 ! PRECVBUF - buffer containing message
21 ! (can be type REAL*4, REAL*8 or INTEGER)
22 ! KRECVCOUNTS-number of elements received from each process
23 
24 ! Input optional arguments :
25 ! -------------------------
26 ! KCOMM - Communicator number if different from MPI_COMM_WORLD
27 ! or from that established as the default
28 ! by an MPL communicator routine
29 ! KMP_TYPE - buffering type (see MPL_BUFFER_METHOD)
30 ! overrides value provided to MPL_BUFFER_METHOD
31 ! KRECVDISPL -displacements in PRECVBUF at which to place
32 ! the incoming data
33 ! CDSTRING - Character string for ABORT messages
34 ! used when KERROR is not provided
35 
36 ! Output required arguments :
37 ! -------------------------
38 ! none
39 
40 ! Output optional arguments :
41 ! -------------------------
42 ! KREQUEST - Communication request
43 ! required when buffering type is non-blocking
44 ! KERROR - return error code. If not supplied,
45 ! MPL_ALLGATHER aborts when an error is detected.
46 ! Author.
47 ! -------
48 ! D.Dent, M.Hamrud ECMWF
49 
50 ! Modifications.
51 ! --------------
52 ! Original: 2000-11-23
53 ! M.Hamrud : 2014-10-22 : Add nonblocking option
54 ! F. Vana 05-Mar-2015 Support for single precision
55 
56 ! ------------------------------------------------------------------
57 
58 USE parkind1 ,ONLY : jpim
59 
60 USE mpl_mpif
63 USE mpl_send_mod
64 USE mpl_recv_mod
66 
67 IMPLICIT NONE
68 
69 PRIVATE
70 
71 INTEGER(KIND=JPIM) :: ir,isendcount,irecvcount,icomm,ierror
72 LOGICAL :: llabort=.true.
73 INTEGER(KIND=JPIM) :: itag
74 LOGICAL :: llbarrier
76 INTEGER(KIND=JPIM) :: ilimit,ibarrfreq,idum
77 
78 PUBLIC mpl_allgather
79 
80 CONTAINS
81 
82 SUBROUTINE mpl_allgather()
83 RETURN
84 END SUBROUTINE mpl_allgather
85 END MODULE mpl_allgather_mod
integer(kind=jpim) jk
integer(kind=jpim) iount
subroutine, public mpl_allgather()
integer, parameter jpim
Definition: parkind1.F90:13
integer(kind=jpim) ilimit
integer(kind=jpim) ibarrfreq
integer(kind=jpim) isendcount
integer(kind=jpim) irecvcount
integer(kind=jpim) ichunks
integer(kind=jpim) iens
integer(kind=jpim) itag
integer(kind=jpim) imp_type
integer(kind=jpim) imaxmsg
integer(kind=jpim) ists
integer(kind=jpim) ir
integer(kind=jpim) ilens
integer(kind=jpim) jmess
integer(kind=jpim) idum
integer(kind=jpim) ierror
integer(kind=jpim) imypair
integer(kind=jpim) istr
integer(kind=jpim) icomm