4 & (fa, krep, krang, pchame, pchams, &
60 INTEGER (KIND=JPLIKB) KREP, KRANG, KPULAS, KSTRON
62 REAL (KIND=JPDBLR) PCHAME (*), PCHAMS (*)
64 INTEGER (KIND=JPLIKB) IDIMNC, IRANGC, ITRONC, IPUFLA
65 INTEGER (KIND=JPLIKB) JN, J
66 INTEGER (KIND=JPLIKB) IMLIM, IOFF, IM, IMOD, INDLAP
67 INTEGER (KIND=JPLIKB) INDZ, ILONG, IDECAL, IMINI
68 INTEGER (KIND=JPLIKB) IMAXI, ILCHAM, INBITS, IMTRONC
69 INTEGER (KIND=JPLIKB) IMODPL, JIND
70 INTEGER (KIND=JPLIKB) IMEILL, JSENS, INDICE, IPUISS
71 INTEGER (KIND=JPLIKB) IPOSEX, JMODPL
72 INTEGER (KIND=JPLIKB) IPLUS, IMOINS, IPUISX, IPUIS2
73 INTEGER (KIND=JPLIKB) IRAPOR, IPUISR, INIMES
74 INTEGER (KIND=JPLIKB) INUMER, IDEB, IFIN, IXLOPA
75 INTEGER (KIND=JPLIKB) IPULAS (0:1)
77 REAL (KIND=JPDBLR) ZMIN, ZMAX, ZERRXI, ZERRXF, ZBIGVA
78 REAL (KIND=JPDBLR) ZMINI (fa%jpxtro,0:2),ZMAXI (fa%jpxtro,0:2)
79 REAL (KIND=JPDBLR) Z(4*fa%jpxtro*fa%jpxtro,2)
80 REAL (KIND=JPDBLR) ZECART (2,0:1)
84 INTEGER (KIND=JPLIKB),
EXTERNAL :: ISMIN_164 , ISMAX_164
86 CHARACTER(LEN=FA%JPXNOM) CLACTI
87 CHARACTER(LEN=FA%JPLMES) CLMESS
88 CHARACTER(LEN=FA%JPLSPX) CLNSPR
95 REAL(KIND=JPRB) :: ZHOOK_HANDLE
101 IF (krang.LE.0.OR.krang.GT.fa%JPNXFA)
THEN 113 IF (fa%FICHIER(krang)%LIFLAP)
THEN 116 fa%FICHIER(krang)%LIFLAP = .false.
119 irangc=fa%FICHIER(krang)%NUCADR
120 itronc=fa%CADRE(irangc)%MTRONC
121 ixlopa=fa%CADRE(irangc)%NXLOPA
122 llmlam=fa%CADRE(irangc)%LIMLAM
124 IF (llmlam) imtronc=fa%CADRE(irangc)%NOZPAR(2)
125 IF (itronc.LE.kstron)
THEN 128 ELSEIF (llmlam.AND.imtronc.LE.kstron)
THEN 131 ELSEIF (llmlam.AND.(imtronc.GT.3*itronc.OR. &
132 & itronc.GT.3*imtronc))
THEN 140 ipufla=fa%FICHIER(krang)%NPUFLA
141 imodpl=fa%FICHIER(krang)%NMFDPL
144 ilcham=fa%CADRE(irangc)%NSFLAM
145 idimnc=4*(1+itronc+imtronc+(kstron*(kstron-1))/2)
156 IF (imodpl.EQ.0)
THEN 181 ideb=max(fa%CADRE(irangc)%NOZPAR(2*jn+3)+4*(1+imlim), &
182 & fa%CADRE(irangc)%NOZPAR(2*jn+3)+4)
183 ifin=fa%CADRE(irangc)%NOZPAR(2*jn+4)
185 ioff=jind-fa%CADRE(irangc)%NOZPAR(2*jn+3)
187 imod=mod(ioff,4_jplikb )
189 indlap=((jn-1)*fa%JPXTRO)+im
190 indz=imod*fa%JPXTRO*fa%JPXTRO+indlap
191 z(indz,1)=pchame(jind)*fa%FICHIER(krang)%FLAP1DA(indlap)
192 zmax=max(zmax,z(indz,1))
193 zmin=min(zmin,z(indz,1))
199 DO jn=kstron+1,itronc
202 imaxi=ismax_164(ilong, pchame(idecal+1))
203 zmaxi(jn,0)=pchame(idecal+imaxi)
204 imini=ismin_164(ilong, pchame(idecal+1))
205 zmini(jn,0)=pchame(idecal+imini)
210 DO jn=kstron+1,itronc
211 zmaxi(jn,1)=zmaxi(jn,0)*fa%FICHIER(krang)%FLAP1D(jn)
212 zmini(jn,1)=zmini(jn,0)*fa%FICHIER(krang)%FLAP1D(jn)
216 imaxi=kstron+ismax_164 &
217 & (itronc-kstron,zmaxi(kstron+1,1))
218 imini=kstron+ismin_164 &
219 & (itronc-kstron,zmini(kstron+1,1))
224 inbits=fa%FICHIER(krang)%NBFCSP
225 llarpe=fa%FICHIER(krang)%NFGRIB.EQ.2
227 IF (zmax.LE.zmin)
THEN 239 & (fa, pchame,ipufla,idimnc,ilcham,zmin, &
240 & zmax,inbits,llarpe,zerrxi,llmlam,fa%CADRE(irangc)%NOZPAR(1), &
241 & kstron,itronc,ixlopa)
243 zecart(2,imeill)=zerrxi
253 zecart(1,indice)=zerrxi
256 IF (jsens.EQ.-1)
THEN 271 ideb=max(fa%CADRE(irangc)%NOZPAR(2*jn+3)+4*(1+imlim), &
272 & fa%CADRE(irangc)%NOZPAR(2*jn+3)+4)
273 ifin=fa%CADRE(irangc)%NOZPAR(2*jn+4)
275 ioff=jind-fa%CADRE(irangc)%NOZPAR(2*jn+3)
277 imod=mod(ioff,4_jplikb )
279 indlap=((jn-1)*fa%JPXTRO)+im
280 indz=imod*fa%JPXTRO*fa%JPXTRO+indlap
281 z(indz,1)=pchame(jind)*fa%FICHIER(krang)%FLAP1DA(indlap)
289 DO jn=kstron+1,itronc
290 zmaxi(jn,1)=zmaxi(jn,0)*fa%FICHIER(krang)%FLAP1D(jn)
291 zmini(jn,1)=zmini(jn,0)*fa%FICHIER(krang)%FLAP1D(jn)
309 ideb=max(fa%CADRE(irangc)%NOZPAR(2*jn+3)+4*(1+imlim), &
310 & fa%CADRE(irangc)%NOZPAR(2*jn+3)+4)
311 ifin=fa%CADRE(irangc)%NOZPAR(2*jn+4)
314 ioff=jind-fa%CADRE(irangc)%NOZPAR(2*jn+3)
316 imod=mod(ioff,4_jplikb )
318 indlap=((jn-1)*fa%JPXTRO)+im
319 indz=imod*fa%JPXTRO*fa%JPXTRO+((jn-1)*fa%JPXTRO)+im
320 z(indz,iposex)=z(indz,3-iposex)* &
321 & fa%XLAP1DA(indlap,indice)
322 zmax=max(zmax,z(indz,iposex))
323 zmin=min(zmin,z(indz,iposex))
329 DO jn=kstron+1,itronc
330 zmaxi(jn,iposex)=zmaxi(jn,3-iposex)*fa%XLAP1D(jn,indice)
331 zmini(jn,iposex)=zmini(jn,3-iposex)*fa%XLAP1D(jn,indice)
334 imaxi=kstron+ismax_164 &
335 & (itronc-kstron,zmaxi(kstron+1,iposex))
336 imini=kstron+ismin_164 &
337 & (itronc-kstron,zmini(kstron+1,iposex))
338 zmin=zmini(imini,iposex)
339 zmax=zmaxi(imaxi,iposex)
342 IF (zmax.LE.zmin)
THEN 353 & (fa, pchame,ipuiss,idimnc,ilcham,zmin,zmax,inbits, &
354 & llarpe,zecart(iposex,indice),llmlam, &
355 & fa%CADRE(irangc)%NOZPAR(1),kstron,itronc,ixlopa)
357 IF (zecart(iposex,indice).GE.zecart(3-iposex,indice))
THEN 361 ipulas(indice)=ipuiss-jsens
371 ipulas(indice)=ipuiss
376 iplus=1+mod(ipulas(0)-ipufla,2_jplikb )
377 imoins=1+mod(ipufla-ipulas(1),2_jplikb )
379 IF (zecart(iplus,0).LE.zecart(imoins,1))
THEN 385 kpulas=ipulas(imeill)
393 zerrxf=min(zecart(1,imeill),zecart(2,imeill))
394 WRITE (unit=fa%NULOUT,fmt=*) &
395 &
'FACSIM - Erreur Initiale (P=',ipufla,
') ',zerrxi, &
396 &
', Finale (P=',kpulas,
') ', zerrxf
407 IF (kpulas.EQ.0)
THEN 412 DO jind=fa%CADRE(irangc)%NOZPAR(2*jn+3),fa%CADRE(irangc)%NOZPAR(2*jn+4)
413 pchams(jind)=pchame(jind)
426 IF (kpulas.GT.0)
THEN 432 IF (ipuisx.LE.fa%JPUILA)
THEN 437 DO jind=fa%CADRE(irangc)%NOZPAR(2*jn+3)+4, &
438 & fa%CADRE(irangc)%NOZPAR(2*jn+4)
439 ioff=jind-fa%CADRE(irangc)%NOZPAR(2*jn+3)
441 indlap=((jn-1)*fa%JPXTRO)+im
442 pchams(jind)=pchame(jind)*fa%XLAP2DA(indlap,ipuisx,indice)
448 pchams(j)=pchame(j)*fa%XLAP2D(j,ipuisx,indice)
452 ELSEIF (ipuisx.LE.2*fa%JPUILA)
THEN 455 IF (ipuisx.EQ.2*ipuis2)
THEN 460 DO jind=fa%CADRE(irangc)%NOZPAR(2*jn+3)+4, &
461 & fa%CADRE(irangc)%NOZPAR(2*jn+4)
462 ioff=jind-fa%CADRE(irangc)%NOZPAR(2*jn+3)
464 indlap=((jn-1)*fa%JPXTRO)+im
465 pchams(jind)=pchame(jind)* &
466 & fa%XLAP2DA(indlap,ipuis2,indice)**2
472 pchams(j)=pchame(j)*fa%XLAP2D(j,ipuis2,indice)**2
481 DO jind=fa%CADRE(irangc)%NOZPAR(2*jn+3)+4, &
482 & fa%CADRE(irangc)%NOZPAR(2*jn+4)
483 ioff=jind-fa%CADRE(irangc)%NOZPAR(2*jn+3)
485 indlap=((jn-1)*fa%JPXTRO)+im
486 pchams(jind)=pchame(jind)* &
487 & fa%XLAP2DA(indlap,fa%JPUILA,indice) &
488 & *fa%XLAP2DA(indlap,ipuisx-fa%JPUILA,indice)
495 pchams(j)=pchame(j)*fa%XLAP2D(j,fa%JPUILA,indice) &
496 & *fa%XLAP2D(j,ipuisx-fa%JPUILA,indice)
502 irapor=1+(ipuisx-1)/fa%JPUILA
505 IF (ipuisx.EQ.irapor*ipuisr)
THEN 510 DO jind=fa%CADRE(irangc)%NOZPAR(2*jn+3)+4, &
511 & fa%CADRE(irangc)%NOZPAR(2*jn+4)
512 ioff=jind-fa%CADRE(irangc)%NOZPAR(2*jn+3)
514 indlap=((jn-1)*fa%JPXTRO)+im
515 pchams(jind)=pchame(jind)* &
516 & fa%XLAP2DA(indlap,ipuisr,indice)**irapor
522 pchams(j)=pchame(j)*fa%XLAP2D(j,ipuisr,indice)**irapor
531 DO jind=fa%CADRE(irangc)%NOZPAR(2*jn+3)+4, &
532 & fa%CADRE(irangc)%NOZPAR(2*jn+4)
533 ioff=jind-fa%CADRE(irangc)%NOZPAR(2*jn+3)
535 indlap=((jn-1)*fa%JPXTRO)+im
536 pchams(jind)=pchame(jind)* &
537 & fa%XLAP2DA(indlap,fa%JPUILA,indice)**(irapor-1)* &
538 & fa%XLAP2DA(indlap,ipuisx-fa%JPUILA*(irapor-1),indice)
544 pchams(j)=pchame(j)* &
545 & fa%XLAP2D(j,fa%JPUILA,indice)**(irapor-1) &
546 & *fa%XLAP2D(j,ipuisx-fa%JPUILA*(irapor-1),indice)
562 llfata=llmoer(krep,krang)
564 IF (fa%LFAMOP.OR.llfata)
THEN 568 WRITE (unit=clmess,fmt=
'(''KREP='',I4,'', KRANG='',I4, & 569 & '', PCHAME(1)='',G12.5,'', PCHAMS('',I3,'')='',G12.5, & 570 & '', KPULAS='',I3)') &
571 & krep,krang,pchame(1),idimnc+1,pchams(idimnc+1),kpulas
573 & (fa, inumer,inimes,krep,.false.,clmess, &
574 & clnspr,clacti,.false.)
581 #include "facom2.llmoer.h" subroutine facsim_fort(FA, KREP, KRANG, PCHAME, PCHAMS, KPULAS, KSTRON)
subroutine faifla_fort(FA, KRANG)
subroutine faxion_fort(FA, PCHAME, KPUISS, KDIMNC, KLCHAM, PMIN, PMAX, KNBITS, LDARPE, PECART, LDMLAM, KNOZPA, KSTROF, KTRONC, KXLOPA)
subroutine faixla_fort(FA)
subroutine faipar_fort(FA, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI, LDRLFI)
integer(kind=jplikb), parameter jpniil