4 & (fa, knumer, cdclef, kval, kopt)
53 INTEGER (KIND=JPLIKB) KNUMER, KVAL, KOPT
55 CHARACTER(LEN=*) CDCLEF
57 INTEGER (KIND=JPLIKB) IRANG, INIMES, IREP, INBITSMAX
59 CHARACTER(LEN=FA%JPLMES) CLMESS
60 CHARACTER(LEN=FA%JPLSPX) CLNSPR
68 REAL(KIND=JPRB) :: ZHOOK_HANDLE
84 IF (fa%FICHIER(irang)%LISEC1)
THEN 88 WRITE (unit=fa%NULOUT,fmt=*) &
89 &
'FAREGU: ERROR ',irep,
' dans appel a FAISC1 !!' 92 fa%FICHIER(irang)%LISEC1=.false.
95 inbitsmax=max(fa%FICHIER(irang)%NBFPDG,fa%FICHIER(irang)%NBFCSP)
105 IF (cdclef==
'BASIC'.OR.cdclef==
'basic')
THEN 106 fa%FICHIER(irang)%NCOGRIF(1)=0
107 fa%FICHIER(irang)%NCOGRIF(2)=0
108 fa%FICHIER(irang)%NCOGRIF(3)=0
109 fa%FICHIER(irang)%NCOGRIF(4)=0
110 fa%FICHIER(irang)%NCOGRIF(5)=0
111 fa%FICHIER(irang)%NCOGRIF(6)=0
116 ELSEIF (cdclef==
'PACK1'.OR.cdclef==
'pack1')
THEN 117 fa%FICHIER(irang)%NCOGRIF(1)=0
118 fa%FICHIER(irang)%NCOGRIF(2)=16
119 fa%FICHIER(irang)%NCOGRIF(3)=0
120 fa%FICHIER(irang)%NCOGRIF(4)=0
121 fa%FICHIER(irang)%NCOGRIF(5)=16
122 fa%FICHIER(irang)%NCOGRIF(6)=0
128 ELSEIF (cdclef==
'PACK2'.OR.cdclef==
'pack2')
THEN 129 fa%FICHIER(irang)%NCOGRIF(1)=0
130 fa%FICHIER(irang)%NCOGRIF(2)=16
131 fa%FICHIER(irang)%NCOGRIF(3)=0
132 fa%FICHIER(irang)%NCOGRIF(4)=32
133 fa%FICHIER(irang)%NCOGRIF(5)=0
135 fa%FICHIER(irang)%NCOGRIF(6)=-99
140 ELSEIF (cdclef==
'PACK3'.OR.cdclef==
'pack3')
THEN 141 fa%FICHIER(irang)%NCOGRIF(1)=0
142 fa%FICHIER(irang)%NCOGRIF(2)=16
143 fa%FICHIER(irang)%NCOGRIF(3)=0
144 fa%FICHIER(irang)%NCOGRIF(4)=32
145 fa%FICHIER(irang)%NCOGRIF(5)=16
146 fa%FICHIER(irang)%NCOGRIF(6)=0
152 ELSEIF (cdclef==
'APAC1'.OR.cdclef==
'apac1')
THEN 153 fa%FICHIER(irang)%NCOGRIF(1)=1
154 fa%FICHIER(irang)%NCOGRIF(2)=16
155 fa%FICHIER(irang)%NCOGRIF(3)=0
156 fa%FICHIER(irang)%NCOGRIF(4)=0
157 fa%FICHIER(irang)%NCOGRIF(5)=16
158 fa%FICHIER(irang)%NCOGRIF(6)=0
164 ELSEIF (cdclef==
'APAC2'.OR.cdclef==
'apac2')
THEN 165 fa%FICHIER(irang)%NCOGRIF(1)=1
166 fa%FICHIER(irang)%NCOGRIF(2)=16
167 fa%FICHIER(irang)%NCOGRIF(3)=0
168 fa%FICHIER(irang)%NCOGRIF(4)=0
169 fa%FICHIER(irang)%NCOGRIF(5)=0
171 fa%FICHIER(irang)%NCOGRIF(6)=-99
177 ELSEIF (cdclef==
'APAC3'.OR.cdclef==
'apac3')
THEN 178 fa%FICHIER(irang)%NCOGRIF(1)=1
179 fa%FICHIER(irang)%NCOGRIF(2)=16
180 fa%FICHIER(irang)%NCOGRIF(3)=0
181 fa%FICHIER(irang)%NCOGRIF(4)=32
182 fa%FICHIER(irang)%NCOGRIF(5)=16
183 fa%FICHIER(irang)%NCOGRIF(6)=0
189 ELSEIF (cdclef==
'APAC4'.OR.cdclef==
'apac4')
THEN 190 fa%FICHIER(irang)%NCOGRIF(1)=1
191 fa%FICHIER(irang)%NCOGRIF(2)=16
192 fa%FICHIER(irang)%NCOGRIF(3)=0
193 fa%FICHIER(irang)%NCOGRIF(4)=32
194 fa%FICHIER(irang)%NCOGRIF(5)=0
196 fa%FICHIER(irang)%NCOGRIF(6)=-99
202 ELSEIF (cdclef==
'WIDPA'.OR.cdclef==
'widpa')
THEN 203 IF (kval.LT.1-inbitsmax.OR.kval.GT.inbitsmax-1)
THEN 205 WRITE (unit=fa%NULOUT,fmt=
'(A)')
'Dans FAREGU, action WIDPA:' 206 WRITE (unit=fa%NULOUT,fmt=
'(A57,I8)') &
207 &
'!! ERREUR !! Valeur incorrecte, non prise en compte: ',kval
210 fa%FICHIER(irang)%NCOGRIF(6)=kval
215 ELSEIF (cdclef==
'GEXTE'.OR.cdclef==
'gexte')
THEN 217 fa%FICHIER(irang)%IOPTGRSX2O=1
218 fa%FICHIER(irang)%NCOGRIF(7)=8
220 fa%FICHIER(irang)%NCOGRIF(7)=0
226 ELSEIF (cdclef==
'BOUST'.OR.cdclef==
'boust')
THEN 228 fa%FICHIER(irang)%IOPTGRSX2O=1
229 fa%FICHIER(irang)%NCOGRIF(8)=4
231 fa%FICHIER(irang)%NCOGRIF(8)=0
238 ELSEIF (cdclef==
'DIFFE'.OR.cdclef==
'diffe')
THEN 240 fa%FICHIER(irang)%IOPTGRSX2O=1
241 fa%FICHIER(irang)%IOPTGRSN2O=1
242 fa%FICHIER(irang)%NCOGRIF( 9)=0
243 fa%FICHIER(irang)%NCOGRIF(10)=-1
244 ELSEIF (kval.EQ.1)
THEN 245 fa%FICHIER(irang)%IOPTGRSX2O=1
246 fa%FICHIER(irang)%IOPTGRSN2O=1
247 fa%FICHIER(irang)%NCOGRIF( 9)=0
248 fa%FICHIER(irang)%NCOGRIF(10)=1
249 ELSEIF (kval.EQ.2)
THEN 250 fa%FICHIER(irang)%IOPTGRSX2O=1
251 fa%FICHIER(irang)%IOPTGRSN2O=1
252 fa%FICHIER(irang)%NCOGRIF( 9)=2
253 fa%FICHIER(irang)%NCOGRIF(10)=0
254 ELSEIF (kval.EQ.3)
THEN 255 fa%FICHIER(irang)%IOPTGRSX2O=1
256 fa%FICHIER(irang)%IOPTGRSN2O=1
257 fa%FICHIER(irang)%NCOGRIF( 9)=2
258 fa%FICHIER(irang)%NCOGRIF(10)=1
259 ELSEIF (kval.EQ.0)
THEN 260 fa%FICHIER(irang)%IOPTGRSX2O=0
261 fa%FICHIER(irang)%NCOGRIF( 9)=0
262 fa%FICHIER(irang)%NCOGRIF(10)=0
265 WRITE (unit=fa%NULOUT,fmt=
'(A)') &
266 &
'Dans FAREGU, action DIFFE:' 267 WRITE (unit=fa%NULOUT,fmt=
'(A57,I8)') &
268 &
'!! ERREUR !! Valeur incorrecte, non prise en compte: ',kval
276 ELSEIF (cdclef==
'IDCEN'.OR.cdclef==
'idcen')
THEN 277 IF (kval.LT.7.OR.kval.GT.99)
THEN 279 WRITE (unit=fa%NULOUT,fmt=
'(A)') &
280 &
'Dans FAREGU, action IDCEN:' 281 WRITE (unit=fa%NULOUT,fmt=
'(A57,I8)') &
282 &
'!! ERREUR !! Valeur incorrecte, non prise en compte: ',kval
285 fa%FICHIER(irang)%NSEC1(2) = kval
286 fa%FICHIER(irang)%NIDCEN = kval
296 ELSEIF (cdclef==
'IDMOD'.OR.cdclef==
'idmod')
THEN 297 IF (kval.LT.0.OR.kval.GT.255)
THEN 299 WRITE (unit=fa%NULOUT,fmt=
'(A)') &
300 &
'Dans FAREGU, action IDMOD:' 301 WRITE (unit=fa%NULOUT,fmt=
'(A57,I8)') &
302 &
'!! ERREUR !! Valeur incorrecte, non prise en compte: ',kval
305 fa%FICHIER(irang)%NSEC1(3)=kval
306 ELSEIF (cdclef(1:min(7, len(cdclef)))==
'CMODEL=')
THEN 307 fa%FICHIER(irang)%CMODEL = cdclef(8:)
311 ELSEIF (cdclef==
'FACDEC'.OR.cdclef==
'facdec')
THEN 312 fa%FICHIER(irang)%NCOGRIF(11)=kval
316 ELSEIF (cdclef==
'EXTERN'.OR.cdclef==
'extern')
THEN 317 fa%FICHIER(irang)%NCOGRIF(12)=kval
320 WRITE (unit=fa%NULOUT,fmt=
'(A)') &
321 &
'!! ERREUR !! Dans FAREGU, action inconnue: '//cdclef
328 ELSEIF (kopt==0)
THEN 332 IF (cdclef==
'CLEFS'.OR. cdclef==
'clefs' .OR. &
333 & cdclef==
'HELP' .OR. cdclef==
'help')
THEN 335 WRITE (unit=fa%NULOUT,fmt=*)
336 WRITE (unit=fa%NULOUT,fmt=*)
'Mots clef disponibles pour FAREGU:' 337 WRITE (unit=fa%NULOUT,fmt=*)
338 WRITE (unit=fa%NULOUT,fmt=*)
'BASIC: pas de compression' 339 WRITE (unit=fa%NULOUT,fmt=*)
'PACK1: BASIC avec une compression' 340 WRITE (unit=fa%NULOUT,fmt=*)
' ligne a ligne pour les pts de grille' 341 WRITE (unit=fa%NULOUT,fmt=*)
'PACK2: BASIC avec une compression avec' 342 WRITE (unit=fa%NULOUT,fmt=*)
' nb de bits cst pour les groupes' 343 WRITE (unit=fa%NULOUT,fmt=*)
'PACK3: BASIC avec une compression generale' 344 WRITE (unit=fa%NULOUT,fmt=*)
' OMM pour les points de grille' 345 WRITE (unit=fa%NULOUT,fmt=*)
'APAC1: compression agressive:' 346 WRITE (unit=fa%NULOUT,fmt=*)
' BASIC et PACK1 sont testes' 347 WRITE (unit=fa%NULOUT,fmt=*)
'APAC2: compression agressive:' 348 WRITE (unit=fa%NULOUT,fmt=*)
' BASIC, PACK1 et PACK2 sont testes' 349 WRITE (unit=fa%NULOUT,fmt=*)
'APAC3: compression agressive:' 350 WRITE (unit=fa%NULOUT,fmt=*)
' BASIC, PACK1 et PACK3 sont testes' 351 WRITE (unit=fa%NULOUT,fmt=*)
'APAC4: compression agressive:' 352 WRITE (unit=fa%NULOUT,fmt=*)
' BASIC, PACK1, PACK2 et PACK3 testes' 353 WRITE (unit=fa%NULOUT,fmt=*)
'WIDPA: lecture/ecriture du nb de bits' 354 WRITE (unit=fa%NULOUT,fmt=*)
' a utiliser pour les groupes de points' 355 WRITE (unit=fa%NULOUT,fmt=*)
' de grille dans le cas PACK2' 356 WRITE (unit=fa%NULOUT,fmt=*)
'GEXTE: la compression avec extensions generales' 357 WRITE (unit=fa%NULOUT,fmt=*)
' activees (KVAL=1) ou desactivees (KVAL=0)' 358 WRITE (unit=fa%NULOUT,fmt=*)
'BOUST: le rearrangement boustrophedonique est' 359 WRITE (unit=fa%NULOUT,fmt=*)
' active (KVAL=1) ou desactive (KVAL=0)' 360 WRITE (unit=fa%NULOUT,fmt=*)
'DIFFE: la differenciation spatiale est' 361 WRITE (unit=fa%NULOUT,fmt=*)
' activee (KVAL=ordre de differ. (1 a 3)' 362 WRITE (unit=fa%NULOUT,fmt=*)
' ou -1 (calcul dyn)) ou desactivee (0)' 363 WRITE (unit=fa%NULOUT,fmt=*)
'IDCEN: lect/ecriture de l''identificateur du' 364 WRITE (unit=fa%NULOUT,fmt=*)
' centre meteo' 365 WRITE (unit=fa%NULOUT,fmt=*)
'IDMOD: lect/ecriture de l''identificateur du' 366 WRITE (unit=fa%NULOUT,fmt=*)
' modele' 367 WRITE (unit=fa%NULOUT,fmt=*)
'CMODEL: lect/ecriture de l''identificateur du' 368 WRITE (unit=fa%NULOUT,fmt=*)
' modele' 369 WRITE (unit=fa%NULOUT,fmt=*)
'FACDEC: calcul automatique du facteur decimal' 370 WRITE (unit=fa%NULOUT,fmt=*)
'EXTERN: ecriture dans un fichier externe' 371 WRITE (unit=fa%NULOUT,fmt=*)
377 ELSEIF (cdclef==
'WIDPA'.OR.cdclef==
'widpa')
THEN 378 kval=fa%FICHIER(irang)%NCOGRIF(6)
383 ELSEIF (cdclef==
'GEXTE'.OR.cdclef==
'gexte')
THEN 384 kval = fa%FICHIER(irang)%NCOGRIF(7)/8
389 ELSEIF (cdclef==
'BOUST'.OR.cdclef==
'boust')
THEN 390 kval = fa%FICHIER(irang)%NCOGRIF(8)/4
394 ELSEIF (cdclef==
'DIFFE'.OR.cdclef==
'diffe')
THEN 395 kval=fa%FICHIER(irang)%NCOGRIF( 9)+fa%FICHIER(irang)%NCOGRIF(10)
401 ELSEIF (cdclef==
'IDCEN'.OR.cdclef==
'idcen')
THEN 402 kval=fa%FICHIER(irang)%NIDCEN
406 ELSEIF (cdclef==
'IDMOD'.OR.cdclef==
'idmod')
THEN 407 kval=fa%FICHIER(irang)%NSEC1(3)
408 ELSEIF (cdclef(1:min(7, len(cdclef)))==
'CMODEL=')
THEN 409 cdclef(8:) = fa%FICHIER(irang)%CMODEL
413 ELSEIF (cdclef==
'FACDEC'.OR.cdclef==
'facdec')
THEN 414 kval=fa%FICHIER(irang)%NCOGRIF(11)
418 ELSEIF (cdclef==
'EXTERN'.OR.cdclef==
'extern')
THEN 419 kval=fa%FICHIER(irang)%NCOGRIF(12)
422 WRITE (unit=fa%NULOUT,fmt=
'(A)') &
423 &
'!! ERREUR !! Dans FAREGU, action inconnue: '//cdclef
432 WRITE (unit=fa%NULOUT,fmt=
'(A57,I8)') &
433 &
'!! ERREUR !! Dans FAREGU, option inconnue: KOPT= ',kopt
442 llfata=llmoer(irep,irang)
450 IF (.NOT.llfata.AND.inimes.NE.2)
THEN 457 WRITE (unit=clmess,fmt=
'(''IREP='',I4,'', KNUMER='',I3, & 458 & '', CDCLEF='''''',A,'''''', KVAL='',I12, & 459 & '', KOPT='',I4)') &
460 & irep,knumer,cdclef,kval,kopt
462 & (fa, knumer,inimes,irep,llfata,clmess, &
463 & clnspr,clnspr,.false.)
469 #include "facom2.llmoer.h" 470 #include "facom2.ixnvms.h" 478 & (knumer, cdclef, kval, kopt)
485 INTEGER (KIND=JPLIKB) KNUMER
486 CHARACTER (LEN=*) CDCLEF
487 INTEGER (KIND=JPLIKB) KVAL
488 INTEGER (KIND=JPLIKB) KOPT
493 & (fa, knumer, cdclef, kval, kopt)
498 & (knumer, cdclef, kval, kopt)
505 INTEGER (KIND=JPLIKM) KNUMER
506 CHARACTER (LEN=*) CDCLEF
507 INTEGER (KIND=JPLIKM) KVAL
508 INTEGER (KIND=JPLIKM) KOPT
513 & (fa, knumer, cdclef, kval, kopt)
518 & (fa, knumer, cdclef, kval, kopt)
524 INTEGER (KIND=JPLIKM) KNUMER
525 CHARACTER (LEN=*) CDCLEF
526 INTEGER (KIND=JPLIKM) KVAL
527 INTEGER (KIND=JPLIKM) KOPT
529 INTEGER (KIND=JPLIKB) INUMER
530 INTEGER (KIND=JPLIKB) IVAL
531 INTEGER (KIND=JPLIKB) IOPT
534 inumer = int( knumer,
jplikb)
541 & (fa, inumer, cdclef, ival, iopt)
integer, parameter jplikb
logical, save fa_com_default_init
subroutine new_fa_default()
subroutine faregu(KNUMER, CDCLEF, KVAL, KOPT)
subroutine faregu_fort(FA, KNUMER, CDCLEF, KVAL, KOPT)
subroutine faregu_mt(FA, KNUMER, CDCLEF, KVAL, KOPT)
subroutine faregu64(KNUMER, CDCLEF, KVAL, KOPT)
integer, parameter jplikm
type(fa_com), target, save fa_com_default
subroutine faipar_fort(FA, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI, LDRLFI)
subroutine faisc1_fort(FA, KREP, KRANG)
subroutine fanumu_fort(FA, KNUMER, KRANG)