SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE WRITE_DIAG_MISC_ISBA_n(HPROGRAM) 00003 ! ################################# 00004 ! 00005 !!**** *WRITE_DIAG_MISC_ISBA* - writes the ISBA diagnostic fields 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 !! 00010 !! 00011 !!** METHOD 00012 !! ------ 00013 !! 00014 !! REFERENCE 00015 !! --------- 00016 !! 00017 !! 00018 !! AUTHOR 00019 !! ------ 00020 !! P. Le Moigne *Meteo France* 00021 !! 00022 !! MODIFICATIONS 00023 !! ------------- 00024 !! Original 10/2004 00025 !! B. Decharme 2008 Total Albedo, Total SWI and Floodplains 00026 !! B. Decharme 06/2009 key to write (or not) patch result 00027 !! A.L. Gibelin 04/09 : Add respiration diagnostics 00028 !! A.L. Gibelin 05/09 : Add carbon spinup 00029 !! A.L. Gibelin 07/09 : Suppress RDK and transform GPP as a diagnostic 00030 !! D. Carrer 04/11 : Add FAPAR and effective LAI 00031 !! B. Decharme 09/2012 : suppress NWG_LAYER (parallelization problems) 00032 !! B. Decharme 09/12 : Carbon fluxes in diag_evap 00033 !! B. Decharme 09/12 New diag for DIF: 00034 !! F2 stress 00035 !! Root zone swi, wg and wgi 00036 !! swi, wg and wgi comparable to ISBA-FR-DG2 and DG3 layers 00037 !! active layer thickness over permafrost 00038 !! frozen layer thickness over non-permafrost 00039 !! 00040 !------------------------------------------------------------------------------- 00041 ! 00042 !* 0. DECLARATIONS 00043 ! ------------ 00044 ! 00045 USE MODD_SURFEX_MPI, ONLY : NWG_SIZE 00046 ! 00047 USE MODD_SURF_PAR, ONLY : NUNDEF, XUNDEF 00048 USE MODD_ISBA_n, ONLY : NGROUND_LAYER, & 00049 CRUNOFF, CRAIN, CISBA, LTR_ML, & 00050 XMUF, NWG_LAYER, & 00051 CPHOTO, CRESPSL, LFLOOD, & 00052 XFFLOOD, XPIFLOOD, TSNOW 00053 ! 00054 USE MODD_DIAG_ISBA_n, ONLY : LPATCH_BUDGET, XTS, XAVG_TS, & 00055 XTSRAD, XAVG_TSRAD 00056 ! 00057 USE MODD_AGRI, ONLY : LAGRIP 00058 USE MODD_DIAG_MISC_ISBA_n,ONLY : LSURF_MISC_BUDGET, LSURF_MISC_DIF, & 00059 XHV, XAVG_HV, XSWI, XAVG_SWI, & 00060 XTSWI, XAVG_TSWI, XDPSNG, XAVG_PSNG, & 00061 XDPSNV, XAVG_PSNV, XDPSN, XAVG_PSN, & 00062 XSEUIL, XSOIL_TSWI, XALBT, XAVG_ALBT,& 00063 XTWSNOW, XAVG_TWSNOW, XTDSNOW, & 00064 XAVG_TDSNOW,XTTSNOW, XAVG_TTSNOW, & 00065 XDFFG, XAVG_FFG, XDFFV, XAVG_FFV, & 00066 XDFF, XAVG_FF, XSOIL_TWG, XSOIL_TWGI,& 00067 XDFSAT , XAVG_FSAT, & 00068 XSURF_TSWI, XSURF_TWG, XSURF_TWGI, & 00069 XROOT_TSWI, XROOT_TWG, XROOT_TWGI, & 00070 XFRD2_TSWI, XFRD2_TWG, XFRD2_TWGI, & 00071 XFRD3_TSWI, XFRD3_TWG, XFRD3_TWGI, & 00072 XSNOWLIQ, XSNOWTEMP, XDLAI_EFFC, & 00073 XFAPAR, XFAPIR, XDFAPARC, XDFAPIRC, & 00074 XFAPAR_BS, XFAPIR_BS, XALT, XAVG_ALT,& 00075 XFLT, XAVG_FLT, XAVG_LAI 00076 ! 00077 USE MODI_INIT_IO_SURF_n 00078 USE MODI_WRITE_SURF 00079 USE MODI_END_IO_SURF_n 00080 ! 00081 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00082 USE PARKIND1 ,ONLY : JPRB 00083 ! 00084 IMPLICIT NONE 00085 ! 00086 !* 0.1 Declarations of arguments 00087 ! ------------------------- 00088 ! 00089 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling 00090 ! 00091 !* 0.2 Declarations of local variables 00092 ! ------------------------------- 00093 ! 00094 INTEGER :: IRESP ! IRESP : return-code if a problem appears 00095 CHARACTER(LEN=12) :: YRECFM ! Name of the article to be read 00096 CHARACTER(LEN=100):: YCOMMENT ! Comment string 00097 CHARACTER(LEN=2) :: YLVL 00098 CHARACTER(LEN=20) :: YFORM 00099 ! 00100 INTEGER :: JLAYER, IWORK, JJ, IDEPTH 00101 ! 00102 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00103 ! 00104 !------------------------------------------------------------------------------- 00105 ! 00106 ! Initialisation for IO 00107 ! 00108 IF (LHOOK) CALL DR_HOOK('WRITE_DIAG_MISC_ISBA_N',0,ZHOOK_HANDLE) 00109 CALL INIT_IO_SURF_n(HPROGRAM,'NATURE','ISBA ','WRITE') 00110 ! 00111 !------------------------------------------------------------------------------- 00112 ! 00113 IF (LSURF_MISC_BUDGET) THEN 00114 ! 00115 !* 2. Miscellaneous fields : 00116 ! 00117 !------------------------------------------------------------------------------- 00118 ! 00119 ! 2.1 Halstead coefficient 00120 ! -------------------- 00121 ! 00122 YRECFM='HV_ISBA' 00123 YCOMMENT='Halstead coefficient averaged over tile nature (-)' 00124 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_HV(:),IRESP,HCOMMENT=YCOMMENT) 00125 ! 00126 ! 2.2 Snow fractions 00127 ! -------------- 00128 ! 00129 YRECFM='PSNG_ISBA' 00130 YCOMMENT='snow fraction over ground averaged over tile nature (-)' 00131 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_PSNG(:),IRESP,HCOMMENT=YCOMMENT) 00132 ! 00133 YRECFM='PSNV_ISBA' 00134 YCOMMENT='snow fraction over vegetation averaged over tile nature (-)' 00135 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_PSNV(:),IRESP,HCOMMENT=YCOMMENT) 00136 ! 00137 YRECFM='PSN_ISBA' 00138 YCOMMENT='total snow fraction averaged over tile nature (-)' 00139 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_PSN(:),IRESP,HCOMMENT=YCOMMENT) 00140 ! 00141 ! 2.3 Total Albedo and surface temperature 00142 ! ------------------------------------ 00143 ! 00144 YRECFM='TALB_ISBA' 00145 YCOMMENT='total albedo over tile nature (-)' 00146 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_ALBT(:),IRESP,HCOMMENT=YCOMMENT) 00147 ! 00148 IF (TSNOW%SCHEME=='3-L' .OR. TSNOW%SCHEME=='CRO') THEN 00149 ! 00150 YRECFM='TS_ISBA' 00151 YCOMMENT='total surface temperature (isba+snow) over tile nature' 00152 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_TS(:),IRESP,HCOMMENT=YCOMMENT) 00153 ! 00154 YRECFM='TSRAD_ISBA' 00155 YCOMMENT='total radiative surface temperature (isba+snow) over tile nature' 00156 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_TSRAD(:),IRESP,HCOMMENT=YCOMMENT) 00157 ! 00158 END IF 00159 ! 00160 ! 2.4 Soil Wetness Index, Water content and active layer depth 00161 ! -------------------------------------------------------- 00162 ! 00163 IF(CISBA=='DIF')THEN 00164 ! 00165 IWORK = NWG_SIZE 00166 ! 00167 DO JLAYER = 1,NGROUND_LAYER 00168 DO JJ=1,SIZE(NWG_LAYER,1) 00169 IDEPTH=MAXVAL(NWG_LAYER(JJ,:),NWG_LAYER(JJ,:)/=NUNDEF) 00170 IF(JLAYER>IDEPTH)THEN 00171 XAVG_SWI (JJ,JLAYER) = XUNDEF 00172 XAVG_TSWI(JJ,JLAYER) = XUNDEF 00173 ENDIF 00174 ENDDO 00175 ENDDO 00176 ELSE 00177 IWORK = NGROUND_LAYER 00178 ENDIF 00179 ! 00180 DO JLAYER=1,IWORK 00181 ! 00182 WRITE(YLVL,'(I2)') JLAYER 00183 ! 00184 YRECFM='SWI'//ADJUSTL(YLVL(:LEN_TRIM(YLVL))) 00185 YRECFM=YRECFM(:LEN_TRIM(YRECFM))//'_ISBA' 00186 YFORM='(A29,I1.1,A4)' 00187 IF (JLAYER >= 10) YFORM='(A29,I2.2,A4)' 00188 WRITE(YCOMMENT,FMT=YFORM) 'soil wetness index for layer ',JLAYER,' (-)' 00189 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_SWI(:,JLAYER),IRESP,HCOMMENT=YCOMMENT) 00190 ! 00191 YRECFM='TSWI'//ADJUSTL(YLVL(:LEN_TRIM(YLVL))) 00192 YRECFM=YRECFM(:LEN_TRIM(YRECFM))//'_ISBA' 00193 YFORM='(A29,I1.1,A4)' 00194 IF (JLAYER >= 10) YFORM='(A29,I2.2,A4)' 00195 WRITE(YCOMMENT,FMT=YFORM) 'total swi (liquid+solid) for layer ',JLAYER,' (-)' 00196 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_TSWI(:,JLAYER),IRESP,HCOMMENT=YCOMMENT) 00197 ! 00198 END DO 00199 ! 00200 YRECFM='TSWI_T_ISBA' 00201 YCOMMENT='total soil wetness index over the soil column (-)' 00202 CALL WRITE_SURF(HPROGRAM,YRECFM,XSOIL_TSWI(:),IRESP,HCOMMENT=YCOMMENT) 00203 ! 00204 YRECFM='WGTOT_T_ISBA' 00205 YCOMMENT='total water content (liquid+solid) over the soil column (kg/m2)' 00206 CALL WRITE_SURF(HPROGRAM,YRECFM,XSOIL_TWG(:),IRESP,HCOMMENT=YCOMMENT) 00207 ! 00208 YRECFM='WGI_T_ISBA' 00209 YCOMMENT='total ice content (solid) over the soil column (kg/m2)' 00210 CALL WRITE_SURF(HPROGRAM,YRECFM,XSOIL_TWGI(:),IRESP,HCOMMENT=YCOMMENT) 00211 ! 00212 IF(CISBA=='DIF') THEN 00213 ! 00214 IF (LSURF_MISC_DIF)THEN 00215 ! 00216 YRECFM='TSWI_R_ISBA' 00217 YCOMMENT='total soil wetness index over the root zone (-)' 00218 CALL WRITE_SURF(HPROGRAM,YRECFM,XROOT_TSWI(:),IRESP,HCOMMENT=YCOMMENT) 00219 ! 00220 YRECFM='WGTOT_R_ISBA' 00221 YCOMMENT='total water content (liquid+solid) over the root zone (kg/m2)' 00222 CALL WRITE_SURF(HPROGRAM,YRECFM,XROOT_TWG(:),IRESP,HCOMMENT=YCOMMENT) 00223 ! 00224 YRECFM='WGI_R_ISBA' 00225 YCOMMENT='total ice content (solid) over the root zone (kg/m2)' 00226 CALL WRITE_SURF(HPROGRAM,YRECFM,XROOT_TWGI(:),IRESP,HCOMMENT=YCOMMENT) 00227 ! 00228 YRECFM='TSWI_S_ISBA' 00229 YCOMMENT='total soil wetness index over the surface (-)' 00230 CALL WRITE_SURF(HPROGRAM,YRECFM,XSURF_TSWI(:),IRESP,HCOMMENT=YCOMMENT) 00231 ! 00232 YRECFM='WG_S_ISBA' 00233 YCOMMENT='liquid water content over the surface (m3/m3)' 00234 CALL WRITE_SURF(HPROGRAM,YRECFM,XSURF_TWG(:),IRESP,HCOMMENT=YCOMMENT) 00235 ! 00236 YRECFM='WGI_S_ISBA' 00237 YCOMMENT='ice content over the surface (m3/m3)' 00238 CALL WRITE_SURF(HPROGRAM,YRECFM,XSURF_TWGI(:),IRESP,HCOMMENT=YCOMMENT) 00239 ! 00240 YRECFM='TSWI_D2_ISBA' 00241 YCOMMENT='total soil wetness index over comparable FR-DG2 reservoir (-)' 00242 CALL WRITE_SURF(HPROGRAM,YRECFM,XFRD2_TSWI(:),IRESP,HCOMMENT=YCOMMENT) 00243 ! 00244 YRECFM='WG_D2_ISBA' 00245 YCOMMENT='liquid water content over comparable FR-DG2 reservoir (m3/m3)' 00246 CALL WRITE_SURF(HPROGRAM,YRECFM,XFRD2_TWG(:),IRESP,HCOMMENT=YCOMMENT) 00247 ! 00248 YRECFM='WGI_D2_ISBA' 00249 YCOMMENT='ice content over comparable FR-DG2 reservoir (m3/m3)' 00250 CALL WRITE_SURF(HPROGRAM,YRECFM,XFRD2_TWGI(:),IRESP,HCOMMENT=YCOMMENT) 00251 ! 00252 YRECFM='TSWI_D3_ISBA' 00253 YCOMMENT='total soil wetness index over comparable FR-DG3 reservoir (-)' 00254 CALL WRITE_SURF(HPROGRAM,YRECFM,XFRD3_TSWI(:),IRESP,HCOMMENT=YCOMMENT) 00255 ! 00256 YRECFM='WG_D3_ISBA' 00257 YCOMMENT='liquid water content over comparable FR-DG3 reservoir (m3/m3)' 00258 CALL WRITE_SURF(HPROGRAM,YRECFM,XFRD3_TWG(:),IRESP,HCOMMENT=YCOMMENT) 00259 ! 00260 YRECFM='WGI_D3_ISBA' 00261 YCOMMENT='ice content over comparable FR-DG3 reservoir (m3/m3)' 00262 CALL WRITE_SURF(HPROGRAM,YRECFM,XFRD3_TWGI(:),IRESP,HCOMMENT=YCOMMENT) 00263 ! 00264 ENDIF 00265 ! 00266 YRECFM='ALT_ISBA' 00267 YCOMMENT='active layer thickness over permafrost (m)' 00268 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_ALT(:),IRESP,HCOMMENT=YCOMMENT) 00269 ! 00270 YRECFM='FLT_ISBA' 00271 YCOMMENT='frozen layer thickness over non-permafrost (m)' 00272 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_FLT(:),IRESP,HCOMMENT=YCOMMENT) 00273 ! 00274 ENDIF 00275 ! 00276 ! 2.5 Snow outputs 00277 ! ------------- 00278 ! 00279 YRECFM='WSNOW_T_ISBA' 00280 YCOMMENT='Total_snow_reservoir (kg/m2)' 00281 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_TWSNOW(:),IRESP,HCOMMENT=YCOMMENT) 00282 ! 00283 YRECFM='DSNOW_T_ISBA' 00284 YCOMMENT='Total_snow_depth (m)' 00285 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_TDSNOW(:),IRESP,HCOMMENT=YCOMMENT) 00286 ! 00287 YRECFM='TSNOW_T_ISBA' 00288 YCOMMENT='Total_snow_temperature (K)' 00289 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_TTSNOW(:),IRESP,HCOMMENT=YCOMMENT) 00290 ! 00291 ! 2.6 SGH scheme 00292 ! ---------- 00293 ! 00294 IF(CRUNOFF=='SGH '.OR.CRUNOFF=='DT92')THEN 00295 YRECFM='FSAT_ISBA' 00296 YCOMMENT='Soil saturated fraction (-)' 00297 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_FSAT(:),IRESP,HCOMMENT=YCOMMENT) 00298 ENDIF 00299 ! 00300 IF(CRAIN=='SGH ')THEN 00301 YRECFM='MUF_ISBA' 00302 YCOMMENT='fraction of the grid cell reached by the rainfall (-)' 00303 CALL WRITE_SURF(HPROGRAM,YRECFM,XMUF(:),IRESP,HCOMMENT=YCOMMENT) 00304 ENDIF 00305 ! 00306 ! 2.7 Flooding scheme 00307 ! --------------- 00308 ! 00309 IF(LFLOOD)THEN 00310 ! 00311 YRECFM='FFG_ISBA' 00312 YCOMMENT='flood fraction over ground averaged over tile nature (-)' 00313 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_FFG(:),IRESP,HCOMMENT=YCOMMENT) 00314 ! 00315 YRECFM='FFV_ISBA' 00316 YCOMMENT='flood fraction over vegetation averaged over tile nature (-)' 00317 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_FFV(:),IRESP,HCOMMENT=YCOMMENT) 00318 ! 00319 YRECFM='FF_ISBA' 00320 YCOMMENT='total flood fraction averaged over tile nature (-)' 00321 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_FF(:),IRESP,HCOMMENT=YCOMMENT) 00322 ! 00323 YRECFM='FFLOOD_ISBA' 00324 YCOMMENT='Grdi-cell potential flood fraction (-)' 00325 CALL WRITE_SURF(HPROGRAM,YRECFM,XFFLOOD(:),IRESP,HCOMMENT=YCOMMENT) 00326 ! 00327 YRECFM='PIFLOOD_ISBA' 00328 YCOMMENT='Grdi-cell Potential_floodplain_infiltration (kg/m2s)' 00329 CALL WRITE_SURF(HPROGRAM,YRECFM,XPIFLOOD(:),IRESP,HCOMMENT=YCOMMENT) 00330 ! 00331 ENDIF 00332 ! 00333 ! 2.8 Total LAI 00334 ! --------- 00335 ! 00336 IF(CPHOTO/='NON')THEN 00337 YRECFM='LAI_ISBA' 00338 YCOMMENT='leaf area index (m2/m2)' 00339 CALL WRITE_SURF(HPROGRAM,YRECFM,XAVG_LAI(:),IRESP,HCOMMENT=YCOMMENT) 00340 ENDIF 00341 ! 00342 !* 3. Miscellaneous fields for each patch : 00343 ! ------------------------------------- 00344 ! 00345 !---------------------------------------------------------------------------- 00346 !User wants (or not) patch output 00347 IF(LPATCH_BUDGET)THEN 00348 !---------------------------------------------------------------------------- 00349 ! 00350 ! 3.1 Soil Wetness Index and active layer depth 00351 ! ----------------------------------------- 00352 ! 00353 DO JLAYER=1,IWORK 00354 ! 00355 WRITE(YLVL,'(I2)') JLAYER 00356 ! 00357 YRECFM='SWI'//ADJUSTL(YLVL(:LEN_TRIM(YLVL))) 00358 YFORM='(A39,I1.1,A4)' 00359 IF (JLAYER >= 10) YFORM='(A39,I2.2,A4)' 00360 WRITE(YCOMMENT,FMT=YFORM) 'soil wetness index per patch for layer ',JLAYER,' (-)' 00361 CALL WRITE_SURF(HPROGRAM,YRECFM,XSWI(:,JLAYER,:),IRESP,HCOMMENT=YCOMMENT) 00362 ! 00363 YRECFM='TSWI'//ADJUSTL(YLVL(:LEN_TRIM(YLVL))) 00364 YFORM='(A39,I1.1,A4)' 00365 IF (JLAYER >= 10) YFORM='(A39,I2.2,A4)' 00366 WRITE(YCOMMENT,FMT=YFORM) 'total swi (liquid+solid) per patch for layer ',JLAYER,' (-)' 00367 CALL WRITE_SURF(HPROGRAM,YRECFM,XTSWI(:,JLAYER,:),IRESP,HCOMMENT=YCOMMENT) 00368 ! 00369 END DO 00370 ! 00371 IF(CISBA=='DIF')THEN 00372 ! 00373 YRECFM='ALT_P' 00374 YCOMMENT='active layer thickness over permafrost per patch (m)' 00375 CALL WRITE_SURF(HPROGRAM,YRECFM,XALT(:,:),IRESP,HCOMMENT=YCOMMENT) 00376 ! 00377 YRECFM='FLT_P' 00378 YCOMMENT='frozen layer thickness over non-permafrost per patch (m)' 00379 CALL WRITE_SURF(HPROGRAM,YRECFM,XFLT(:,:),IRESP,HCOMMENT=YCOMMENT) 00380 ! 00381 ENDIF 00382 ! 00383 ! 3.2 Snow fractions 00384 ! -------------- 00385 ! 00386 YRECFM='PSNG' 00387 YCOMMENT='snow fraction per patch over ground ' 00388 CALL WRITE_SURF(HPROGRAM,YRECFM,XDPSNG(:,:),IRESP,HCOMMENT=YCOMMENT) 00389 ! 00390 YRECFM='PSNV' 00391 YCOMMENT='snow fraction per patch over vegetation' 00392 CALL WRITE_SURF(HPROGRAM,YRECFM,XDPSNV(:,:),IRESP,HCOMMENT=YCOMMENT) 00393 ! 00394 YRECFM='PSN' 00395 YCOMMENT='total snow fraction per patch' 00396 CALL WRITE_SURF(HPROGRAM,YRECFM,XDPSN(:,:),IRESP,HCOMMENT=YCOMMENT) 00397 ! 00398 ! 3.3 SGH scheme 00399 ! ---------- 00400 ! 00401 IF(CRUNOFF=='DT92')THEN 00402 YRECFM='FSAT_P' 00403 YCOMMENT='Soil saturated fraction per patch (-)' 00404 CALL WRITE_SURF(HPROGRAM,YRECFM,XDFSAT(:,:),IRESP,HCOMMENT=YCOMMENT) 00405 ENDIF 00406 ! 00407 ! 3.3 Flood fractions 00408 ! -------------- 00409 ! 00410 IF(LFLOOD)THEN 00411 ! 00412 YRECFM='FFG_P' 00413 YCOMMENT='flood fraction per patch over ground ' 00414 CALL WRITE_SURF(HPROGRAM,YRECFM,XDFFG(:,:),IRESP,HCOMMENT=YCOMMENT) 00415 ! 00416 YRECFM='FFV_P' 00417 YCOMMENT='flood fraction per patch over vegetation' 00418 CALL WRITE_SURF(HPROGRAM,YRECFM,XDFFV(:,:),IRESP,HCOMMENT=YCOMMENT) 00419 ! 00420 YRECFM='FF_P' 00421 YCOMMENT='total flood fraction per patch' 00422 CALL WRITE_SURF(HPROGRAM,YRECFM,XDFF(:,:),IRESP,HCOMMENT=YCOMMENT) 00423 ! 00424 ENDIF 00425 ! 00426 ! 3.4 Total Albedo 00427 ! ------------ 00428 ! 00429 YRECFM='TALB' 00430 YCOMMENT='total albedo per patch' 00431 ! 00432 CALL WRITE_SURF(HPROGRAM,YRECFM,XALBT(:,:),IRESP,HCOMMENT=YCOMMENT) 00433 ! 00434 IF (TSNOW%SCHEME=='3-L' .OR. TSNOW%SCHEME=='CRO') THEN 00435 YRECFM='TS_P' 00436 YCOMMENT='total surface temperature (isba+snow) per patch' 00437 CALL WRITE_SURF(HPROGRAM,YRECFM,XTS(:,:),IRESP,HCOMMENT=YCOMMENT) 00438 YRECFM='TSRAD_P' 00439 YCOMMENT='total radiative surface temperature (isba+snow) per patch' 00440 CALL WRITE_SURF(HPROGRAM,YRECFM,XTSRAD(:,:),IRESP,HCOMMENT=YCOMMENT) 00441 ENDIF 00442 ! 00443 ! 3.5 Halstead coefficient 00444 ! -------------------- 00445 ! 00446 YRECFM='HV' 00447 YCOMMENT='Halstead coefficient per patch' 00448 CALL WRITE_SURF(HPROGRAM,YRECFM,XHV(:,:),IRESP,HCOMMENT=YCOMMENT) 00449 ! 00450 ! 3.6 Snow outputs 00451 ! ----------------- 00452 ! 00453 YRECFM='WSNOW_VEGT' 00454 YCOMMENT='X_Y_WSNOW_VEG_TOT (kg/m2) per patch' 00455 CALL WRITE_SURF(HPROGRAM,YRECFM,XTWSNOW(:,:),IRESP,HCOMMENT=YCOMMENT) 00456 ! 00457 YRECFM='DSNOW_VEGT' 00458 YCOMMENT='X_Y_DSNOW_VEG_TOT (m) per patch' 00459 CALL WRITE_SURF(HPROGRAM,YRECFM,XTDSNOW(:,:),IRESP,HCOMMENT=YCOMMENT) 00460 ! 00461 YRECFM='TSNOW_VEGT' 00462 YCOMMENT='X_Y_TSNOW_VEG_TOT (k) per patch' 00463 CALL WRITE_SURF(HPROGRAM,YRECFM,XTTSNOW(:,:),IRESP,HCOMMENT=YCOMMENT) 00464 ! 00465 IF (TSNOW%SCHEME=='3-L' .OR. TSNOW%SCHEME=='CRO') THEN 00466 ! 00467 DO JLAYER=1,TSNOW%NLAYER 00468 ! 00469 WRITE(YLVL,'(I2)') JLAYER 00470 ! 00471 YRECFM='SNOWLIQ'//ADJUSTL(YLVL(:LEN_TRIM(YLVL))) 00472 YFORM='(A17,I1.1,A4)' 00473 IF (JLAYER >= 10) YFORM='(A17,I2.2,A4)' 00474 WRITE(YCOMMENT,FMT=YFORM) 'snow liquid water',JLAYER,' (m)' 00475 CALL WRITE_SURF(HPROGRAM,YRECFM,XSNOWLIQ(:,JLAYER,:),IRESP,HCOMMENT=YCOMMENT) 00476 ! 00477 YRECFM='SNOWTEMP'//ADJUSTL(YLVL(:LEN_TRIM(YLVL))) 00478 YFORM='(A16,I1.1,A4)' 00479 IF (JLAYER >= 10) YFORM='(A16,I2.2,A4)' 00480 WRITE(YCOMMENT,FMT=YFORM) 'snow temperature',JLAYER,' (K)' 00481 CALL WRITE_SURF(HPROGRAM,YRECFM,XSNOWTEMP(:,JLAYER,:),IRESP,HCOMMENT=YCOMMENT) 00482 ! 00483 END DO 00484 ! 00485 ENDIF 00486 ! 00487 END IF 00488 ! 00489 IF (LAGRIP) THEN 00490 ! 00491 ! 2.8 Irrigation threshold 00492 ! -------------------- 00493 ! 00494 YRECFM='IRRISEUIL' 00495 YCOMMENT='irrigation threshold per patch' 00496 CALL WRITE_SURF(HPROGRAM,YRECFM,XSEUIL(:,:),IRESP,HCOMMENT=YCOMMENT) 00497 ! 00498 ENDIF 00499 ! 00500 IF (LTR_ML) THEN 00501 ! 00502 YRECFM='FAPAR' 00503 YCOMMENT='FAPAR (-)' 00504 CALL WRITE_SURF(HPROGRAM,YRECFM,XFAPAR(:,:),IRESP,HCOMMENT=YCOMMENT) 00505 ! 00506 YRECFM='FAPIR' 00507 YCOMMENT='FAPIR (-)' 00508 CALL WRITE_SURF(HPROGRAM,YRECFM,XFAPIR(:,:),IRESP,HCOMMENT=YCOMMENT) 00509 ! 00510 YRECFM='FAPAR_BS' 00511 YCOMMENT='FAPAR_BS (-)' 00512 CALL WRITE_SURF(HPROGRAM,YRECFM,XFAPAR_BS(:,:),IRESP,HCOMMENT=YCOMMENT) 00513 ! 00514 YRECFM='FAPIR_BS' 00515 YCOMMENT='FAPIR_BS (-)' 00516 CALL WRITE_SURF(HPROGRAM,YRECFM,XFAPIR_BS(:,:),IRESP,HCOMMENT=YCOMMENT) 00517 ! 00518 YRECFM='DFAPARC' 00519 YCOMMENT='DFAPARC (-)' 00520 CALL WRITE_SURF(HPROGRAM,YRECFM,XDFAPARC(:,:),IRESP,HCOMMENT=YCOMMENT) 00521 ! 00522 YRECFM='DFAPIRC' 00523 YCOMMENT='DFAPIRC (-)' 00524 CALL WRITE_SURF(HPROGRAM,YRECFM,XDFAPIRC(:,:),IRESP,HCOMMENT=YCOMMENT) 00525 ! 00526 YRECFM='DLAI_EFFC' 00527 YCOMMENT='DLAI_EFFC (m2/m2)' 00528 CALL WRITE_SURF(HPROGRAM,YRECFM,XDLAI_EFFC(:,:),IRESP,HCOMMENT=YCOMMENT) 00529 ! 00530 ENDIF 00531 ! 00532 ENDIF 00533 ! End of IO 00534 ! 00535 CALL END_IO_SURF_n(HPROGRAM) 00536 IF (LHOOK) CALL DR_HOOK('WRITE_DIAG_MISC_ISBA_N',1,ZHOOK_HANDLE) 00537 ! 00538 END SUBROUTINE WRITE_DIAG_MISC_ISBA_n