5 & (fa, krep, knumer, ldnomm, cdnomf, cdsttu, &
6 & lderfa, ldimst, knimes, knbarp, knbari, &
58 INTEGER (KIND=JPLIKB) KREP, KNUMER, KNIMES, KNBARP, KNBARI
60 INTEGER (KIND=JPLIKB) IRANG, IRANMS
61 INTEGER (KIND=JPLIKB) IREPOU, ILNOMC, ILOMIN, IREP, J
62 INTEGER (KIND=JPLIKB) INBARP, IRANER, IRANGC
63 INTEGER (KIND=JPLIKB) INPAHE, INLATI, ISULEI, INPIND
64 INTEGER (KIND=JPLIKB) INIVER, ILONGA
65 INTEGER (KIND=JPLIKB) ITRONC, ILACTI, INIMES, INXLON
66 INTEGER (KIND=JPLIKB) ITYPTR, IPHASE, IGARDE, IPOSEX, IPUILA
68 INTEGER (KIND=JPLIKB) IDIMEN (fa%jpcadi)
69 INTEGER (KIND=JPLIKB) IRDPOL (fa%jpxpah+fa%jpxind)
70 INTEGER (KIND=JPLIKB) IDATEF (fa%jpldat), IDATXF (fa%jpldat)
71 INTEGER (KIND=JPLIKB) ILDIMEN(fa%jpcadi), &
72 & ILRDPOL(FA%JPXPAH+FA%JPXIND)
73 INTEGER (KIND=JPLIKB) ILPNVER
75 REAL (KIND=JPDBLR) ZCHMID (fa%jpcafs), ZSINLA (fa%jpxgeo)
76 REAL (KIND=JPDBLR) ZHYBRI (0:(1+fa%jpxniv)*2)
78 LOGICAL LDNOMM, LDERFA, LDIMST, LLVERG, LLNOUF, LLNOUC, LLRLFI
79 LOGICAL LLMODC, LLREDF, LLMODA, LLMLAM
81 CHARACTER CDNOMF*(*), CDSTTU*(*), CDNOMC*(*)
83 CHARACTER(LEN=FA%JPXNOM) CLACTI
84 CHARACTER(LEN=FA%JPXNOM) CLNOMA
85 CHARACTER(LEN=FA%JPLMES) CLMESS
86 CHARACTER(LEN=FA%JPLSPX) CLNSPR
97 REAL(KIND=JPRB) :: ZHOOK_HANDLE
107 ilnomc=int(len(cdnomc),
jplikb)
108 ilomin=min( int(len(cdnomf),
jplikb), &
109 & int(len(cdsttu),
jplikb), ilnomc)
119 IF (knumer == 0)
THEN 124 IF (ilomin.LE.0)
THEN 127 ELSEIF (irang.NE.0)
THEN 139 & (fa%LFI, fa%VRGLAS,
'ON')
146 IF (fa%NFIOUV.GE.fa%JPNXFA)
THEN 153 IF (fa%FICHIER(j)%NULOGI.EQ.
jpniil)
THEN 173 & (fa%LFI, irepou,knumer,ldnomm,cdnomf,cdsttu, &
175 & knimes,inbarp,knbari)
177 IF (irepou.NE.0.AND.irepou.NE.-11)
THEN 188 & (fa, cdnomc,irangc,.false.)
205 llmlam=fa%CADRE(irangc)%LIMLAM
207 idimen(1)=fa%CADRE(irangc)%MTRONC
208 inlati=fa%CADRE(irangc)%NLATIT
209 IF (.NOT.llmlam)
THEN 212 isulei=fa%CADRE(irangc)%NOZPAR(1)
217 idimen(3)=fa%CADRE(irangc)%NXLOPA
218 iniver=fa%CADRE(irangc)%NNIVER
220 idimen(5)=fa%CADRE(irangc)%NTYPTR
221 zchmid(1)=fa%CADRE(irangc)%SSLAPO
222 zchmid(2)=fa%CADRE(irangc)%SCLOPO
223 zchmid(3)=fa%CADRE(irangc)%SSLOPO
224 zchmid(4)=fa%CADRE(irangc)%SCODIL
225 zhybri(0)=fa%CADRE(irangc)%SPREFE
226 ilnomc=fa%CADRE(irangc)%NLCCAD
229 IF (.NOT.llmlam)
THEN 232 irdpol(j)=fa%CADRE(irangc)%NLOPAR(j)
233 irdpol(inpahe+j)=fa%CADRE(irangc)%NOZPAR(j)
234 zsinla(j)=fa%CADRE(irangc)%SINLAT(j)
239 zsinla(j)=fa%CADRE(irangc)%SINLAT(j)
242 irdpol(j)=fa%CADRE(irangc)%NLOPAR(j)
245 irdpol(
jnexpl+j)=fa%CADRE(irangc)%NOZPAR(j)
251 zhybri(j+1)=fa%CADRE(irangc)%SFOHYB(1,j)
252 zhybri(j+2+iniver)=fa%CADRE(irangc)%SFOHYB(2,j)
257 CALL lfiecr_fort (fa%LFI, irep, knumer, fa%CPCADI, ildimen, fa%JPCADI)
259 IF (irep.NE.0)
GOTO 1001
261 CALL lfiecr_rd (fa%CPCAFS, zchmid, fa%JPCAFS)
262 IF (irep.NE.0)
GOTO 1001
264 IF (.NOT.llmlam)
THEN 268 CALL lfiecr_fort (fa%LFI, irep, knumer, fa%CPCARP, ilrdpol, ilonga)
270 IF (irep.NE.0)
GOTO 1001
273 CALL lfiecr_rd (fa%CPCASL, zsinla, ilonga)
274 IF (irep.NE.0)
GOTO 1001
280 CALL lfiecr_fort (fa%LFI, irep, knumer, fa%CPCARP, ilrdpol, ilonga)
282 IF (irep.NE.0)
GOTO 1001
285 CALL lfiecr_rd (fa%CPCASL, zsinla, ilonga)
286 IF (irep.NE.0)
GOTO 1001
290 ilonga=1+(1+iniver)*2
291 CALL lfiecr_rd (fa%CPCACH, zhybri, ilonga)
292 IF (irep.NE.0)
GOTO 1001
295 CALL lfiecr_fort (fa%LFI, irep, knumer, clnoma(1:ilnomc), ilpnver, 1_jplikb)
296 IF (irep.NE.0)
GOTO 1001
308 & (fa%LFI, irep,knumer,fa%CPCADI,ilonga,iposex)
313 ELSEIF (ilonga.EQ.0)
THEN 316 ELSEIF (ilonga.NE.fa%JPCADI)
THEN 322 CALL lfilec_fort (fa%LFI, irep, knumer, fa%CPCADI, ildimen, fa%JPCADI)
330 CALL lfinfo_fort (fa%LFI, irep, knumer, fa%CPCAFS, ilonga, iposex)
335 ELSEIF (ilonga.EQ.0)
THEN 338 ELSEIF (ilonga.NE.fa%JPCAFS)
THEN 343 CALL lfilec_dr (fa%CPCAFS, zchmid, fa%JPCAFS)
353 IF(idimen(5).LE.0) llmlam = .true.
363 & (fa, irep,cdnomc,ityptr,zchmid(1),zchmid(2), &
364 & zchmid(3),zchmid(4),itronc,inlati,inxlon,irdpol(1), &
365 & irdpol(fa%JPXPAH+1),zsinla, &
366 & iniver,zhybri(0),zhybri(1),zhybri(fa%JPXNIV+2), &
367 & llmodc,llredf,iphase,irangc,ilnomc,igarde)
368 IF (irep.NE.0)
GOTO 1001
371 & (fa%LFI, irep,knumer,fa%CPCARP,ilonga,iposex)
376 ELSEIF (ilonga.EQ.0)
THEN 379 ELSEIF (ilonga.NE.inpahe*2)
THEN 380 IF (.NOT.llmlam)
THEN 387 CALL lfilec_fort (fa%LFI, irep, knumer, fa%CPCARP, ilrdpol, ilonga)
396 & (fa%LFI, irep,knumer,fa%CPCASL,ilonga,iposex)
401 ELSEIF (ilonga.EQ.0)
THEN 404 ELSEIF (ilonga.NE.inpahe)
THEN 405 IF (.NOT.llmlam)
THEN 411 CALL lfilec_dr (fa%CPCASL, zsinla, ilonga)
419 & (fa%LFI, irep,knumer,fa%CPCACH,ilonga,iposex)
424 ELSEIF (ilonga.EQ.0)
THEN 427 ELSEIF (ilonga.NE.1+(1+iniver)*2)
THEN 428 IF (.NOT.llmlam)
THEN 434 CALL lfilec_dr (fa%CPCACH, zhybri, ilonga)
445 & (fa, irep,cdnomc,ityptr,zchmid(1),zchmid(2), &
446 & zchmid(3),zchmid(4),itronc,inlati,inxlon,irdpol(1), &
447 & irdpol(inpahe+1),zsinla, &
448 & iniver,zhybri(0),zhybri(1),zhybri(iniver+2), &
449 & llmodc,llredf,iphase,irangc,ilnomc,igarde)
450 IF (irep.NE.0)
GOTO 1001
457 & (fa%LFI, irep,knumer,clnoma,ilonga, &
463 ELSEIF (ilonga.EQ.0)
THEN 473 & (fa%LFI, irep,knumer,fa%CPDATE,ilonga,iposex)
478 ELSEIF (ilonga.EQ.0)
THEN 481 ELSEIF (ilonga.NE.fa%JPLDAT)
THEN 486 CALL lfilec_fort (fa%LFI, irep, knumer, fa%CPDATE, idatef, fa%JPLDAT)
499 & (fa%LFI, irep,knumer,fa%CPDATX,ilonga,iposex)
504 ELSEIF (ilonga.EQ.0)
THEN 507 ELSEIF (ilonga.NE.fa%JPLDAT)
THEN 512 CALL lfilec_fort (fa%LFI, irep, knumer, fa%CPDATX, idatxf, fa%JPLDAT)
521 CALL new_fichier (fa, fa%FICHIER(irang), fa%JPLDAT, itronc, ityptr)
528 fa%FICHIER(irang)%LCREAF=.true.
533 & (fa, irep,irang,idatef,idatxf,llmoda)
534 IF (irep.NE.0)
GOTO 1001
540 & (fa, irep,cdnomc,ityptr,zchmid(1),zchmid(2), &
541 & zchmid(3),zchmid(4),itronc,inlati,inxlon,irdpol(1), &
542 & irdpol(inpahe+1),zsinla, &
543 & iniver,zhybri(0),zhybri(1),zhybri(iniver+2), &
544 & llmodc,llredf,iphase,irangc,ilnomc,igarde)
545 IF (irep.NE.0)
GOTO 1001
552 itronc=fa%CADRE(irangc)%MTRONC
553 ityptr=fa%CADRE(irangc)%NTYPTR
555 IF (.NOT. llnewf)
THEN 556 CALL new_fichier (fa, fa%FICHIER(irang), fa%JPLDAT, itronc, ityptr)
560 fa%NFIOUV=fa%NFIOUV+1
561 fa%NULIND(fa%NFIOUV)=irang
562 fa%FICHIER(irang)%NULOGI=knumer
563 fa%FICHIER(irang)%NUCADR=irangc
565 fa%FICHIER(irang)%LNOMME=ldnomm
566 fa%FICHIER(irang)%NIVOMS=knimes
567 fa%FICHIER(irang)%LERRFA=lderfa
568 fa%FICHIER(irang)%LCREAF=llnouf
569 fa%FICHIER(irang)%NBFPDG=fa%NBIPDG
570 fa%FICHIER(irang)%NBFCSP=fa%NBICSP
571 fa%FICHIER(irang)%NPUFLA=fa%NPUILA
572 fa%FICHIER(irang)%NMFDPL=fa%NMIDPL
573 fa%FICHIER(irang)%NFGRIB=fa%NIGRIB
574 fa%FICHIER(irang)%CIDENT=clnoma
576 IF (ityptr.LT.0)
THEN 577 fa%FICHIER(irang)%NSTROF=min(fa%NSTROI,itronc-1,-ityptr-1)
579 fa%FICHIER(irang)%NSTROF=min(fa%NSTROI,itronc-1)
591 ipuila=fa%FICHIER(irang)%NPUFLA
593 fa%FICHIER(irang)%NCOGRIF(:)=fa%NCODGRI(:)
594 fa%FICHIER(irang)%NRASHO = 0
595 fa%FICHIER(irang)%NRASVE = 0
599 fa%FICHIER(irang)%LIFLAP=.true.
603 & (fa%LFI, fa%FICHIER(irang)%VRFICH,
'ASGN')
607 fa%CADRE(irangc)%NULCAD=fa%CADRE(irangc)%NULCAD+1
626 llfata=llmoer(irep,iraner)
631 inimes=ixnvms(iranms)
637 & (fa%LFI, fa%VRGLAS,
'OFF')
639 IF (.NOT.llfata.AND.inimes.EQ.0)
THEN 646 IF (inimes.EQ.2)
THEN 648 IF (ilnomc.GT.0)
THEN 649 ilacti=min(int(len(clacti),
jplikb),ilnomc)
650 clacti(1:ilacti)=cdnomc(1:ilnomc)
653 clacti=fa%CHAINC(:ilacti)
656 WRITE (unit=clmess,fmt=
'(''KREP='',I4,'', KNUMER='',I3, & 657 & '', LDNOMM= '',L1,'', CDSTTU='''''',A7,'''''', LDERFA= '',L1, & 658 & '', LDIMST= '',L1, & 659 & '', KNIMES='',I2,'', KNBARP='',I6,'' KNBARI='',I6)') &
660 & krep,knumer,ldnomm,cdsttu,lderfa,ldimst,knimes,knbarp,knbari
662 & (fa, knumer,inimes,irep,.false.,clmess, &
663 & clnspr,clacti(1:ilacti),llrlfi)
664 clmess=
'CDNOMC='''//clacti(1:ilacti)//
'''' 666 & (fa, knumer,inimes,irep,llfata,clmess, &
667 & clnspr,clacti(1:ilacti),llrlfi)
674 #include "facom2.llmoer.h" 675 #include "facom2.ixnvms.h" 677 SUBROUTINE lfilec_dr (CDNOMA, PDONNE, KLONGA)
679 CHARACTER(LEN=*) :: CDNOMA
680 INTEGER (KIND=JPLIKB) :: KLONGA
681 REAL (KIND=JPDBLR) :: PDONNE (klonga)
682 REAL (KIND=JPDBLD) :: ZDONNE (klonga)
684 CALL lfilec_fort (fa%LFI, irep, knumer, cdnoma, zdonne, klonga)
690 SUBROUTINE lfiecr_rd (CDNOMA, PDONNE, KLONGA)
692 CHARACTER(LEN=*) :: CDNOMA
693 INTEGER (KIND=JPLIKB) :: KLONGA
694 REAL (KIND=JPDBLR) :: PDONNE (klonga)
695 REAL (KIND=JPDBLD) :: ZDONNE (klonga)
699 CALL lfiecr_fort (fa%LFI, irep, knumer, cdnoma, zdonne, klonga)
709 & (krep, knumer, ldnomm, cdnomf, cdsttu, lderfa, &
710 & ldimst, knimes, knbarp, knbari, cdnomc)
717 INTEGER (KIND=JPLIKB) KREP
718 INTEGER (KIND=JPLIKB) KNUMER
720 CHARACTER (LEN=*) CDNOMF
721 CHARACTER (LEN=*) CDSTTU
724 INTEGER (KIND=JPLIKB) KNIMES
725 INTEGER (KIND=JPLIKB) KNBARP
726 INTEGER (KIND=JPLIKB) KNBARI
727 CHARACTER (LEN=*) CDNOMC
732 & (fa, krep, knumer, ldnomm, cdnomf, cdsttu, lderfa, &
733 & ldimst, knimes, knbarp, knbari, cdnomc)
738 & (krep, knumer, ldnomm, cdnomf, cdsttu, lderfa, &
739 & ldimst, knimes, knbarp, knbari, cdnomc)
746 INTEGER (KIND=JPLIKM) KREP
747 INTEGER (KIND=JPLIKM) KNUMER
749 CHARACTER (LEN=*) CDNOMF
750 CHARACTER (LEN=*) CDSTTU
753 INTEGER (KIND=JPLIKM) KNIMES
754 INTEGER (KIND=JPLIKM) KNBARP
755 INTEGER (KIND=JPLIKM) KNBARI
756 CHARACTER (LEN=*) CDNOMC
761 & (fa, krep, knumer, ldnomm, cdnomf, cdsttu, lderfa, &
762 & ldimst, knimes, knbarp, knbari, cdnomc)
767 & (fa, krep, knumer, ldnomm, cdnomf, cdsttu, lderfa, &
768 & ldimst, knimes, knbarp, knbari, cdnomc)
774 INTEGER (KIND=JPLIKM) KREP
775 INTEGER (KIND=JPLIKM) KNUMER
777 CHARACTER (LEN=*) CDNOMF
778 CHARACTER (LEN=*) CDSTTU
781 INTEGER (KIND=JPLIKM) KNIMES
782 INTEGER (KIND=JPLIKM) KNBARP
783 INTEGER (KIND=JPLIKM) KNBARI
784 CHARACTER (LEN=*) CDNOMC
786 INTEGER (KIND=JPLIKB) IREP
787 INTEGER (KIND=JPLIKB) INUMER
788 INTEGER (KIND=JPLIKB) INIMES
789 INTEGER (KIND=JPLIKB) INBARP
790 INTEGER (KIND=JPLIKB) INBARI
793 inumer = int( knumer,
jplikb)
794 inimes = int( knimes,
jplikb)
795 inbarp = int( knbarp,
jplikb)
798 & (fa, irep, inumer, ldnomm, cdnomf, cdsttu, lderfa, &
799 & ldimst, inimes, inbarp, inbari, cdnomc)
802 knbari = int( inbari,
jplikm)
804 IF (knumer == 0)
THEN 805 knumer = int( inumer,
jplikm)
subroutine lfiecr_fort(LFI, KREP, KNUMER, CDNOMA, KTAB, KLONG)
subroutine lfilec_dr(CDNOMA, PDONNE, KLONGA)
integer, parameter jplikb
subroutine faauto_fort(FA, KNUMER, LDLFI)
logical, save fa_com_default_init
subroutine lfiecr_rd(CDNOMA, PDONNE, KLONGA)
subroutine facadi_fort(FA, KREP, CDNOMC, KTYPTR, PSLAPO, PCLOPO, PSLOPO, PCODIL, KTRONC, KNLATI, KNXLON, KNLOPA, KNOZPA, PSINLA, KNIVER, PREFER, PAHYBR, PBHYBR, LDMODC, LDREDF, KPHASE, KRANGC, KLNOMC, KGARDE)
subroutine new_fa_default()
integer(kind=jplikb), parameter jnexpl
subroutine fandai_fort(FA, KREP, KRANG, KDATEF, KDATXF, LDMODA)
subroutine faitou64(KREP, KNUMER, LDNOMM, CDNOMF, CDSTTU, LDERFA, LDIMST, KNIMES, KNBARP, KNBARI, CDNOMC)
subroutine fanuca_fort(FA, CDNOMC, KRANGC, LDVERR)
integer, parameter jpdbld
subroutine lfinfo_fort(LFI, KREP, KNUMER, CDNOMA, KLONG, KPOSEX)
subroutine faitou_mt(FA, KREP, KNUMER, LDNOMM, CDNOMF, CDSTTU, LDERFA, LDIMST, KNIMES, KNBARP, KNBARI, CDNOMC)
subroutine lfiver_fort(LFI, PVEROU, CDSENS)
subroutine lficas_fort(LFI, KREP, KNUMER, CDNOMA, KLONG, KPOSEX, LDAVAN)
subroutine fainoc_fort(FA, KRANG)
subroutine lfilec_fort(LFI, KREP, KNUMER, CDNOMA, KTAB, KLONG)
integer, parameter jpdblr
subroutine new_fichier(FA, FI, KPLDAT, KPXTRO, KTYPTR)
subroutine lfiouv_fort(LFI, KREP, KNUMER, LDNOMM, CDNOMF, CDSTTO, LDERFA, LDIMST, KNIMES, KNBARP, KNBARI)
integer, parameter jplikm
type(fa_com), target, save fa_com_default
integer(kind=jplikb), parameter jngeom
subroutine faipar_fort(FA, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI, LDRLFI)
subroutine faitou_fort(FA, KREP, KNUMER, LDNOMM, CDNOMF, CDSTTU, LDERFA, LDIMST, KNIMES, KNBARP, KNBARI, CDNOMC)
subroutine fanumu_fort(FA, KNUMER, KRANG)
integer(kind=jplikb), parameter jpniil
subroutine faitou(KREP, KNUMER, LDNOMM, CDNOMF, CDSTTU, LDERFA, LDIMST, KNIMES, KNBARP, KNBARI, CDNOMC)