SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE WRITESURF_PGD_TEB_PAR_n(HPROGRAM) 00003 ! ################################################ 00004 ! 00005 !!**** *WRITESURF_PGD_TEB_PAR_n* - reads ISBA physiographic fields 00006 !! 00007 !! 00008 !! PURPOSE 00009 !! ------- 00010 !! 00011 !!** METHOD 00012 !! ------ 00013 !! 00014 !! EXTERNAL 00015 !! -------- 00016 !! 00017 !! 00018 !! IMPLICIT ARGUMENTS 00019 !! ------------------ 00020 !! 00021 !! REFERENCE 00022 !! --------- 00023 !! 00024 !! 00025 !! AUTHOR 00026 !! ------ 00027 !! V. Masson *Meteo France* 00028 !! 00029 !! MODIFICATIONS 00030 !! ------------- 00031 !! Original 05/2005 00032 !------------------------------------------------------------------------------- 00033 ! 00034 !* 0. DECLARATIONS 00035 ! ------------ 00036 ! 00037 USE MODD_TEB_n, ONLY : LGARDEN, LGREENROOF, CBEM 00038 USE MODD_DATA_TEB_n, ONLY : NPAR_ROAD_LAYER, NPAR_WALL_LAYER, & 00039 NPAR_ROOF_LAYER, & 00040 NPAR_BLDTYPE, NPAR_BLD_AGE, NPAR_USETYPE, & 00041 XPAR_Z0_TOWN, XPAR_BLD, & 00042 XPAR_GARDEN, XPAR_ROAD_DIR, XPAR_GREENROOF, & 00043 XPAR_ALB_ROOF, & 00044 XPAR_EMIS_ROOF, XPAR_HC_ROOF, XPAR_TC_ROOF, & 00045 XPAR_D_ROOF, XPAR_ALB_ROAD, XPAR_EMIS_ROAD, & 00046 XPAR_HC_ROAD, XPAR_TC_ROAD, XPAR_D_ROAD, & 00047 XPAR_ALB_WALL, XPAR_EMIS_WALL, XPAR_HC_WALL, & 00048 XPAR_TC_WALL, XPAR_D_WALL, XPAR_BLD_HEIGHT, & 00049 XPAR_WALL_O_HOR, & 00050 XPAR_H_TRAFFIC, XPAR_LE_TRAFFIC, & 00051 XPAR_H_INDUSTRY, XPAR_LE_INDUSTRY, & 00052 LDATA_Z0_TOWN, LDATA_BLD, LDATA_ALB_ROOF, & 00053 LDATA_EMIS_ROOF, LDATA_HC_ROOF, LDATA_TC_ROOF, & 00054 LDATA_D_ROOF, LDATA_ALB_ROAD, LDATA_EMIS_ROAD, & 00055 LDATA_HC_ROAD, LDATA_TC_ROAD, LDATA_D_ROAD, & 00056 LDATA_ALB_WALL, LDATA_EMIS_WALL, LDATA_HC_WALL, & 00057 LDATA_TC_WALL, LDATA_D_WALL, LDATA_BLD_HEIGHT, & 00058 LDATA_WALL_O_HOR, & 00059 LDATA_H_TRAFFIC, LDATA_LE_TRAFFIC, & 00060 LDATA_H_INDUSTRY, LDATA_LE_INDUSTRY , & 00061 LDATA_GARDEN, LDATA_BLDTYPE, LDATA_GREENROOF, & 00062 LDATA_ROAD_DIR, LDATA_USETYPE, LDATA_BLD_AGE, & 00063 LDATA_ROUGH_ROOF, LDATA_ROUGH_WALL, & 00064 XPAR_ROUGH_ROOF, XPAR_ROUGH_WALL 00065 USE MODD_DATA_BEM_n, ONLY : NPAR_FLOOR_LAYER, & 00066 XPAR_HC_FLOOR, XPAR_TC_FLOOR, XPAR_D_FLOOR, & 00067 XPAR_TCOOL_TARGET, XPAR_THEAT_TARGET, & 00068 XPAR_F_WASTE_CAN, & 00069 XPAR_EFF_HEAT, XPAR_QIN, XPAR_QIN_FRAD, & 00070 XPAR_SHGC, XPAR_U_WIN, XPAR_GR, XPAR_SHGC_SH, & 00071 XPAR_FLOOR_HEIGHT, XPAR_INF, XPAR_QIN_FLAT, & 00072 XPAR_HR_TARGET, XPAR_V_VENT, XPAR_CAP_SYS_HEAT, & 00073 XPAR_CAP_SYS_RAT, XPAR_T_ADP, XPAR_M_SYS_RAT, & 00074 XPAR_COP_RAT, XPAR_T_SIZE_MAX, XPAR_T_SIZE_MIN, & 00075 XPAR_F_WATER_COND, XPAR_NATVENT, XPAR_SHADE, & 00076 LDATA_TCOOL_TARGET, LDATA_THEAT_TARGET, & 00077 LDATA_F_WASTE_CAN, LDATA_EFF_HEAT, LDATA_QIN, & 00078 LDATA_QIN_FRAD, LDATA_SHGC, LDATA_U_WIN, & 00079 LDATA_GR, LDATA_FLOOR_HEIGHT, LDATA_INF, & 00080 LDATA_QIN_FLAT, LDATA_HR_TARGET, LDATA_V_VENT, & 00081 LDATA_CAP_SYS_HEAT, LDATA_CAP_SYS_RAT, & 00082 LDATA_T_ADP, LDATA_M_SYS_RAT, LDATA_COP_RAT, & 00083 LDATA_T_SIZE_MAX, LDATA_T_SIZE_MIN, & 00084 LDATA_NATVENT, LDATA_SHGC_SH, & 00085 LDATA_F_WATER_COND, LDATA_SHADE, LDATA_HC_FLOOR,& 00086 LDATA_TC_FLOOR, LDATA_D_FLOOR 00087 00088 USE MODD_TEB_GARDEN_n, ONLY : CTYPE_HVEG, CTYPE_LVEG, CTYPE_NVEG, LPAR_GARDEN 00089 USE MODD_DATA_TEB_GARDEN_n, ONLY : NTIME, & 00090 XDATA_FRAC_HVEG, XDATA_FRAC_LVEG, & 00091 XDATA_FRAC_NVEG, & 00092 XDATA_LAI_HVEG , XDATA_LAI_LVEG , & 00093 XDATA_H_HVEG 00094 USE MODD_TEB_GREENROOF_n, ONLY : NTIME_GR,NLAYER_GR,CTYP_GR, LPAR_GREENROOF 00095 USE MODD_DATA_TEB_GREENROOF_n,ONLY : XPAR_OM_GR, XPAR_CLAY_GR, & 00096 XPAR_SAND_GR, XPAR_LAI_GR 00097 ! 00098 USE MODI_WRITE_SURF 00099 USE MODI_WRITE_BLD_DESCRIPTION 00100 ! 00101 ! 00102 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00103 USE PARKIND1 ,ONLY : JPRB 00104 ! 00105 IMPLICIT NONE 00106 ! 00107 !* 0.1 Declarations of arguments 00108 ! ------------------------- 00109 ! 00110 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling 00111 ! 00112 !* 0.2 Declarations of local variables 00113 ! ------------------------------- 00114 ! 00115 INTEGER :: IRESP ! IRESP : return-code if a problem appears 00116 CHARACTER(LEN=12) :: YRECFM ! Name of the article to be read 00117 CHARACTER(LEN=100):: YCOMMENT ! Comment string 00118 INTEGER :: JLAYER ! loop index 00119 INTEGER :: JTIME ! loop index 00120 REAL, DIMENSION(:), ALLOCATABLE :: ZWORK 00121 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00122 ! 00123 !------------------------------------------------------------------------------- 00124 ! 00125 IF (LHOOK) CALL DR_HOOK('WRITESURF_PGD_TEB_PAR_N',0,ZHOOK_HANDLE) 00126 YRECFM='L_BLDTYPE' 00127 YCOMMENT=YRECFM 00128 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_BLDTYPE,IRESP,HCOMMENT=YCOMMENT) 00129 IF (LDATA_BLDTYPE) THEN 00130 YRECFM='D_BLDTYPE' 00131 YCOMMENT='X_Y_'//YRECFM//' (m)' 00132 ALLOCATE(ZWORK(SIZE(NPAR_BLDTYPE))) 00133 ZWORK=FLOAT(NPAR_BLDTYPE(:)) 00134 CALL WRITE_SURF(HPROGRAM,YRECFM,ZWORK,IRESP,YCOMMENT) 00135 DEALLOCATE(ZWORK) 00136 ENDIF 00137 ! 00138 YRECFM='L_BLD_AGE' 00139 YCOMMENT=YRECFM 00140 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_BLD_AGE,IRESP,HCOMMENT=YCOMMENT) 00141 IF (LDATA_BLD_AGE) THEN 00142 YRECFM='D_BLD_AGE' 00143 YCOMMENT='X_Y_'//YRECFM//' (m)' 00144 ALLOCATE(ZWORK(SIZE(NPAR_BLD_AGE))) 00145 ZWORK=FLOAT(NPAR_BLD_AGE(:)) 00146 CALL WRITE_SURF(HPROGRAM,YRECFM,ZWORK,IRESP,YCOMMENT) 00147 DEALLOCATE(ZWORK) 00148 ENDIF 00149 ! 00150 YRECFM='L_USETYPE' 00151 YCOMMENT=YRECFM 00152 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_USETYPE,IRESP,HCOMMENT=YCOMMENT) 00153 IF (LDATA_USETYPE) THEN 00154 YRECFM='D_USETYPE' 00155 YCOMMENT='X_Y_'//YRECFM//' (m)' 00156 ALLOCATE(ZWORK(SIZE(NPAR_USETYPE))) 00157 ZWORK=FLOAT(NPAR_USETYPE(:)) 00158 CALL WRITE_SURF(HPROGRAM,YRECFM,ZWORK,IRESP,YCOMMENT) 00159 DEALLOCATE(ZWORK) 00160 ENDIF 00161 ! 00162 IF (LDATA_BLDTYPE .OR. LDATA_BLD_AGE .OR. LDATA_USETYPE) CALL WRITE_BLD_DESCRIPTION(HPROGRAM) 00163 ! 00164 YRECFM='L_Z0_TOWN' 00165 YCOMMENT=YRECFM 00166 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_Z0_TOWN,IRESP,HCOMMENT=YCOMMENT) 00167 IF (LDATA_Z0_TOWN) THEN 00168 YRECFM='D_Z0_TOWN' 00169 YCOMMENT='X_Y_'//YRECFM//' (m)' 00170 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_Z0_TOWN,IRESP,YCOMMENT) 00171 ENDIF 00172 ! 00173 YRECFM='L_BLD' 00174 YCOMMENT=YRECFM 00175 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_BLD,IRESP,HCOMMENT=YCOMMENT) 00176 IF (LDATA_BLD) THEN 00177 YRECFM='D_BLD' 00178 YCOMMENT='X_Y_'//YRECFM//' (-)' 00179 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_BLD,IRESP,YCOMMENT) 00180 ENDIF 00181 ! 00182 YRECFM='L_GARDEN' 00183 YCOMMENT=YRECFM 00184 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_GARDEN,IRESP,HCOMMENT=YCOMMENT) 00185 IF (LDATA_GARDEN) THEN 00186 YRECFM='D_GARDEN' 00187 YCOMMENT='X_Y_'//YRECFM//' (-)' 00188 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_GARDEN,IRESP,YCOMMENT) 00189 ENDIF 00190 ! 00191 YRECFM='L_GREENROOF' 00192 YCOMMENT=YRECFM 00193 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_GREENROOF,IRESP,HCOMMENT=YCOMMENT) 00194 IF (LDATA_GREENROOF) THEN 00195 YRECFM='D_GREENROOF' 00196 YCOMMENT='X_Y_'//YRECFM//' (-)' 00197 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_GREENROOF,IRESP,YCOMMENT) 00198 ENDIF 00199 ! 00200 YRECFM='L_ROAD_DIR' 00201 YCOMMENT=YRECFM 00202 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_ROAD_DIR,IRESP,HCOMMENT=YCOMMENT) 00203 IF (LDATA_ROAD_DIR) THEN 00204 YRECFM='D_ROAD_DIR' 00205 YCOMMENT='X_Y_'//YRECFM//' (-)' 00206 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_ROAD_DIR,IRESP,YCOMMENT) 00207 ENDIF 00208 ! 00209 YRECFM='L_ALB_ROOF' 00210 YCOMMENT=YRECFM 00211 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_ALB_ROOF,IRESP,HCOMMENT=YCOMMENT) 00212 IF (LDATA_ALB_ROOF) THEN 00213 YRECFM='D_ALB_ROOF' 00214 YCOMMENT='X_Y_'//YRECFM//' (-)' 00215 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_ALB_ROOF,IRESP,YCOMMENT) 00216 ENDIF 00217 ! 00218 YRECFM='L_EMIS_ROOF' 00219 YCOMMENT=YRECFM 00220 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_EMIS_ROOF,IRESP,HCOMMENT=YCOMMENT) 00221 IF (LDATA_EMIS_ROOF) THEN 00222 YRECFM='D_EMI_ROOF' 00223 YCOMMENT='X_Y_'//YRECFM//' (-)' 00224 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_EMIS_ROOF,IRESP,YCOMMENT) 00225 ENDIF 00226 ! 00227 IF (LDATA_HC_ROOF) THEN 00228 YCOMMENT='Number of specified Roof thermal layers' 00229 CALL WRITE_SURF(HPROGRAM,'PAR_RF_LAYER',NPAR_ROOF_LAYER,IRESP,YCOMMENT) 00230 END IF 00231 ! 00232 YRECFM='L_HC_ROOF' 00233 YCOMMENT=YRECFM 00234 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_HC_ROOF,IRESP,HCOMMENT=YCOMMENT) 00235 IF (LDATA_HC_ROOF) THEN 00236 DO JLAYER=1,NPAR_ROOF_LAYER 00237 WRITE(YRECFM,FMT='(A9,I1.1)') 'D_HC_ROOF',JLAYER 00238 YCOMMENT='X_Y_'//YRECFM//' (J/K/m3)' 00239 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_HC_ROOF(:,JLAYER),IRESP,YCOMMENT) 00240 END DO 00241 ENDIF 00242 ! 00243 YRECFM='L_TC_ROOF' 00244 YCOMMENT=YRECFM 00245 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_TC_ROOF,IRESP,HCOMMENT=YCOMMENT) 00246 IF (LDATA_TC_ROOF) THEN 00247 DO JLAYER=1,NPAR_ROOF_LAYER 00248 WRITE(YRECFM,FMT='(A9,I1.1)') 'D_TC_ROOF',JLAYER 00249 YCOMMENT='X_Y_'//YRECFM//' (W/K/m)' 00250 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_TC_ROOF(:,JLAYER),IRESP,YCOMMENT) 00251 END DO 00252 ENDIF 00253 ! 00254 YRECFM='L_D_ROOF' 00255 YCOMMENT=YRECFM 00256 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_D_ROOF,IRESP,HCOMMENT=YCOMMENT) 00257 IF (LDATA_D_ROOF) THEN 00258 DO JLAYER=1,NPAR_ROOF_LAYER 00259 WRITE(YRECFM,FMT='(A8,I1.1)') 'D_D_ROOF',JLAYER 00260 YCOMMENT='X_Y_'//YRECFM//' (m)' 00261 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_D_ROOF(:,JLAYER),IRESP,YCOMMENT) 00262 END DO 00263 ENDIF 00264 ! 00265 YRECFM='L_ALB_ROAD' 00266 YCOMMENT=YRECFM 00267 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_ALB_ROAD,IRESP,HCOMMENT=YCOMMENT) 00268 IF (LDATA_ALB_ROAD) THEN 00269 YRECFM='D_ALB_ROAD' 00270 YCOMMENT='X_Y_'//YRECFM//' (-)' 00271 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_ALB_ROAD,IRESP,YCOMMENT) 00272 ENDIF 00273 ! 00274 YRECFM='L_EMIS_ROAD' 00275 YCOMMENT=YRECFM 00276 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_EMIS_ROAD,IRESP,HCOMMENT=YCOMMENT) 00277 IF (LDATA_EMIS_ROAD) THEN 00278 YRECFM='D_EMI_ROAD' 00279 YCOMMENT='X_Y_'//YRECFM//' (-)' 00280 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_EMIS_ROAD,IRESP,YCOMMENT) 00281 ENDIF 00282 ! 00283 IF (LDATA_HC_ROAD) THEN 00284 YCOMMENT='Number of specified Road thermal layers' 00285 CALL WRITE_SURF(HPROGRAM,'PAR_RD_LAYER',NPAR_ROAD_LAYER,IRESP,YCOMMENT) 00286 END IF 00287 ! 00288 YRECFM='L_HC_ROAD' 00289 YCOMMENT=YRECFM 00290 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_HC_ROAD,IRESP,HCOMMENT=YCOMMENT) 00291 IF (LDATA_HC_ROAD) THEN 00292 DO JLAYER=1,NPAR_ROAD_LAYER 00293 WRITE(YRECFM,FMT='(A9,I1.1)') 'D_HC_ROAD',JLAYER 00294 YCOMMENT='X_Y_'//YRECFM//' (J/K/m3)' 00295 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_HC_ROAD(:,JLAYER),IRESP,YCOMMENT) 00296 END DO 00297 ENDIF 00298 ! 00299 YRECFM='L_TC_ROAD' 00300 YCOMMENT=YRECFM 00301 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_TC_ROAD,IRESP,HCOMMENT=YCOMMENT) 00302 IF (LDATA_TC_ROAD) THEN 00303 DO JLAYER=1,NPAR_ROAD_LAYER 00304 WRITE(YRECFM,FMT='(A9,I1.1)') 'D_TC_ROAD',JLAYER 00305 YCOMMENT='X_Y_'//YRECFM//' (W/K/m)' 00306 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_TC_ROAD(:,JLAYER),IRESP,YCOMMENT) 00307 END DO 00308 ENDIF 00309 ! 00310 YRECFM='L_D_ROAD' 00311 YCOMMENT=YRECFM 00312 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_D_ROAD,IRESP,HCOMMENT=YCOMMENT) 00313 IF (LDATA_D_ROAD) THEN 00314 DO JLAYER=1,NPAR_ROAD_LAYER 00315 WRITE(YRECFM,FMT='(A8,I1.1)') 'D_D_ROAD',JLAYER 00316 YCOMMENT='X_Y_'//YRECFM//' (m)' 00317 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_D_ROAD(:,JLAYER),IRESP,YCOMMENT) 00318 END DO 00319 ENDIF 00320 ! 00321 YRECFM='L_ALB_WALL' 00322 YCOMMENT=YRECFM 00323 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_ALB_WALL,IRESP,HCOMMENT=YCOMMENT) 00324 IF (LDATA_ALB_WALL) THEN 00325 YRECFM='D_ALB_WALL' 00326 YCOMMENT='X_Y_'//YRECFM//' (-)' 00327 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_ALB_WALL,IRESP,YCOMMENT) 00328 ENDIF 00329 ! 00330 YRECFM='L_EMIS_WALL' 00331 YCOMMENT=YRECFM 00332 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_EMIS_WALL,IRESP,HCOMMENT=YCOMMENT) 00333 IF (LDATA_EMIS_WALL) THEN 00334 YRECFM='D_EMI_WALL' 00335 YCOMMENT='X_Y_'//YRECFM//' (-)' 00336 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_EMIS_WALL,IRESP,YCOMMENT) 00337 ENDIF 00338 ! 00339 ! 00340 IF (LDATA_HC_WALL) THEN 00341 YCOMMENT='Number of specified Wall thermal layers' 00342 CALL WRITE_SURF(HPROGRAM,'PAR_WL_LAYER',NPAR_WALL_LAYER,IRESP,YCOMMENT) 00343 END IF 00344 ! 00345 YRECFM='L_HC_WALL' 00346 YCOMMENT=YRECFM 00347 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_HC_WALL,IRESP,HCOMMENT=YCOMMENT) 00348 IF (LDATA_HC_WALL) THEN 00349 DO JLAYER=1,NPAR_WALL_LAYER 00350 WRITE(YRECFM,FMT='(A9,I1.1)') 'D_HC_WALL',JLAYER 00351 YCOMMENT='X_Y_'//YRECFM//' (J/K/m3)' 00352 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_HC_WALL(:,JLAYER),IRESP,YCOMMENT) 00353 END DO 00354 ENDIF 00355 ! 00356 YRECFM='L_TC_WALL' 00357 YCOMMENT=YRECFM 00358 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_TC_WALL,IRESP,HCOMMENT=YCOMMENT) 00359 IF (LDATA_TC_WALL) THEN 00360 DO JLAYER=1,NPAR_WALL_LAYER 00361 WRITE(YRECFM,FMT='(A9,I1.1)') 'D_TC_WALL',JLAYER 00362 YCOMMENT='X_Y_'//YRECFM//' (W/K/m)' 00363 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_TC_WALL(:,JLAYER),IRESP,YCOMMENT) 00364 END DO 00365 ENDIF 00366 ! 00367 YRECFM='L_D_WALL' 00368 YCOMMENT=YRECFM 00369 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_D_WALL,IRESP,HCOMMENT=YCOMMENT) 00370 IF (LDATA_D_WALL) THEN 00371 DO JLAYER=1,NPAR_WALL_LAYER 00372 WRITE(YRECFM,FMT='(A8,I1.1)') 'D_D_WALL',JLAYER 00373 YCOMMENT='X_Y_'//YRECFM//' (m)' 00374 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_D_WALL(:,JLAYER),IRESP,YCOMMENT) 00375 END DO 00376 ENDIF 00377 ! 00378 YRECFM='L_BLD_HEIGHT' 00379 YCOMMENT=YRECFM 00380 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_BLD_HEIGHT,IRESP,HCOMMENT=YCOMMENT) 00381 IF (LDATA_BLD_HEIGHT) THEN 00382 YRECFM='D_BLD_HEIG' 00383 YCOMMENT='X_Y_'//YRECFM//' (m)' 00384 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_BLD_HEIGHT,IRESP,YCOMMENT) 00385 ENDIF 00386 ! 00387 YRECFM='L_WALL_O_HOR' 00388 YCOMMENT=YRECFM 00389 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_WALL_O_HOR,IRESP,HCOMMENT=YCOMMENT) 00390 IF (LDATA_WALL_O_HOR) THEN 00391 YRECFM='D_WALL_O_H' 00392 YCOMMENT='X_Y_'//YRECFM//' (-)' 00393 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_WALL_O_HOR,IRESP,YCOMMENT) 00394 ENDIF 00395 ! 00396 YRECFM='L_H_TRAF' 00397 YCOMMENT=YRECFM 00398 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_H_TRAFFIC,IRESP,HCOMMENT=YCOMMENT) 00399 IF (LDATA_H_TRAFFIC) THEN 00400 YRECFM='D_H_TRAF' 00401 YCOMMENT='X_Y_'//YRECFM//' (W/m2)' 00402 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_H_TRAFFIC,IRESP,YCOMMENT) 00403 ENDIF 00404 ! 00405 YRECFM='L_LE_TRAF' 00406 YCOMMENT=YRECFM 00407 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_LE_TRAFFIC,IRESP,HCOMMENT=YCOMMENT) 00408 IF (LDATA_LE_TRAFFIC) THEN 00409 YRECFM='D_LE_TRAF' 00410 YCOMMENT='X_Y_'//YRECFM//' (W/m2)' 00411 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_LE_TRAFFIC,IRESP,YCOMMENT) 00412 ENDIF 00413 ! 00414 YRECFM='L_H_IND' 00415 YCOMMENT=YRECFM 00416 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_H_INDUSTRY,IRESP,HCOMMENT=YCOMMENT) 00417 IF (LDATA_H_INDUSTRY) THEN 00418 YRECFM='D_H_IND' 00419 YCOMMENT='X_Y_'//YRECFM//' (W/m2)' 00420 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_H_INDUSTRY,IRESP,YCOMMENT) 00421 ENDIF 00422 ! 00423 YRECFM='L_LE_IND' 00424 YCOMMENT=YRECFM 00425 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_LE_INDUSTRY,IRESP,HCOMMENT=YCOMMENT) 00426 IF (LDATA_LE_INDUSTRY) THEN 00427 YRECFM='D_LE_IND' 00428 YCOMMENT='X_Y_'//YRECFM//' (W/m2)' 00429 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_LE_INDUSTRY,IRESP,YCOMMENT) 00430 ENDIF 00431 ! 00432 YRECFM='L_ROUGH_ROOF' 00433 YCOMMENT=YRECFM 00434 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_ROUGH_ROOF,IRESP,HCOMMENT=YCOMMENT) 00435 IF (LDATA_ROUGH_ROOF) THEN 00436 YRECFM='D_ROUGH_ROOF' 00437 YCOMMENT='X_Y_'//YRECFM//' (-)' 00438 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_ROUGH_ROOF,IRESP,YCOMMENT) 00439 ENDIF 00440 ! 00441 YRECFM='L_ROUGH_WALL' 00442 YCOMMENT=YRECFM 00443 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_ROUGH_WALL,IRESP,HCOMMENT=YCOMMENT) 00444 IF (LDATA_ROUGH_WALL) THEN 00445 YRECFM='D_ROUGH_WALL' 00446 YCOMMENT='X_Y_'//YRECFM//' (-)' 00447 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_ROUGH_WALL,IRESP,YCOMMENT) 00448 ENDIF 00449 IF (CBEM .EQ. 'BEM') THEN 00450 ! 00451 IF (LDATA_HC_FLOOR) THEN 00452 YCOMMENT='Number of specified Floor thermal layers' 00453 CALL WRITE_SURF(HPROGRAM,'PAR_FL_LAYER',NPAR_FLOOR_LAYER,IRESP,YCOMMENT) 00454 END IF 00455 ! 00456 YRECFM='L_HC_FLOOR' 00457 YCOMMENT=YRECFM 00458 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_HC_FLOOR,IRESP,HCOMMENT=YCOMMENT) 00459 IF (LDATA_HC_FLOOR) THEN 00460 DO JLAYER=1,NPAR_FLOOR_LAYER 00461 WRITE(YRECFM,FMT='(A10,I1.1)') 'D_HC_FLOOR',JLAYER 00462 YCOMMENT='X_Y_'//YRECFM//' (J/K/m3)' 00463 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_HC_FLOOR(:,JLAYER),IRESP,YCOMMENT) 00464 END DO 00465 ENDIF 00466 ! 00467 YRECFM='L_TC_FLOOR' 00468 YCOMMENT=YRECFM 00469 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_TC_FLOOR,IRESP,HCOMMENT=YCOMMENT) 00470 IF (LDATA_TC_FLOOR) THEN 00471 DO JLAYER=1,NPAR_FLOOR_LAYER 00472 WRITE(YRECFM,FMT='(A10,I1.1)') 'D_TC_FLOOR',JLAYER 00473 YCOMMENT='X_Y_'//YRECFM//' (W/K/m)' 00474 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_TC_FLOOR(:,JLAYER),IRESP,YCOMMENT) 00475 END DO 00476 ENDIF 00477 ! 00478 YRECFM='L_D_FLOOR' 00479 YCOMMENT=YRECFM 00480 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_D_FLOOR,IRESP,HCOMMENT=YCOMMENT) 00481 IF (LDATA_D_FLOOR) THEN 00482 DO JLAYER=1,NPAR_FLOOR_LAYER 00483 WRITE(YRECFM,FMT='(A9,I1.1)') 'D_D_FLOOR',JLAYER 00484 YCOMMENT='X_Y_'//YRECFM//' (m)' 00485 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_D_FLOOR(:,JLAYER),IRESP,YCOMMENT) 00486 END DO 00487 ENDIF 00488 ! 00489 YRECFM='L_TCOOL_TARG' 00490 YCOMMENT=YRECFM 00491 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_TCOOL_TARGET,IRESP,HCOMMENT=YCOMMENT) 00492 IF (LDATA_TCOOL_TARGET) THEN 00493 YRECFM='D_TCOOL_TARG' 00494 YCOMMENT='X_Y_'//YRECFM//' (K)' 00495 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_TCOOL_TARGET,IRESP,YCOMMENT) 00496 ENDIF 00497 ! 00498 YRECFM='L_THEAT_TARG' 00499 YCOMMENT=YRECFM 00500 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_THEAT_TARGET,IRESP,HCOMMENT=YCOMMENT) 00501 IF (LDATA_THEAT_TARGET) THEN 00502 YRECFM='D_THEAT_TARG' 00503 YCOMMENT='X_Y_'//YRECFM//' (K)' 00504 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_THEAT_TARGET,IRESP,YCOMMENT) 00505 ENDIF 00506 ! 00507 YRECFM='L_F_WAST_CAN' 00508 YCOMMENT=YRECFM 00509 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_F_WASTE_CAN,IRESP,HCOMMENT=YCOMMENT) 00510 IF (LDATA_F_WASTE_CAN) THEN 00511 YRECFM='D_F_WAST_CAN' 00512 YCOMMENT='X_Y_'//YRECFM//' (-)' 00513 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_F_WASTE_CAN,IRESP,YCOMMENT) 00514 ENDIF 00515 ! 00516 YRECFM='L_EFF_HEAT' 00517 YCOMMENT=YRECFM 00518 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_EFF_HEAT,IRESP,HCOMMENT=YCOMMENT) 00519 IF (LDATA_EFF_HEAT) THEN 00520 YRECFM='D_EFF_HEAT' 00521 YCOMMENT='X_Y_'//YRECFM//' (-)' 00522 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_EFF_HEAT,IRESP,YCOMMENT) 00523 ENDIF 00524 ! 00525 YRECFM='L_QIN' 00526 YCOMMENT=YRECFM 00527 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_QIN,IRESP,HCOMMENT=YCOMMENT) 00528 IF (LDATA_QIN) THEN 00529 YRECFM='D_QIN' 00530 YCOMMENT='X_Y_'//YRECFM//' (K)' 00531 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_QIN,IRESP,YCOMMENT) 00532 ENDIF 00533 ! 00534 YRECFM='L_QIN_FRAD' 00535 YCOMMENT=YRECFM 00536 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_QIN_FRAD,IRESP,HCOMMENT=YCOMMENT) 00537 IF (LDATA_QIN_FRAD) THEN 00538 YRECFM='D_QIN_FRAD' 00539 YCOMMENT='X_Y_'//YRECFM//' (K)' 00540 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_QIN_FRAD,IRESP,YCOMMENT) 00541 ENDIF 00542 ! 00543 YRECFM='L_SHGC' 00544 YCOMMENT=YRECFM 00545 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_SHGC,IRESP,HCOMMENT=YCOMMENT) 00546 IF (LDATA_SHGC) THEN 00547 YRECFM='D_SHGC' 00548 YCOMMENT='X_Y_'//YRECFM//' (-)' 00549 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_SHGC,IRESP,YCOMMENT) 00550 ENDIF 00551 ! 00552 YRECFM='L_U_WIN' 00553 YCOMMENT=YRECFM 00554 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_U_WIN,IRESP,HCOMMENT=YCOMMENT) 00555 IF (LDATA_U_WIN) THEN 00556 YRECFM='D_U_WIN' 00557 YCOMMENT='X_Y_'//YRECFM//' (W m-2 K-1)' 00558 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_U_WIN,IRESP,YCOMMENT) 00559 ENDIF 00560 ! 00561 YRECFM='L_GR' 00562 YCOMMENT=YRECFM 00563 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_GR,IRESP,HCOMMENT=YCOMMENT) 00564 IF (LDATA_GR) THEN 00565 YRECFM='D_GR' 00566 YCOMMENT='X_Y_'//YRECFM//' (-)' 00567 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_GR,IRESP,YCOMMENT) 00568 ENDIF 00569 ! 00570 YRECFM='L_SHGC_SH' 00571 YCOMMENT=YRECFM 00572 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_SHGC_SH,IRESP,HCOMMENT=YCOMMENT) 00573 IF (LDATA_SHGC_SH) THEN 00574 YRECFM='D_SHGC_SH' 00575 YCOMMENT='X_Y_'//YRECFM//' (-)' 00576 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_SHGC_SH,IRESP,YCOMMENT) 00577 ENDIF 00578 ! 00579 YRECFM='L_FLOOR_HEIG' 00580 YCOMMENT=YRECFM 00581 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_FLOOR_HEIGHT,IRESP,HCOMMENT=YCOMMENT) 00582 IF (LDATA_FLOOR_HEIGHT) THEN 00583 YRECFM='D_FLOOR_HEIG' 00584 YCOMMENT='X_Y_'//YRECFM//' (m)' 00585 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_FLOOR_HEIGHT,IRESP,YCOMMENT) 00586 ENDIF 00587 ! 00588 YRECFM='L_INF' 00589 YCOMMENT=YRECFM 00590 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_INF,IRESP,HCOMMENT=YCOMMENT) 00591 IF (LDATA_INF) THEN 00592 YRECFM='D_INF' 00593 YCOMMENT='X_Y_'//YRECFM//' (ACH)' 00594 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_INF,IRESP,YCOMMENT) 00595 ENDIF 00596 ! 00597 YRECFM='L_QIN_FLAT' 00598 YCOMMENT=YRECFM 00599 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_QIN_FLAT,IRESP,HCOMMENT=YCOMMENT) 00600 IF (LDATA_QIN_FLAT) THEN 00601 YRECFM='D_QIN_FLAT' 00602 YCOMMENT='X_Y_'//YRECFM//' (-)' 00603 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_QIN_FLAT,IRESP,YCOMMENT) 00604 ENDIF 00605 ! 00606 YRECFM='L_HR_TARGET' 00607 YCOMMENT=YRECFM 00608 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_HR_TARGET,IRESP,HCOMMENT=YCOMMENT) 00609 IF (LDATA_HR_TARGET) THEN 00610 YRECFM='D_HR_TARGET' 00611 YCOMMENT='X_Y_'//YRECFM//' (-)' 00612 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_HR_TARGET,IRESP,YCOMMENT) 00613 ENDIF 00614 ! 00615 YRECFM='L_V_VENT' 00616 YCOMMENT=YRECFM 00617 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_V_VENT,IRESP,HCOMMENT=YCOMMENT) 00618 IF (LDATA_V_VENT) THEN 00619 YRECFM='D_V_VENT' 00620 YCOMMENT='X_Y_'//YRECFM//' (ACH)' 00621 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_V_VENT,IRESP,YCOMMENT) 00622 ENDIF 00623 ! 00624 YRECFM='L_CAP_SYS_HE' 00625 YCOMMENT=YRECFM 00626 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_CAP_SYS_HEAT,IRESP,HCOMMENT=YCOMMENT) 00627 IF (LDATA_CAP_SYS_HEAT) THEN 00628 YRECFM='D_CAP_SYS_HE' 00629 YCOMMENT='X_Y_'//YRECFM//' (W m-2)' 00630 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_CAP_SYS_HEAT,IRESP,YCOMMENT) 00631 ENDIF 00632 ! 00633 YRECFM='L_CAP_SYS_RA' 00634 YCOMMENT=YRECFM 00635 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_CAP_SYS_RAT,IRESP,HCOMMENT=YCOMMENT) 00636 IF (LDATA_CAP_SYS_RAT) THEN 00637 YRECFM='D_CAP_SYS_RA' 00638 YCOMMENT='X_Y_'//YRECFM//' (W m-2)' 00639 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_CAP_SYS_RAT,IRESP,YCOMMENT) 00640 ENDIF 00641 ! 00642 YRECFM='L_T_ADP' 00643 YCOMMENT=YRECFM 00644 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_T_ADP,IRESP,HCOMMENT=YCOMMENT) 00645 IF (LDATA_T_ADP) THEN 00646 YRECFM='D_T_ADP' 00647 YCOMMENT='X_Y_'//YRECFM//' (K)' 00648 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_T_ADP,IRESP,YCOMMENT) 00649 ENDIF 00650 ! 00651 YRECFM='L_M_SYS_RAT' 00652 YCOMMENT=YRECFM 00653 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_M_SYS_RAT,IRESP,HCOMMENT=YCOMMENT) 00654 IF (LDATA_M_SYS_RAT) THEN 00655 YRECFM='D_M_SYS_RAT' 00656 YCOMMENT='X_Y_'//YRECFM//' (kg s-1 m-)' 00657 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_M_SYS_RAT,IRESP,YCOMMENT) 00658 ENDIF 00659 ! 00660 YRECFM='L_COP_RAT' 00661 YCOMMENT=YRECFM 00662 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_COP_RAT,IRESP,HCOMMENT=YCOMMENT) 00663 IF (LDATA_COP_RAT) THEN 00664 YRECFM='D_COP_RAT' 00665 YCOMMENT='X_Y_'//YRECFM//' (-)' 00666 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_COP_RAT,IRESP,YCOMMENT) 00667 ENDIF 00668 ! 00669 YRECFM='L_T_SIZE_MAX' 00670 YCOMMENT=YRECFM 00671 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_T_SIZE_MAX,IRESP,HCOMMENT=YCOMMENT) 00672 IF (LDATA_T_SIZE_MAX) THEN 00673 YRECFM='D_T_SIZE_MAX' 00674 YCOMMENT='X_Y_'//YRECFM//' (K)' 00675 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_T_SIZE_MAX,IRESP,YCOMMENT) 00676 ENDIF 00677 ! 00678 YRECFM='L_T_SIZE_MIN' 00679 YCOMMENT=YRECFM 00680 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_T_SIZE_MIN,IRESP,HCOMMENT=YCOMMENT) 00681 IF (LDATA_T_SIZE_MIN) THEN 00682 YRECFM='D_T_SIZE_MIN' 00683 YCOMMENT='X_Y_'//YRECFM//' (K)' 00684 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_T_SIZE_MIN,IRESP,YCOMMENT) 00685 ENDIF 00686 ! 00687 YRECFM='L_FWAT_COND' 00688 YCOMMENT=YRECFM 00689 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_F_WATER_COND,IRESP,HCOMMENT=YCOMMENT) 00690 IF (LDATA_F_WATER_COND) THEN 00691 YRECFM='D_FWAT_COND' 00692 YCOMMENT='X_Y_'//YRECFM//' (-)' 00693 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_F_WATER_COND,IRESP,YCOMMENT) 00694 ENDIF 00695 ! 00696 YRECFM='L_SHADE' 00697 YCOMMENT=YRECFM 00698 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_SHADE,IRESP,HCOMMENT=YCOMMENT) 00699 IF (LDATA_SHADE) THEN 00700 YRECFM='D_SHADE' 00701 YCOMMENT='X_Y_'//YRECFM//' (-)' 00702 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_SHADE,IRESP,YCOMMENT) 00703 ENDIF 00704 ! 00705 YRECFM='L_NATVENT' 00706 YCOMMENT=YRECFM 00707 CALL WRITE_SURF(HPROGRAM,YRECFM,LDATA_NATVENT,IRESP,HCOMMENT=YCOMMENT) 00708 IF (LDATA_NATVENT) THEN 00709 YRECFM='D_NATVENT' 00710 YCOMMENT='X_Y_'//YRECFM//' (-)' 00711 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_NATVENT,IRESP,YCOMMENT) 00712 ENDIF 00713 ! 00714 ENDIF 00715 ! 00716 ! Flag for data for gardens 00717 YRECFM='PAR_GARDEN' 00718 YCOMMENT='FLAG FOR SPECIFIED GARDEN PARAMETERS' 00719 CALL WRITE_SURF(HPROGRAM,YRECFM,LPAR_GARDEN,IRESP,HCOMMENT=YCOMMENT) 00720 ! 00721 IF (LGARDEN .AND. LPAR_GARDEN) THEN 00722 ! 00723 ! Type of high vegetation 00724 YRECFM='D_TYPE_HVEG' 00725 YCOMMENT='X_Y_TYPE_HVEG' 00726 CALL WRITE_SURF(HPROGRAM,YRECFM,CTYPE_HVEG,IRESP,HCOMMENT=YCOMMENT) 00727 ! 00728 ! Type of low vegetation 00729 YRECFM='D_TYPE_LVEG' 00730 YCOMMENT='X_Y_TYPE_LVEG' 00731 CALL WRITE_SURF(HPROGRAM,YRECFM,CTYPE_LVEG,IRESP,HCOMMENT=YCOMMENT) 00732 ! 00733 ! Type of bare soil (no vegetation) 00734 YRECFM='D_TYPE_NVEG' 00735 YCOMMENT='X_Y_TYPE_NVEG' 00736 CALL WRITE_SURF(HPROGRAM,YRECFM,CTYPE_NVEG,IRESP,HCOMMENT=YCOMMENT) 00737 ! 00738 ! Fraction of high vegetation 00739 YRECFM='D_FRAC_HVEG' 00740 YCOMMENT='X_Y_D_FRAC_HVEG' 00741 CALL WRITE_SURF(HPROGRAM,YRECFM,XDATA_FRAC_HVEG(:),IRESP,HCOMMENT=YCOMMENT) 00742 ! 00743 ! Fraction of low vegetation 00744 YRECFM='D_FRAC_LVEG' 00745 YCOMMENT='X_Y_D_FRAC_LVEG' 00746 CALL WRITE_SURF(HPROGRAM,YRECFM,XDATA_FRAC_LVEG(:),IRESP,HCOMMENT=YCOMMENT) 00747 ! 00748 ! Fraction of bare soil 00749 YRECFM='D_FRAC_NVEG' 00750 YCOMMENT='X_Y_D_FRAC_NVEG' 00751 CALL WRITE_SURF(HPROGRAM,YRECFM,XDATA_FRAC_NVEG(:),IRESP,HCOMMENT=YCOMMENT) 00752 ! 00753 ! LAI of high vegetation 00754 DO JTIME=1,NTIME 00755 WRITE(YRECFM,FMT='(A10,I2.2)') 'D_LAI_HVEG',JTIME 00756 YCOMMENT='X_Y_D_LAI_HVEG' 00757 CALL WRITE_SURF(HPROGRAM,YRECFM,XDATA_LAI_HVEG(:,JTIME),IRESP,HCOMMENT=YCOMMENT) 00758 END DO 00759 ! 00760 ! LAI of low vegetation 00761 DO JTIME=1,NTIME 00762 WRITE(YRECFM,FMT='(A10,I2.2)') 'D_LAI_LVEG',JTIME 00763 YCOMMENT='X_Y_D_LAI_LVEG' 00764 CALL WRITE_SURF(HPROGRAM,YRECFM,XDATA_LAI_LVEG(:,JTIME),IRESP,HCOMMENT=YCOMMENT) 00765 END DO 00766 ! 00767 ! Height of trees 00768 YRECFM='D_H_HVEG' 00769 YCOMMENT='X_Y_DATA_H_HVEG' 00770 CALL WRITE_SURF(HPROGRAM,YRECFM,XDATA_H_HVEG(:),IRESP,HCOMMENT=YCOMMENT) 00771 ! 00772 ENDIF 00773 ! 00774 IF (LGREENROOF .AND. LPAR_GREENROOF) THEN 00775 ! 00776 ! Type of green roof 00777 YRECFM='D_TYPE_GR' 00778 YCOMMENT='X_Y_TYPE_GR' 00779 CALL WRITE_SURF(HPROGRAM,YRECFM,CTYP_GR,IRESP,HCOMMENT=YCOMMENT) 00780 ! 00781 ! Fraction of OM in green roof layer 00782 DO JLAYER=1,NLAYER_GR 00783 WRITE(YRECFM,FMT='(A7,I2.2)') 'D_OM_GR',JLAYER 00784 YCOMMENT='X_Y_D_OM_GR' 00785 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_OM_GR(:,JLAYER),IRESP,HCOMMENT=YCOMMENT) 00786 END DO 00787 ! 00788 ! Fraction of CLAY in the non-OM part of the green roof layer 00789 DO JLAYER=1,NLAYER_GR 00790 WRITE(YRECFM,FMT='(A9,I2.2)') 'D_CLAY_GR',JLAYER 00791 YCOMMENT='X_Y_D_CLAY_GR' 00792 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_CLAY_GR(:,JLAYER),IRESP,HCOMMENT=YCOMMENT) 00793 END DO 00794 ! 00795 ! Fraction of SAND in the non-OM part of the green roof layer 00796 DO JLAYER=1,NLAYER_GR 00797 WRITE(YRECFM,FMT='(A9,I2.2)') 'D_SAND_GR',JLAYER 00798 YCOMMENT='X_Y_D_SAND_GR' 00799 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_SAND_GR(:,JLAYER),IRESP,HCOMMENT=YCOMMENT) 00800 END DO 00801 ! 00802 ! LAI of green roof vegetation 00803 DO JTIME=1,NTIME_GR 00804 WRITE(YRECFM,FMT='(A8,I2.2)') 'D_LAI_GR',JTIME 00805 YCOMMENT='X_Y_D_LAI_GR' 00806 CALL WRITE_SURF(HPROGRAM,YRECFM,XPAR_LAI_GR(:,JTIME),IRESP,HCOMMENT=YCOMMENT) 00807 END DO 00808 ! 00809 ENDIF 00810 ! 00811 IF (LHOOK) CALL DR_HOOK('WRITESURF_PGD_TEB_PAR_N',1,ZHOOK_HANDLE) 00812 ! 00813 ! 00814 !------------------------------------------------------------------------------- 00815 ! 00816 END SUBROUTINE WRITESURF_PGD_TEB_PAR_n