20 INTEGER (KIND=JPIM) :: ipxtro
21 INTEGER (KIND=JPIM) :: ipxlat
22 INTEGER (KIND=JPIM) :: ipxniv
23 INTEGER (KIND=JPIM) :: ipnxfa
24 INTEGER (KIND=JPIM) :: ipnxca
26 INTEGER (KIND=JPIM) :: ingrib
27 INTEGER (KIND=JPIM) :: inbpdg
28 INTEGER (KIND=JPIM) :: inbcsp
29 INTEGER (KIND=JPIM) :: istron
30 INTEGER (KIND=JPIM) :: ipuila
31 INTEGER (KIND=JPIM) :: idmopl
36 CHARACTER*256 :: cnomf
40 INTEGER (KIND=JPIM) :: inimes
42 INTEGER (KIND=JPIM) :: ifact
45 INTEGER (KIND=JPIM) :: ityptr
46 INTEGER (KIND=JPIM) :: itronc
47 INTEGER (KIND=JPIM) :: inlati
48 INTEGER (KIND=JPIM) :: inxlon
49 INTEGER (KIND=JPIM) :: iniver
51 INTEGER (KIND=JPIM),
POINTER :: inlopa (:) => null ()
52 INTEGER (KIND=JPIM),
POINTER :: inozpa (:) => null ()
54 REAL (KIND=JPRB) :: zslapo
55 REAL (KIND=JPRB) :: zclopo
56 REAL (KIND=JPRB) :: zslopo
57 REAL (KIND=JPRB) :: zcodil
58 REAL (KIND=JPRB) :: zrefer
60 REAL (KIND=JPRB),
POINTER :: zsinla (:) => null ()
61 REAL (KIND=JPRB),
POINTER :: zahybr (:) => null ()
62 REAL (KIND=JPRB),
POINTER :: zbhybr (:) => null ()
64 REAL (KIND=JPRB),
POINTER :: xlap1d (:,:) => null ()
65 REAL (KIND=JPRB),
POINTER :: xlap1da (:,:) => null ()
66 REAL (KIND=JPRB),
POINTER :: xlap2d (:,:,:) => null ()
67 REAL (KIND=JPRB),
POINTER :: xlap2da (:,:,:) => null ()
72 INTEGER (KIND=JPIM),
POINTER :: idatef (:) => null ()
75 INTEGER (KIND=JPIM) :: iulout_fa, iulout_lfi
77 INTEGER (KIND=JPIM) :: iextern = 0_jpim
78 CHARACTER (LEN=64) :: cmodel =
'' 79 INTEGER (KIND=JPIM) :: nidcen = 0_jpim
87 SUBROUTINE fadup1 (YDFA, YDDFP, KUNIT, KERR)
93 INTEGER (KIND=JPIM),
INTENT (IN) :: KUNIT
94 INTEGER (KIND=JPIM),
INTENT (OUT) :: KERR
96 INTEGER (KIND=JPIM) :: IVAL
98 CHARACTER (LEN=64) :: CLMODEL
100 REAL (KIND=JPRB) :: ZHOOK_HANDLE
102 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUP1',0,zhook_handle)
104 yddfp%IPXTRO = int(ydfa%JPXTRO)
105 yddfp%IPXLAT = int(ydfa%JPXLAT)
106 yddfp%IPXNIV = int(ydfa%JPXNIV)
107 yddfp%IPNXFA = int(ydfa%JPNXFA)
108 yddfp%IPNXCA = int(ydfa%JPNXCA)
111 & yddfp%INGRIB, yddfp%INBPDG, yddfp%INBCSP, &
112 & yddfp%ISTRON, yddfp%IPUILA, yddfp%IDMOPL)
114 CALL faiopt_mt (ydfa, kerr, kunit, yddfp%LNOMM, yddfp%CNOMF, &
115 & yddfp%CSTTU, yddfp%LERFA, yddfp%LIMST, yddfp%INIMES, &
118 CALL lfiofm_mt (ydfa%LFI, kerr, kunit, yddfp%IFACT, yddfp%LOUVR)
120 ALLOCATE (yddfp%INLOPA (ydfa%JPXPAH), yddfp%INOZPA (ydfa%JPXIND), &
121 & yddfp%ZSINLA (ydfa%JPXGEO), yddfp%ZAHYBR (0:ydfa%JPXNIV), &
122 & yddfp%ZBHYBR (0:ydfa%JPXNIV), yddfp%IDATEF (ydfa%JPLDAT*2))
125 & yddfp%CNOMC, yddfp%ITYPTR, yddfp%ZSLAPO, yddfp%ZCLOPO, &
126 & yddfp%ZSLOPO, yddfp%ZCODIL, yddfp%ITRONC, yddfp%INLATI, &
127 & yddfp%INXLON, yddfp%INLOPA, yddfp%INOZPA, yddfp%ZSINLA, &
128 & yddfp%INIVER, yddfp%ZREFER, yddfp%ZAHYBR, yddfp%ZBHYBR, &
131 CALL fadiex_mt (ydfa, kerr, kunit, yddfp%IDATEF)
133 yddfp%IULOUT_FA = ydfa%NULOUT
134 yddfp%IULOUT_LFI = ydfa%LFI%NULOUT
136 IF (.NOT. ydfa%LIXLAP)
THEN 137 yddfp%XLAP1D => ydfa%XLAP1D
138 yddfp%XLAP1DA => ydfa%XLAP1DA
139 yddfp%XLAP2D => ydfa%XLAP2D
140 yddfp%XLAP2DA => ydfa%XLAP2DA
143 CALL faregu (kunit,
'EXTERN', yddfp%IEXTERN, 0_jpim)
146 CALL faregu (kunit, clmodel, ival, 0_jpim)
147 yddfp%CMODEL = clmodel(8:)
149 CALL faregu (kunit,
'IDCEN', yddfp%NIDCEN, 0_jpim)
151 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUP1',1,zhook_handle)
155 SUBROUTINE fadup2 (YDFA, YDDFP, KUNIT, KERR)
161 INTEGER (KIND=JPIM),
INTENT (IN) :: KUNIT
162 INTEGER (KIND=JPIM),
INTENT (OUT) :: KERR
164 INTEGER (KIND=JPIM) :: INBARP, INBARI
165 REAL (KIND=JPRB) :: ZHOOK_HANDLE
167 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUP2',0,zhook_handle)
172 CALL new_fa (ydfa, kerr, yddfp%IPXTRO, yddfp%IPXLAT, &
173 & yddfp%IPXNIV, yddfp%IPNXFA, yddfp%IPNXCA)
175 ydfa%NULOUT = yddfp%IULOUT_FA
176 ydfa%LFI%NULOUT = yddfp%IULOUT_LFI
177 ydfa%NIDCEN = yddfp%NIDCEN
180 & yddfp%INGRIB, yddfp%INBPDG, yddfp%INBCSP, &
181 & yddfp%ISTRON, yddfp%IPUILA, yddfp%IDMOPL)
184 & yddfp%CNOMC, yddfp%ITYPTR, yddfp%ZSLAPO, yddfp%ZCLOPO, &
185 & yddfp%ZSLOPO, yddfp%ZCODIL, yddfp%ITRONC, yddfp%INLATI, &
186 & yddfp%INXLON, yddfp%INLOPA, yddfp%INOZPA, yddfp%ZSINLA, &
187 & yddfp%INIVER, yddfp%ZREFER, yddfp%ZAHYBR, yddfp%ZBHYBR, &
190 IF (yddfp%LOUVR)
THEN 191 CALL lfiafm_mt (ydfa%LFI, kerr, kunit, yddfp%IFACT)
192 CALL faitou_mt (ydfa, kerr, kunit, yddfp%LNOMM, yddfp%CNOMF, &
193 & yddfp%CSTTU, yddfp%LERFA, yddfp%LIMST, yddfp%INIMES, &
194 inbarp, inbari, yddfp%CNOMC)
196 CALL fanouv_mt (ydfa, kerr, kunit, yddfp%LNOMM, yddfp%CNOMF, &
197 & yddfp%CSTTU, yddfp%LERFA, yddfp%LIMST, yddfp%INIMES, &
198 & inbarp, inbari, yddfp%CNOMC)
201 IF (.NOT. yddfp%LOUVR)
THEN 202 CALL fandax_mt (ydfa, kerr, kunit, yddfp%IDATEF)
206 ydfa%XLAP1D => yddfp%XLAP1D
207 ydfa%XLAP1DA => yddfp%XLAP1DA
208 ydfa%XLAP2D => yddfp%XLAP2D
209 ydfa%XLAP2DA => yddfp%XLAP2DA
211 & .NOT.(
ASSOCIATED (ydfa%XLAP1D) &
212 & .AND.
ASSOCIATED (ydfa%XLAP1DA) &
213 & .AND.
ASSOCIATED (ydfa%XLAP2D) &
214 & .AND.
ASSOCIATED (ydfa%XLAP2DA))
216 CALL faregu_mt (ydfa, kunit,
'EXTERN', yddfp%IEXTERN, 1_jpim)
217 CALL faregu_mt (ydfa, kunit,
'CMODEL='//
trim(yddfp%CMODEL), 1_jpim, 1_jpim)
218 CALL faregu_mt (ydfa, kunit,
'IDCEN', yddfp%NIDCEN, 1_jpim)
220 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUP2',1,zhook_handle)
224 SUBROUTINE fadupn1 (YDDFP, KUNIT)
228 INTEGER (KIND=JPIM),
INTENT (IN) :: KUNIT
230 INTEGER (KIND=JPIM) :: NTID, ITID
232 REAL (KIND=JPRB) :: ZHOOK_HANDLE
234 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUPN1',0,zhook_handle)
238 ALLOCATE (yddfp(ntid))
241 CALL fadupu1 (yddfp(itid), kunit)
244 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUPN1',1,zhook_handle)
248 SUBROUTINE fadupn2 (YDFA, YDDFP, KUNIT)
252 type(
fa_com),
POINTER :: ydfa
254 INTEGER (KIND=JPIM),
INTENT (IN) :: KUNIT
256 INTEGER (KIND=JPIM) :: ITID
258 REAL (KIND=JPRB) :: ZHOOK_HANDLE
260 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUPN2',0,zhook_handle)
266 CALL fadupu2 (ydfa, yddfp(itid), kunit)
268 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUPN2',1,zhook_handle)
272 SUBROUTINE fadupn3 (YDFA, YDDFP, KUNIT)
275 type(
fa_com),
POINTER :: ydfa
277 INTEGER (KIND=JPIM),
INTENT (IN) :: KUNIT
279 INTEGER (KIND=JPIM) :: IREP
280 INTEGER (KIND=JPIM) :: ITID
281 REAL (KIND=JPRB) :: ZHOOK_HANDLE
283 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUPN3',0,zhook_handle)
287 IF (yddfp(itid)%LOUVR)
THEN 288 CALL fairme_mt (ydfa, irep, kunit,
'KEEP')
290 CALL fairno_mt (ydfa, irep, kunit,
'KEEP')
293 CALL fadupu3 (ydfa, yddfp(itid))
297 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUPN3',1,zhook_handle)
306 INTEGER (KIND=JPIM) :: NTID, ITID
308 REAL (KIND=JPRB) :: ZHOOK_HANDLE
310 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUPN4',0,zhook_handle)
320 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUPN4',1,zhook_handle)
324 SUBROUTINE fadupu1 (YDDFP, KUNIT)
329 INTEGER (KIND=JPIM),
INTENT (IN) :: KUNIT
331 INTEGER (KIND=JPIM) :: IERR
333 REAL (KIND=JPRB) :: ZHOOK_HANDLE
335 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUPU1',0,zhook_handle)
341 yddfp%LGARD = .false.
343 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUPU1',1,zhook_handle)
347 SUBROUTINE fadupu2 (YDFA, YDDFP, KUNIT)
352 INTEGER (KIND=JPIM),
INTENT (IN) :: KUNIT
354 INTEGER (KIND=JPIM) :: IERR
356 REAL (KIND=JPRB) :: ZHOOK_HANDLE
358 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUPU2',0,zhook_handle)
362 CALL new_lfi (ydfa%LFI, ierr, kpnxfi=yddfp%IFACT)
364 CALL fadup2 (ydfa, yddfp, kunit, ierr)
365 ydfa%LOPENMP = .false.
368 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUPU2',1,zhook_handle)
372 SUBROUTINE fadupu3 (YDFA, YDDFP)
379 INTEGER (KIND=JPIM) :: IERR
381 REAL (KIND=JPRB) :: ZHOOK_HANDLE
383 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUPU3',0,zhook_handle)
385 IF (
ASSOCIATED (ydfa%XLAP1D, yddfp%XLAP1D)) ydfa%XLAP1D => null()
386 IF (
ASSOCIATED (ydfa%XLAP1DA, yddfp%XLAP1DA)) ydfa%XLAP1DA => null()
387 IF (
ASSOCIATED (ydfa%XLAP2D, yddfp%XLAP2D)) ydfa%XLAP2D => null()
388 IF (
ASSOCIATED (ydfa%XLAP2DA, yddfp%XLAP2DA)) ydfa%XLAP2DA => null()
393 DEALLOCATE (ydfa%LFI)
396 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUPU3',1,zhook_handle)
404 REAL (KIND=JPRB) :: ZHOOK_HANDLE
406 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUPU4',0,zhook_handle)
408 DEALLOCATE (yddfp%INLOPA, yddfp%INOZPA, yddfp%ZSINLA, &
409 & yddfp%ZAHYBR, yddfp%ZBHYBR, yddfp%IDATEF)
411 NULLIFY (yddfp%INLOPA, yddfp%INOZPA, yddfp%ZSINLA, &
412 & yddfp%ZAHYBR, yddfp%ZBHYBR, yddfp%IDATEF)
414 NULLIFY (yddfp%XLAP1D, yddfp%XLAP1DA, yddfp%XLAP2D, yddfp%XLAP2DA)
416 IF (
lhook)
CALL dr_hook (
'FADUP_MOD:FADUPU4',1,zhook_handle)
subroutine fagiot_mt(FA, KNGRIB, KNARG1, KNARG2, KNARG3, KNARG4, KNARG5)
static const char * trim(const char *name, int *n)
subroutine fadupu4(YDDFP)
subroutine fadupu3(YDFA, YDDFP)
subroutine fanouv_mt(FA, KREP, KNUMER, LDNOMM, CDNOMF, CDSTTU, LDERFA, LDIMST, KNIMES, KNBARP, KNBARI, CDNOMC)
subroutine faiopt_mt(FA, KREP, KNUMER, LDNOMM, CDNOMF, CDSTTU, LDERFA, LDIMST, KNIMES, CDNOMC)
subroutine, private fadup2(YDFA, YDDFP, KUNIT, KERR)
subroutine fadiex_mt(FA, KREP, KNUMER, KDATEF)
subroutine fairno_mt(FA, KREP, KNUMER, CDSTTU)
subroutine new_lfi(LFI, KERR, KPNXFI, KPFACX)
subroutine fadupn1(YDDFP, KUNIT)
subroutine free_fa(FA, KERR)
subroutine fadupn3(YDFA, YDDFP, KUNIT)
subroutine fairme_mt(FA, KREP, KNUMER, CDSTTU)
subroutine faregu(KNUMER, CDCLEF, KVAL, KOPT)
subroutine, private fadup1(YDFA, YDDFP, KUNIT, KERR)
subroutine faitou_mt(FA, KREP, KNUMER, LDNOMM, CDNOMF, CDSTTU, LDERFA, LDIMST, KNIMES, KNBARP, KNBARI, CDNOMC)
subroutine lfiofm_mt(LFI, KREP, KNUMER, KFACTM, LDOUVR)
subroutine fadupn2(YDFA, YDDFP, KUNIT)
subroutine facies_mt(FA, CDNOMC, KTYPTR, PSLAPO, PCLOPO, PSLOPO, PCODIL, KTRONC, KNLATI, KNXLON, KNLOPA, KNOZPA, PSINLA, KNIVER, PREFER, PAHYBR, PBHYBR, LDGARD)
subroutine facade_mt(FA, CDNOMC, KTYPTR, PSLAPO, PCLOPO, PSLOPO, PCODIL, KTRONC, KNLATI, KNXLON, KNLOPA, KNOZPA, PSINLA, KNIVER, PREFER, PAHYBR, PBHYBR, LDGARD)
subroutine new_fa(FA, KERR, KPXTRO, KPXLAT, KPXNIV, KPNXFA, KPNXCA)
integer(kind=jpim) function, public oml_my_thread()
subroutine faregu_mt(FA, KNUMER, CDCLEF, KVAL, KOPT)
type(fa_com), target, save fa_com_default
subroutine fadupu2(YDFA, YDDFP, KUNIT)
subroutine free_lfi(LFI, KERR)
subroutine favori_mt(FA, KNGRIB, KNBPDG, KNBCSP, KSTRON, KPUILA, KDMOPL)
subroutine lfiafm_mt(LFI, KREP, KNUMER, KFACTM)
subroutine fadupu1(YDDFP, KUNIT)
subroutine fandax_mt(FA, KREP, KNUMER, KDATEF)
subroutine fadupn4(YDDFP)