54 REAL(KIND=JPRB),
INTENT(IN) :: PNM(
r%nspoleg,
d%nlei3d)
58 REAL(KIND=JPRB),
ALLOCATABLE :: ZCOMBUF(:)
59 REAL(KIND=JPRB),
POINTER :: ZPNM(:,:)
60 INTEGER(KIND=JPIM) :: IGLLOC, ILREC, IM, INENTR, IPOS, &
61 &IRECSET, IRECV, ISEND, ISENDSET, ITAG, &
62 &JGL, JGLLOC, JM, JMLOC, JN, JROC ,IOFFT, IOFFG
64 LOGICAL :: LLADMSG, LLEXACT
80 CALL abor1(
' SUTRLE:A LA PLACE DE MPL_BARRIER')
96 IF (isend <= 0) isend = isend+
nprtrw
107 IF (isendset ==
d%NPROCM(
jm))
THEN
111 jglloc = jgl -
d%NLATLS(
mysetw) + 1
114 zcombuf(ipos) = pnm(
d%NPMG(
jm)+jn,jglloc)
119 jglloc = jgl -
d%NLATLS(
mysetw) + 1
122 zcombuf(ipos) = pnm(
d%NPMG(
jm)+jn,jglloc)
126 CALL abor1(
' SUTRLE:A LA PLACE DE MPL_SEND')
129 llexact = (jgl ==
d%NLATLE(
mysetw) .AND. jn ==
r%NTMAX-
jm+2)
130 IF (.NOT.llexact) lladmsg = .
true.
140 IF (ipos > 0 .OR. lladmsg)
THEN
143 CALL abor1(
' SUTRLE:A LA PLACE DE MPL_SEND')
149 IF (
d%NUMP > 0.AND.
d%NLATLE(irecset) >=
d%NLATLS(irecset))
THEN
156 CALL abor1(
' SUTRLE:A LA PLACE DE MPL_RECV')
163 inentr = (
d%NLATLE(irecset)-
d%NLATLS(irecset)+1)*(
r%NTMAX-
jm+2)
166 DO jgl=
d%NLATLS(irecset),
d%NLATLE(irecset)
169 zpnm(jgl,iofft+jn) = zcombuf(ipos)
173 DO jgl=
d%NLATLS(irecset),
d%NLATLE(irecset)
176 zpnm(jgl,iofft+jn) = zcombuf(ipos)
182 CALL abor1(
' SUTRLE:A LA PLACE DE MPL_RECV')
193 IF (ilrec /= ipos)
THEN
194 WRITE(
nout,*)
' SUTRLE: ILREC,IPOS,NCOMBLEN ',ilrec,ipos,
ncombflen
195 CALL abort_trans(
' SUTRLE:RECEIVED MESSAGE LENGTH DOES NOT MATCH')
203 CALL abor1(
' SUTRLE:A LA PLACE DE MPL_BARRIER')
217 iglloc = jgl-
d%NLATLS(
mysetw)+1
219 zpnm(jgl,iofft+jn) = pnm(ioffg+jn,iglloc)
!$Id mode_top_bound COMMON comconstr r
type(fields_type), pointer f
integer(kind=jpim) ncombflen
type(distr_type), pointer d
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
integer(kind=jpim) mtagletr
integer(kind=jpim) mysetw
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
integer(kind=jpim) mysetv
integer(kind=jpim) nprtrw
subroutine set2pe(KPE, KPRGPNS, KPRGPEW, KPRTRW, KPRTRV)
subroutine abort_trans(CDTEXT)