4 & (fa, krep, knumer, cdnoma, kdonne, klongd)
24 INTEGER (KIND=JPLIKB) KREP, KNUMER, KLONGD
26 INTEGER (KIND=JPLIKB) ILCDNO, IRANG, IREP
27 INTEGER (KIND=JPLIKB) ILNOMA, INIMES, ILACTI
29 INTEGER (KIND=JPLIKB) KDONNE (klongd)
31 LOGICAL LLVERF, LLRLFI
35 CHARACTER(LEN=FA%JPXNOM) CLACTI
36 CHARACTER(LEN=FA%JPXNOM) CLNOMA
37 CHARACTER(LEN=FA%JPLMES) CLMESS
38 CHARACTER(LEN=FA%JPLSPX) CLNSPR
46 REAL(KIND=JPRB) :: ZHOOK_HANDLE
51 ilcdno=int(len(cdnoma),
jplikb)
59 ELSEIF (klongd.LE.0)
THEN 62 ELSEIF (ilcdno.LE.0)
THEN 70 & (fa%LFI, fa%FICHIER(irang)%VRFICH,
'ON')
73 IF (fa%FICHIER(irang)%LCREAF)
THEN 76 ELSEIF (cdnoma.EQ.fa%CPCACH.OR.cdnoma.EQ.fa%CPCADI.OR. &
77 & cdnoma.EQ.fa%CPCAFS.OR.cdnoma.EQ.fa%CPCARP.OR. &
78 & cdnoma.EQ.fa%CPDATE.OR.cdnoma.EQ.fa%CPDATX.OR. &
79 & cdnoma.EQ.fa%FICHIER(irang)%CIDENT)
THEN 87 ilnoma=min( fa%NCPCAD, int(len(cdnoma),
jplikb) )
88 clnoma(1:ilnoma)=cdnoma(1:ilnoma)
92 IF (fa%FICHIER(irang)%NCOGRIF (12) > 0)
THEN 95 IF (.NOT. llecri)
THEN 97 & (fa%LFI, irep,knumer,clnoma(1:ilnoma), &
108 llfata=llmoer(irep,irang)
113 & (fa%LFI, fa%FICHIER(irang)%VRFICH,
'OFF')
121 IF (.NOT.llfata.AND.inimes.NE.2)
THEN 128 IF (irep.NE.-65)
THEN 129 ilacti=min(ilcdno,fa%NCPCAD)
130 clacti(1:ilacti)=cdnoma(:ilacti)
133 clacti(1:ilacti)=fa%CHAINC(:ilacti)
136 WRITE (unit=clmess,fmt=
'(''KREP='',I4,'', KNUMER='',I3, & 137 & '', CDNOMA='''''',A,'''''', KLONGD='',I8)') &
138 & krep,knumer,clacti(1:ilacti),klongd
140 & (fa, knumer,inimes,irep,llfata,clmess, &
141 & clnspr, clacti(1:ilacti),llrlfi)
147 #include "facom2.llmoer.h" 148 #include "facom2.ixnvms.h" 151 SUBROUTINE wgrib1 (LDECRI)
155 INTEGER (KIND=JPLIKB),
PARAMETER :: ILONGD = 5_jplikb
157 INTEGER (KIND=JPLIKB) IDONNE (ilongd)
158 CHARACTER(LEN=16) CLGRIB, CL7777
159 INTEGER (KIND=JPLIKB) J, IL7777, INGRIB, IREP8, ILGRIBA, ILGRIBB, IGRIBED
160 LOGICAL LLNOMM, LLERFA, LLIMST
161 CHARACTER (LEN=256) CLNOMF, CLNOMD, CLNOMB
162 CHARACTER (LEN=16) CLSTTU
163 INTEGER (KIND=JPLIKB) INIMES
164 INTEGER (KIND=JPLIKM) IREP4
168 IF (klongd < 10)
RETURN 171 clgrib = transfer(kdonne(4:5), clgrib)
173 IF ((ingrib /= 3) .AND. (.NOT. falgra(ingrib)))
RETURN 175 IF (clgrib(1:4) /=
'GRIB')
RETURN 177 igribed = mod(ichar(clgrib(8:8)), 256)
179 IF ((igribed /= 1) .AND. (igribed /= 2))
RETURN 185 IF (igribed == 1)
THEN 187 ilgriba = 256 * ilgriba + mod(ichar(clgrib(j:j)), 256)
191 ilgriba = 256 * ilgriba + mod(ichar(clgrib(j:j)), 256)
197 cl7777 = transfer(kdonne(klongd-1:klongd), cl7777)
201 IF (cl7777(il7777-j-3:il7777-j) ==
'7777')
EXIT 208 ilgribb = (klongd-3)*8 - j
212 IF (ilgriba /= ilgribb)
RETURN 216 IF (fa%FICHIER(irang)%NFILEP == 0)
THEN 218 & (fa%LFI, irep, knumer, llnomm, clnomf, &
219 & clsttu, llerfa, llimst, inimes)
220 IF (irep /= 0)
RETURN 222 clnomf =
trim(clnomd)//
'GRIB'//
trim(clnomb)
223 CALL fi_fopen (fa%FICHIER(irang)%NFILEP, clnomf,
"a")
224 IF (fa%FICHIER(irang)%NFILEP == 0)
THEN 225 CALL fi_errno (irep4)
233 CALL fi_fwrite (irep8, kdonne(4), ilgriba, 1_jplikb, &
234 & fa%FICHIER(irang)%NFILEP)
236 CALL fi_errno (irep4)
242 fa%FICHIER(irang)%NOFFST = fa%FICHIER(irang)%NOFFST + ilgriba
246 idonne(1:3) = kdonne(1:3)
247 idonne(4) = fa%FICHIER(irang)%NOFFST
251 & (fa%LFI, irep, knumer, clnoma(1:ilnoma), &
254 IF (irep /= 0)
RETURN 260 SUBROUTINE fileparse (CDNOMF, CDNOMD, CDNOMB)
262 CHARACTER (LEN=*) :: CDNOMF, CDNOMD, CDNOMB
264 INTEGER (KIND=JPLIKB) :: I
266 i =
index(cdnomf,
"/", .true.)
273 cdnomb = cdnomf(i+1:)
284 & (krep, knumer, cdnoma, kdonne, klongd)
291 INTEGER (KIND=JPLIKB) KREP
292 INTEGER (KIND=JPLIKB) KNUMER
293 CHARACTER (LEN=*) CDNOMA
294 INTEGER (KIND=JPLIKB) KLONGD
295 INTEGER (KIND=JPLIKB) KDONNE (klongd)
300 & (fa, krep, knumer, cdnoma, kdonne, klongd)
305 & (krep, knumer, cdnoma, kdonne, klongd)
312 INTEGER (KIND=JPLIKM) KREP
313 INTEGER (KIND=JPLIKM) KNUMER
314 CHARACTER (LEN=*) CDNOMA
315 INTEGER (KIND=JPLIKM) KLONGD
316 INTEGER (KIND=JPLIKB) KDONNE (klongd)
321 & (fa, krep, knumer, cdnoma, kdonne, klongd)
326 & (fa, krep, knumer, cdnoma, kdonne, klongd)
332 INTEGER (KIND=JPLIKM) KREP
333 INTEGER (KIND=JPLIKM) KNUMER
334 CHARACTER (LEN=*) CDNOMA
335 INTEGER (KIND=JPLIKM) KLONGD
336 INTEGER (KIND=JPLIKB) KDONNE (klongd)
338 INTEGER (KIND=JPLIKB) IREP
339 INTEGER (KIND=JPLIKB) INUMER
340 INTEGER (KIND=JPLIKB) ILONGD
343 inumer = int( knumer,
jplikb)
344 ilongd = int( klongd,
jplikb)
347 & (fa, irep, inumer, cdnoma, kdonne, ilongd)
static const char * trim(const char *name, int *n)
subroutine lfiecr_fort(LFI, KREP, KNUMER, CDNOMA, KTAB, KLONG)
integer, parameter jplikb
subroutine fileparse(CDNOMF, CDNOMD, CDNOMB)
subroutine faisan64(KREP, KNUMER, CDNOMA, KDONNE, KLONGD)
logical, save fa_com_default_init
subroutine lfiopt_fort(LFI, KREP, KNUMER, LDNOMM, CDNOMF, CDSTTO, LDERFA, LDIMST, KNIMES)
subroutine faisan_fort(FA, KREP, KNUMER, CDNOMA, KDONNE, KLONGD)
subroutine new_fa_default()
subroutine faisan_mt(FA, KREP, KNUMER, CDNOMA, KDONNE, KLONGD)
subroutine lfiver_fort(LFI, PVEROU, CDSENS)
integer, parameter jplikm
type(fa_com), target, save fa_com_default
subroutine faipar_fort(FA, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI, LDRLFI)
subroutine faisan(KREP, KNUMER, CDNOMA, KDONNE, KLONGD)
subroutine wgrib1(LDECRI)
subroutine fanumu_fort(FA, KNUMER, KRANG)