5 & (fa, krep, krang, cdnoma, kvalco, klonga, &
40 INTEGER (KIND=JPLIKB) KREP, KRANG, KLONGA
42 INTEGER (KIND=JPLIKB) KVALCO(*)
43 REAL (KIND=JPDBLR) PCHAMP(*)
49 REAL (KIND=JPDBLR) ZFOHYB (2)
51 INTEGER (KIND=JPLIKB) ILCHAM, ISTRIA, J, IDECAL, ICPACK
52 INTEGER (KIND=JPLIKB) IPUILA, IPOFIN
53 INTEGER (KIND=JPLIKB) ITRONC, IIND, ILOW, IHIGH, JTRON
54 INTEGER (KIND=JPLIKB) IDIMNC, INBITS
55 INTEGER (KIND=JPLIKB) IL, IADD, IRANGC, IILCHAM, INDECO
56 INTEGER (KIND=JPLIKB) IERR, INIMES
57 INTEGER (KIND=JPLIKB) IVALC3, IVALC4, IVALC5, IJLENV
58 INTEGER (KIND=JPLIKB) IJLENF, IDIZAI, IUNITE
59 INTEGER (KIND=JPLIKB) INUMER
61 REAL (KIND=JPDBLD) ZCHAMP
62 REAL (KIND=JPDBLM) ZTEMP (2)
64 REAL (KIND=JPDBLR),
ALLOCATABLE :: ZCHAUX(:)
65 INTEGER (KIND=JPLIKB) IB1PAR (fa%jplb1p), IB2PAR (fa%jplb2p)
67 LOGICAL LLARPE, LLMLAM, LLCOSP
69 CHARACTER(LEN=FA%JPLMES) CLMESS
70 CHARACTER(LEN=FA%JPLSPX) CLNSPR
77 REAL(KIND=JPRB) :: ZHOOK_HANDLE
80 IF (krang.LE.0.OR.krang.GT.fa%JPNXFA)
THEN 96 IF (kvalco(1).LT.-2.OR.kvalco(1).GT.2.OR. &
97 & kvalco(2).LT. 0.OR.kvalco(2).GT.1.OR. &
98 & (kvalco(1).GT. 0.AND.kvalco(2).EQ.1.AND.kvalco(4).LT.0))
THEN 103 llarpe=kvalco(1).EQ.2
104 llcosp=kvalco(2).EQ.1
106 IF ((llcosp.AND..NOT.ldcosp).OR.(.NOT.llcosp.AND.ldcosp))
THEN 111 irangc=fa%FICHIER(krang)%NUCADR
112 llmlam=fa%CADRE(irangc)%LIMLAM
116 ilcham=fa%CADRE(irangc)%NSFLAM
118 IF (kvalco(1).EQ.-1)
THEN 119 ilcham=(1+fa%CADRE(irangc)%MTRONC)*(2+fa%CADRE(irangc)%MTRONC)
121 ilcham=(1+fa%CADRE(irangc)%MTRONC)**2
125 ilcham=fa%CADRE(irangc)%NVAPDG
132 IF (kvalco(1) == -2)
THEN 136 IF (klonga.LT.((ilcham+1)/2+2))
THEN 139 ELSEIF (klonga.GT.((ilcham+1)/2+2))
THEN 141 IF (llmoer(krep,krang))
GOTO 1001
148 ztemp(1:2) = transfer(kvalco(2+1+(j-1)/2), ztemp(1:2))
149 pchamp(j+0) = ztemp(1)
150 IF (j+1 <= ilcham)
THEN 151 pchamp(j+1) =
REAL (ZTEMP (2), JPDBLR)
155 ELSEIF (kvalco(1) == -1 .OR. kvalco(1) == 0)
THEN 159 IF (klonga.LT.(ilcham+2))
THEN 162 ELSEIF (klonga.GT.(ilcham+2))
THEN 164 IF (llmoer(krep,krang))
GOTO 1001
171 zchamp = transfer(kvalco(2+j), zchamp)
172 pchamp(j) =
real(zchamp, jpdblr)
181 IF (ldcosp) idecal=idecal+2
185 IF (ldcosp.AND.llmlam)
THEN 187 ALLOCATE (zchaux(ilcham))
189 itronc=fa%CADRE(irangc)%MTRONC
190 istria=fa%CADRE(irangc)%NOZPAR(4)-fa%CADRE(irangc)%NOZPAR(3)+1
192 iadd=4*(ivalc4+1-jtron)
193 IF (iadd.LE.0) iadd=4
196 iilcham=ilcham-istria
197 CALL fadecoga(zchaux,iilcham,inbits,fa%NBIMAC,ib1par,ib2par, &
198 & zfohyb(1),2_jplikb ,kvalco(idecal+1), &
199 & klonga-idecal,indeco,ijlenv,ijlenf,icpack, &
200 & ipuila,ierr,kvalco(idecal-1),kvalco(idecal), &
206 IF (ijlenf.LT.iilcham)
THEN 209 WRITE (unit=fa%NULOUT,fmt=*) &
210 &
'FADECI: erreur !!! Nbre de valeurs decodees = ', &
211 & ijlenf,
' et nbre de valeurs attendues = ',iilcham
214 ELSEIF (ijlenf.GT.iilcham)
THEN 217 WRITE (unit=fa%NULOUT,fmt=*) &
218 &
'FADECI: erreur !!! Nbre de valeurs decodees = ', &
219 & ijlenf,
' et nbre de valeurs attendues = ',iilcham
221 IF (llmoer(krep,krang))
GOTO 1001
226 iadd=4*(ivalc4+1-jtron)
227 IF (iadd.LE.0) iadd=4
228 DO j=fa%CADRE(irangc)%NOZPAR(ilow)+iadd,fa%CADRE(irangc)%NOZPAR(ilow+1)
230 pchamp(j)=zchaux(iind)
234 IF (
ALLOCATED( zchaux ))
DEALLOCATE ( zchaux )
237 CALL fadecoga (pchamp,ilcham,inbits,fa%NBIMAC,ib1par,ib2par, &
238 & zfohyb(1),2_jplikb ,kvalco(idecal+1), &
239 & klonga-idecal,indeco,ijlenv,ijlenf,icpack, &
240 & ipuila,ierr,kvalco(idecal-1),kvalco(idecal), &
245 IF (ijlenf.LT.ilcham)
THEN 248 WRITE (unit=fa%NULOUT,fmt=*) &
249 &
'FADECI: erreur !!! Nbre de valeurs decodees = ', &
250 & ijlenf,
' et nbre de valeurs attendues = ',ilcham
253 ELSEIF (ijlenf.GT.ilcham)
THEN 256 WRITE (unit=fa%NULOUT,fmt=*) &
257 &
'FADECI: erreur !!! Nbre de valeurs decodees = ', &
258 & ijlenf,
' et nbre de valeurs attendues = ',ilcham
260 IF (llmoer(krep,krang))
GOTO 1001
267 ELSEIF (ierr.NE.0)
THEN 270 ELSEIF (ivalc3.NE.inbits.OR.(ldcosp.AND. &
271 & ((icpack.NE.ivalc4.AND..NOT.llmlam) &
272 & .OR.(.NOT.llmlam.AND.ipuila.NE.ivalc5))))
THEN 275 ELSEIF (ib1par(4).GT.64)
THEN 280 iunite=ib2par(1)-idizai*10
282 IF ((ldcosp.AND..NOT.llmlam.AND. &
283 & (iunite.NE.0.OR.idizai.LT.5.OR.idizai.GT.8)) &
284 & .OR.(.NOT.ldcosp.AND. &
285 & (iunite.NE.4.OR.idizai.LT.0.OR.idizai.GT.3)))
THEN 291 IF (ldcosp.AND.llmlam)
THEN 300 ipofin=idecal+indeco+istria
303 ipofin=idecal+indeco+idimnc
306 IF (klonga.LT.ipofin)
THEN 309 ELSEIF (klonga.GT.ipofin)
THEN 311 IF (llmoer(krep,krang))
GOTO 1001
322 ilow=fa%CADRE(irangc)%NOZPAR(il)
324 ihigh=fa%CADRE(irangc)%NOZPAR(il+1)
326 ihigh=ilow+4*(icpack+1-jtron)-1
327 IF (ihigh.LE.ilow) ihigh=ilow+3
331 zchamp=transfer(kvalco(idecal+indeco+iind), zchamp)
337 zchamp=transfer(kvalco(idecal+indeco+j), zchamp)
347 IF (ipuila.NE.0)
THEN 349 & (fa, krep,krang,pchamp,icpack,ipuila)
350 IF (krep.NE.0)
GOTO 1001
362 llfata=llmoer(krep,krang)
364 IF (fa%LFAMOP.OR.llfata)
THEN 369 WRITE (unit=clmess,fmt=
'(''KREP='',I4,'', KRANG='',I4, & 370 & '', CDNOMA='''''',A,'''''', LDCOSP= '',L1, & 371 & '', KLONGA='',I8)') &
372 & krep, krang, cdnoma, ldcosp, klonga
374 & (fa, inumer,inimes,krep,.false.,clmess, &
375 & clnspr,cdnoma,.false.)
382 #include "facom2.llmoer.h"
subroutine farcis_fort(FA, KREP, KRANG, PCHAMP, KSTRON, KPUILA)
subroutine fadeci_fort(FA, KREP, KRANG, CDNOMA, KVALCO, KLONGA, PCHAMP, LDCOSP)
subroutine faipar_fort(FA, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI, LDRLFI)
subroutine fadecoga(PFDATA, KLENF, KBITS, KNBIT, KB1PAR, KB2PAR, PVERT, KLENV, KGRIB, KLENG, KWORD, KJLENV, KJLENF, KCPACK, KSCALP, KERR, PMIN, PMAX, LDARPE)
integer(kind=jplikb), parameter jpniil