SURFEX v8.1
General documentation of Surfex
cmpl_binding.F90
Go to the documentation of this file.
1 SUBROUTINE cmpl_recv(KBUF,KCOUNT,KTYPE,KSOURCE,KTAG,KCOMM,&
2  &KSYNC,KBLOCK,KRCOUNT,KRFROM,KRTAG,KERROR)
3 USE parkind1 ,ONLY : jpim ,jprb
4 USE mpl_module
5 IMPLICIT NONE
6 INTEGER KCOUNT,KTYPE,KSOURCE,KTAG,KCOMM
7 INTEGER KRCOUNT,KRFROM,KRTAG,KERROR,KSYNC,KBLOCK
8 INTEGER(KIND=JPIM) :: KBUF(*)
9 INTEGER,EXTERNAL :: CONVIN,CONVOUT
10 INTEGER ILENB,ILEN
11 ilenb=convin(kcount,ktype)
12 IF(ksource > 0) THEN
13  IF(ktag /= -1) THEN
14  CALL mpl_recv(kbuf(1:ilenb),ksource=ksource,ktag=ktag,&
15  kfrom=krfrom,krecvtag=krtag,kount=ilen,kerror=kerror)
16  ELSE
17  CALL mpl_recv(kbuf(1:ilenb),ksource=ksource,&
18  kfrom=krfrom,krecvtag=krtag,kount=ilen,kerror=kerror)
19  ENDIF
20 ELSE
21  IF(ktag /= -1) THEN
22  CALL mpl_recv(kbuf(1:ilenb),ktag=ktag,&
23  kfrom=krfrom,krecvtag=krtag,kount=ilen,kerror=kerror)
24  ELSE
25  CALL mpl_recv(kbuf(1:ilenb),&
26  kfrom=krfrom,krecvtag=krtag,kount=ilen,kerror=kerror)
27  ENDIF
28 ENDIF
29 krcount=convout(ilen,ktype)
30 END SUBROUTINE cmpl_recv
31 
32 SUBROUTINE cmpl_send(KBUF,KCOUNT,KTYPE,KDEST,KTAG,KCOMM,&
33  &KSYNC,KBLOCK,KERROR)
34 USE parkind1 ,ONLY : jpim ,jprb
35 USE mpl_module
36 IMPLICIT NONE
37 INTEGER KCOUNT,KTYPE,KTAG,KCOMM,KSYNC,KBLOCK,KDEST
38 INTEGER KERROR
39 INTEGER KBUF(*)
40 INTEGER,EXTERNAL :: CONVIN,CONVOUT
41 INTEGER ILEN
42 ilen=convin(kcount,ktype)
43 CALL mpl_send(kbuf(1:ilen),kdest=kdest,ktag=ktag,kerror=kerror)
44 END SUBROUTINE cmpl_send
45 
46 SUBROUTINE cmpl_broadcast(KBUF,KCOUNT,KTYPE,KROOT,KTAG,KCOMM,&
47  &KSYNC,KBLOCK,KERROR)
49 IMPLICIT NONE
50 INTEGER KCOUNT,KTYPE,KTAG,KCOMM,KSYNC,KBLOCK,KROOT
51 INTEGER KERROR
52 INTEGER KBUF(*)
53 INTEGER,EXTERNAL :: CONVIN,CONVOUT
54 INTEGER ILEN
55 ilen=convin(kcount,ktype)
56 CALL mpl_broadcast(kbuf(1:ilen),kroot=kroot,ktag=ktag,kerror=kerror)
57 END SUBROUTINE cmpl_broadcast
58 
59 SUBROUTINE cmpl_abort(CDMESS)
61 IMPLICIT NONE
62 CHARACTER(LEN=*) CDMESS
63 CALL mpl_abort(cdmess)
64 END SUBROUTINE cmpl_abort
65 
66 SUBROUTINE cmpl_init(LDTRMSG,KERROR)
68 IMPLICIT NONE
69 LOGICAL LDTRMSG
70 INTEGER KERROR
71 CALL mpl_init(kerror=kerror,ldinfo=.false.)
72 END SUBROUTINE cmpl_init
73 
74 FUNCTION cmpl_nproc()
76 IMPLICIT NONE
77 INTEGER CMPL_NPROC
78 cmpl_nproc=mpl_nproc()
79 END FUNCTION cmpl_nproc
80 
81 FUNCTION cmpl_myrank()
83 IMPLICIT NONE
84 INTEGER CMPL_MYRANK
85 cmpl_myrank=mpl_myrank()
86 END FUNCTION cmpl_myrank
87 
88 SUBROUTINE cmpl_barrier(KERROR)
90 IMPLICIT NONE
91 INTEGER KERROR
92 CALL mpl_barrier(kerror=kerror)
93 END SUBROUTINE cmpl_barrier
94 
95 SUBROUTINE cmpl_end(KERROR)
97 IMPLICIT NONE
98 INTEGER KERROR
99 CALL mpl_end(kerror=kerror)
100 END SUBROUTINE cmpl_end
101 
102 SUBROUTINE cmpl_getarg(KARGNO, CDARG)
104 IMPLICIT NONE
105 INTEGER KARGNO
106 CHARACTER(LEN=*) CDARG
107 CALL mpl_getarg(kargno, cdarg)
108 END SUBROUTINE cmpl_getarg
109 
110 FUNCTION cmpl_iargc()
112 IMPLICIT NONE
113 INTEGER CMPL_IARGC
114 cmpl_iargc = mpl_iargc()
115 END FUNCTION cmpl_iargc
116 
117 FUNCTION mpe_myrank()
119 IMPLICIT NONE
120 INTEGER MPE_MYRANK
121 mpe_myrank=mpl_myrank()
122 END FUNCTION mpe_myrank
123 
124 SUBROUTINE mpei_abort(CDMESS)
126 IMPLICIT NONE
127 CHARACTER(LEN=*) CDMESS
128 CALL mpl_abort()
129 END SUBROUTINE mpei_abort
subroutine cmpl_broadcast(KBUF, KCOUNT, KTYPE, KROOT, KTAG, KCOMM, KSYNC, KBLOCK, KERROR)
integer function cmpl_iargc()
integer, parameter jpim
Definition: parkind1.F90:13
subroutine cmpl_getarg(KARGNO, CDARG)
subroutine cmpl_barrier(KERROR)
subroutine cmpl_abort(CDMESS)
subroutine cmpl_end(KERROR)
integer function mpe_myrank()
subroutine cmpl_recv(KBUF, KCOUNT, KTYPE, KSOURCE, KTAG, KCOMM, KSYNC, KBLOCK, KRCOUNT, KRFROM, KRTAG, KERROR)
Definition: cmpl_binding.F90:3
integer, parameter jprb
Definition: parkind1.F90:32
subroutine cmpl_init(LDTRMSG, KERROR)
integer function cmpl_nproc()
subroutine cmpl_send(KBUF, KCOUNT, KTYPE, KDEST, KTAG, KCOMM, KSYNC, KBLOCK, KERROR)
integer function cmpl_myrank()
subroutine mpei_abort(CDMESS)