6 SUBROUTINE diag_surf_atm_n (DGEI, DGF, DGL, DGI, DGS, DGU, DGT, DGW, U, USS, &
55 USE modi_diag_nature_n
57 USE modi_diag_inland_water_n
61 USE modi_minzs_vert_shift
64 USE yomhook
,ONLY : lhook, dr_hook
65 USE parkind1
,ONLY : jprb
83 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
89 LOGICAL :: gnature, gtown, gwater, gsea
92 REAL,
DIMENSION(SIZE(U%XSEA),NTILESFC) :: zfrac_tile
93 INTEGER,
DIMENSION(5) :: ifact
94 REAL(KIND=JPRB) :: zhook_handle
99 IF (lhook) CALL dr_hook(
'DIAG_SURF_ATM_N',0,zhook_handle)
105 gwater = u%NDIM_WATER >0
106 gtown = u%NDIM_TOWN >0
107 gnature = u%NDIM_NATURE >0
115 zfrac_tile(:,:) = 0.0
118 jsw =
SIZE(dgu%XSWBD_TILE,3)
133 zfrac_tile(:,jtile) = u%XSEA(:)
135 CALL
treat_surf(jtile,u%NSIZE_SEA,u%NR_SEA,ifact)
147 zfrac_tile(:,jtile) = u%XWATER(:)
149 CALL
treat_surf(jtile,u%NSIZE_WATER,u%NR_WATER,ifact)
160 zfrac_tile(:,jtile) = u%XNATURE(:)
162 CALL
treat_surf(jtile,u%NSIZE_NATURE,u%NR_NATURE,ifact)
174 zfrac_tile(:,jtile) = u%XTOWN(:)
176 CALL
treat_surf(jtile,u%NSIZE_TOWN,u%NR_TOWN,ifact)
184 CALL
average_diag(dgu%N2M, dgu%LT2MMW, dgu%LSURF_BUDGET, dgu%LSURF_BUDGETC, dgu%LCOEF, dgu%LSURF_VARS, &
185 zfrac_tile, dgu%XRN_TILE, dgu%XH_TILE, dgu%XLE_TILE, dgu%XLEI_TILE , &
186 dgu%XGFLUX_TILE,dgu%XRI_TILE, dgu%XCD_TILE, dgu%XCH_TILE, dgu%XCE_TILE, &
187 dgu%XT2M_TILE, dgu%XTS_TILE, dgu%XQ2M_TILE, dgu%XHU2M_TILE, &
188 dgu%XZON10M_TILE, dgu%XMER10M_TILE, &
189 dgu%XQS_TILE, dgu%XZ0_TILE, dgu%XZ0H_TILE, &
190 dgu%XSWD_TILE, dgu%XSWU_TILE, dgu%XSWBD_TILE, dgu%XSWBU_TILE, &
191 dgu%XLWD_TILE, dgu%XLWU_TILE, dgu%XFMU_TILE, dgu%XFMV_TILE, &
192 dgu%XRNC_TILE, dgu%XHC_TILE, dgu%XLEC_TILE, dgu%XGFLUXC_TILE, &
193 dgu%XSWDC_TILE, dgu%XSWUC_TILE, dgu%XLWDC_TILE, dgu%XLWUC_TILE, &
194 dgu%XFMUC_TILE, dgu%XFMVC_TILE, dgu%XT2M_MIN_TILE, &
195 dgu%XT2M_MAX_TILE, dgu%XLEIC_TILE, &
196 dgu%XAVG_RN, dgu%XAVG_H, dgu%XAVG_LE, dgu%XAVG_LEI, dgu%XAVG_GFLUX, &
197 dgu%XAVG_RI, dgu%XAVG_CD, dgu%XAVG_CH, dgu%XAVG_CE, &
198 dgu%XAVG_T2M, dgu%XAVG_TS, dgu%XAVG_Q2M, dgu%XAVG_HU2M, &
199 dgu%XAVG_ZON10M, dgu%XAVG_MER10M, &
200 dgu%XAVG_QS, dgu%XAVG_Z0, dgu%XAVG_Z0H, &
201 dgu%XDIAG_UREF, dgu%XDIAG_ZREF, &
202 dgu%XAVG_SWD, dgu%XAVG_SWU, dgu%XAVG_SWBD, dgu%XAVG_SWBU, &
203 dgu%XAVG_LWD, dgu%XAVG_LWU, dgu%XAVG_FMU, dgu%XAVG_FMV, &
204 dgu%XAVG_RNC, dgu%XAVG_HC, dgu%XAVG_LEC, dgu%XAVG_GFLUXC, &
205 dgu%XAVG_SWDC, dgu%XAVG_SWUC, dgu%XAVG_LWDC, dgu%XAVG_LWUC, &
206 dgu%XAVG_FMUC, dgu%XAVG_FMVC, dgu%XAVG_T2M_MIN, &
207 dgu%XAVG_T2M_MAX, dgu%XAVG_LEIC, &
208 dgu%XHU2M_MIN_TILE, dgu%XHU2M_MAX_TILE, dgu%XAVG_HU2M_MIN, &
209 dgu%XAVG_HU2M_MAX, dgu%XWIND10M_TILE, dgu%XWIND10M_MAX_TILE, &
210 dgu%XAVG_WIND10M, dgu%XAVG_WIND10M_MAX, &
211 dgu%XEVAP_TILE, dgu%XEVAPC_TILE, dgu%XAVG_EVAP, dgu%XAVG_EVAPC, &
212 dgu%XSUBL_TILE, dgu%XSUBLC_TILE, dgu%XAVG_SUBL, dgu%XAVG_SUBLC )
218 IF (dgu%L2M_MIN_ZS) CALL
get_2m
220 IF (lhook) CALL dr_hook(
'DIAG_SURF_ATM_N',1,zhook_handle)
225 REAL,
DIMENSION(SIZE(U%XSEA)) :: zps
226 REAL,
DIMENSION(SIZE(U%XSEA)) :: zrhoa
227 REAL(KIND=JPRB) :: zhook_handle
229 IF (lhook) CALL dr_hook(
'DIAG_SURF_ATM_n:GET_2M',0,zhook_handle)
231 CALL
minzs_vert_shift(u%XZS,uss%XMIN_ZS,dgu%XAVG_T2M,dgu%XAVG_Q2M,dgu%XPS,dgu%XRHOA, &
232 dgu%XAVG_T2M_MIN_ZS,dgu%XAVG_Q2M_MIN_ZS,zps,zrhoa)
233 dgu%XAVG_HU2M_MIN_ZS = dgu%XAVG_HU2M
235 IF (lhook) CALL dr_hook(
'DIAG_SURF_ATM_n:GET_2M',1,zhook_handle)
245 INTEGER,
DIMENSION(5),
INTENT(OUT) :: kfact
246 REAL(KIND=JPRB) :: zhook_handle
248 IF (lhook) CALL dr_hook(
'DIAG_SURF_ATM_n:GET_DIMS',0,zhook_handle)
252 IF (dgu%LSURF_BUDGET) kfact(1)=1
254 IF (dgu%LSURF_BUDGETC) kfact(2)=1
256 IF (dgu%N2M>=1) kfact(3)=1
258 IF (dgu%LCOEF) kfact(4)=1
260 IF (dgu%LSURF_VARS) kfact(5)=1
262 IF (lhook) CALL dr_hook(
'DIAG_SURF_ATM_n:GET_DIMS',1,zhook_handle)
272 INTEGER,
INTENT(IN) :: ktile
273 INTEGER,
INTENT(IN) :: ksize
274 INTEGER,
DIMENSION(:),
INTENT(IN) :: kmask
275 INTEGER,
DIMENSION(5),
INTENT(IN) :: kfact
277 REAL,
DIMENSION(KSIZE) :: zp_ts
279 REAL,
DIMENSION(KSIZE*KFACT(1)) :: zp_rn
280 REAL,
DIMENSION(KSIZE*KFACT(1)) :: zp_h
281 REAL,
DIMENSION(KSIZE*KFACT(1)) :: zp_le
282 REAL,
DIMENSION(KSIZE*KFACT(1)) :: zp_lei
283 REAL,
DIMENSION(KSIZE*KFACT(1)) :: zp_gflux
284 REAL,
DIMENSION(KSIZE*KFACT(1)) :: zp_evap
285 REAL,
DIMENSION(KSIZE*KFACT(1)) :: zp_subl
287 REAL,
DIMENSION(KSIZE*KFACT(1)) :: zp_swd
288 REAL,
DIMENSION(KSIZE*KFACT(1)) :: zp_swu
289 REAL,
DIMENSION(KSIZE*KFACT(1),JSW*KFACT(1)) :: zp_swbd
290 REAL,
DIMENSION(KSIZE*KFACT(1),JSW*KFACT(1)) :: zp_swbu
291 REAL,
DIMENSION(KSIZE*KFACT(1)) :: zp_lwd
292 REAL,
DIMENSION(KSIZE*KFACT(1)) :: zp_lwu
293 REAL,
DIMENSION(KSIZE*KFACT(1)) :: zp_fmu
294 REAL,
DIMENSION(KSIZE*KFACT(1)) :: zp_fmv
296 REAL,
DIMENSION(KSIZE*KFACT(2)) :: zp_rnc
297 REAL,
DIMENSION(KSIZE*KFACT(2)) :: zp_hc
298 REAL,
DIMENSION(KSIZE*KFACT(2)) :: zp_lec
299 REAL,
DIMENSION(KSIZE*KFACT(2)) :: zp_leic
300 REAL,
DIMENSION(KSIZE*KFACT(2)) :: zp_gfluxc
301 REAL,
DIMENSION(KSIZE*KFACT(2)) :: zp_evapc
302 REAL,
DIMENSION(KSIZE*KFACT(2)) :: zp_sublc
303 REAL,
DIMENSION(KSIZE*KFACT(2)) :: zp_swdc
304 REAL,
DIMENSION(KSIZE*KFACT(2)) :: zp_swuc
305 REAL,
DIMENSION(KSIZE*KFACT(2)) :: zp_lwdc
306 REAL,
DIMENSION(KSIZE*KFACT(2)) :: zp_lwuc
307 REAL,
DIMENSION(KSIZE*KFACT(2)) :: zp_fmuc
308 REAL,
DIMENSION(KSIZE*KFACT(2)) :: zp_fmvc
310 REAL,
DIMENSION(KSIZE*KFACT(3)) :: zp_ri
311 REAL,
DIMENSION(KSIZE*KFACT(3)) :: zp_t2m
312 REAL,
DIMENSION(KSIZE*KFACT(3)) :: zp_t2m_min
313 REAL,
DIMENSION(KSIZE*KFACT(3)) :: zp_t2m_max
314 REAL,
DIMENSION(KSIZE*KFACT(3)) :: zp_q2m
315 REAL,
DIMENSION(KSIZE*KFACT(3)) :: zp_hu2m
316 REAL,
DIMENSION(KSIZE*KFACT(3)) :: zp_hu2m_min
317 REAL,
DIMENSION(KSIZE*KFACT(3)) :: zp_hu2m_max
318 REAL,
DIMENSION(KSIZE*KFACT(3)) :: zp_zon10m
319 REAL,
DIMENSION(KSIZE*KFACT(3)) :: zp_mer10m
320 REAL,
DIMENSION(KSIZE*KFACT(3)) :: zp_wind10m
321 REAL,
DIMENSION(KSIZE*KFACT(3)) :: zp_wind10m_max
323 REAL,
DIMENSION(KSIZE*KFACT(4)) :: zp_cd
324 REAL,
DIMENSION(KSIZE*KFACT(4)) :: zp_ch
325 REAL,
DIMENSION(KSIZE*KFACT(4)) :: zp_ce
326 REAL,
DIMENSION(KSIZE*KFACT(4)) :: zp_z0
327 REAL,
DIMENSION(KSIZE*KFACT(4)) :: zp_z0h
329 REAL,
DIMENSION(KSIZE*KFACT(5)) :: zp_qs
332 REAL(KIND=JPRB) :: zhook_handle
334 IF (lhook) CALL dr_hook(
'DIAG_SURF_ATM_n:TREAT_SURF',0,zhook_handle)
340 zp_rn, zp_h, zp_le, zp_lei, zp_gflux, &
341 zp_ri, zp_cd, zp_ch, zp_ce, &
342 zp_qs, zp_z0, zp_z0h, &
343 zp_t2m, zp_ts, zp_q2m, zp_hu2m, &
344 zp_zon10m, zp_mer10m, &
345 zp_swd, zp_swu, zp_swbd, zp_swbu, &
346 zp_lwd, zp_lwu, zp_fmu, zp_fmv, &
347 zp_rnc, zp_hc, zp_lec, zp_gfluxc, &
348 zp_swdc, zp_swuc, zp_lwdc, zp_lwuc, &
349 zp_fmuc, zp_fmvc, zp_t2m_min, &
350 zp_t2m_max, zp_leic, zp_hu2m_min, &
351 zp_hu2m_max, zp_wind10m, &
353 zp_evap, zp_evapc, zp_subl, zp_sublc )
355 ELSEIF (ktile==2)
THEN
359 zp_rn, zp_h, zp_le, zp_lei, zp_gflux,&
360 zp_ri, zp_cd, zp_ch, zp_ce, &
361 zp_qs, zp_z0, zp_z0h, &
362 zp_t2m, zp_ts, zp_q2m, zp_hu2m, &
363 zp_zon10m, zp_mer10m, &
364 zp_swd, zp_swu, zp_swbd, zp_swbu, &
365 zp_lwd, zp_lwu, zp_fmu, zp_fmv, &
366 zp_rnc, zp_hc, zp_lec, zp_gfluxc, &
367 zp_swdc, zp_swuc, zp_lwdc, zp_lwuc, &
368 zp_fmuc, zp_fmvc, zp_t2m_min, &
369 zp_t2m_max, zp_leic, zp_hu2m_min, &
370 zp_hu2m_max, zp_wind10m, &
372 zp_evap, zp_evapc, zp_subl, zp_sublc )
374 ELSEIF (ktile==3)
THEN
378 zp_rn, zp_h, zp_le, zp_lei, zp_gflux,&
379 zp_ri, zp_cd, zp_ch, zp_ce, &
380 zp_qs, zp_z0, zp_z0h, &
381 zp_t2m, zp_ts, zp_q2m, zp_hu2m, &
382 zp_zon10m, zp_mer10m, &
383 zp_swd, zp_swu, zp_swbd, zp_swbu, &
384 zp_lwd, zp_lwu, zp_fmu, zp_fmv, &
385 zp_rnc, zp_hc, zp_lec, zp_gfluxc, &
386 zp_swdc, zp_swuc, zp_lwdc, zp_lwuc, &
387 zp_fmuc, zp_fmvc, zp_t2m_min, &
388 zp_t2m_max, zp_leic, zp_hu2m_min, &
389 zp_hu2m_max, zp_wind10m, &
391 zp_evap, zp_evapc, zp_subl, zp_sublc )
393 ELSEIF (ktile==4)
THEN
397 zp_rn, zp_h, zp_le, zp_lei, zp_gflux,&
398 zp_ri, zp_cd, zp_ch, zp_ce, &
399 zp_qs, zp_z0, zp_z0h, &
400 zp_t2m, zp_ts, zp_q2m, zp_hu2m, &
401 zp_zon10m, zp_mer10m, &
402 zp_swd, zp_swu, zp_swbd, zp_swbu, &
403 zp_lwd, zp_lwu, zp_fmu, zp_fmv, &
404 zp_rnc, zp_hc, zp_lec, zp_gfluxc, &
405 zp_swdc, zp_swuc, zp_lwdc, zp_lwuc, &
406 zp_fmuc, zp_fmvc, zp_t2m_min, &
407 zp_t2m_max, zp_leic, zp_hu2m_min, &
408 zp_hu2m_max, zp_wind10m, &
410 zp_evap, zp_evapc, zp_subl, zp_sublc )
415 IF (dgu%LSURF_BUDGET)
THEN
417 dgu%XRN_TILE (kmask(jj),ktile) = zp_rn(jj)
418 dgu%XH_TILE (kmask(jj),ktile) = zp_h(jj)
419 dgu%XLE_TILE (kmask(jj),ktile) = zp_le(jj)
420 dgu%XLEI_TILE (kmask(jj),ktile) = zp_lei(jj)
421 dgu%XGFLUX_TILE (kmask(jj),ktile) = zp_gflux(jj)
422 dgu%XEVAP_TILE (kmask(jj),ktile) = zp_evap(jj)
423 dgu%XSUBL_TILE (kmask(jj),ktile) = zp_subl(jj)
424 dgu%XSWD_TILE (kmask(jj),ktile) = zp_swd(jj)
425 dgu%XSWU_TILE (kmask(jj),ktile) = zp_swu(jj)
426 dgu%XLWD_TILE (kmask(jj),ktile) = zp_lwd(jj)
427 dgu%XLWU_TILE (kmask(jj),ktile) = zp_lwu(jj)
428 dgu%XFMU_TILE (kmask(jj),ktile) = zp_fmu(jj)
429 dgu%XFMV_TILE (kmask(jj),ktile) = zp_fmv(jj)
430 DO jjsw=1,
SIZE(dgu%XSWBD_TILE,3)
431 dgu%XSWBD_TILE (kmask(jj),ktile,jjsw) = zp_swbd(jj,jjsw)
432 dgu%XSWBU_TILE (kmask(jj),ktile,jjsw) = zp_swbu(jj,jjsw)
437 IF (dgu%LSURF_BUDGETC)
THEN
439 dgu%XRNC_TILE (kmask(jj),ktile) = zp_rnc(jj)
440 dgu%XHC_TILE (kmask(jj),ktile) = zp_hc(jj)
441 dgu%XLEC_TILE (kmask(jj),ktile) = zp_lec(jj)
442 dgu%XLEIC_TILE (kmask(jj),ktile) = zp_leic(jj)
443 dgu%XGFLUXC_TILE (kmask(jj),ktile) = zp_gfluxc(jj)
444 dgu%XEVAPC_TILE (kmask(jj),ktile) = zp_evapc(jj)
445 dgu%XSUBLC_TILE (kmask(jj),ktile) = zp_sublc(jj)
446 dgu%XSWDC_TILE (kmask(jj),ktile) = zp_swdc(jj)
447 dgu%XSWUC_TILE (kmask(jj),ktile) = zp_swuc(jj)
448 dgu%XLWDC_TILE (kmask(jj),ktile) = zp_lwdc(jj)
449 dgu%XLWUC_TILE (kmask(jj),ktile) = zp_lwuc(jj)
450 dgu%XFMUC_TILE (kmask(jj),ktile) = zp_fmuc(jj)
451 dgu%XFMVC_TILE (kmask(jj),ktile) = zp_fmvc(jj)
456 dgu%XTS_TILE (kmask(jj),ktile) = zp_ts(jj)
461 dgu%XRI_TILE (kmask(jj),ktile) = zp_ri(jj)
462 dgu%XT2M_TILE (kmask(jj),ktile) = zp_t2m(jj)
463 dgu%XT2M_MIN_TILE (kmask(jj),ktile) = zp_t2m_min(jj)
464 dgu%XT2M_MAX_TILE (kmask(jj),ktile) = zp_t2m_max(jj)
465 dgu%XQ2M_TILE (kmask(jj),ktile) = zp_q2m(jj)
466 dgu%XHU2M_TILE (kmask(jj),ktile) = zp_hu2m(jj)
467 dgu%XHU2M_MIN_TILE(kmask(jj),ktile) = zp_hu2m_min(jj)
468 dgu%XHU2M_MAX_TILE(kmask(jj),ktile) = zp_hu2m_max(jj)
469 dgu%XZON10M_TILE (kmask(jj),ktile) = zp_zon10m(jj)
470 dgu%XMER10M_TILE (kmask(jj),ktile) = zp_mer10m(jj)
471 dgu%XWIND10M_TILE (kmask(jj),ktile) = zp_wind10m(jj)
472 dgu%XWIND10M_MAX_TILE (kmask(jj),ktile) = zp_wind10m_max(jj)
478 dgu%XCD_TILE (kmask(jj),ktile) = zp_cd(jj)
479 dgu%XCH_TILE (kmask(jj),ktile) = zp_ch(jj)
480 dgu%XCE_TILE (kmask(jj),ktile) = zp_ce(jj)
481 dgu%XZ0_TILE (kmask(jj),ktile) = zp_z0(jj)
482 dgu%XZ0H_TILE (kmask(jj),ktile) = zp_z0h(jj)
485 IF (dgu%LSURF_VARS)
THEN
487 dgu%XQS_TILE (kmask(jj),ktile) = zp_qs(jj)
491 IF (lhook) CALL dr_hook(
'DIAG_SURF_ATM_n:TREAT_SURF',1,zhook_handle)
subroutine diag_inland_water_n(DGF, DGL, DGW, U, HPROGRAM, PRN, PH, PLE, PLEI, PGFLUX, PRI, PCD, PCH, PCE, PQS, PZ0, PZ0H, PT2M, PTS, PQ2M, PHU2M, PZON10M, PMER10M, PSWD, PSWU, PSWBD, PSWBU, PLWD, PLWU, PFMU, PFMV, PRNC, PHC, PLEC, PGFLUXC, PSWDC, PSWUC, PLWDC, PLWUC, PFMUC, PFMVC, PT2M_MIN, PT2M_MAX, PLEIC, PHU2M_MIN, PHU2M_MAX, PWIND10M, PWIND10M_MAX, PEVAP, PEVAPC, PSUBL, PSUBLC)
subroutine get_dims(KFACT)
subroutine diag_sea_n(DGL, DGS, U, HPROGRAM, PRN, PH, PLE, PLEI, PGFLUX, PRI, PCD, PCH, PCE, PQS, PZ0, PZ0H, PT2M, PTS, PQ2M, PHU2M, PZON10M, PMER10M, PSWD, PSWU, PSWBD, PSWBU, PLWD, PLWU, PFMU, PFMV, PRNC, PHC, PLEC, PGFLUXC, PSWDC, PSWUC, PLWDC, PLWUC, PFMUC, PFMVC, PT2M_MIN, PT2M_MAX, PLEIC, PHU2M_MIN, PHU2M_MAX, PWIND10M, PWIND10M_MAX, PEVAP, PEVAPC, PSUBL, PSUBLC)
subroutine diag_town_n(DGL, DGT, U, HPROGRAM, PRN, PH, PLE, PLEI, PGFLUX, PRI, PCD, PCH, PCE, PQS, PZ0, PZ0H, PT2M, PTS, PQ2M, PHU2M, PZON10M, PMER10M, PSWD, PSWU, PSWBD, PSWBU, PLWD, PLWU, PFMU, PFMV, PRNC, PHC, PLEC, PGFLUXC, PSWDC, PSWUC, PLWDC, PLWUC, PFMUC, PFMVC, PT2M_MIN, PT2M_MAX, PLEIC, PHU2M_MIN, PHU2M_MAX, PWIND10M, PWIND10M_MAX, PEVAP, PEVAPC, PSUBL, PSUBLC)
subroutine minzs_vert_shift(PZS_MOY, PZS_MIN, PTA_2M, PQA_2M, PPA_2M, PRHOA_2M, PTA_2M_MIN, PQA_2M_MIN, PPA_2M_MIN, PRHOA_2M_MIN)
subroutine average_diag(K2M, OT2MMW, OSURF_BUDGET, OSURF_BUDGETC, OCOEF, OSURF_VARS, PFRAC_TILE, PRN_TILE, PH_TILE, PLE_TILE, PLEI_TILE, PGFLUX_TILE, PRI_TILE, PCD_TILE, PCH_TILE, PCE_TILE, PT2M_TILE, PTS_TILE, PQ2M_TILE, PHU2M_TILE, PZON10M_TILE, PMER10M_TILE, PQS_TILE, PZ0_TILE, PZ0H_TILE, PSWD_TILE, PSWU_TILE, PSWBD_TILE, PSWBU_TILE, PLWD_TILE, PLWU_TILE, PFMU_TILE, PFMV_TILE, PRNC_TILE, PHC_TILE, PLEC_TILE, PGFLUXC_TILE, PSWDC_TILE, PSWUC_TILE, PLWDC_TILE, PLWUC_TILE, PFMUC_TILE, PFMVC_TILE, PT2M_MIN_TILE, PT2M_MAX_TILE, PLEIC_TILE, PRN, PH, PLE, PLEI, PGFLUX, PRI, PCD, PCH, PCE, PT2M, PTS, PQ2M, PHU2M, PZON10M, PMER10M, PQS, PZ0, PZ0H, PUREF, PZREF, PSWD, PSWU, PSWBD, PSWBU, PLWD, PLWU, PFMU, PFMV, PRNC, PHC, PLEC, PGFLUXC, PSWDC, PSWUC, PLWDC, PLWUC, PFMUC, PFMVC, PT2M_MIN, PT2M_MAX, PLEIC, PHU2M_MIN_TILE, PHU2M_MAX_TILE, PHU2M_MIN, PHU2M_MAX, PWIND10M_TILE, PWIND10M_MAX_TILE, PWIND10M, PWIND10M_MAX, PEVAP_TILE, PEVAPC_TILE, PEVAP, PEVAPC, PSUBL_TILE, PSUBLC_TILE, PSUBL, PSUBLC)
subroutine treat_surf(KMASK, YTYPE)
subroutine diag_surf_atm_n(DGEI, DGF, DGL, DGI, DGS, DGU, DGT, DGW, U, USS, HPROGRAM)
subroutine diag_nature_n(DGEI, DGL, DGI, U, HPROGRAM, PRN, PH, PLE, PLEI, PGFLUX, PRI, PCD, PCH, PCE, PQS, PZ0, PZ0H, PT2M, PTS, PQ2M, PHU2M, PZON10M, PMER10M, PSWD, PSWU, PSWBD, PSWBU, PLWD, PLWU, PFMU, PFMV, PRNC, PHC, PLEC, PGFLUXC, PSWDC, PSWUC, PLWDC, PLWUC, PFMUC, PFMVC, PT2M_MIN, PT2M_MAX, PLEIC, PHU2M_MIN, PHU2M_MAX, PWIND10M, PWIND10M_MAX, PEVAP, PEVAPC, PSUBL, PSUBLC)