4 & (fa, krep, knumer, cdpref, knivau, cdsuff, &
5 & pchamp, ldcosp, ldundf, pundf, ydgr1tab)
46 INTEGER (KIND=JPLIKB) KREP, KNUMER, KNIVAU
48 REAL (KIND=JPDBLR) PCHAMP (*)
50 CHARACTER CDPREF*(*), CDSUFF*(*)
52 INTEGER (KIND=JPLIKB) IREP, ILPRFU, ILSUFU, ILNOMU
53 INTEGER (KIND=JPLIKB) ILONGA, IRANG, INIMES
54 INTEGER (KIND=JPLIKB) ILPREF, ILSUFF
56 INTEGER (KIND=JPLIKB),
ALLOCATABLE :: IVALCO(:)
57 INTEGER (KIND=JPLIKB) IB1PAR (fa%jplb1p)
59 INTEGER (KIND=JPLIKB) IVALC1, IRANGC, ILCHAM, INGRIB, IPFAOS
61 LOGICAL LLVERF, LLRLFI, LDCOSP, LLNOMU, LLMLAM, LLNOPA, LDUNDF
63 REAL (KIND=JPDBLR) :: PUNDF
65 CHARACTER CLPREF*(fa%jpxnom), CLSUFF*(fa%jpxsuf)
67 CHARACTER(LEN=FA%JPXNOM) CLNOMA
68 CHARACTER(LEN=FA%JPLMES) CLMESS
69 CHARACTER(LEN=FA%JPLSPX) CLNSPR
76 REAL(KIND=JPRB) :: ZHOOK_HANDLE
82 ilprfu=int(len(cdpref),
jplikb)
83 ilsufu=int(len(cdsuff),
jplikb)
95 & (fa%LFI, fa%FICHIER(irang)%VRFICH,
'ON')
98 IF (fa%FICHIER(irang)%LCREAF)
THEN 108 & (fa, irep,irang,cdpref,knivau,cdsuff,clnoma, &
109 & ib1par(6), ilprfu,ilsufu,ilnomu)
110 IF (irep.NE.0)
GOTO 1001
119 ivalc1=fa%FICHIER(irang)%NFGRIB
120 irangc=fa%FICHIER(irang)%NUCADR
121 llmlam=fa%CADRE(irangc)%LIMLAM
124 ilcham=fa%CADRE(irangc)%NSFLAM
126 IF (ivalc1.EQ.-1 .OR. ivalc1.EQ.3)
THEN 127 ilcham=(1+fa%CADRE(irangc)%MTRONC)*(2+fa%CADRE(irangc)%MTRONC)
129 ilcham=(1+fa%CADRE(irangc)%MTRONC)**2
133 ilcham=fa%CADRE(irangc)%NVAPDG
137 CALL fasgra_fort (fa, irep, fa%CADRE(irangc)%CNOMCA, ipfaos)
139 IF (irep.NE.0)
GOTO 1001
141 ilonga = ilcham+ipfaos
143 ALLOCATE (ivalco(ilonga))
155 irangc=fa%FICHIER(irang)%NUCADR
157 IF (fa%FICHIER(irang)%NFGRIB.EQ.-1 .OR. fa%FICHIER(irang)%NFGRIB.EQ.3)
THEN 158 fa%FICHIER(irang)%NRASVE=fa%FICHIER(irang)%NRASVE+1
159 IF (fa%FICHIER(irang)%NRASVE.EQ.1 .AND. fa%FICHIER(irang)%NRASHO.GT.0)
THEN 161 &
'------------------------------------------------' 162 WRITE(fa%NULOUT,*)
' FAIEN1 : WARNING !!!!! ' 163 WRITE(fa%NULOUT,*)
' Un champ de coeff. spectraux avec' 165 &
' rangement type modele va etre ecrit alors que' 167 &
' les autres champs ont un rangement different.' 169 &
'------------------------------------------------' 171 ELSEIF (fa%FICHIER(irang)%NFGRIB.GE.0 .AND. fa%FICHIER(irang)%NFGRIB.LE.2)
THEN 172 fa%FICHIER(irang)%NRASHO=fa%FICHIER(irang)%NRASHO+1
173 IF (fa%FICHIER(irang)%NRASHO.EQ.1 .AND. fa%FICHIER(irang)%NRASVE.GT.0)
THEN 175 &
'------------------------------------------------' 176 WRITE(fa%NULOUT,*)
' FAIEN1 : WARNING !!!!! ' 177 WRITE(fa%NULOUT,*)
' Un champ de coeff. spectraux avec' 179 &
' rangt autre que celui du modele va etre ecrit' 181 &
' alors que d''autres champs ont le rangt modele' 183 &
'------------------------------------------------' 190 IF (fa%FICHIER(irang)%NFGRIB.EQ.3)
THEN 193 & (fa, irep, irang, cdpref, knivau, cdsuff, &
194 & pchamp(1), ldcosp, ivalco, ilonga, &
195 & ldundf, pundf, ydgr1tab)
205 IF (irep==-1710)
THEN 207 fa%FICHIER(irang)%NFGRIB = -1
211 ELSEIF (falgra(fa%FICHIER(irang)%NFGRIB))
THEN 213 IF (ldcosp .AND. (falgra_sp(fa%FICHIER(irang)%NFGRIB) == 102))
THEN 214 ingrib = fa%FICHIER(irang)%NFGRIB
215 fa%FICHIER(irang)%NFGRIB = 2_jplikb
217 & (fa, irep, irang, clnoma(1:ilnomu), pchamp, &
218 & ldcosp, ivalco, ilonga, ib1par, &
220 fa%FICHIER(irang)%NFGRIB = ingrib
222 CALL facgra_fort (fa, irep, irang, cdpref, knivau, cdsuff, &
223 & pchamp(1), ldcosp, ivalco, ilonga, &
226 ELSEIF (fa%FICHIER(irang)%NFGRIB.EQ.4)
THEN 228 & (fa, irep, irang, cdpref, knivau, cdsuff, &
229 & pchamp(1), ldcosp, ivalco, ilonga, ib1par)
232 & (fa, irep, irang, clnoma(1:ilnomu), pchamp, &
233 & ldcosp, ivalco, ilonga, ib1par, &
235 IF (llnopa) fa%FICHIER(irang)%NFGRIB = 3
242 IF (irep.NE.0)
GOTO 1001
247 CALL faisan_fort (fa, irep, knumer, clnoma(1:ilnomu), ivalco, ilonga)
255 IF (
ALLOCATED( ivalco ))
DEALLOCATE ( ivalco )
257 llfata=llmoer(irep,irang)
262 & (fa%LFI, fa%FICHIER(irang)%VRFICH,
'OFF')
270 IF (.NOT.llfata.AND.inimes.NE.2)
THEN 277 IF (ilprfu.GE.1)
THEN 278 ilpref=min(ilprfu,int(len(clpref),
jplikb))
279 clpref(1:ilpref)=cdpref(1:ilpref)
282 clpref(1:ilpref)=fa%CHAINC(:ilpref)
285 IF (ilsufu.GE.1)
THEN 286 ilsuff=min(ilsufu,int(len(clsuff),
jplikb))
287 clsuff(1:ilsuff)=cdsuff(1:ilsuff)
290 clsuff(1:ilsuff)=fa%CHAINC(:ilsuff)
293 IF (.NOT.llnomu)
THEN 294 ilnomu=min(ilpref,fa%NCPCAD)
295 clnoma(1:ilnomu)=clpref(1:ilpref)
298 WRITE (unit=clmess,fmt=
'(''KREP='',I5,'', KNUMER='',I3, & 299 & '', CDPREF='''''',A,'''''', KNIVAU='',I6, & 300 & '', CDSUFF='''''',A,'''''', LDCOSP= '',L1)') &
301 & krep,knumer,clpref(1:ilpref),knivau,clsuff(1:ilsuff),ldcosp
303 & (fa, knumer,inimes,irep,llfata,clmess, &
304 & clnspr, clnoma(1:ilnomu),llrlfi)
310 #include "facom2.llmoer.h" 311 #include "facom2.ixnvms.h" integer, parameter jplikb
subroutine faisan_fort(FA, KREP, KNUMER, CDNOMA, KDONNE, KLONGD)
subroutine fasgra_fort(FA, KREP, CDNOMC, KLONGD)
subroutine lfiver_fort(LFI, PVEROU, CDSENS)
subroutine fanfar_fort(FA, KREP, KRANG, CDPREF, KNIVAU, CDSUFF, CDNOMA, KB1PAR, KLPRFU, KLSUFU, KLNOMU)
subroutine facine_fort(FA, KREP, KRANG, CDNOMA, PCHAMP, LDCOSP, PVALCO, KLONGD, KB1PAR, LDUNDF, PUNDF)
subroutine facodx_fort(FA, KREP, KRANG, CDPREF, KNIVAU, CDSUFF, PSEC4, LDCOSP, KVALCO, KLONGD, LDUNDF, PUNDF, YDGR1TAB)
subroutine faccpl_fort(FA, KREP, KRANG, CDPREF, KNIVAU, CDSUFF, PCHAMP, LDCOSP, KVALCO, KLONGD)
subroutine faien1_fort(FA, KREP, KNUMER, CDPREF, KNIVAU, CDSUFF, PCHAMP, LDCOSP, LDUNDF, PUNDF, YDGR1TAB)
subroutine faipar_fort(FA, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI, LDRLFI)
subroutine fanumu_fort(FA, KNUMER, KRANG)
subroutine facgra_fort(FA, KREP, KRANG, CDPREF, KNIVAU, CDSUFF, PCHAMP, LDCOSP, KVALCO, KLONGD, LDUNDF, PUNDF)