7 IO, S, NP, NPE, HPROGRAM)
61 USE modd_io_surf_aro
, ONLY : nblock
74 USE modd_agri
, ONLY : lagrip
78 USE modi_init_io_surf_n
80 USE modi_end_io_surf_n
81 USE modi_write_field_1d_patch
103 TYPE(
dst_np_t),
INTENT(INOUT) :: NDST
110 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
119 CHARACTER(LEN=12) :: YRECFM
120 CHARACTER(LEN=100):: YCOMMENT
121 CHARACTER(LEN=2) :: YNUM
124 INTEGER :: JSV, JSW, JP, ISIZE
125 INTEGER :: ISIZE_LMEB_PATCH
126 REAL(KIND=JPRB) :: ZHOOK_HANDLE
132 IF (
lhook)
CALL dr_hook(
'WRITE_DIAG_SEB_ISBA_N',0,zhook_handle)
134 isize_lmeb_patch=
count(io%LMEB_PATCH(:))
141 IF (
ldef) greset = .false.
145 IF (id%O%LSURF_BUDGET .AND. duo%LRESETCUMUL .AND. id%O%LSURF_BUDGETC .AND.
THEN 154 IF (id%DE%LSURF_EVAP_BUDGET)
THEN 160 IF (id%DE%LWATER_BUDGET)
THEN 171 IF ( id%DM%LPROSNOW )
THEN 172 CALL init_io_surf_n(dtco, u, hprogram,
'NATURE',
'ISBA ',
'WRITE',
'ISBA_PROGNOSTIC.OUT.nc' 174 CALL init_io_surf_n(dtco, u, hprogram,
'NATURE',
'ISBA ',
'WRITE',
'ISBA_DIAGNOSTICS.OUT.nc' 182 IF (id%O%N2M>=1)
THEN 185 ycomment=
'Richardson number over tile nature' 186 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XRI(:),iresp,hcomment
193 IF (id%O%LSURF_BUDGET)
THEN 196 ycomment=
'total albedo over tile nature (-)' 197 CALL write_surf(duo%CSELECT, hprogram,yrecfm,id%D%XALBT(:),iresp,hcomment
200 ycomment=
'Net radiation over tile nature'//
' (W/m2)' 201 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XRN(:),iresp,hcomment
204 ycomment=
'Sensible heat flux over tile nature'//
' (W/m2)' 205 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XH(:),iresp,hcomment=ycomment
208 ycomment=
'total latent heat flux over tile nature'//
' (W/m2)' 209 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XLE(:),iresp,hcomment
212 ycomment=
'sublimation latent heat flux over tile nature'//
' (W/m2)' 213 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XLEI(:),iresp,hcomment
216 ycomment=
'Ground flux over tile nature'//
' (W/m2)' 217 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XGFLUX(:),iresp,hcomment
220 ycomment=
'total evaporative flux for tile nature'//
' (Kg/m2/s)' 221 CALL write_surf(duo%CSELECT, hprogram,yrecfm,id%D%XEVAP(:),iresp,hcomment
224 ycomment=
'sublimation flux for tile nature'//
' (Kg/m2/s)' 225 CALL write_surf(duo%CSELECT, hprogram,yrecfm,id%D%XSUBL(:),iresp,hcomment
227 IF (id%O%LRAD_BUDGET .OR. (id%O%LSURF_BUDGETC .AND. .NOT.duo%LRESET_BUDGETC
THEN 230 ycomment=
'short wave downward radiation over tile nature'//
' (W/m2)' 231 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XSWD(:),iresp,hcomment
234 ycomment=
'short wave upward radiation over tile nature'//
' (W/m2)' 235 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XSWU(:),iresp,hcomment
238 ycomment=
'long wave downward radiation over tile nature'//
' (W/m2)' 239 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XLWD(:),iresp,hcomment
242 ycomment=
'long wave upward radiation over tile nature'//
' (W/m2)' 243 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XLWU(:),iresp,hcomment
248 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 250 hprogram,yrecfm,id%D%XSWBD(:,:),iresp,hcomment=ycomment, hnam_dim
253 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 255 hprogram,yrecfm,id%D%XSWBU(:,:),iresp,hcomment=ycomment, hnam_dim
259 DO jsw=1,
SIZE(id%D%XSWBD,2)
262 yrecfm=
'SWD_ISBA_'//ynum
263 ycomment=
'short wave downward radiation over tile nature for spectral band'' (W/m2)' 264 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XSWBD(:,jsw),iresp
266 yrecfm=
'SWU_ISBA_'//ynum
267 ycomment=
'short wave upward radiation over tile nature for spectral band'' (W/m2)' 268 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XSWBU(:,jsw),iresp
277 ycomment=
'u component of wind stress'//
' (Pa)' 278 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XFMU(:),iresp,hcomment
281 ycomment=
'v component of wind stress'//
' (Pa)' 282 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XFMV(:),iresp,hcomment
289 IF (id%DE%LSURF_EVAP_BUDGET)
CALL write_evap_bud(id%DE,
"_ISBA ",.false.)
294 IF (id%O%N2M>=1)
THEN 297 ycomment=
'X_Y_'//yrecfm//
' (K)' 298 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XT2M(:),iresp,hcomment
301 ycomment=
'X_Y_'//yrecfm//
' (K)' 302 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XT2M_MIN(:),iresp,hcomment
303 IF(greset)id%D%XT2M_MIN(:)=
xundef 306 ycomment=
'X_Y_'//yrecfm//
' (K)' 307 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XT2M_MAX(:),iresp,hcomment
308 IF(greset)id%D%XT2M_MAX(:)=-
xundef 311 ycomment=
'X_Y_'//yrecfm//
' (KG/KG)' 312 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XQ2M(:),iresp,hcomment
315 ycomment=
'X_Y_'//yrecfm//
' (-)' 316 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XHU2M(:),iresp,hcomment
318 yrecfm=
'HU2MMIN_ISBA' 319 ycomment=
'X_Y_'//yrecfm//
' (-)' 320 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XHU2M_MIN(:),iresp,hcomment
321 IF(greset)id%D%XHU2M_MIN(:)=
xundef 323 yrecfm=
'HU2MMAX_ISBA' 324 ycomment=
'X_Y_'//yrecfm//
' (-)' 325 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XHU2M_MAX(:),iresp,hcomment
326 IF(greset)id%D%XHU2M_MAX(:)=-
xundef 329 ycomment=
'X_Y_'//yrecfm//
' (M/S)' 330 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XZON10M(:),iresp,hcomment
333 ycomment=
'X_Y_'//yrecfm//
' (M/S)' 334 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XMER10M(:),iresp,hcomment
337 ycomment=
'X_Y_'//yrecfm//
' (M/S)' 338 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XWIND10M(:),iresp,hcomment
340 yrecfm=
'W10MMAX_ISBA' 341 ycomment=
'X_Y_'//yrecfm//
' (M/S)' 342 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XWIND10M_MAX(:),iresp
343 IF(greset)id%D%XWIND10M_MAX(:)=0.0
346 ycomment=
'X_Y_'//yrecfm//
' (M.kgCO2.S-1.kgAIR-1)' 347 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XSFCO2(:),iresp,hcomment
358 ycomment=
'X_Y_'//yrecfm
359 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XCD(:),iresp,hcomment
362 ycomment=
'X_Y_'//yrecfm
363 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XCH(:),iresp,hcomment
366 ycomment=
'X_Y_'//yrecfm
367 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XCE(:),iresp,hcomment
370 ycomment=
'X_Y_'//yrecfm//
' (M)' 371 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XZ0(:),iresp,hcomment
374 ycomment=
'X_Y_'//yrecfm//
' (M)' 375 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XZ0H(:),iresp,hcomment
383 IF (id%O%LSURF_VARS)
THEN 386 ycomment=
'X_Y_'//yrecfm//
' (KG/KG)' 387 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%D%XQS(:),iresp,hcomment
393 isize = u%NSIZE_NATURE
396 IF (id%O%LPATCH_BUDGET.AND.(io%NPATCH >1))
THEN 401 IF (id%O%N2M>=1)
THEN 404 ycomment=
'X_Y_'//yrecfm
415 IF (id%O%LSURF_BUDGET)
THEN 418 ycomment=
'total albedo per patch' 425 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 432 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 439 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 446 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 453 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 460 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 467 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 473 IF (id%O%LRAD_BUDGET .OR. (id%O%LSURF_BUDGETC .AND. .NOT.duo%LRESET_BUDGETC
THEN 476 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 483 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 490 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 497 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 503 DO jsw=1,
SIZE(id%D%XSWBD,2)
507 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 514 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 525 ycomment=
'X_Y_'//yrecfm//
' (Pa)' 532 ycomment=
'X_Y_'//yrecfm//
' (Pa)' 548 IF (id%O%N2M>=1.AND..NOT.io%LCANOPY)
THEN 551 ycomment=
'X_Y_'//yrecfm//
' (K)' 558 ycomment=
'X_Y_'//yrecfm//
' (K)' 562 IF (greset) id%ND%AL(jp)%XT2M_MIN(:)=
xundef 566 ycomment=
'X_Y_'//yrecfm//
' (K)' 570 IF (greset) id%ND%AL(jp)%XT2M_MAX(:)=-
xundef 574 ycomment=
'X_Y_'//yrecfm//
' (KG/KG)' 581 ycomment=
'X_Y_'//yrecfm//
' (PERCENT)' 588 ycomment=
'X_Y_'//yrecfm//
' (M/S)' 595 ycomment=
'X_Y_'//yrecfm//
' (M/S)' 602 ycomment=
'X_Y_'//yrecfm//
' (M/S)' 624 IF (chi%SVI%NBEQ>0 .AND. chi%CCH_DRY_DEP==
"WES89 ")
THEN 626 DO jsv = 1,
SIZE(chi%CCH_NAMES,1)
627 yrecfm=
'DVNT'//
trim(chi%CCH_NAMES(jsv))
628 WRITE(ycomment,
'(A13,I3.3)')
'(m/s) DV_NAT_',jsv
637 IF (chi%SVI%NBEQ>0 .AND. chi%LCH_BIO_FLUX)
THEN 639 IF (
ASSOCIATED(gb%XFISO))
THEN 641 WRITE(ycomment,
'(A21)')
'FISO (molecules/m2/s)' 642 CALL write_surf(duo%CSELECT,hprogram,yrecfm,gb%XFISO(:),iresp,hcomment
645 IF (
ASSOCIATED(gb%XFISO))
THEN 647 WRITE(ycomment,
'(A22)')
'FMONO (molecules/m2/s)' 648 CALL write_surf(duo%CSELECT,hprogram,yrecfm,gb%XFMONO(:),iresp,hcomment
653 IF (chi%LCH_NO_FLUX)
THEN 654 IF (
ASSOCIATED(gb%XNOFLUX))
THEN 656 WRITE(ycomment,
'(A21)')
'NOFLUX (molecules/m2/s)' 657 CALL write_surf(duo%CSELECT, hprogram,yrecfm,gb%XNOFLUX(:),iresp,hcomment
661 IF (chi%SVI%NDSTEQ > 0)
THEN 664 WRITE(yrecfm,
'(A5,I3.3)')
'F_DST',jsv
665 ycomment=
'X_Y_'//yrecfm//
' (kg/m2/s)' 680 CALL init_io_surf_n(dtco, u, hprogram,
'NATURE',
'ISBA ',
'WRITE',
'ISBA_DIAG_CUMUL.OUT.nc' 682 IF (id%O%LSURF_BUDGETC)
THEN 684 CALL write_evap_bud(id%DEC,
"C_ISBA",(id%O%LSURF_BUDGETC .AND. .NOT.duo%LRESET_BUDGETC
688 ycomment=
'X_Y_'//yrecfm//
' (Kg/m2)' 689 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%DEC%XICEFLUX(:),iresp
693 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 694 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%DC%XRN(:),iresp,hcomment
697 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 698 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%DC%XH(:),iresp,hcomment
701 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 702 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%DC%XLE(:),iresp,hcomment
705 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 706 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%DC%XLEI(:),iresp,hcomment
709 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 710 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%DC%XGFLUX(:),iresp,hcomment
713 ycomment=
'total evaporative flux for tile nature'//
' (Kg/m2/s)' 714 CALL write_surf(duo%CSELECT, hprogram,yrecfm,id%DC%XEVAP(:),iresp,hcomment
717 ycomment=
'sublimation flux for tile nature'//
' (Kg/m2/s)' 718 CALL write_surf(duo%CSELECT, hprogram,yrecfm,id%DC%XSUBL(:),iresp,hcomment
720 IF (id%O%LRAD_BUDGET .OR. (id%O%LSURF_BUDGETC .AND. .NOT.duo%LRESET_BUDGETC
THEN 723 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 724 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%DC%XSWD(:),iresp,hcomment
727 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 728 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%DC%XSWU(:),iresp,hcomment
731 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 732 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%DC%XLWD(:),iresp,hcomment
735 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 736 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%DC%XLWU(:),iresp,hcomment
741 ycomment=
'X_Y_'//yrecfm//
' (Pa.s)' 742 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%DC%XFMU(:),iresp,hcomment
745 ycomment=
'X_Y_'//yrecfm//
' (Pa.s)' 746 CALL write_surf(duo%CSELECT,hprogram,yrecfm,id%DC%XFMV(:),iresp,hcomment
753 IF (id%O%LPATCH_BUDGET.AND.(io%NPATCH >1))
THEN 758 IF (id%O%LSURF_BUDGETC)
THEN 764 ycomment=
'X_Y_'//yrecfm//
' (Kg/m2)' 772 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 779 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 786 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 793 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 800 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 807 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 814 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 820 IF (id%O%LRAD_BUDGET .OR. (id%O%LSURF_BUDGETC .AND. .NOT.duo%LRESET_BUDGETC
THEN 823 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 830 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 837 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 844 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 853 ycomment=
'X_Y_'//yrecfm//
' (Pa.s)' 860 ycomment=
'X_Y_'//yrecfm//
' (Pa.s)' 880 IF ( duo%LRESETCUMUL .AND. id%O%LSURF_BUDGETC )
THEN 886 IF (id%DE%LSURF_EVAP_BUDGET)
THEN 891 IF (id%DE%LWATER_BUDGET)
THEN 900 IF (
lhook)
CALL dr_hook(
'WRITE_DIAG_SEB_ISBA_N',1,zhook_handle)
911 CHARACTER(LEN=6),
INTENT(IN) :: HTERM
912 LOGICAL,
INTENT(IN) :: OFLAG
913 REAL(KIND=JPRB) :: ZHOOK_HANDLE
915 IF (
lhook)
CALL dr_hook(
'WRITE_DIAG_SEB_ISBA_N:WRITE_EVAP_BUD',0,zhook_handle
917 yrecfm=
'LEG'//
trim(hterm)
918 ycomment=
'bare ground evaporation for tile nature'//
' (W/m2)' 919 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLEG(:),iresp,hcomment
921 yrecfm=
'LEGI'//
trim(hterm)
922 ycomment=
'bare ground sublimation for tile nature'//
' (W/m2)' 923 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLEGI(:),iresp,hcomment
925 yrecfm=
'LEV'//
trim(hterm)
926 ycomment=
'total vegetation evaporation for tile nature'//
' (W/m2)' 927 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLEV(:),iresp,hcomment
929 yrecfm=
'LES'//
trim(hterm)
930 ycomment=
'snow sublimation for tile nature'//
' (W/m2)' 931 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLES(:),iresp,hcomment
933 IF(npe%AL(1)%TSNOW%SCHEME==
'3-L' .OR. npe%AL(1)%TSNOW%SCHEME==
'CRO')
THEN 935 ycomment=
'liquid water evaporation over snow for tile nature'//
' (W/m2)' 936 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLESL(:),iresp,hcomment
937 'SNDRIF'//
trim(hterm)
938 ycomment=
'blowing snow sublimation for tile nature'//
' (Kg/m2/s)' 939 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XSNDRIFT(:),iresp,hcomment
942 yrecfm=
'LER'//
trim(hterm)
943 ycomment=
'canopy direct evaporation for tile nature'//
' (W/m2)' 944 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLER(:),iresp,hcomment
946 yrecfm=
'LETR'//
trim(hterm)
947 ycomment=
'vegetation transpiration for tile nature'//
' (W/m2)' 948 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLETR(:),iresp,hcomment
950 yrecfm=
'DRAIN'//
trim(hterm)
951 ycomment=
'drainage for tile nature'//
' (Kg/m2/s)' 952 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XDRAIN(:),iresp,hcomment
954 IF(io%CRUNOFF==
'SGH'.AND.io%CISBA==
'DIF')
THEN 955 yrecfm=
'QSB'//
trim(hterm)
956 ycomment=
'lateral subsurface flow for tile nature'//
' (Kg/m2/s)' 957 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XQSB(:),iresp,hcomment
960 yrecfm=
'RUNOFF'//
trim(hterm)
961 ycomment=
'runoff for tile nature'//
' (Kg/m2/s)' 962 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XRUNOFF(:),iresp,hcomment
964 IF(io%CHORT==
'SGH'.OR.io%CISBA==
'DIF')
THEN 965 yrecfm=
'HORTON'//
trim(hterm)
966 ycomment=
'horton runoff for tile nature'//
' (Kg/m2/s)' 967 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XHORT(:),iresp,hcomment
970 yrecfm=
'DRIVEG'//
trim(hterm)
971 ycomment=
'X_Y_'//yrecfm//
' (Kg/m2/s)' 972 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XDRIP(:),iresp,hcomment
974 yrecfm=
'RRVEG'//
trim(hterm)
975 ycomment=
'X_Y_'//yrecfm//
' (Kg/m2/s)' 977 hprogram,yrecfm,dea%XRRVEG(:),iresp,hcomment=ycomment)
979 yrecfm=
'SNOMLT'//
trim(hterm)
980 ycomment=
'snow melting rate'//
' (Kg/m2/s)' 981 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XMELT(:),iresp,hcomment
984 yrecfm=
'IRRIG'//
trim(hterm)
985 ycomment=
'irrigation rate'//
' (Kg/m2/s)' 986 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XIRRIG_FLUX(:),iresp,hcomment
989 IF (isize_lmeb_patch>0)
THEN 990 yrecfm=
'LELIT'//
trim(hterm)
991 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 992 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLELITTER(:),iresp,hcomment
994 yrecfm=
'LELITI'//
trim(hterm)
995 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 996 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLELITTERI(:),iresp,hcomment
998 yrecfm=
'DRIPLIT'//
trim(hterm)
999 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1000 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XDRIPLIT(:),iresp,hcomment
1002 yrecfm=
'RRLIT'//
trim(hterm)
1003 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1004 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XRRLIT(:),iresp,hcomment
1006 yrecfm=
'LEV_CV'//
trim(hterm)
1007 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1008 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLEV_CV(:),iresp,hcomment
1010 yrecfm=
'LES_CV'//
trim(hterm)
1011 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1012 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLES_CV(:),iresp,hcomment
1014 yrecfm=
'LETR_CV'//
trim(hterm)
1015 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1016 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLETR_CV(:),iresp,hcomment
1018 yrecfm=
'LER_CV'//
trim(hterm)
1019 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1020 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLER_CV(:),iresp,hcomment
1022 yrecfm=
'LE_CV'//
trim(hterm)
1023 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1024 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLE_CV(:),iresp,hcomment
1026 yrecfm=
'H_CV'//
trim(hterm)
1027 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1028 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XH_CV(:),iresp,hcomment
1030 yrecfm=
'MELT_CV'//
trim(hterm)
1031 ycomment=
'X_Y_'//yrecfm//
' (kg/m2/s)' 1032 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XMELT_CV(:),iresp,hcomment
1034 yrecfm=
'FRZ_CV'//
trim(hterm)
1035 ycomment=
'X_Y_'//yrecfm//
' (kg/m2/s)' 1036 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XFRZ_CV(:),iresp,hcomment
1038 yrecfm=
'LETR_GV'//
trim(hterm)
1039 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1040 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLETR_GV(:),iresp,hcomment
1042 yrecfm=
'LER_GV'//
trim(hterm)
1043 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1044 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLER_GV(:),iresp,hcomment
1046 yrecfm=
'LE_GV'//
trim(hterm)
1047 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1048 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLE_GV(:),iresp,hcomment
1050 yrecfm=
'H_GV'//
trim(hterm)
1051 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1052 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XH_GV(:),iresp,hcomment
1054 yrecfm=
'LE_GN'//
trim(hterm)
1055 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1056 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLE_GN(:),iresp,hcomment
1058 yrecfm=
'H_GN'//
trim(hterm)
1059 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1060 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XH_GN(:),iresp,hcomment
1062 yrecfm=
'SR_GN'//
trim(hterm)
1063 ycomment=
'X_Y_'//yrecfm//
' (kg/m2/s)' 1064 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XSR_GN(:),iresp,hcomment
1066 yrecfm=
'SWDN_GN'//
trim(hterm)
1067 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1068 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XSWDOWN_GN(:),iresp,hcomment
1070 yrecfm=
'LWDN_GN'//
trim(hterm)
1071 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1072 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLWDOWN_GN(:),iresp,hcomment
1074 yrecfm=
'LE_CA'//
trim(hterm)
1075 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1076 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLE_CA(:),iresp,hcomment
1078 yrecfm=
'H_CA'//
trim(hterm)
1079 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1080 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XH_CA(:),iresp,hcomment
1082 yrecfm=
'SWNT_V'//
trim(hterm)
1083 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1084 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XSWNET_V(:),iresp,hcomment
1086 yrecfm=
'SWNT_G'//
trim(hterm)
1087 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1088 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XSWNET_G(:),iresp,hcomment
1090 yrecfm=
'SWNT_N'//
trim(hterm)
1091 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1092 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XSWNET_N(:),iresp,hcomment
1094 yrecfm=
'SWNT_NS'//
trim(hterm)
1095 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1096 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XSWNET_NS(:),iresp,hcomment
1098 yrecfm=
'LWNT_V'//
trim(hterm)
1099 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1100 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLWNET_V(:),iresp,hcomment
1102 yrecfm=
'LWNT_G'//
trim(hterm)
1103 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1104 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLWNET_G(:),iresp,hcomment
1106 yrecfm=
'LWNT_N'//
trim(hterm)
1107 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1108 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLWNET_N(:),iresp,hcomment
1115 yrecfm=
'IFLOOD'//
trim(hterm)
1116 ycomment=
'flood soil infiltration (Kg/m2/s)' 1117 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XIFLOOD(:),iresp,hcomment
1119 yrecfm=
'PFLOOD'//
trim(hterm)
1120 ycomment=
'intercepted precipitation by floodplains (Kg/m2/s)' 1121 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XPFLOOD(:),iresp,hcomment
1123 yrecfm=
'LEF'//
trim(hterm)
1124 ycomment=
'total floodplains evaporation (W/m2)' 1125 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLE_FLOOD(:),iresp,hcomment
1127 yrecfm=
'LEIF'//
trim(hterm)
1128 ycomment=
'solid floodplains evaporation (W/m2)' 1129 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XLEI_FLOOD(:),iresp,hcomment
1133 IF(io%CPHOTO/=
'NON')
THEN 1135 yrecfm=
'GPP'//
trim(hterm)
1136 ycomment=
'gross primary production over tile nature (kgCO2/m2/s)' 1137 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XGPP(:),iresp,hcomment
1139 IF (hterm(1:1)==
"C")
THEN 1140 yrecfm=
'RC_AUTO'//
trim(hterm(2:))
1142 yrecfm=
'R_AUTO'//
trim(hterm)
1144 ycomment=
'autotrophic respiration over tile nature (kgCO2/m2/s)' 1145 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XRESP_AUTO(:),iresp,hcomment
1147 IF (hterm(1:1)==
"C")
THEN 1148 yrecfm=
'RC_ECO'//
trim(hterm(2:))
1150 yrecfm=
'R_ECO'//
trim(hterm)
1152 ycomment=
'ecosystem respiration over tile nature (kgCO2/m2/s)' 1153 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XRESP_ECO(:),iresp,hcomment
1157 IF(id%DE%LWATER_BUDGET .OR. oflag)
THEN 1159 yrecfm=
'RAINF'//
trim(hterm)
1160 ycomment=
'input rainfall rate (Kg/m2/s)' 1161 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XRAINFALL(:),iresp,hcomment
1163 yrecfm=
'SNOWF'//
trim(hterm)
1164 ycomment=
'input snowfall rate (Kg/m2/s)' 1165 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XSNOWFALL(:),iresp,hcomment
1167 yrecfm=
'DWG'//
trim(hterm)
1168 ycomment=
'change in liquid soil moisture (Kg/m2/s)' 1169 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XDWG(:),iresp,hcomment
1171 yrecfm=
'DWGI'//
trim(hterm)
1172 ycomment=
'change in solid soil moisture (Kg/m2/s)' 1173 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XDWGI(:),iresp,hcomment
1175 yrecfm=
'DWR'//
trim(hterm)
1176 ycomment=
'change in water on canopy (Kg/m2/s)' 1177 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XDWR(:),iresp,hcomment
1179 yrecfm=
'DSWE'//
trim(hterm)
1180 ycomment=
'change in snow water equivalent (Kg/m2/s)' 1181 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XDSWE(:),iresp,hcomment
1183 yrecfm=
'WATBUD'//
trim(hterm)
1184 ycomment=
'isba water budget as residue (Kg/m2/s)' 1185 CALL write_surf(duo%CSELECT, hprogram,yrecfm,dea%XWATBUD(:),iresp,hcomment
1189 IF (
lhook)
CALL dr_hook(
'WRITE_DIAG_SEB_ISBA_N:WRITE_EVAP_BUD',1,zhook_handle
1199 CHARACTER(LEN=2),
INTENT(IN) :: HTERM
1200 LOGICAL,
INTENT(IN) :: OFLAG
1201 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1203 IF (
lhook)
CALL dr_hook(
'WRITE_DIAG_SEB_ISBA_N:WRITE_EVAP_BUD_PATCH',0,zhook_handle
1205 yrecfm=
'LEG'//
trim(hterm)
1206 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1209 np%AL(jp)%NR_P,ndea%AL(jp)%XLEG(:),isize,s%XWORK_WR)
1212 yrecfm=
'LEGI'//
trim(hterm)
1213 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1216 np%AL(jp)%NR_P,ndea%AL(jp)%XLEGI(:),isize,s%XWORK_WR)
1219 yrecfm=
'LEV'//
trim(hterm)
1220 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1223 np%AL(jp)%NR_P,ndea%AL(jp)%XLEV(:),isize,s%XWORK_WR)
1227 yrecfm=
'LES'//
trim(hterm)
1228 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1231 np%AL(jp)%NR_P,ndea%AL(jp)%XLES(:),isize,s%XWORK_WR)
1234 IF(npe%AL(1)%TSNOW%SCHEME==
'3-L' .OR. npe%AL(1)%TSNOW%SCHEME==
'CRO')
THEN 1236 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1239 np%AL(jp)%NR_P,ndea%AL(jp)%XLESL(:),isize,s%XWORK_WR)
1241 yrecfm=
'SNDRIF'//
trim(hterm)
1242 ycomment=
'X_Y_'//yrecfm//
' (kg/m2/s)' 1245 np%AL(jp)%NR_P,ndea%AL(jp)%XSNDRIFT(:),isize,s%XWORK_WR)
1249 yrecfm=
'LER'//
trim(hterm)
1250 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1253 np%AL(jp)%NR_P,ndea%AL(jp)%XLER(:),isize,s%XWORK_WR)
1256 yrecfm=
'LETR'//
trim(hterm)
1257 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1260 np%AL(jp)%NR_P,ndea%AL(jp)%XLETR(:),isize,s%XWORK_WR)
1263 yrecfm=
'DRAIN'//
trim(hterm)
1264 ycomment=
'X_Y_'//yrecfm//
' (Kg/m2/s)' 1267 np%AL(jp)%NR_P,ndea%AL(jp)%XDRAIN(:),isize,s%XWORK_WR)
1270 IF(io%CRUNOFF==
'SGH'.AND.io%CISBA==
'DIF')
THEN 1271 yrecfm=
'QSB'//
trim(hterm)
1272 ycomment=
'X_Y_'//yrecfm//
' (Kg/m2/s)' 1275 np%AL(jp)%NR_P,ndea%AL(jp)%XQSB(:),isize,s%XWORK_WR)
1279 yrecfm=
'RUNOFF'//
trim(hterm)
1280 ycomment=
'X_Y_'//yrecfm//
' (Kg/m2/s)' 1283 np%AL(jp)%NR_P,ndea%AL(jp)%XRUNOFF(:),isize,s%XWORK_WR)
1286 IF(io%CHORT==
'SGH'.OR.io%CISBA==
'DIF')
THEN 1288 yrecfm=
'HORTON'//
trim(hterm)
1289 ycomment=
'X_Y_'//yrecfm//
' (Kg/m2/s)' 1292 np%AL(jp)%NR_P,ndea%AL(jp)%XHORT(:),isize,s%XWORK_WR)
1297 yrecfm=
'DRIVEG'//
trim(hterm)
1298 ycomment=
'X_Y_'//yrecfm//
' (Kg/m2/s)' 1301 np%AL(jp)%NR_P,ndea%AL(jp)%XDRIP(:),isize,s%XWORK_WR)
1304 yrecfm=
'RRVEG'//
trim(hterm)
1305 ycomment=
'X_Y_'//yrecfm//
' (Kg/m2/s)' 1308 np%AL(jp)%NR_P,ndea%AL(jp)%XRRVEG(:),isize,s%XWORK_WR)
1311 yrecfm=
'SNOMLT'//
trim(hterm)
1312 ycomment=
'X_Y_'//yrecfm//
' (Kg/m2/s)' 1315 np%AL(jp)%NR_P,ndea%AL(jp)%XMELT(:),isize,s%XWORK_WR)
1319 IF (isize_lmeb_patch>0)
THEN 1321 yrecfm=
'LELIT'//
trim(hterm)
1322 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1325 np%AL(jp)%NR_P,ndea%AL(jp)%XLELITTER(:),isize,s%XWORK_WR)
1328 yrecfm=
'LELITI'//
trim(hterm)
1329 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1332 np%AL(jp)%NR_P,ndea%AL(jp)%XLELITTERI(:),isize,s%XWORK_WR)
1335 yrecfm=
'DRIPLIT'//
trim(hterm)
1336 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1339 np%AL(jp)%NR_P,ndea%AL(jp)%XDRIPLIT(:),isize,s%XWORK_WR)
1342 yrecfm=
'RRLIT'//
trim(hterm)
1343 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1346 np%AL(jp)%NR_P,ndea%AL(jp)%XRRLIT(:),isize,s%XWORK_WR)
1349 yrecfm=
'LEV_CV'//
trim(hterm)
1350 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1353 np%AL(jp)%NR_P,ndea%AL(jp)%XLEV_CV(:),isize,s%XWORK_WR)
1356 yrecfm=
'LES_CV'//
trim(hterm)
1357 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1360 np%AL(jp)%NR_P,ndea%AL(jp)%XLES_CV(:),isize,s%XWORK_WR)
1363 yrecfm=
'LETR_CV'//
trim(hterm)
1364 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1367 np%AL(jp)%NR_P,ndea%AL(jp)%XLETR_CV(:),isize,s%XWORK_WR)
1370 yrecfm=
'LER_CV'//
trim(hterm)
1371 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1374 np%AL(jp)%NR_P,ndea%AL(jp)%XLER_CV(:),isize,s%XWORK_WR)
1377 yrecfm=
'LE_CV'//
trim(hterm)
1378 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1381 np%AL(jp)%NR_P,ndea%AL(jp)%XLE_CV(:),isize,s%XWORK_WR)
1384 yrecfm=
'H_CV'//
trim(hterm)
1385 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1388 np%AL(jp)%NR_P,ndea%AL(jp)%XH_CV(:),isize,s%XWORK_WR)
1391 yrecfm=
'MELT_CV'//
trim(hterm)
1392 ycomment=
'X_Y_'//yrecfm//
' (kg/m2/s)' 1395 np%AL(jp)%NR_P,ndea%AL(jp)%XMELT_CV(:),isize,s%XWORK_WR)
1398 yrecfm=
'FRZ_CV'//
trim(hterm)
1399 ycomment=
'X_Y_'//yrecfm//
' (kg/m2/s)' 1402 np%AL(jp)%NR_P,ndea%AL(jp)%XFRZ_CV(:),isize,s%XWORK_WR)
1405 yrecfm=
'LE_GV'//
trim(hterm)
1406 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1409 np%AL(jp)%NR_P,ndea%AL(jp)%XLE_GV(:),isize,s%XWORK_WR)
1412 yrecfm=
'H_GV'//
trim(hterm)
1413 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1416 np%AL(jp)%NR_P,ndea%AL(jp)%XH_GV(:),isize,s%XWORK_WR)
1419 yrecfm=
'LE_GN'//
trim(hterm)
1420 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1423 np%AL(jp)%NR_P,ndea%AL(jp)%XLE_GN(:),isize,s%XWORK_WR)
1426 yrecfm=
'H_GN'//
trim(hterm)
1427 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1430 np%AL(jp)%NR_P,ndea%AL(jp)%XH_GN(:),isize,s%XWORK_WR)
1433 yrecfm=
'SR_GN'//
trim(hterm)
1434 ycomment=
'X_Y_'//yrecfm//
' (kg/m2/s)' 1437 np%AL(jp)%NR_P,ndea%AL(jp)%XSR_GN(:),isize,s%XWORK_WR)
1440 yrecfm=
'SWDN_GN'//
trim(hterm)
1441 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1444 np%AL(jp)%NR_P,ndea%AL(jp)%XSWDOWN_GN(:),isize,s%XWORK_WR)
1447 yrecfm=
'LWDN_GN'//
trim(hterm)
1448 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1451 np%AL(jp)%NR_P,ndea%AL(jp)%XLWDOWN_GN(:),isize,s%XWORK_WR)
1454 yrecfm=
'LE_CA'//
trim(hterm)
1455 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1458 np%AL(jp)%NR_P,ndea%AL(jp)%XLE_CA(:),isize,s%XWORK_WR)
1461 yrecfm=
'H_CA'//
trim(hterm)
1462 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1465 np%AL(jp)%NR_P,ndea%AL(jp)%XH_CA(:),isize,s%XWORK_WR)
1468 yrecfm=
'SWNT_V'//
trim(hterm)
1469 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1472 np%AL(jp)%NR_P,ndea%AL(jp)%XSWNET_V(:),isize,s%XWORK_WR)
1475 yrecfm=
'SWNT_G'//
trim(hterm)
1476 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1479 np%AL(jp)%NR_P,ndea%AL(jp)%XSWNET_G(:),isize,s%XWORK_WR)
1482 yrecfm=
'SWNT_N'//
trim(hterm)
1483 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1486 np%AL(jp)%NR_P,ndea%AL(jp)%XSWNET_N(:),isize,s%XWORK_WR)
1489 yrecfm=
'SWNT_NS'//
trim(hterm)
1490 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1493 np%AL(jp)%NR_P,ndea%AL(jp)%XSWNET_NS(:),isize,s%XWORK_WR)
1496 yrecfm=
'LWNT_V'//
trim(hterm)
1497 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1500 np%AL(jp)%NR_P,ndea%AL(jp)%XLWNET_V(:),isize,s%XWORK_WR)
1503 yrecfm=
'LWNT_G'//
trim(hterm)
1504 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1507 np%AL(jp)%NR_P,ndea%AL(jp)%XLWNET_G(:),isize,s%XWORK_WR)
1510 yrecfm=
'LWNT_N'//
trim(hterm)
1511 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1514 np%AL(jp)%NR_P,ndea%AL(jp)%XLWNET_N(:),isize,s%XWORK_WR)
1521 yrecfm=
'IRRIG'//
trim(hterm)
1522 ycomment=
'X_Y_'//yrecfm//
' (Kg/m2/s)' 1525 np%AL(jp)%NR_P,ndea%AL(jp)%XIRRIG_FLUX(:),isize,s%XWORK_WR)
1531 yrecfm=
'IFLOOD'//
trim(hterm)
1532 ycomment=
'X_Y_'//yrecfm//
' (Kg/m2/s)' 1535 np%AL(jp)%NR_P,ndea%AL(jp)%XIFLOOD(:),isize,s%XWORK_WR)
1538 yrecfm=
'PFLOOD'//
trim(hterm)
1539 ycomment=
'X_Y_'//yrecfm//
' (Kg/m2/s)' 1542 np%AL(jp)%NR_P,ndea%AL(jp)%XPFLOOD(:),isize,s%XWORK_WR)
1546 yrecfm=
'LEF'//
trim(hterm)
1547 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1550 np%AL(jp)%NR_P,ndea%AL(jp)%XLE_FLOOD(:),isize,s%XWORK_WR)
1554 yrecfm=
'LEIF'//
trim(hterm)
1555 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 1558 np%AL(jp)%NR_P,ndea%AL(jp)%XLEI_FLOOD(:),isize,s%XWORK_WR)
1563 IF(io%CPHOTO/=
'NON')
THEN 1566 yrecfm=
'GPP'//
trim(hterm)
1567 ycomment=
'gross primary production per patch (kgCO2/m2/s)' 1570 np%AL(jp)%NR_P,ndea%AL(jp)%XGPP(:),isize,s%XWORK_WR)
1573 IF (hterm(1:1)==
"C")
THEN 1574 yrecfm=
'RC_AUTO'//
trim(hterm(2:))
1576 yrecfm=
'R_AUTO'//
trim(hterm)
1578 ycomment=
'autotrophic respiration per patch (kgCO2/m2/s)' 1581 np%AL(jp)%NR_P,ndea%AL(jp)%XRESP_AUTO(:),isize,s%XWORK_WR)
1584 IF (hterm(1:1)==
"C")
THEN 1585 yrecfm=
'RC_ECO'//
trim(hterm(2:))
1587 yrecfm=
'R_ECO'//
trim(hterm)
1589 ycomment=
'ecosystem respiration per patch (kgCO2/m2/s)' 1592 np%AL(jp)%NR_P,ndea%AL(jp)%XRESP_ECO(:),isize,s%XWORK_WR)
1597 IF(id%DE%LWATER_BUDGET .OR. oflag)
THEN 1599 yrecfm=
'DWG'//
trim(hterm)
1600 ycomment=
'change in liquid soil moisture per patch (Kg/m2/s)' 1603 np%AL(jp)%NR_P,ndea%AL(jp)%XDWG(:),isize,s%XWORK_WR)
1606 yrecfm=
'DWGI'//
trim(hterm)
1607 ycomment=
'change in solid soil moisture per patch (Kg/m2/s)' 1610 np%AL(jp)%NR_P,ndea%AL(jp)%XDWGI(:),isize,s%XWORK_WR)
1613 yrecfm=
'DWR'//
trim(hterm)
1614 ycomment=
'change in water on canopy per patch (Kg/m2/s)' 1617 np%AL(jp)%NR_P,ndea%AL(jp)%XDWR(:),isize,s%XWORK_WR)
1620 yrecfm=
'DSWE'//
trim(hterm)
1621 ycomment=
'change in snow water equivalent per patch (Kg/m2/s)' 1624 np%AL(jp)%NR_P,ndea%AL(jp)%XDSWE(:),isize,s%XWORK_WR)
1627 yrecfm=
'WATBUD'//
trim(hterm)
1628 ycomment=
'isba water budget as residue per patch (Kg/m2/s)' 1631 np%AL(jp)%NR_P,ndea%AL(jp)%XWATBUD(:),isize,s%XWORK_WR)
1636 IF (
lhook)
CALL dr_hook(
'WRITE_DIAG_SEB_ISBA_N:WRITE_EVAP_BUD_PATCH',1,zhook_handle
1643 REAL,
DIMENSION(U%NSIZE_NATURE) :: ZPATCH, ZWORK
1644 REAL,
DIMENSION(U%NSIZE_NATURE,SIZE(NPE%AL(1)%XWG,2)) :: ZWG
1645 REAL,
DIMENSION(U%NSIZE_NATURE,SIZE(NPE%AL(1)%XWG,2)) :: ZWGI
1646 REAL,
DIMENSION(U%NSIZE_NATURE,SIZE(NPE%AL(1)%XTG,2)) :: ZTG
1647 REAL,
DIMENSION(U%NSIZE_NATURE,SIZE(NP%AL(1)%XDG,2)) :: ZDG_TOT
1648 REAL,
DIMENSION(U%NSIZE_NATURE,SIZE(NP%AL(1)%XDG,2)) :: ZDG
1650 REAL,
DIMENSION(U%NSIZE_NATURE,IO%NNBIOMASS) :: ZBIOMASS
1651 REAL,
DIMENSION(U%NSIZE_NATURE,IO%NNSOILCARB) :: ZSOILCARB
1652 REAL,
DIMENSION(U%NSIZE_NATURE,IO%NNLITTLEVS) :: ZLIGNIN_STRUC
1653 REAL,
DIMENSION(U%NSIZE_NATURE,IO%NNLITTER,IO%NNLITTLEVS) :: ZLITTER
1655 CHARACTER(LEN=4 ) :: YLVL
1657 INTEGER :: JL, JP, JJ, INI, IWORK, IDEPTH, IMASK
1659 REAL(KIND=JPRB) :: ZHOOK_HANDLE
1661 IF (
lhook)
CALL dr_hook(
'WRITE_DIAG_SEB_ISBA_N:PROVAR_TO_DIAG',0,zhook_handle
1667 IF(io%LTEMP_ARP)
THEN 1668 iwork=io%NTEMPLAYER_ARP
1669 ELSEIF(io%CISBA/=
'DIF')
THEN 1672 iwork=io%NGROUND_LAYER
1682 ztg(imask,jl) = ztg(imask,jl) + pk%XPATCH(jj) * pek%XTG(jj,jl)
1689 ycomment=
'Soil temperature (K)' 1694 WRITE(ylvl,
'(I4)') jl
1695 yrecfm=
'TG'//adjustl(ylvl(:len_trim(ylvl)))
1696 yrecfm=yrecfm(:len_trim(yrecfm))//
'_ISBA' 1697 ycomment=
'X_Y_'//yrecfm//
' (K)' 1698 CALL write_surf(duo%CSELECT,hprogram,yrecfm,ztg(:,jl),iresp,hcomment
1708 IF(io%CISBA==
'DIF')
THEN 1716 DO jl=1,io%NGROUND_LAYER
1719 idepth= pk%NWG_LAYER(jj)
1721 zwg(imask,jl) = zwg(imask,jl)+ pk%XPATCH(jj) * pek%XWG (jj,jl
1736 zdg(1:pk%NSIZE_P,1) = pk%XDG(:,1)
1737 zdg(1:pk%NSIZE_P,2) = pk%XDG(:,2)
1738 IF(io%CISBA==
'3-L')
THEN 1739 zdg(1:pk%NSIZE_P,3) = pk%XDG(:,3)-pk%XDG(:,2)
1744 DO jl=1,io%NGROUND_LAYER
1746 zwg(imask,jl) = zwg(imask,jl)+ pk%XPATCH(jj) *pek%XWG(jj,jl)* zdg
1755 IF(hprogram==
'AROME '.OR.hprogram==
'FA ')
THEN 1761 WHERE(zdg_tot(:,:)>0.0)
1762 zwg(:,:)=zwg(:,:)/zdg_tot(:,:)
1763 zwgi(:,:)=zwgi(:,:)/zdg_tot(:,:)
1773 ycomment=
'Soil liquid water content (m3/m3)' 1777 DO jl=1,io%NGROUND_LAYER
1778 WRITE(ylvl,
'(I4)') jl
1779 yrecfm=
'WG'//adjustl(ylvl(:len_trim(ylvl)))
1780 yrecfm=yrecfm(:len_trim(yrecfm))//
'_ISBA' 1781 ycomment=
'Soil liquid water content (m3/m3)' 1782 CALL write_surf(duo%CSELECT,hprogram,yrecfm,zwg(:,jl),iresp,hcomment
1788 iwork=io%NGROUND_LAYER
1789 IF(io%CISBA/=
'DIF')
THEN 1795 ycomment=
'Soil solid water content (m3/m3)' 1800 WRITE(ylvl,
'(I4)') jl
1801 yrecfm=
'WGI'//adjustl(ylvl(:len_trim(ylvl)))
1802 yrecfm=yrecfm(:len_trim(yrecfm))//
'_ISBA' 1803 ycomment=
'Soil solid water content (m3/m3)' 1804 CALL write_surf(duo%CSELECT,hprogram,yrecfm,zwgi(:,jl),iresp,hcomment
1812 DO jj=1,np%AL(jp)%NSIZE_P
1813 imask = np%AL(jp)%NR_P(jj)
1814 zwork(imask) = zwork(imask) + np%AL(jp)%XPATCH(jj) * npe%AL(jp)%XWR(jj
1819 ycomment=
'X_Y_'//yrecfm//
' (kg/m2)' 1820 CALL write_surf(duo%CSELECT,hprogram,yrecfm,zwork(:),iresp,hcomment=ycomment
1828 DO jj=1,np%AL(jp)%NSIZE_P
1829 imask = np%AL(jp)%NR_P(jj)
1830 zwork(imask) = zwork(imask) + np%AL(jp)%XPATCH(jj) * npe%AL(jp)%XICE_STO
1834 yrecfm=
'ICE_STO_ISBA' 1835 ycomment=
'X_Y_'//yrecfm//
' (kg/m2)' 1836 CALL write_surf(duo%CSELECT,hprogram,yrecfm,zwork(:),iresp,hcomment=ycomment
1851 IF(pek%TSNOW%ALB(jj)/=
xundef)
THEN 1852 zwork(imask) = zwork(imask) + pk%XPATCH(jj) * pek%TSNOW%ALB(jj)
1853 zpatch(imask) = zpatch(imask) + pk%XPATCH(jj)
1858 WHERE(zpatch(:)>0.0)
1859 zwork(:) = zwork(:) / zpatch(:)
1865 ycomment=
'X_Y_'//yrecfm//
' (-)' 1866 CALL write_surf(duo%CSELECT,hprogram,yrecfm,zwork(:),iresp,hcomment=ycomment
1868 IF(npe%AL(1)%TSNOW%SCHEME==
'3-L' .OR. npe%AL(1)%TSNOW%SCHEME==
'CRO')
THEN 1872 DO jl = 1,npe%AL(1)%TSNOW%NLAYER
1880 zwork(imask) = zwork(imask) + pk%XPATCH(jj) * pek%TSNOW%WSNOW(jj
1884 WRITE(ylvl,
'(I4)') jl
1885 yrecfm=
'WSN_'//adjustl(ylvl(:len_trim(ylvl)))
1886 yrecfm=yrecfm(:len_trim(yrecfm))//
'_ISBA' 1887 ycomment=
'X_Y_'//yrecfm//
' (kg/m2)' 1888 CALL write_surf(duo%CSELECT,hprogram,yrecfm,zwork(:),iresp,hcomment=ycomment
1894 DO jl = 1,npe%AL(1)%TSNOW%NLAYER
1902 zwork(imask) = zwork(imask) + pk%XPATCH(jj) * &
1903 pek%TSNOW%WSNOW(jj,jl)/pek%TSNOW%RHO(jj,jl)
1907 WRITE(ylvl,
'(I4)') jl
1908 yrecfm=
'DSN_'//adjustl(ylvl(:len_trim(ylvl)))
1909 yrecfm=yrecfm(:len_trim(yrecfm))//
'_ISBA' 1910 ycomment=
'X_Y_'//yrecfm//
' (kg/m2)' 1911 CALL write_surf(duo%CSELECT,hprogram,yrecfm,zwork(:),iresp,hcomment=ycomment
1917 IF(hprogram==
'AROME '.OR.hprogram==
'FA ')
THEN 1923 DO jl = 1,npe%AL(1)%TSNOW%NLAYER
1932 IF(pek%TSNOW%WSNOW(jj,jl)>0.)
THEN 1933 zwork(imask) = zwork(imask) + pk%XPATCH(jj) * pek%TSNOW%TEMP
1939 WHERE(zpatch(:)>0.0)
1940 zwork(:) = zwork(:) / zpatch(:)
1945 WRITE(ylvl,
'(I4)') jl
1946 yrecfm=
'TSN_'//adjustl(ylvl(:len_trim(ylvl)))
1947 yrecfm=yrecfm(:len_trim(yrecfm))//
'_ISBA' 1948 ycomment=
'X_Y_'//yrecfm//
' (K)' 1949 CALL write_surf(duo%CSELECT,hprogram,yrecfm,zwork(:),iresp,hcomment=ycomment
1955 DO jl = 1,npe%AL(1)%TSNOW%NLAYER
1964 IF(pek%TSNOW%WSNOW(jj,jl)>0.)
THEN 1965 zwork(imask) = zwork(imask) + pk%XPATCH(jj) * pek%TSNOW%AGE(jj
1971 WHERE(zpatch(:)>0.0)
1972 zwork(:) = zwork(:) / zpatch(:)
1975 WRITE(ylvl,
'(I4)') jl
1976 yrecfm=
'AGSN_'//adjustl(ylvl(:len_trim(ylvl)))
1977 yrecfm=yrecfm(:len_trim(yrecfm))//
'_ISBA' 1978 ycomment=
'X_Y_'//yrecfm//
' (day_since_snowfall)' 1979 CALL write_surf(duo%CSELECT,hprogram,yrecfm,zwork(:),iresp,hcomment=ycomment
1987 IF(io%CPHOTO==
'NIT'.OR.io%CPHOTO==
'NCB')
THEN 1995 DO jl=1,io%NNBIOMASS
1996 zbiomass(imask,jl) = zbiomass(imask,jl) + pk%XPATCH(jj) * pek%XBIOMASS
2001 DO jl = 1,io%NNBIOMASS
2002 WRITE(ylvl,
'(I4)') jl
2003 yrecfm=
'BIOM'//adjustl(ylvl(:len_trim(ylvl)))
2004 yrecfm=yrecfm(:len_trim(yrecfm))//
'_ISBA' 2005 ycomment=
'X_Y_'//yrecfm//
' (kgDM/m2)' 2006 CALL write_surf(duo%CSELECT,hprogram,yrecfm,zbiomass(:,jl),iresp,hcomment
2013 IF(io%CRESPSL==
'CNT')
THEN 2016 zlignin_struc(:,:)=0.0
2022 DO jl=1,io%NNLITTLEVS
2023 zlitter(imask,1,jl) = zlitter(imask,1,jl) + pk%XPATCH(jj) * pek%XLITTER
2030 DO jl=1,io%NNLITTLEVS
2031 WRITE(ylvl,
'(I4)') jl
2032 yrecfm=
'LIT1_'//adjustl(ylvl(:len_trim(ylvl)))
2033 yrecfm=yrecfm(:len_trim(yrecfm))//
'_ISBA' 2034 ycomment=
'X_Y_'//yrecfm//
' (gC/m2)' 2035 CALL write_surf(duo%CSELECT,hprogram,yrecfm,zlitter(:,1,jl),iresp,hcomment
2036 WRITE(ylvl,
'(I4)') jl
2037 yrecfm=
'LIT2_'//adjustl(ylvl(:len_trim(ylvl)))
2038 yrecfm=yrecfm(:len_trim(yrecfm))//
'_ISBA' 2039 ycomment=
'X_Y_'//yrecfm//
' (gC/m2)' 2040 CALL write_surf(duo%CSELECT, hprogram,yrecfm,zlitter(:,2,jl),iresp,hcomment
2041 WRITE(ylvl,
'(I4)') jl
2042 yrecfm=
'LIGSTR'//adjustl(ylvl(:len_trim(ylvl)))
2043 yrecfm=yrecfm(:len_trim(yrecfm))//
'_ISBA' 2044 ycomment=
'X_Y_'//yrecfm//
' (-)' 2045 CALL write_surf(duo%CSELECT,hprogram,yrecfm,zlignin_struc(:,jl),iresp
2054 DO jl=1,io%NNSOILCARB
2055 zsoilcarb(imask,jl) = zsoilcarb(imask,jl) + pk%XPATCH(jj) * pek%XSOILCARB
2060 DO jl = 1,io%NNSOILCARB
2061 WRITE(ylvl,
'(I4)') jl
2062 yrecfm=
'SCARB'//adjustl(ylvl(:len_trim(ylvl)))
2063 yrecfm=yrecfm(:len_trim(yrecfm))//
'_ISBA' 2064 ycomment=
'X_Y_'//yrecfm//
' (gC/m2)' 2065 CALL write_surf(duo%CSELECT, hprogram,yrecfm,zsoilcarb(:,jl),iresp,hcomment
2070 IF (
lhook)
CALL dr_hook(
'WRITE_DIAG_SEB_ISBA_N:PROVAR_TO_DIAG',1,zhook_handle
static const char * trim(const char *name, int *n)
subroutine init_surf_bud(DA, PVAL)
character(len=30) yground_layer_dim_name
character(len=30) ywground_layer_dim_name
subroutine write_field_1d_patch(HSELECT, HPROGRAM, HRECFM, HCOMMENT, KP, KMASK, PFIELD_IN, KSIZE, PWORK_WR)
subroutine avg_diag_tstep_surf(PTSTEP, DAC, DA)
subroutine write_evap_bud(DEA, HTERM, OFLAG)
subroutine avg_diag_tstep_evap(PTSTEP, DEAC, DEA)
subroutine init_water_bud(DEA)
subroutine provar_to_diag
integer, parameter nundef
character(len=30) ywiground_layer_dim_name
character(len=30) yswband_dim_name
subroutine end_io_surf_n(HPROGRAM)
subroutine init_evap_bud(DEA)
subroutine avg_diag_tstep_water(PTSTEP, DEAC, DEA)
subroutine init_io_surf_n(DTCO, U, HPROGRAM, HMASK, HSCHEME, HACTION
subroutine write_evap_bud_patch(NDEA, HTERM, OFLAG)
subroutine write_diag_seb_isba_n(DTCO, DUO, U, NCHI, CHI, ID, ND