4 & (lfi, krep, krang, ktab, klong, &
27 INTEGER (KIND=JPLIKB) KREP, KRANG, KLONG, KPOSEC, KRETIN
28 INTEGER (KIND=JPLIKB) KTAB (klong), IFOURT (lfi%jplarx)
29 INTEGER (KIND=JPLIKB) INUCPL (lfi%jpnpdf), INAPHY
30 INTEGER (KIND=JPLIKB) INUMER, ILARPH, IPODEB, IPOFIN
31 INTEGER (KIND=JPLIKB) IARDEB, IARFIN, IDCDEB, IDCFIN
32 INTEGER (KIND=JPLIKB) ICPLTI, ICPLTF, ICPTTN
33 INTEGER (KIND=JPLIKB) ICPTTX, INCPLT, INUMAP, J, JD
34 INTEGER (KIND=JPLIKB) IDECDE, IPAREC, ITAMLI
35 INTEGER (KIND=JPLIKB) INUMPJ, INUMPD, IARTIC, INPDRE
36 INTEGER (KIND=JPLIKB) INPDTA, INPDIS, INDIK1
37 INTEGER (KIND=JPLIKB) INDIK2, INDIC1, INDIC2, JI
38 INTEGER (KIND=JPLIKB) IFACTM, IRETOU, INIMES
39 INTEGER (KIND=JPLIKB) IRETIN
41 LOGICAL LLADON, LLDERN
43 CHARACTER(LEN=LFI%JPLSPX) CLNSPR
44 CHARACTER(LEN=LFI%JPLMES) CLMESS
45 CHARACTER(LEN=LFI%JPLFTX) CLACTI
52 REAL(KIND=JPRB) :: ZHOOK_HANDLE
57 IF (krang.LE.0.OR.krang.GT.lfi%JPNXFI.OR.kposec.EQ.0) &
63 inumer=lfi%NUMERO(krang)
64 ifactm=lfi%MFACTM(krang)
65 ilarph=lfi%JPLARD*ifactm
77 iardeb=1+(ipodeb-1)/ilarph
78 iarfin=1+(ipofin-1)/ilarph
79 idcdeb=mod(ipodeb-1,ilarph)
80 idcfin=mod(ipofin ,ilarph)
81 lldern=idcfin.NE.0.AND.((iarfin.NE.iardeb) &
82 & .OR.(iarfin.EQ.iardeb.AND.idcdeb.EQ.0))
83 icplti=iardeb+(idcdeb+ilarph-1)/ilarph
84 icpltf=iarfin-1+(ilarph-idcfin)/ilarph
90 WRITE (unit=lfi%NULOUT,fmt=*)
'KPOSEC= ',kposec, &
91 &
', IPODEB= ',ipodeb, &
93 WRITE (unit=lfi%NULOUT,fmt=*)
'IARDEB= ',iardeb, &
94 &
', IARFIN= ',iarfin, &
96 WRITE (unit=lfi%NULOUT,fmt=*)
'IDCFIN= ',idcfin, &
97 &
', ICPLTI= ',icplti, &
99 WRITE (unit=lfi%NULOUT,fmt=*)
'ICPTTN= ',icpttn, &
100 &
', ICPTTX= ',icpttx
103 IF (icpltf.GE.icplti)
THEN 106 inumap=lfi%NUMAPD(j,krang)
108 IF (inumap.GE.icplti.AND.inumap.LE.icpltf)
THEN 110 inucpl(incplt)=inumap
111 icpttn=min(icpttn,inumap)
112 icpttx=max(icpttx,inumap)
113 idecde=(inumap-iardeb)*ilarph-idcdeb
116 lfi%MTAMPD(ixt(jd,j,krang))=ktab(idecde+jd)
119 lfi%NLONPD(j,krang)=ilarph
120 lfi%LECRPD(j,krang)=.true.
121 IF (incplt.GT.(icpltf-icplti))
GOTO 220
139 IF (idcdeb.EQ.0)
THEN 143 iparec=min(ilarph*iardeb,ipofin)-kposec+1
151 inumpj=mod(lfi%NDERPD(krang)+j,lfi%JPNPDF)
153 IF (lfi%NUMAPD(inumpj,krang).EQ.iardeb)
THEN 157 IF (lfi%NLONPD(inumpj,krang).LT.idcdeb &
158 & .AND.iardeb.LE.lfi%MDES1D(ixm(lfi%JPAXPD,krang)))
THEN 166 & (lfi, krep,inumer,iardeb,ifourt,&
167 & lfi%NBREAD(krang),ifactm, &
168 & lfi%YLFIC (krang),iretin)
170 IF (iretin.NE.0)
THEN 174 DO jd=lfi%NLONPD(inumpj,krang)+1,ilarph
175 lfi%MTAMPD(ixt(jd,inumpj,krang))=ifourt(jd)
178 lfi%NLONPD(inumpj,krang)=ilarph
189 inumpd=mod(1+lfi%NDERPD(krang),lfi%JPNPDF)
192 IF (lfi%LECRPD(inumpd,krang))
THEN 195 & (lfi, krep,krang,inumpd,ifourt,iretin)
197 IF (iretin.EQ.1)
THEN 199 ELSEIF (iretin.EQ.2)
THEN 201 ELSEIF (iretin.NE.0)
THEN 207 lfi%NUMAPD(inumpd,krang)=lfi%JPNIL
210 & (lfi, krep,inumer,iardeb, &
211 & lfi%MTAMPD(ixt(1_jplikb ,inumpd,krang)), &
212 & lfi%NBREAD(krang),ifactm, &
213 & lfi%YLFIC (krang),iretin)
215 IF (iretin.NE.0)
THEN 219 lfi%NUMAPD(inumpd,krang)=iardeb
220 lfi%NLONPD(inumpd,krang)=ilarph
228 lfi%MTAMPD(ixt(idcdeb+jd,inumpd,krang))=ktab(jd)
231 lfi%LECRPD(inumpd,krang)=.true.
232 lfi%NLONPD(inumpd,krang)=max(lfi%NLONPD(inumpd,krang), &
234 lfi%NDERPD(krang)=inumpd
244 IF (.NOT.lfi%LTAMPE(krang))
THEN 251 inpdre=(klong-iparec-idcfin+ilarph-1)/ilarph-incplt
252 inpdta=min(inpdre,itamli)
262 IF (lfi%LMISOP)
WRITE (unit=lfi%NULOUT,fmt=*) &
263 &
'BOUCLE 235, J= ',j,
', IARTIC= ',iartic,
', IDECDE= ',idecde
265 IF (iartic.GE.icpttn.AND.iartic.LE.icpttx)
THEN 266 IF (iartic.EQ.icpttn) icpttn=icpttn+1
267 IF (iartic.EQ.icpttx) icpttx=icpttx-1
276 IF (iartic.EQ.inucpl(ji))
THEN 277 IF (ji.EQ.indik1) indik1=indik1+1
278 IF (ji.EQ.indik2) indik2=indik2-1
286 idecde=(iartic-iardeb)*ilarph-idcdeb
289 & (lfi, krep,krang,iartic,ktab(idecde+1), &
292 IF (iretin.EQ.1)
THEN 294 ELSEIF (iretin.EQ.2)
THEN 296 ELSEIF (iretin.NE.0)
THEN 309 inumpd=mod(lfi%NDERPD(krang)+j,lfi%JPNPDF)
314 IF (iartic.GE.icpttn.AND.iartic.LE.icpttx)
THEN 315 IF (iartic.EQ.icpttn) icpttn=icpttn+1
316 IF (iartic.EQ.icpttx) icpttx=icpttx-1
325 IF (iartic.EQ.inucpl(ji))
THEN 326 IF (ji.EQ.indik1) indik1=indik1+1
327 IF (ji.EQ.indik2) indik2=indik2-1
339 IF (lfi%LECRPD(inumpd,krang))
THEN 342 & (lfi, krep,krang,inumpd,ifourt,iretin)
344 IF (iretin.EQ.1)
THEN 346 ELSEIF (iretin.EQ.2)
THEN 348 ELSEIF (iretin.NE.0)
THEN 354 idecde=(iartic-iardeb)*ilarph-idcdeb
357 lfi%MTAMPD(ixt(jd,inumpd,krang))=ktab(idecde+jd)
360 lfi%LECRPD(inumpd,krang)=.true.
361 lfi%NUMAPD(inumpd,krang)=iartic
362 lfi%NLONPD(inumpd,krang)=ilarph
365 lfi%NDERPD(krang)=mod(lfi%NDERPD(krang)+inpdta,lfi%JPNPDF)
379 inumpj=mod(lfi%NDERPD(krang)+j,lfi%JPNPDF)
381 IF (lfi%NUMAPD(inumpj,krang).EQ.iarfin)
THEN 393 inumpd=mod(1+lfi%NDERPD(krang),lfi%JPNPDF)
396 IF (lfi%LECRPD(inumpd,krang))
THEN 399 & (lfi, krep,krang,inumpd,ifourt,iretin)
401 IF (iretin.EQ.1)
THEN 403 ELSEIF (iretin.EQ.2)
THEN 405 ELSEIF (iretin.NE.0)
THEN 411 IF (iarfin.LE.lfi%MDES1D(ixm(lfi%JPAXPD,krang)))
THEN 412 lfi%NUMAPD(inumpd,krang)=lfi%JPNIL
415 & (lfi, krep,inumer,iarfin, &
416 & lfi%MTAMPD(ixt(1_jplikb ,inumpd,krang)), &
417 & lfi%NBREAD(krang),ifactm, &
418 & lfi%YLFIC (krang),iretin)
420 IF (iretin.NE.0)
THEN 424 lfi%NLONPD(inumpd,krang)=ilarph
426 lfi%NLONPD(inumpd,krang)=0
429 lfi%NUMAPD(inumpd,krang)=iarfin
432 idecde=(iarfin-iardeb)*ilarph-idcdeb
438 lfi%MTAMPD(ixt(jd,inumpd,krang))=ktab(idecde+jd)
441 lfi%LECRPD(inumpd,krang)=.true.
442 lfi%NLONPD(inumpd,krang)=max(lfi%NLONPD(inumpd,krang),idcfin)
443 lfi%NDERPD(krang)=inumpd
463 IF (inaphy.NE.0) lfi%NUMAPH(krang)=inaphy
470 llfata=llmoer(krep,krang)
474 ELSEIF (krep.GT.0)
THEN 480 IF (lfi%LMISOP.OR.llfata)
THEN 483 WRITE (unit=clmess,fmt=
'(''KREP='',I4,'', KRANG='',I3, & 484 & '', KLONG='',I7,'', KPOSEC='',I8,'', KRETIN='',I2)') &
485 & krep, krang, klong, kposec, kretin
487 & (lfi, inumer,inimes,krep,.false., &
488 & clmess,clnspr,clacti)
495 #include "lficom2.ixm.h" 496 #include "lficom2.ixt.h" 497 #include "lficom2.llmoer.h" 505 & (krep, krang, ktab, klong, kposec, kretin)
512 INTEGER (KIND=JPLIKB) KREP
513 INTEGER (KIND=JPLIKB) KRANG
514 INTEGER (KIND=JPLIKB) KLONG
515 INTEGER (KIND=JPLIKB) KTAB (klong)
516 INTEGER (KIND=JPLIKB) KPOSEC
517 INTEGER (KIND=JPLIKB) KRETIN
522 & (lfi, krep, krang, ktab, klong, kposec, kretin)
527 & (krep, krang, ktab, klong, kposec, kretin)
534 INTEGER (KIND=JPLIKM) KREP
535 INTEGER (KIND=JPLIKM) KRANG
536 INTEGER (KIND=JPLIKM) KLONG
537 INTEGER (KIND=JPLIKB) KTAB (klong)
538 INTEGER (KIND=JPLIKM) KPOSEC
539 INTEGER (KIND=JPLIKM) KRETIN
544 & (lfi, krep, krang, ktab, klong, kposec, kretin)
549 & (lfi, krep, krang, ktab, klong, kposec, kretin)
555 INTEGER (KIND=JPLIKM) KREP
556 INTEGER (KIND=JPLIKM) KRANG
557 INTEGER (KIND=JPLIKM) KLONG
558 INTEGER (KIND=JPLIKB) KTAB (klong)
559 INTEGER (KIND=JPLIKM) KPOSEC
560 INTEGER (KIND=JPLIKM) KRETIN
562 INTEGER (KIND=JPLIKB) IREP
563 INTEGER (KIND=JPLIKB) IRANG
564 INTEGER (KIND=JPLIKB) ILONG
565 INTEGER (KIND=JPLIKB) IPOSEC
566 INTEGER (KIND=JPLIKB) IRETIN
569 irang = int( krang,
jplikb)
570 ilong = int( klong,
jplikb)
571 iposec = int( kposec,
jplikb)
574 & (lfi, irep, irang, ktab, ilong, iposec, iretin)
577 kretin = int( iretin,
jplikm)
integer, parameter jplikb
subroutine lfiecd_mt(LFI, KREP, KRANG, KTAB, KLONG, KPOSEC, KRETIN)
subroutine lfiecx_fort(LFI, KREP, KRANG, KREC, KZONE, LDADON, KRETIN)
subroutine lfildo_fort(LFI, KREP, KNUMER, KREC, KTAB, KNBLEC, KFACTM, YDFIC, KRETIN)
subroutine lfiecd(KREP, KRANG, KTAB, KLONG, KPOSEC, KRETIN)
subroutine new_lfi_default()
logical, save lficom_default_init
subroutine lfiecd64(KREP, KRANG, KTAB, KLONG, KPOSEC, KRETIN)
type(lficom), target, save lficom_default
integer, parameter jplikm
subroutine lfiems_fort(LFI, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI)
subroutine lfivid_fort(LFI, KREP, KRANG, KNUMPD, KTAMPO, KRETIN)
subroutine lfiecd_fort(LFI, KREP, KRANG, KTAB, KLONG, KPOSEC, KRETIN)