5 & (lfi, krep, krang, ktab, klong, krgpim, &
31 INTEGER (KIND=JPLIKB) KREP, KRANG, KLONG, KRGPIM
32 INTEGER (KIND=JPLIKB) KPOSEX, KRETIN
33 INTEGER (KIND=JPLIKB) KTAB (klong), IFOURT (lfi%jplarx)
34 INTEGER (KIND=JPLIKB) INUCPL (lfi%jpnpdf), INAPHY
35 INTEGER (KIND=JPLIKB) INUMER, ILARPH
36 INTEGER (KIND=JPLIKB) IPODEB, IPOFIN
37 INTEGER (KIND=JPLIKB) IARDEB, IARFIN, IDCDEB, IDCFIN
38 INTEGER (KIND=JPLIKB) ICPLTI, ICPLTF, ICPTTN
39 INTEGER (KIND=JPLIKB) ICPTTX, INCPLT, INUMAP, J, JD
40 INTEGER (KIND=JPLIKB) IDECDE, IPAREC, ITAMLI
41 INTEGER (KIND=JPLIKB) INUMPJ, INUMPD, IARTIC, INPDRE
42 INTEGER (KIND=JPLIKB) INPDTA, INPDIS, INDIK1
43 INTEGER (KIND=JPLIKB) INDIK2, INDIC1, INDIC2, JI
44 INTEGER (KIND=JPLIKB) IFACTM, IRETOU, INIMES
45 INTEGER (KIND=JPLIKB) IRETIN
47 LOGICAL LLADON, LLDERN
49 CHARACTER(LEN=LFI%JPLSPX) CLNSPR
50 CHARACTER(LEN=LFI%JPLMES) CLMESS
51 CHARACTER(LEN=LFI%JPLFTX) CLACTI
58 REAL(KIND=JPRB) :: ZHOOK_HANDLE
63 IF (krang.LE.0.OR.krang.GT.lfi%JPNXFI &
64 & .OR.krgpim.LE.0.OR.kposex.EQ.0) &
74 IF (.NOT.lfi%LPHASP(krgpim))
THEN 77 & (lfi, krep,krang,krgpim,iretin)
81 ELSEIF (iretin.EQ.2)
THEN 83 ELSEIF (iretin.NE.0)
THEN 89 inumer=lfi%NUMERO(krang)
90 ifactm=lfi%MFACTM(krang)
91 ilarph=lfi%JPLARD*ifactm
102 ipofin=kposex+klong-1
103 iardeb=1+(ipodeb-1)/ilarph
104 iarfin=1+(ipofin-1)/ilarph
105 idcdeb=mod(ipodeb-1,ilarph)
106 idcfin=mod(ipofin ,ilarph)
107 lldern=idcfin.NE.0.AND.((iarfin.NE.iardeb) &
108 & .OR.(iarfin.EQ.iardeb.AND.idcdeb.EQ.0))
109 icplti=iardeb+(idcdeb+ilarph-1)/ilarph
110 icpltf=iarfin-1+(ilarph-idcfin)/ilarph
116 WRITE (unit=lfi%NULOUT,fmt=*)
'KPOSEX= ',kposex,
', IPODEB= ', &
117 & ipodeb,
', IPOFIN= ',ipofin
118 WRITE (unit=lfi%NULOUT,fmt=*)
'IARDEB= ',iardeb,
', IARFIN= ', &
119 & iarfin,
', IDCDEB= ',idcdeb
120 WRITE (unit=lfi%NULOUT,fmt=*)
'IDCFIN= ',idcfin,
', ICPLTI= ', &
121 & icplti,
', ICPLTF= ',icpltf
122 WRITE (unit=lfi%NULOUT,fmt=*)
'ICPTTN= ',icpttn,
', ICPTTX= ', &
123 & icpttx,
', LLDERN= ',lldern
126 IF (icpltf.GE.icplti)
THEN 129 inumap=lfi%NUMAPD(j,krang)
131 IF (inumap.GE.icplti.AND.inumap.LE.icpltf)
THEN 133 inucpl(incplt)=inumap
134 icpttn=min(icpttn,inumap)
135 icpttx=max(icpttx,inumap)
136 idecde=(inumap-iardeb)*ilarph-idcdeb
138 IF (lfi%NLONPD(j,krang).LT.ilarph)
THEN 140 IF (inumap.GT.lfi%MDES1D(ixm(lfi%JPAXPD,krang)).OR. &
141 & .NOT.lfi%LECRPD(j,krang))
THEN 147 & (lfi, krep,inumer,inumap, &
148 & ifourt,lfi%NBREAD(krang), &
149 & ifactm,lfi%YLFIC (krang), &
152 IF (iretin.NE.0)
THEN 156 DO jd=lfi%NLONPD(j,krang)+1,ilarph
157 lfi%MTAMPD(ixt(jd,j,krang))=ifourt(jd)
162 lfi%NLONPD(j,krang)=ilarph
166 ktab(idecde+jd)=lfi%MTAMPD(ixt(jd,j,krang))
169 IF (incplt.GT.(icpltf-icplti))
THEN 190 IF (idcdeb.EQ.0)
THEN 194 iparec=min(ilarph*iardeb,ipofin)-kposex+1
202 inumpj=mod(lfi%NDERPD(krang)+j,lfi%JPNPDF)
204 IF (lfi%NUMAPD(inumpj,krang).EQ.iardeb)
THEN 208 IF (lfi%NLONPD(inumpj,krang).LT.(idcdeb+iparec))
THEN 210 IF (iardeb.GT.lfi%MDES1D(ixm(lfi%JPAXPD,krang)))
THEN 213 ELSEIF (lfi%LECRPD(inumpj,krang))
THEN 216 & (lfi, krep,inumer,iardeb,ifourt,&
217 & lfi%NBREAD(krang),ifactm, &
218 & lfi%YLFIC (krang),iretin)
220 IF (iretin.NE.0)
THEN 224 DO jd=lfi%NLONPD(inumpj,krang)+1,ilarph
225 lfi%MTAMPD(ixt(jd,inumpj,krang))=ifourt(jd)
229 lfi%NUMAPD(inumpj,krang)=lfi%JPNIL
232 & (lfi, krep,inumer,iardeb, &
233 & lfi%MTAMPD(ixt(1_jplikb ,inumpj,krang)), &
234 & lfi%NBREAD(krang),ifactm, &
235 & lfi%YLFIC (krang),iretin)
237 IF (iretin.NE.0)
THEN 241 lfi%NUMAPD(inumpj,krang)=iardeb
244 lfi%NLONPD(inumpj,krang)=ilarph
255 inumpd=mod(1+lfi%NDERPD(krang),lfi%JPNPDF)
258 IF (lfi%LECRPD(inumpd,krang))
THEN 261 & (lfi, krep,krang,inumpd,ifourt,iretin)
263 IF (iretin.EQ.1)
THEN 265 ELSEIF (iretin.EQ.2)
THEN 267 ELSEIF (iretin.NE.0)
THEN 273 lfi%NUMAPD(inumpd,krang)=lfi%JPNIL
276 & (lfi, krep,inumer,iardeb, &
277 & lfi%MTAMPD(ixt(1_jplikb ,inumpd,krang)), &
278 & lfi%NBREAD(krang),ifactm, &
279 & lfi%YLFIC (krang),iretin)
281 IF (iretin.NE.0)
THEN 285 lfi%NUMAPD(inumpd,krang)=iardeb
286 lfi%NLONPD(inumpd,krang)=ilarph
294 ktab(jd)=lfi%MTAMPD(ixt(idcdeb+jd,inumpd,krang))
297 lfi%NDERPD(krang)=inumpd
304 IF (.NOT.lfi%LTAMPL(krang))
THEN 311 inpdre=(klong-iparec-idcfin+ilarph-1)/ilarph-incplt
312 inpdta=min(inpdre,itamli)
322 IF (lfi%LMISOP)
WRITE (unit=lfi%NULOUT,fmt=*) &
323 &
'BOUCLE 235, J= ',j,
', IARTIC= ',iartic,
', IDECDE= ',idecde
325 IF (iartic.GE.icpttn.AND.iartic.LE.icpttx)
THEN 326 IF (iartic.EQ.icpttn) icpttn=icpttn+1
327 IF (iartic.EQ.icpttx) icpttx=icpttx-1
336 IF (iartic.EQ.inucpl(ji))
THEN 337 IF (ji.EQ.indik1) indik1=indik1+1
338 IF (ji.EQ.indik2) indik2=indik2-1
346 idecde=(iartic-iardeb)*ilarph-idcdeb
349 & (lfi, krep,inumer,iartic,ktab(idecde+1), &
350 & lfi%NBREAD(krang),ifactm, &
351 & lfi%YLFIC (krang),iretin)
353 IF (iretin.NE.0)
THEN 366 inumpd=mod(lfi%NDERPD(krang)+j,lfi%JPNPDF)
371 IF (iartic.GE.icpttn.AND.iartic.LE.icpttx)
THEN 372 IF (iartic.EQ.icpttn) icpttn=icpttn+1
373 IF (iartic.EQ.icpttx) icpttx=icpttx-1
382 IF (iartic.EQ.inucpl(ji))
THEN 383 IF (ji.EQ.indik1) indik1=indik1+1
384 IF (ji.EQ.indik2) indik2=indik2-1
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 413 lfi%NUMAPD(inumpd,krang)=lfi%JPNIL
416 & (lfi, krep,inumer,iartic, &
417 & lfi%MTAMPD(ixt(1_jplikb ,inumpd,krang)), &
418 & lfi%NBREAD(krang),ifactm, &
419 & lfi%YLFIC (krang),iretin)
421 IF (iretin.NE.0)
THEN 425 lfi%NUMAPD(inumpd,krang)=iartic
426 lfi%NLONPD(inumpd,krang)=ilarph
427 idecde=(iartic-iardeb)*ilarph-idcdeb
432 ktab(idecde+jd)=lfi%MTAMPD(ixt(jd,inumpd,krang))
437 lfi%NDERPD(krang)=mod(lfi%NDERPD(krang)+inpdta,lfi%JPNPDF)
451 inumpj=mod(lfi%NDERPD(krang)+j,lfi%JPNPDF)
453 IF (lfi%NUMAPD(inumpj,krang).EQ.iarfin)
THEN 457 IF (lfi%NLONPD(inumpj,krang).LT.idcfin)
THEN 459 IF (iarfin.GT.lfi%MDES1D(ixm(lfi%JPAXPD,krang)))
THEN 462 ELSEIF (lfi%LECRPD(inumpj,krang))
THEN 465 & (lfi, krep,inumer,iarfin,ifourt, &
466 & lfi%NBREAD(krang),ifactm, &
467 & lfi%YLFIC (krang),iretin)
469 IF (iretin.NE.0)
THEN 473 DO jd=lfi%NLONPD(inumpj,krang)+1,ilarph
474 lfi%MTAMPD(ixt(jd,inumpj,krang))=ifourt(jd)
478 lfi%NUMAPD(inumpj,krang)=lfi%JPNIL
481 & (lfi, krep,inumer,iarfin, &
482 & lfi%MTAMPD(ixt(1_jplikb ,inumpj,krang)), &
483 & lfi%NBREAD(krang),ifactm, &
484 & lfi%YLFIC (krang),iretin)
486 IF (iretin.NE.0)
THEN 490 lfi%NUMAPD(inumpj,krang)=iarfin
493 lfi%NLONPD(inumpj,krang)=ilarph
504 inumpd=mod(1+lfi%NDERPD(krang),lfi%JPNPDF)
507 IF (lfi%LECRPD(inumpd,krang))
THEN 510 & (lfi, krep,krang,inumpd,ifourt,iretin)
512 IF (iretin.EQ.1)
THEN 514 ELSEIF (iretin.EQ.2)
THEN 516 ELSEIF (iretin.NE.0)
THEN 522 IF (iarfin.LE.lfi%MDES1D(ixm(lfi%JPAXPD,krang)))
THEN 523 lfi%NUMAPD(inumpd,krang)=lfi%JPNIL
526 & (lfi, krep,inumer,iarfin, &
527 & lfi%MTAMPD(ixt(1_jplikb ,inumpd,krang)), &
528 & lfi%NBREAD(krang),ifactm, &
529 & lfi%YLFIC (krang),iretin)
531 IF (iretin.NE.0)
THEN 535 lfi%NLONPD(inumpd,krang)=ilarph
537 lfi%NLONPD(inumpd,krang)=0
540 lfi%NUMAPD(inumpd,krang)=iarfin
543 idecde=(iarfin-iardeb)*ilarph-idcdeb
549 ktab(idecde+jd)=lfi%MTAMPD(ixt(jd,inumpd,krang))
552 lfi%NDERPD(krang)=inumpd
572 IF (inaphy.NE.0) lfi%NUMAPH(krang)=inaphy
579 llfata=llmoer(krep,krang)
583 ELSEIF (krep.GT.0)
THEN 589 IF (lfi%LMISOP.OR.llfata)
THEN 592 WRITE (unit=clmess,fmt=
'(''KREP='',I4,'', KRANG='',I3, & 593 & '', KLONG='',I7,'', KRGPIM='',I3,'', KPOSEX='',I8, & 594 & '', KRETIN='',I2)') krep,krang,klong,krgpim,kposex,kretin
596 & (lfi, inumer,inimes,krep,.false., &
597 & clmess,clnspr,clacti)
604 #include "lficom2.ixm.h" 605 #include "lficom2.ixt.h" 606 #include "lficom2.llmoer.h" 614 & (krep, krang, ktab, klong, krgpim, kposex, kretin)
621 INTEGER (KIND=JPLIKB) KREP
622 INTEGER (KIND=JPLIKB) KRANG
623 INTEGER (KIND=JPLIKB) KLONG
624 INTEGER (KIND=JPLIKB) KTAB (klong)
625 INTEGER (KIND=JPLIKB) KRGPIM
626 INTEGER (KIND=JPLIKB) KPOSEX
627 INTEGER (KIND=JPLIKB) KRETIN
632 & (lfi, krep, krang, ktab, klong, krgpim, kposex, &
638 & (krep, krang, ktab, klong, krgpim, kposex, kretin)
645 INTEGER (KIND=JPLIKM) KREP
646 INTEGER (KIND=JPLIKM) KRANG
647 INTEGER (KIND=JPLIKM) KLONG
648 INTEGER (KIND=JPLIKB) KTAB (klong)
649 INTEGER (KIND=JPLIKM) KRGPIM
650 INTEGER (KIND=JPLIKM) KPOSEX
651 INTEGER (KIND=JPLIKM) KRETIN
656 & (lfi, krep, krang, ktab, klong, krgpim, kposex, &
662 & (lfi, krep, krang, ktab, klong, krgpim, kposex, &
669 INTEGER (KIND=JPLIKM) KREP
670 INTEGER (KIND=JPLIKM) KRANG
671 INTEGER (KIND=JPLIKM) KLONG
672 INTEGER (KIND=JPLIKB) KTAB (klong)
673 INTEGER (KIND=JPLIKM) KRGPIM
674 INTEGER (KIND=JPLIKM) KPOSEX
675 INTEGER (KIND=JPLIKM) KRETIN
677 INTEGER (KIND=JPLIKB) IREP
678 INTEGER (KIND=JPLIKB) IRANG
679 INTEGER (KIND=JPLIKB) ILONG
680 INTEGER (KIND=JPLIKB) IRGPIM
681 INTEGER (KIND=JPLIKB) IPOSEX
682 INTEGER (KIND=JPLIKB) IRETIN
685 irang = int( krang,
jplikb)
686 ilong = int( klong,
jplikb)
687 irgpim = int( krgpim,
jplikb)
688 iposex = int( kposex,
jplikb)
691 & (lfi, irep, irang, ktab, ilong, irgpim, iposex, &
695 kretin = int( iretin,
jplikm)
integer, parameter jplikb
subroutine lfildo_fort(LFI, KREP, KNUMER, KREC, KTAB, KNBLEC, KFACTM, YDFIC, KRETIN)
subroutine new_lfi_default()
logical, save lficom_default_init
subroutine lfiled64(KREP, KRANG, KTAB, KLONG, KRGPIM, KPOSEX, KRETIN)
type(lficom), target, save lficom_default
subroutine lfiled(KREP, KRANG, KTAB, KLONG, KRGPIM, KPOSEX, KRETIN)
subroutine lfipha_fort(LFI, KREP, KRANG, KRGPIM, KRETIN)
subroutine lfiled_fort(LFI, KREP, KRANG, KTAB, KLONG, KRGPIM, KPOSEX, KRETIN)
integer, parameter jplikm
subroutine lfiled_mt(LFI, KREP, KRANG, KTAB, KLONG, KRGPIM, KPOSEX, KRETIN)
subroutine lfiems_fort(LFI, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI)
subroutine lfivid_fort(LFI, KREP, KRANG, KNUMPD, KTAMPO, KRETIN)