25 INTEGER(KIND=JPIM) :: JM,JMLOC
26 INTEGER(KIND=JPIM) :: JGL,IGL,IPLAT,ISENDSET,IRECVSET,JML,IPOS,IM
27 INTEGER(KIND=JPIM) :: I1,I2,I3,IAUX0,IAUX1,JA1
28 INTEGER(KIND=JPIM) :: IGPTOT,IMEDIAP,IRESTM,JA,JB,IOFF
29 INTEGER(KIND=JPIM),
ALLOCATABLE :: IGPTOTL(:,:)
38 IF(llp1)
WRITE(
nout,*)
'=== ENTER ROUTINE SUMP_TRANS ==='
41 IF(llp2)
WRITE(
nout,9)
'D%NULTPP ',
SIZE(
d%NULTPP ),shape(
d%NULTPP )
43 IF(llp2)
WRITE(
nout,9)
'D%NPTRLS ',
SIZE(
d%NPTRLS ),shape(
d%NPTRLS )
44 ALLOCATE(
d%NPROCL(
r%NDGL))
45 IF(llp2)
WRITE(
nout,9)
'D%NPROCL ',
SIZE(
d%NPROCL ),shape(
d%NPROCL )
52 IF(llp2)
WRITE(
nout,9)
'D%NLTSGTB ',
SIZE(
d%NLTSGTB),shape(
d%NLTSGTB)
54 IF(llp2)
WRITE(
nout,9)
'D%NLTSFTB ',
SIZE(
d%NLTSFTB),shape(
d%NLTSFTB)
56 IF(llp2)
WRITE(
nout,9)
'D%NSTAGT0B ',
SIZE(
d%NSTAGT0B),shape(
d%NSTAGT0B)
58 IF(llp2)
WRITE(
nout,9)
'D%NSTAGT1B ',
SIZE(
d%NSTAGT1B),shape(
d%NSTAGT1B)
60 IF(llp2)
WRITE(
nout,9)
'D%MSTABF ',
SIZE(
d%MSTABF),shape(
d%MSTABF)
66 d%NLTSGTB(
d%NPROCM(jm)) =
d%NLTSGTB(
d%NPROCM(jm))+1
72 igl =
d%NPTRLS(ja)+jgl-1
74 IF(igl >
r%NDGNH-
g%NDGLU(
d%MYMS(jm)) .AND. igl <=
r%NDGNH+
g%NDGLU(
d%MYMS(jm)))
THEN
85 d%MSTABF(irecvset) = isendset
89 ALLOCATE(
d%NPNTGTB0(0:
r%NSMAX,
d%NDGL_FS))
90 IF(llp2)
WRITE(
nout,9)
'D%NPNTGTB0 ',
SIZE(
d%NPNTGTB0 ),shape(
d%NPNTGTB0 )
91 ALLOCATE(
d%NPNTGTB1(
d%NUMP,
r%NDGL))
92 IF(llp2)
WRITE(
nout,9)
'D%NPNTGTB1 ',
SIZE(
d%NPNTGTB1 ),shape(
d%NPNTGTB1 )
97 igl =
d%NPTRLS(
mysetw) + jgl - 1
98 DO jml=
d%NPTRMS(ja),
d%NPTRMS(ja)+
d%NUMPP(ja)-1
100 IF (im <=
g%NMEN(igl))
THEN
101 d%NPNTGTB0(im,jgl) = ipos
104 d%NPNTGTB0(im,jgl) = -99
112 DO jgl=1,
d%NULTPP(ja)
113 igl =
d%NPTRLS(ja) + jgl - 1
116 IF (im <=
g%NMEN(igl))
THEN
117 d%NPNTGTB1(jm,igl) = ipos
120 d%NPNTGTB1(jm,igl) = -99
134 iaux0 = max(
d%NLTSFTB(i1),
d%NLTSGTB(i2),iaux0)
135 iaux1 = max(
d%NLTSGTB(i2),
d%NLTSFTB(i3),iaux1)
137 iaux0 = max(
d%NLTSGTB(
mysetw),iaux0)
138 iaux1 = max(
d%NLTSGTB(
mysetw),iaux1)
140 d%NSTAGT0B(ja) = (ja-1)*iaux0
141 d%NSTAGT1B(ja) = (ja-1)*iaux1
149 IF(llp2)
WRITE(
nout,9)
'D%NFRSTLAT ',
SIZE(
d%NFRSTLAT ),shape(
d%NFRSTLAT )
151 IF(llp2)
WRITE(
nout,9)
'D%NLSTLAT ',
SIZE(
d%NLSTLAT ),shape(
d%NLSTLAT )
152 ALLOCATE(
d%NPTRLAT(
r%NDGL))
153 IF(llp2)
WRITE(
nout,9)
'D%NPTRLAT ',
SIZE(
d%NPTRLAT ),shape(
d%NPTRLAT )
155 IF(llp2)
WRITE(
nout,9)
'D%NPTRFRSTLAT',
SIZE(
d%NPTRFRSTLAT),shape(
d%NPTRFRSTLAT)
157 IF(llp2)
WRITE(
nout,9)
'D%NPTRLSTLAT',
SIZE(
d%NPTRLSTLAT),shape(
d%NPTRLSTLAT)
158 ALLOCATE(
d%LSPLITLAT(
r%NDGL))
159 IF(llp2)
WRITE(
nout,9)
'D%LSPLITLAT',
SIZE(
d%LSPLITLAT),shape(
d%LSPLITLAT)
163 &
d%NFRSTLAT,
d%NLSTLAT,
d%NFRSTLOFF,
d%NPTRLAT,&
164 &
d%NPTRFRSTLAT,
d%NPTRLSTLAT,
d%NPTRFLOFF,&
165 &imediap,irestm,
d%LSPLITLAT)
170 WRITE(
nout,fmt=
'(/'' OUTPUT FROM ROUTINE SUMPLAT: ''/)')
171 WRITE(
nout,fmt=
'('' D%NULTPP '')')
173 WRITE(
nout,fmt=
'('' D%NPROCL '')')
174 WRITE(
nout,fmt=
'(20(1X,I4))')
d%NPROCL(1:
r%NDGL)
175 WRITE(
nout,fmt=
'('' D%NFRSTLAT '')')
177 WRITE(
nout,fmt=
'('' D%NLSTLAT '')')
179 WRITE(
nout,fmt=
'('' D%NFRSTLOFF D%NPTRFLOFF '')')
180 WRITE(
nout,fmt=
'(2(1X,I6))')
d%NFRSTLOFF,
d%NPTRFLOFF
181 WRITE(
nout,fmt=
'('' D%NPTRLAT '')')
182 WRITE(
nout,fmt=
'(20(1X,I4))')
d%NPTRLAT(1:
r%NDGL)
183 WRITE(
nout,fmt=
'('' D%LSPLITLAT '')')
184 WRITE(
nout,fmt=
'(50(1X,L1))')
d%LSPLITLAT(1:
r%NDGL)
185 WRITE(
nout,fmt=
'('' D%NPTRFRSTLAT '')')
187 WRITE(
nout,fmt=
'('' D%NPTRLSTLAT '')')
189 WRITE(
nout,fmt=
'(/)')
192 IF(llp2)
WRITE(
nout,9)
'D%NSTA ',
SIZE(
d%NSTA ),shape(
d%NSTA )
194 IF(llp2)
WRITE(
nout,9)
'D%NONL ',
SIZE(
d%NONL ),shape(
d%NONL )
205 DO jgl=
d%NPTRFRSTLAT(ja),
d%NPTRLSTLAT(ja)
206 igptot = igptot+
d%NONL(jgl,jb)
208 igptotl(ja,jb) = igptot
212 d%NGPTOTMX = maxval(igptotl)
213 d%NGPTOTG = sum(igptotl)
215 IF(llp2)
WRITE(
nout,9)
'D%NGPTOTL ',
SIZE(
d%NGPTOTL ),shape(
d%NGPTOTL )
216 d%NGPTOTL(:,:) = igptotl(:,:)
218 ALLOCATE(
d%NSTAGTF(
d%NDGL_FS))
219 IF(llp2)
WRITE(
nout,9)
'D%NSTAGTF ',
SIZE(
d%NSTAGTF ),shape(
d%NSTAGTF )
222 d%NSTAGTF(jgl) = ioff
223 igl =
d%NPTRLS(
mysetw) + jgl - 1
224 ioff = ioff +
g%NLOEN(igl)+3
231 9
FORMAT(1
x,
'ARRAY ',a10,
' ALLOCATED ',8i8)
!$Id mode_top_bound COMMON comconstr r
!$Id mode_top_bound COMMON comconstr g
integer(kind=jpim), public n_regions_ns
type(distr_type), pointer d
subroutine sumplatf(KDGL, KPROCA, KMYSETA, KULTPP, KPROCL, KPTRLS)
integer(kind=jpim), public my_region_ns
subroutine sumplat(KDGL, KPROC, KPROCA, KMYSETA, LDSPLIT, LDEQ_REGIONS, KFRSTLAT, KLSTLAT, KFRSTLOFF, KPTRLAT, KPTRFRSTLAT, KPTRLSTLAT, KPTRFLOFF, KMEDIAP, KRESTM, LDSPLITLAT)
integer(kind=jpim), public my_region_ew
integer(kind=jpim) function mysendset(KSETS, KMYSET, KSET)
!$Header!c c INCLUDE fxyprim h c c c Fonctions in line c c REAL fyprim REAL rj c c il faut la calculer avant d appeler ces fonctions c c c Fonctions a changer selon x(x) et y(y) choisis.c-----------------------------------------------------------------c c.....ici
integer(kind=jpim) mysetw
integer(kind=jpim) function myrecvset(KSETS, KMYSET, KSET)
integer(kind=jpim), public n_regions_ew
integer(kind=jpim) nprtrw
subroutine sustaonl(KMEDIAP, KRESTM)
integer(kind=jpim) nprtrns
integer(kind=jpim), dimension(:), allocatable, public n_regions
integer(kind=jpim) nprintlev