5 & (fa, krep, knume1, knume2, &
6 & cdpref, knivau, cdsuff )
34 INTEGER (KIND=JPLIKB) KREP, KNUME1, KNUME2, KNIVAU
36 INTEGER (KIND=JPLIKB) IREP, ILPRFU, ILSUFU, ILNOMU
37 INTEGER (KIND=JPLIKB) ILONGA, IRANC1, IRANC2
38 INTEGER (KIND=JPLIKB) INIMES, J, INUMFI, IPOSEX, INPAHE
39 INTEGER (KIND=JPLIKB) INPAHEL, JLAT, IZPAHEL
40 INTEGER (KIND=JPLIKB) ISPAHEL, JNIV, ILPREF, ILSUFF
41 INTEGER (KIND=JPLIKB) INUMRO, IRANG2, IGRIB
43 INTEGER (KIND=JPLIKB),
ALLOCATABLE :: IVALCO(:)
44 INTEGER (KIND=JPLIKB) IRANG (2), INUMER (2), IB1PAR (3)
46 LOGICAL LLVERF (2), LLRLFI, LLCOSP, LLMESS, LLNOMU
47 LOGICAL LLMLAM1, LLMLAM2
49 CHARACTER CDPREF*(*), CDSUFF*(*)
50 CHARACTER CLPREF*(fa%jpxnom), &
53 CHARACTER(LEN=FA%JPXNOM) CLACTI
54 CHARACTER(LEN=FA%JPXNOM) CLNOMA
55 CHARACTER(LEN=FA%JPLMES) CLMESS
56 CHARACTER(LEN=FA%JPLSPX) CLNSPR
63 REAL(KIND=JPRB) :: ZHOOK_HANDLE
69 ilprfu=int(len(cdpref),
jplikb)
70 ilsufu=int(len(cdsuff),
jplikb)
82 & (fa, inumer(j),irang(j))
84 IF (irang(j).EQ.0)
THEN 92 & (fa%LFI, fa%FICHIER(irang(j))%VRFICH,
'ON')
95 IF (fa%FICHIER(irang(j))%LCREAF)
THEN 104 & (fa, irep,irang(j),cdpref,knivau, &
105 & cdsuff,clnoma,ib1par, &
106 & ilprfu,ilsufu,ilnomu)
107 IF (irep.NE.0)
GOTO 1001
116 & (fa%LFI, irep,knume1,clnoma(1:ilnomu), &
122 ELSEIF (ilonga.EQ.0)
THEN 125 ELSEIF (ilonga.GT.fa%JPXCHA+2)
THEN 130 ALLOCATE (ivalco(ilonga))
132 & (fa%LFI, irep,knume1, &
133 & clnoma(1:ilnomu),ivalco,ilonga)
135 IF (llrlfi)
GOTO 1001
137 IF (ivalco(1).LT.-1.OR.ivalco(1).GT.3.OR. &
138 & ivalco(2).LT.0 .OR.ivalco(2).GT.1.OR. &
139 & (ivalco(1).GT.0.AND.ivalco(2).EQ.1.AND.ivalco(4).LT.0))
THEN 143 llcosp=ivalco(2).EQ.1
150 iranc1=fa%FICHIER(irang(1))%NUCADR
151 iranc2=fa%FICHIER(irang(2))%NUCADR
152 inpahe=(1+fa%CADRE(iranc1)%NLATIT)/2
153 llmlam1=fa%CADRE(iranc1)%NTYPTR.LE. -1
154 llmlam2=fa%CADRE(iranc2)%NTYPTR.LE. -1
156 IF (iranc1.NE.iranc2)
THEN 162 IF ( (llmlam1.AND..NOT.llmlam2).OR. &
163 & (llmlam2.AND..NOT.llmlam1).OR. &
164 & (llcosp.AND.((.NOT.llmlam1.AND..NOT.llmlam2.AND. &
165 & fa%CADRE(iranc1)%MTRONC.NE.fa%CADRE(iranc2)%MTRONC) .OR. &
166 & (llmlam1.AND.llmlam2.AND. &
167 & fa%CADRE(iranc1)%MTRONC.NE.fa%CADRE(iranc2)%MTRONC.AND. &
168 & fa%CADRE(iranc1)%NTYPTR.NE.fa%CADRE(iranc2)%NTYPTR )) &
170 & (.NOT.llcosp.AND.(fa%CADRE(iranc1)%NLATIT.NE. &
171 & fa%CADRE(iranc2)%NLATIT.OR. &
172 & fa%CADRE(iranc1)%NVAPDG.NE.fa%CADRE(iranc2)%NVAPDG)) &
177 ELSEIF (.NOT.llcosp)
THEN 179 IF (.NOT.llmlam1.AND..NOT.llmlam2)
THEN 185 llmess=llmess.OR.fa%CADRE(iranc1)%NLOPAR(jlat).NE. &
186 & fa%CADRE(iranc2)%NLOPAR(jlat)
196 llmess=fa%CADRE(iranc1)%MTRONC.NE.fa%CADRE(iranc2)%MTRONC.OR. &
197 & fa%CADRE(iranc1)%NTYPTR.NE.fa%CADRE(iranc2)%NTYPTR.OR. &
198 & (knivau.GT.0.AND.(fa%CADRE(iranc1)%NNIVER.NE. &
199 & fa%CADRE(iranc2)%NNIVER).OR. &
200 & (fa%CADRE(iranc1)%SPREFE.NE. &
201 & fa%CADRE(iranc2)%SPREFE)).OR. &
202 & fa%CADRE(iranc1)%NLATIT.NE.fa%CADRE(iranc2)%NLATIT.OR. &
203 & fa%CADRE(iranc1)%SSLAPO.NE.fa%CADRE(iranc2)%SSLAPO.OR. &
204 & fa%CADRE(iranc1)%SCLOPO.NE.fa%CADRE(iranc2)%SCLOPO.OR. &
205 & fa%CADRE(iranc1)%SSLOPO.NE.fa%CADRE(iranc2)%SSLOPO.OR. &
206 & fa%CADRE(iranc1)%SCODIL.NE.fa%CADRE(iranc2)%SCODIL
208 IF (.NOT.llmess)
THEN 210 IF (.NOT.llmlam1.AND..NOT.llmlam2)
THEN 220 llmess=fa%CADRE(iranc1)%NLOPAR(jlat).NE.fa%CADRE(iranc2)%NLOPAR(jlat) &
224 llmess=fa%CADRE(iranc1)%NOZPAR(jlat).NE.fa%CADRE(iranc2)%NOZPAR(jlat) &
228 llmess=fa%CADRE(iranc1)%SINLAT(jlat).NE.fa%CADRE(iranc2)%SINLAT(jlat) &
232 IF (.NOT.llmess.AND.knivau.GT.0)
THEN 234 DO jniv=0,fa%CADRE(iranc1)%NNIVER
235 llmess=fa%CADRE(iranc1)%SFOHYB(1,jniv).NE. &
236 & fa%CADRE(iranc2)%SFOHYB(1,jniv).OR. &
237 & llmess.OR.fa%CADRE(iranc1)%SFOHYB(2,jniv).NE. &
238 & fa%CADRE(iranc2)%SFOHYB(2,jniv)
253 & (fa%LFI, fa%FICHIER(irang(1))%VRFICH,
'OFF')
257 & (fa%LFI, irep,knume2,clnoma(1:ilnomu), &
261 IF (llrlfi)
GOTO 1001
272 IF (igrib.EQ.-1 .OR. igrib.EQ.3)
THEN 273 fa%FICHIER(irang2)%NRASVE=fa%FICHIER(irang2)%NRASVE+1
274 IF (fa%FICHIER(irang2)%NRASVE.EQ.1 .AND. fa%FICHIER(irang2)%NRASHO.GT.0)
THEN 276 &
'------------------------------------------------' 277 WRITE(fa%NULOUT,*)
' FACOCH : WARNING !!!!! ' 279 &
' Un champ de coef. spect. avec rangt type modele' 280 WRITE(fa%NULOUT,*)
' va etre ecrit sur l''unite ',knume2, &
283 &
' d''autres champs y ont un rangement different.' 285 &
'------------------------------------------------' 287 ELSEIF (igrib.GE.0 .AND. igrib.LE.2)
THEN 288 fa%FICHIER(irang2)%NRASHO=fa%FICHIER(irang2)%NRASHO+1
289 IF (fa%FICHIER(irang2)%NRASHO.EQ.1 .AND. fa%FICHIER(irang2)%NRASVE.GT.0)
THEN 291 &
'------------------------------------------------' 292 WRITE(fa%NULOUT,*)
' FACOCH : WARNING !!!!! ' 294 &
' Un champ de coef. spect. avec rangt autre que' 296 &
' celui du modele va etre ecrit sur l''unite ', knume2
298 &
' alors que d''autres champs y ont le rangt modele' 300 &
'------------------------------------------------' 311 IF (
ALLOCATED( ivalco ))
DEALLOCATE ( ivalco )
313 llfata=llmoer(irep,irang(inumfi))
318 & (fa%LFI, fa%FICHIER(irang(1))%VRFICH,
'OFF')
320 & (fa%LFI, fa%FICHIER(irang(2))%VRFICH,
'OFF')
326 IF (fa%NIMSGA.NE.0.AND.irep.EQ.0)
THEN 330 WRITE (unit=clmess,fmt=
'(''*ATTENTION* - LES UNITES'',I3, & 331 & '' ET'',I3,'' ONT DES CARACTERISTIQUES "CADRE" DIFFERENTES'')') &
334 & (fa,
jpniil,inimes,irep,.false.,clmess, &
335 & clnspr,clacti,.false.)
336 ELSEIF (iranc1.NE.iranc2)
THEN 338 WRITE (unit=clmess,fmt=
'(''REMARQUE: CADRES '''''',A, & 339 & '''''' ET '''''',A, & 340 & '''''' DISTINCTS MAIS DE CONTENU IDENTIQUE (UNITES'', & 341 & I3,'' ET'',I3,'' )'')') &
342 & fa%CADRE(iranc1)%CNOMCA(1:fa%CADRE(iranc1)%NLCCAD), &
343 & fa%CADRE(iranc2)%CNOMCA(1:fa%CADRE(iranc2)%NLCCAD),knume1,knume2
345 & (fa,
jpniil,inimes,irep,.false.,clmess, &
346 & clnspr,clacti,.false.)
354 inimes=ixnvms(irang(inumfi))
357 IF (.NOT.llfata.AND.inimes.NE.2)
THEN 362 IF (ilprfu.GE.1)
THEN 363 ilpref=min(ilprfu,int(len(clpref),
jplikb))
364 clpref(1:ilpref)=cdpref(1:ilpref)
367 clpref(1:ilpref)=fa%CHAINC(:ilpref)
370 IF (ilsufu.GE.1)
THEN 371 ilsuff=min(ilsufu,int(len(clsuff),
jplikb))
372 clsuff(1:ilsuff)=cdsuff(1:ilsuff)
375 clsuff(1:ilsuff)=fa%CHAINC(:ilsuff)
378 IF (.NOT.llnomu)
THEN 379 ilnomu=min(ilpref,fa%NCPCAD)
380 clnoma(1:ilnomu)=clpref(1:ilpref)
383 WRITE (unit=clmess,fmt=
'(''KREP='',I4,'', KNUME1='',I3, & 384 & '', KNUME2='',I3,'', CDPREF='''''',A,'''''', KNIVAU='',I6, & 385 & '', CDSUFF='''''',A,'''''''')') krep,knume1,knume2, &
386 & clpref(1:ilpref),knivau,clsuff(1:ilsuff)
388 IF (irep.EQ.-112)
THEN 389 inumro=1000*knume1+knume2
391 inumro=inumer(inumfi)
395 & (fa, inumro,inimes,irep,llfata,clmess, &
396 & clnspr, clnoma(1:ilnomu),llrlfi)
402 #include "facom2.llmoer.h" 403 #include "facom2.ixnvms.h" 411 & (krep, knume1, knume2, cdpref, knivau, cdsuff)
418 INTEGER (KIND=JPLIKB) KREP
419 INTEGER (KIND=JPLIKB) KNUME1
420 INTEGER (KIND=JPLIKB) KNUME2
421 CHARACTER (LEN=*) CDPREF
422 INTEGER (KIND=JPLIKB) KNIVAU
423 CHARACTER (LEN=*) CDSUFF
428 & (fa, krep, knume1, knume2, cdpref, knivau, cdsuff)
433 & (krep, knume1, knume2, cdpref, knivau, cdsuff)
440 INTEGER (KIND=JPLIKM) KREP
441 INTEGER (KIND=JPLIKM) KNUME1
442 INTEGER (KIND=JPLIKM) KNUME2
443 CHARACTER (LEN=*) CDPREF
444 INTEGER (KIND=JPLIKM) KNIVAU
445 CHARACTER (LEN=*) CDSUFF
450 & (fa, krep, knume1, knume2, cdpref, knivau, cdsuff)
455 & (fa, krep, knume1, knume2, cdpref, knivau, cdsuff)
461 INTEGER (KIND=JPLIKM) KREP
462 INTEGER (KIND=JPLIKM) KNUME1
463 INTEGER (KIND=JPLIKM) KNUME2
464 CHARACTER (LEN=*) CDPREF
465 INTEGER (KIND=JPLIKM) KNIVAU
466 CHARACTER (LEN=*) CDSUFF
468 INTEGER (KIND=JPLIKB) IREP
469 INTEGER (KIND=JPLIKB) INUME1
470 INTEGER (KIND=JPLIKB) INUME2
471 INTEGER (KIND=JPLIKB) INIVAU
474 inume1 = int( knume1,
jplikb)
475 inume2 = int( knume2,
jplikb)
476 inivau = int( knivau,
jplikb)
479 & (fa, irep, inume1, inume2, cdpref, inivau, cdsuff)
subroutine lfiecr_fort(LFI, KREP, KNUMER, CDNOMA, KTAB, KLONG)
subroutine facoch_mt(FA, KREP, KNUME1, KNUME2, CDPREF, KNIVAU, CDSUFF)
integer, parameter jplikb
logical, save fa_com_default_init
subroutine new_fa_default()
integer(kind=jplikb), parameter jnexpl
subroutine lfinfo_fort(LFI, KREP, KNUMER, CDNOMA, KLONG, KPOSEX)
subroutine lfiver_fort(LFI, PVEROU, CDSENS)
subroutine fanfar_fort(FA, KREP, KRANG, CDPREF, KNIVAU, CDSUFF, CDNOMA, KB1PAR, KLPRFU, KLSUFU, KLNOMU)
subroutine lfilec_fort(LFI, KREP, KNUMER, CDNOMA, KTAB, KLONG)
subroutine facoch_fort(FA, KREP, KNUME1, KNUME2, CDPREF, KNIVAU, CDSUFF)
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 facoch(KREP, KNUME1, KNUME2, CDPREF, KNIVAU, CDSUFF)
subroutine facoch64(KREP, KNUME1, KNUME2, CDPREF, KNIVAU, CDSUFF)
subroutine fanumu_fort(FA, KNUMER, KRANG)
integer(kind=jplikb), parameter jpniil