7 KSIZE_FULL, TPTIME, HPROGRAM,KSW)
28 USE modd_data_cover_par
, ONLY : ntilesfc
44 TYPE(
diag_t),
INTENT(INOUT) :: D
45 TYPE(
diag_t),
INTENT(INOUT) :: DC
49 INTEGER,
INTENT(IN) :: KSIZE_FULL
52 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
53 INTEGER,
INTENT(IN) :: KSW
61 CHARACTER(LEN=12) :: YREC
62 REAL(KIND=JPRB) :: ZHOOK_HANDLE
66 IF (
lhook)
CALL dr_hook(
'ALLOC_DIAG_SURF_ATM_N',0,zhook_handle)
72 CALL alloc_diag(nd%AL(jtile),.false.,ksize_full,ksw)
82 ALLOCATE(d%XSFCO2 (ksize_full))
84 ALLOCATE(d%XT2M_MIN_ZS (ksize_full))
85 ALLOCATE(d%XQ2M_MIN_ZS (ksize_full))
86 ALLOCATE(d%XHU2M_MIN_ZS (ksize_full))
88 ALLOCATE(d%XPS (ksize_full))
89 ALLOCATE(d%XRHOA (ksize_full))
91 ALLOCATE(d%XSSO_FMU (ksize_full))
92 ALLOCATE(d%XSSO_FMV (ksize_full))
94 ALLOCATE(d%XUREF (ksize_full))
95 ALLOCATE(d%XZREF (ksize_full))
96 ALLOCATE(d%XTRAD (ksize_full))
97 ALLOCATE(d%XEMIS (ksize_full))
116 IF (dgo%LSURF_BUDGETC)
THEN 118 DO jtile = 1,ntilesfc
120 CALL alloc_diag(ndc%AL(jtile),.true.,ksize_full,0)
128 CALL read_surf(hprogram,yrec,dgo%LREAD_BUDGETC,iresp)
130 IF (.NOT. dgo%LREAD_BUDGETC .OR. (dgo%LREAD_BUDGETC.AND.dgo%LRESET_BUDGETC
THEN 132 dgo%TIME_BUDGETC = tptime
138 CALL read_surf(hprogram,yrec,dgo%TIME_BUDGETC,iresp)
141 CALL read_surf(hprogram,yrec,dc%XRN,iresp)
143 CALL read_surf(hprogram,yrec,dc%XH ,iresp)
145 CALL read_surf(hprogram,yrec,dc%XLE,iresp)
147 CALL read_surf(hprogram,yrec,dc%XLEI,iresp)
149 CALL read_surf(hprogram,yrec,dc%XGFLUX ,iresp)
152 CALL read_surf(hprogram,yrec,dc%XSWD,iresp)
154 CALL read_surf(hprogram,yrec,dc%XSWU,iresp)
156 CALL read_surf(hprogram,yrec,dc%XLWD,iresp)
158 CALL read_surf(hprogram,yrec,dc%XLWU,iresp)
161 CALL read_surf(hprogram,yrec,dc%XFMU,iresp)
163 CALL read_surf(hprogram,yrec,dc%XFMV,iresp)
165 CALL read_surf(hprogram,
'VERSION',iversion,iresp)
171 CALL read_surf(hprogram,yrec,dc%XEVAP,iresp)
173 CALL read_surf(hprogram,yrec,dc%XSUBL,iresp)
187 IF (
lhook)
CALL dr_hook(
'ALLOC_DIAG_SURF_ATM_N',1,zhook_handle)
193 TYPE(
diag_t),
INTENT(INOUT) :: DA
194 LOGICAL,
INTENT(IN) :: OCUM
195 INTEGER,
INTENT(IN) :: KSIZE1
196 INTEGER,
INTENT(IN) :: KSIZE2
197 REAL(KIND=JPRB) :: ZHOOK_HANDLE
199 IF (
lhook)
CALL dr_hook(
'ALLOC_DIAG_SURF_ATM_N:ALLOC_DIAG',0,zhook_handle
203 ALLOCATE(da%XRI (ksize1))
204 ALLOCATE(da%XCD (ksize1))
205 ALLOCATE(da%XCH (ksize1))
206 ALLOCATE(da%XCE (ksize1))
208 ALLOCATE(da%XT2M (ksize1))
209 ALLOCATE(da%XTS (ksize1))
210 ALLOCATE(da%XT2M_MIN(ksize1))
211 ALLOCATE(da%XT2M_MAX(ksize1))
212 ALLOCATE(da%XQ2M (ksize1))
213 ALLOCATE(da%XHU2M (ksize1))
214 ALLOCATE(da%XHU2M_MIN(ksize1))
215 ALLOCATE(da%XHU2M_MAX(ksize1))
216 ALLOCATE(da%XZON10M (ksize1))
217 ALLOCATE(da%XMER10M (ksize1))
219 ALLOCATE(da%XSWBD (ksize1,ksize2))
220 ALLOCATE(da%XSWBU (ksize1,ksize2))
222 ALLOCATE(da%XQS (ksize1))
223 ALLOCATE(da%XZ0 (ksize1))
224 ALLOCATE(da%XZ0H (ksize1))
226 ALLOCATE(da%XWIND10M(ksize1))
227 ALLOCATE(da%XWIND10M_MAX(ksize1))
231 ALLOCATE(da%XSWBD (0,0))
232 ALLOCATE(da%XSWBU (0,0))
236 ALLOCATE(da%XRN (ksize1))
237 ALLOCATE(da%XH (ksize1))
238 ALLOCATE(da%XLE (ksize1))
239 ALLOCATE(da%XLEI (ksize1))
240 ALLOCATE(da%XGFLUX (ksize1))
241 ALLOCATE(da%XEVAP (ksize1))
242 ALLOCATE(da%XSUBL (ksize1))
244 ALLOCATE(da%XSWD (ksize1))
245 ALLOCATE(da%XSWU (ksize1))
247 ALLOCATE(da%XLWD (ksize1))
248 ALLOCATE(da%XLWU (ksize1))
249 ALLOCATE(da%XFMU (ksize1))
250 ALLOCATE(da%XFMV (ksize1))
252 IF (
lhook)
CALL dr_hook(
'ALLOC_DIAG_SURF_ATM_N:ALLOC_DIAG',1,zhook_handle
258 TYPE(
diag_t),
INTENT(INOUT) :: DA
259 LOGICAL,
INTENT(IN) :: OCUM
260 REAL,
INTENT(IN) :: PVAL
261 REAL(KIND=JPRB) :: ZHOOK_HANDLE
263 IF (
lhook)
CALL dr_hook(
'ALLOC_DIAG_SURF_ATM_N:INIT_DIAG',0,zhook_handle
291 da%XWIND10M_MAX = pval
310 IF (
lhook)
CALL dr_hook(
'ALLOC_DIAG_SURF_ATM_N:INIT_DIAG',1,zhook_handle
subroutine alloc_diag_surf_atm_n(DGO, D, DC, ND, NDC, KSIZE_FULL, TPTIME, HPROGRAM, KSW)
subroutine alloc_diag(DA, OCUM, KSIZE1, KSIZE2)
subroutine init_diag(DA, OCUM, PVAL)