SURFEX v7.3
General documentation of Surfex
|
00001 ! ########################################## 00002 SUBROUTINE PGD_BEM_PAR(HPROGRAM,OAUTOSIZE) 00003 ! ########################################## 00004 ! 00005 !!**** *PGD_BEM_PAR* monitor for averaging and interpolations of BEM input data 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 !! 00010 !! METHOD 00011 !! ------ 00012 !! 00013 ! 00014 !! EXTERNAL 00015 !! -------- 00016 !! 00017 !! IMPLICIT ARGUMENTS 00018 !! ------------------ 00019 !! 00020 !! REFERENCE 00021 !! --------- 00022 !! 00023 !! AUTHOR 00024 !! ------ 00025 !! 00026 !! G. Pigeon Meteo-France 00027 !! 00028 !! MODIFICATION 00029 !! ------------ 00030 !! 00031 !! Original 08/2011 00032 !! G. Pigeon 09/2012, NPAR_FLOOR_LAYER default to 1 00033 !! 00034 !! 00035 !---------------------------------------------------------------------------- 00036 ! 00037 !* 0. DECLARATION 00038 ! ----------- 00039 ! 00040 USE MODD_SURF_PAR, ONLY : XUNDEF 00041 USE MODD_TEB_GRID_n, ONLY : NDIM 00042 USE MODD_DATA_BEM_n, ONLY : NPAR_FLOOR_LAYER_n => NPAR_FLOOR_LAYER, & 00043 XPAR_TCOOL_TARGET, XPAR_THEAT_TARGET, & 00044 XPAR_HC_FLOOR, XPAR_TC_FLOOR, XPAR_D_FLOOR, & 00045 XPAR_F_WASTE_CAN, XPAR_SHADE, XPAR_NATVENT, & 00046 XPAR_EFF_HEAT, XPAR_QIN, XPAR_QIN_FRAD, & 00047 XPAR_SHGC, XPAR_U_WIN, XPAR_GR, & 00048 XPAR_FLOOR_HEIGHT, XPAR_INF, XPAR_QIN_FLAT, & 00049 XPAR_HR_TARGET, XPAR_V_VENT, XPAR_CAP_SYS_HEAT, & 00050 XPAR_CAP_SYS_RAT, XPAR_T_ADP, XPAR_M_SYS_RAT, & 00051 XPAR_COP_RAT, XPAR_T_SIZE_MAX, XPAR_T_SIZE_MIN, & 00052 XPAR_F_WATER_COND, XPAR_SHGC_SH, & 00053 LDATA_HC_FLOOR, LDATA_TC_FLOOR, LDATA_D_FLOOR, & 00054 LDATA_TCOOL_TARGET, LDATA_THEAT_TARGET, & 00055 LDATA_F_WASTE_CAN, LDATA_SHADE, LDATA_NATVENT, & 00056 LDATA_EFF_HEAT, LDATA_QIN, LDATA_QIN_FRAD, & 00057 LDATA_SHGC, LDATA_U_WIN, LDATA_GR, & 00058 LDATA_FLOOR_HEIGHT, LDATA_INF, LDATA_QIN_FLAT, & 00059 LDATA_HR_TARGET, LDATA_V_VENT, LDATA_CAP_SYS_HEAT, & 00060 LDATA_CAP_SYS_RAT, LDATA_T_ADP, LDATA_M_SYS_RAT, & 00061 LDATA_COP_RAT, LDATA_T_SIZE_MAX, LDATA_T_SIZE_MIN, & 00062 LDATA_F_WATER_COND, LDATA_SHGC_SH 00063 ! 00064 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00065 USE PARKIND1 ,ONLY : JPRB 00066 ! 00067 USE MODI_GET_LUOUT 00068 USE MODI_OPEN_NAMELIST 00069 USE MODI_CLOSE_NAMELIST 00070 USE MODI_TEST_NAM_VAR_SURF 00071 USE MODI_INI_VAR_FROM_DATA_0D 00072 USE MODI_INI_VAR_FROM_DATA 00073 USE MODI_ABOR1_SFX 00074 ! 00075 USE MODE_POS_SURF 00076 ! 00077 IMPLICIT NONE 00078 ! 00079 !* 0.1 Declaration of arguments 00080 ! ------------------------ 00081 ! 00082 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! Type of program 00083 LOGICAL, INTENT(IN) :: OAUTOSIZE ! T for automatic determination 00084 ! ! of HVAC systems charcateristics 00085 ! 00086 ! 00087 !* 0.2 Declaration of local variables 00088 ! ------------------------------ 00089 ! 00090 INTEGER :: ILUOUT ! output listing logical unit 00091 INTEGER :: ILUNAM ! namelist file logical unit 00092 LOGICAL :: GFOUND ! true if namelist is found 00093 INTEGER :: JLAYER ! loop counter on layers 00094 ! 00095 ! 00096 !* 0.3 Declaration of namelists 00097 ! ------------------------ 00098 ! 00099 ! bem options 00100 ! 00101 INTEGER, PARAMETER :: NFLOOR_MAX = 9 00102 INTEGER :: NPAR_FLOOR_LAYER ! number of floor layers 00103 ! 00104 REAL :: XUNIF_SHADE ! 00105 CHARACTER(LEN=28) :: CFNAM_SHADE ! 00106 CHARACTER(LEN=6) :: CFTYP_SHADE ! 00107 REAL :: XUNIF_NATVENT ! 00108 CHARACTER(LEN=28) :: CFNAM_NATVENT ! 00109 CHARACTER(LEN=6) :: CFTYP_NATVENT ! 00110 ! 00111 ! Floor parameters 00112 ! 00113 REAL, DIMENSION(NFLOOR_MAX) :: XUNIF_HC_FLOOR ! floor layers heat capacity (J/K/m3) 00114 REAL, DIMENSION(NFLOOR_MAX) :: XUNIF_TC_FLOOR ! floor layers thermal conduc (W/K/m) 00115 REAL, DIMENSION(NFLOOR_MAX) :: XUNIF_D_FLOOR ! depth of floor layers (m) 00116 REAL :: XUNIF_FLOOR_HEIGHT ! building floor height [m] 00117 CHARACTER(LEN=28), DIMENSION(NFLOOR_MAX):: CFNAM_HC_FLOOR ! file name for HC_FLOOR 00118 CHARACTER(LEN=28), DIMENSION(NFLOOR_MAX):: CFNAM_TC_FLOOR ! file name for TC_FLOOR 00119 CHARACTER(LEN=28), DIMENSION(NFLOOR_MAX):: CFNAM_D_FLOOR ! file name for D_FLOOR 00120 CHARACTER(LEN=28) :: CFNAM_FLOOR_HEIGHT ! file name for FLOOR_HEIGHT 00121 CHARACTER(LEN=6), DIMENSION(NFLOOR_MAX):: CFTYP_HC_FLOOR ! file type for HC_FLOOR 00122 CHARACTER(LEN=6), DIMENSION(NFLOOR_MAX):: CFTYP_TC_FLOOR ! file type for TC_FLOOR 00123 CHARACTER(LEN=6), DIMENSION(NFLOOR_MAX):: CFTYP_D_FLOOR ! file type for D_FLOOR 00124 CHARACTER(LEN=6) :: CFTYP_FLOOR_HEIGHT ! file type for FLOOR_HEIGHT 00125 ! 00126 ! AC systems parameters 00127 ! 00128 REAL :: XUNIF_TCOOL_TARGET !cooling setpoint 00129 REAL :: XUNIF_THEAT_TARGET !heating setpoint 00130 REAL :: XUNIF_F_WASTE_CAN ! fraction of waste heat into the canyon 00131 REAL :: XUNIF_EFF_HEAT ! efficiency of the heating system 00132 REAL :: XUNIF_HR_TARGET ! Relative humidity setpoint 00133 REAL :: XUNIF_CAP_SYS_HEAT ! Capacity of the heating system 00134 REAL :: XUNIF_CAP_SYS_RAT ! Rated capacity of the cooling system 00135 REAL :: XUNIF_T_ADP ! Apparatus dewpoint temperature of the 00136 REAL :: XUNIF_M_SYS_RAT ! Rated HVAC mass flow rate 00137 REAL :: XUNIF_COP_RAT ! Rated COP of the cooling system 00138 REAL :: XUNIF_F_WATER_COND ! fraction of evaporation of condensers 00139 CHARACTER(LEN=28) :: CFNAM_TCOOL_TARGET ! file name for TCOOL_TARGET 00140 CHARACTER(LEN=28) :: CFNAM_THEAT_TARGET ! file name for THEAT_TARGET 00141 CHARACTER(LEN=28) :: CFNAM_F_WASTE_CAN ! file name for F_WASTE_CAN 00142 CHARACTER(LEN=28) :: CFNAM_EFF_HEAT ! file name for EFF_HEAT 00143 CHARACTER(LEN=28) :: CFNAM_HR_TARGET ! Relative humidity setpoint 00144 CHARACTER(LEN=28) :: CFNAM_CAP_SYS_HEAT ! Capacity of the heating system 00145 CHARACTER(LEN=28) :: CFNAM_CAP_SYS_RAT ! Rated capacity of the cooling system 00146 CHARACTER(LEN=28) :: CFNAM_T_ADP ! Apparatus dewpoint temperature of the 00147 CHARACTER(LEN=28) :: CFNAM_M_SYS_RAT ! Rated HVAC mass flow rate 00148 CHARACTER(LEN=28) :: CFNAM_COP_RAT ! Rated COP of the cooling system 00149 CHARACTER(LEN=28) :: CFNAM_F_WATER_COND ! fraction of evaporation of condensers 00150 CHARACTER(LEN=6) :: CFTYP_TCOOL_TARGET ! file type for TCOOL_TARGET 00151 CHARACTER(LEN=6) :: CFTYP_THEAT_TARGET ! file type for THEAT_TARGET 00152 CHARACTER(LEN=6) :: CFTYP_F_WASTE_CAN ! file type for F_WASTE_CAN 00153 CHARACTER(LEN=6) :: CFTYP_EFF_HEAT ! file type for EFF_HEAT 00154 CHARACTER(LEN=6) :: CFTYP_HR_TARGET ! Relative humidity setpoint 00155 CHARACTER(LEN=6) :: CFTYP_CAP_SYS_HEAT ! Capacity of the heating system 00156 CHARACTER(LEN=6) :: CFTYP_CAP_SYS_RAT ! Rated capacity of the cooling system 00157 CHARACTER(LEN=6) :: CFTYP_T_ADP ! Apparatus dewpoint temperature of the 00158 CHARACTER(LEN=6) :: CFTYP_M_SYS_RAT ! Rated HVAC mass flow rate 00159 CHARACTER(LEN=6) :: CFTYP_COP_RAT ! Rated COP of the cooling system 00160 CHARACTER(LEN=6) :: CFTYP_F_WATER_COND ! fraction of evaporation of condensers 00161 ! 00162 ! Internal heat gains 00163 REAL :: XUNIF_QIN ! internal heat gains [W m-2(floor)] 00164 REAL :: XUNIF_QIN_FRAD ! radiant fraction of int heat gains 00165 REAL :: XUNIF_QIN_FLAT ! Latent franction of internal heat gains 00166 CHARACTER(LEN=28) :: CFNAM_QIN ! file name for QIN 00167 CHARACTER(LEN=28) :: CFNAM_QIN_FRAD ! file name for QIN_FRAD 00168 CHARACTER(LEN=28) :: CFNAM_QIN_FLAT ! Latent franction of internal heat gains 00169 CHARACTER(LEN=6) :: CFTYP_QIN ! file type for QIN 00170 CHARACTER(LEN=6) :: CFTYP_QIN_FRAD ! file type for QIN_FRAD 00171 CHARACTER(LEN=6) :: CFTYP_QIN_FLAT ! Latent franction of internal heat gains 00172 ! 00173 ! window parameters 00174 REAL :: XUNIF_GR ! glazing ratio 00175 REAL :: XUNIF_SHGC ! solar transmitance of windows 00176 REAL :: XUNIF_SHGC_SH ! solar transmitance of windows + shading 00177 REAL :: XUNIF_U_WIN ! glazing thermal resistance[K m W-2] 00178 CHARACTER(LEN=28) :: CFNAM_GR ! file name for GR 00179 CHARACTER(LEN=28) :: CFNAM_SHGC ! file name for SHGC 00180 CHARACTER(LEN=28) :: CFNAM_SHGC_SH ! file name for SHGC_SH 00181 CHARACTER(LEN=28) :: CFNAM_U_WIN ! file name for U_WIN 00182 CHARACTER(LEN=6) :: CFTYP_GR ! file type for GR 00183 CHARACTER(LEN=6) :: CFTYP_SHGC ! file type for SHGC 00184 CHARACTER(LEN=6) :: CFTYP_SHGC_SH ! file type for SHGC 00185 CHARACTER(LEN=6) :: CFTYP_U_WIN ! file type for U_WIN 00186 ! 00187 ! air renewal 00188 REAL :: XUNIF_INF ! infiltration/ventilation flow rate [AC/H] 00189 REAL :: XUNIF_V_VENT ! Ventilation flow rate [AC/H] 00190 CHARACTER(LEN=28) :: CFNAM_INF ! file name for INF 00191 CHARACTER(LEN=28) :: CFNAM_V_VENT ! Ventilation flow rate [AC/H] 00192 CHARACTER(LEN=6) :: CFTYP_INF ! file type for INF 00193 CHARACTER(LEN=6) :: CFTYP_V_VENT ! Ventilation flow rate [AC/H] 00194 ! 00195 ! parameters for autosize calculation of the AC systems 00196 REAL :: XUNIF_T_SIZE_MAX ! 00197 REAL :: XUNIF_T_SIZE_MIN ! 00198 CHARACTER(LEN=28) :: CFNAM_T_SIZE_MAX ! 00199 CHARACTER(LEN=28) :: CFNAM_T_SIZE_MIN ! 00200 CHARACTER(LEN=6) :: CFTYP_T_SIZE_MAX ! 00201 CHARACTER(LEN=6) :: CFTYP_T_SIZE_MIN ! 00202 ! 00203 REAL, DIMENSION(NDIM) :: ZWORK 00204 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00205 ! 00206 NAMELIST/NAM_DATA_BEM/ NPAR_FLOOR_LAYER, & 00207 XUNIF_HC_FLOOR, XUNIF_TC_FLOOR, XUNIF_D_FLOOR, & 00208 XUNIF_FLOOR_HEIGHT, & 00209 XUNIF_TCOOL_TARGET, XUNIF_THEAT_TARGET, & 00210 XUNIF_F_WASTE_CAN, XUNIF_EFF_HEAT, & 00211 XUNIF_F_WATER_COND, XUNIF_HR_TARGET, & 00212 XUNIF_QIN, XUNIF_QIN_FRAD, XUNIF_QIN_FLAT, & 00213 XUNIF_SHGC, XUNIF_U_WIN, XUNIF_GR,XUNIF_SHGC_SH,& 00214 XUNIF_INF, XUNIF_V_VENT, & 00215 XUNIF_CAP_SYS_HEAT, & 00216 XUNIF_CAP_SYS_RAT, XUNIF_T_ADP, XUNIF_M_SYS_RAT,& 00217 XUNIF_COP_RAT, XUNIF_T_SIZE_MAX, & 00218 XUNIF_T_SIZE_MIN, & 00219 XUNIF_SHADE, CFNAM_SHADE, CFTYP_SHADE, & 00220 XUNIF_NATVENT, CFNAM_NATVENT, CFTYP_NATVENT, & 00221 CFNAM_HC_FLOOR, CFNAM_TC_FLOOR, CFNAM_D_FLOOR, & 00222 CFNAM_FLOOR_HEIGHT, & 00223 CFNAM_TCOOL_TARGET, CFNAM_THEAT_TARGET, & 00224 CFNAM_F_WASTE_CAN, CFNAM_EFF_HEAT, & 00225 CFNAM_F_WATER_COND, CFNAM_HR_TARGET, & 00226 CFNAM_QIN, CFNAM_QIN_FRAD, CFNAM_QIN_FLAT, & 00227 CFNAM_SHGC, CFNAM_U_WIN, CFNAM_GR, & 00228 CFNAM_SHGC_SH, CFNAM_INF, CFNAM_V_VENT, & 00229 CFNAM_CAP_SYS_HEAT, & 00230 CFNAM_CAP_SYS_RAT, CFNAM_T_ADP, CFNAM_M_SYS_RAT,& 00231 CFNAM_COP_RAT, CFNAM_T_SIZE_MAX, & 00232 CFNAM_T_SIZE_MIN, & 00233 CFTYP_HC_FLOOR, CFTYP_TC_FLOOR, CFTYP_D_FLOOR, & 00234 CFTYP_FLOOR_HEIGHT, & 00235 CFTYP_TCOOL_TARGET, CFTYP_THEAT_TARGET, & 00236 CFTYP_F_WASTE_CAN, CFTYP_EFF_HEAT, & 00237 CFTYP_F_WATER_COND, CFTYP_HR_TARGET, & 00238 CFTYP_QIN, CFTYP_QIN_FRAD, CFTYP_QIN_FLAT, & 00239 CFTYP_SHGC, CFTYP_U_WIN, CFTYP_GR, & 00240 CFTYP_SHGC_SH, CFTYP_INF, CFTYP_V_VENT, & 00241 CFTYP_CAP_SYS_HEAT, & 00242 CFTYP_CAP_SYS_RAT, CFTYP_T_ADP, CFTYP_M_SYS_RAT,& 00243 CFTYP_COP_RAT, CFTYP_T_SIZE_MAX, & 00244 CFTYP_T_SIZE_MIN 00245 !------------------------------------------------------------------------------- 00246 IF (LHOOK) CALL DR_HOOK('PGD_BEM_PAR',0,ZHOOK_HANDLE) 00247 ! 00248 !* 1. Initializations 00249 ! --------------- 00250 ! 00251 NPAR_FLOOR_LAYER = 1 00252 XUNIF_SHADE = XUNDEF 00253 XUNIF_NATVENT = XUNDEF 00254 XUNIF_HC_FLOOR = XUNDEF 00255 XUNIF_TC_FLOOR = XUNDEF 00256 XUNIF_D_FLOOR = XUNDEF 00257 XUNIF_TCOOL_TARGET = XUNDEF 00258 XUNIF_THEAT_TARGET = XUNDEF 00259 XUNIF_F_WASTE_CAN = XUNDEF 00260 XUNIF_EFF_HEAT = XUNDEF 00261 XUNIF_QIN = XUNDEF 00262 XUNIF_QIN_FRAD = XUNDEF 00263 XUNIF_SHGC = XUNDEF 00264 XUNIF_U_WIN = XUNDEF 00265 XUNIF_GR = XUNDEF 00266 XUNIF_SHGC_SH = XUNDEF 00267 XUNIF_FLOOR_HEIGHT = XUNDEF 00268 XUNIF_INF = XUNDEF 00269 XUNIF_F_WATER_COND = XUNDEF 00270 XUNIF_QIN_FLAT = XUNDEF 00271 XUNIF_HR_TARGET = XUNDEF 00272 XUNIF_V_VENT = XUNDEF 00273 XUNIF_CAP_SYS_HEAT = XUNDEF 00274 XUNIF_CAP_SYS_RAT = XUNDEF 00275 XUNIF_T_ADP = XUNDEF 00276 XUNIF_M_SYS_RAT = XUNDEF 00277 XUNIF_COP_RAT = XUNDEF 00278 XUNIF_T_SIZE_MAX = XUNDEF 00279 XUNIF_T_SIZE_MIN = XUNDEF 00280 ! 00281 CFNAM_SHADE = ' ' 00282 CFNAM_NATVENT = ' ' 00283 CFNAM_HC_FLOOR (:) = ' ' 00284 CFNAM_TC_FLOOR (:) = ' ' 00285 CFNAM_D_FLOOR (:) = ' ' 00286 CFNAM_TCOOL_TARGET = ' ' 00287 CFNAM_THEAT_TARGET = ' ' 00288 CFNAM_F_WASTE_CAN = ' ' 00289 CFNAM_EFF_HEAT = ' ' 00290 CFNAM_QIN = ' ' 00291 CFNAM_QIN_FRAD = ' ' 00292 CFNAM_SHGC = ' ' 00293 CFNAM_U_WIN = ' ' 00294 CFNAM_GR = ' ' 00295 CFNAM_SHGC_SH = ' ' 00296 CFNAM_FLOOR_HEIGHT = ' ' 00297 CFNAM_INF = ' ' 00298 CFNAM_F_WATER_COND = ' ' 00299 CFNAM_QIN_FLAT = ' ' 00300 CFNAM_HR_TARGET = ' ' 00301 CFNAM_V_VENT = ' ' 00302 CFNAM_CAP_SYS_HEAT = ' ' 00303 CFNAM_CAP_SYS_RAT = ' ' 00304 CFNAM_T_ADP = ' ' 00305 CFNAM_M_SYS_RAT = ' ' 00306 CFNAM_COP_RAT = ' ' 00307 CFNAM_T_SIZE_MAX = ' ' 00308 CFNAM_T_SIZE_MIN = ' ' 00309 ! 00310 CFTYP_SHADE = ' ' 00311 CFTYP_NATVENT = ' ' 00312 CFTYP_HC_FLOOR(:) = ' ' 00313 CFTYP_TC_FLOOR(:) = ' ' 00314 CFTYP_D_FLOOR(:) = ' ' 00315 CFTYP_TCOOL_TARGET = ' ' 00316 CFTYP_THEAT_TARGET = ' ' 00317 CFTYP_F_WASTE_CAN = ' ' 00318 CFTYP_EFF_HEAT = ' ' 00319 CFTYP_QIN = ' ' 00320 CFTYP_QIN_FRAD = ' ' 00321 CFTYP_SHGC = ' ' 00322 CFTYP_U_WIN = ' ' 00323 CFTYP_GR = ' ' 00324 CFTYP_SHGC_SH = ' ' 00325 CFTYP_FLOOR_HEIGHT = ' ' 00326 CFTYP_INF = ' ' 00327 CFTYP_F_WATER_COND = ' ' 00328 CFTYP_QIN_FLAT = ' ' 00329 CFTYP_HR_TARGET = ' ' 00330 CFTYP_V_VENT = ' ' 00331 CFTYP_CAP_SYS_HEAT = ' ' 00332 CFTYP_CAP_SYS_RAT = ' ' 00333 CFTYP_T_ADP = ' ' 00334 CFTYP_M_SYS_RAT = ' ' 00335 CFTYP_COP_RAT = ' ' 00336 CFTYP_T_SIZE_MAX = ' ' 00337 CFTYP_T_SIZE_MIN = ' ' 00338 ! 00339 !------------------------------------------------------------------------------- 00340 ! 00341 !* 2. Input file for cover types 00342 ! -------------------------- 00343 ! 00344 CALL GET_LUOUT(HPROGRAM,ILUOUT) 00345 CALL OPEN_NAMELIST(HPROGRAM,ILUNAM) 00346 ! 00347 CALL POSNAM(ILUNAM,'NAM_DATA_BEM',GFOUND,ILUOUT) 00348 IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_DATA_BEM) 00349 ! 00350 CALL CLOSE_NAMELIST(HPROGRAM,ILUNAM) 00351 ! 00352 !------------------------------------------------------------------------------- 00353 ! 00354 NPAR_FLOOR_LAYER_n = NPAR_FLOOR_LAYER 00355 ! 00356 !------------------------------------------------------------------------------- 00357 ! 00358 !* coherence check 00359 ! 00360 IF (( ANY(XUNIF_HC_FLOOR/=XUNDEF) .OR. ANY(LEN_TRIM(CFNAM_HC_FLOOR)>0) & 00361 .OR. ANY(XUNIF_TC_FLOOR/=XUNDEF) .OR. ANY(LEN_TRIM(CFNAM_TC_FLOOR)>0) & 00362 .OR. ANY(XUNIF_D_FLOOR /=XUNDEF) .OR. ANY(LEN_TRIM(CFNAM_D_FLOOR )>0) & 00363 ) .AND. NPAR_FLOOR_LAYER<1 ) THEN 00364 CALL ABOR1_SFX('In order to initialize FLOOR thermal quantities, please specify NPAR_FLOOR_LAYER in namelist NAM_DATA_BEM') 00365 END IF 00366 ! 00367 !------------------------------------------------------------------------------- 00368 ! 00369 ALLOCATE(XPAR_HC_FLOOR (NDIM,NPAR_FLOOR_LAYER)) 00370 ALLOCATE(XPAR_TC_FLOOR (NDIM,NPAR_FLOOR_LAYER)) 00371 ALLOCATE(XPAR_D_FLOOR (NDIM,NPAR_FLOOR_LAYER)) 00372 ! 00373 ALLOCATE(XPAR_TCOOL_TARGET (NDIM)) 00374 ALLOCATE(XPAR_THEAT_TARGET (NDIM)) 00375 ALLOCATE(XPAR_F_WASTE_CAN (NDIM)) 00376 ALLOCATE(XPAR_EFF_HEAT (NDIM)) 00377 ALLOCATE(XPAR_QIN (NDIM)) 00378 ALLOCATE(XPAR_QIN_FRAD (NDIM)) 00379 ALLOCATE(XPAR_SHGC (NDIM)) 00380 ALLOCATE(XPAR_U_WIN (NDIM)) 00381 ALLOCATE(XPAR_GR (NDIM)) 00382 ALLOCATE(XPAR_SHGC_SH (NDIM)) 00383 ALLOCATE(XPAR_FLOOR_HEIGHT (NDIM)) 00384 ALLOCATE(XPAR_INF (NDIM)) 00385 ! 00386 ALLOCATE(XPAR_F_WATER_COND (NDIM)) 00387 ALLOCATE(XPAR_QIN_FLAT (NDIM)) 00388 ALLOCATE(XPAR_HR_TARGET (NDIM)) 00389 ALLOCATE(XPAR_V_VENT (NDIM)) 00390 ALLOCATE(XPAR_CAP_SYS_HEAT (NDIM)) 00391 ALLOCATE(XPAR_CAP_SYS_RAT (NDIM)) 00392 ALLOCATE(XPAR_T_ADP (NDIM)) 00393 ALLOCATE(XPAR_M_SYS_RAT (NDIM)) 00394 ALLOCATE(XPAR_COP_RAT (NDIM)) 00395 ALLOCATE(XPAR_T_SIZE_MAX (NDIM)) 00396 ALLOCATE(XPAR_T_SIZE_MIN (NDIM)) 00397 ! 00398 ALLOCATE(XPAR_SHADE (NDIM)) 00399 ALLOCATE(XPAR_NATVENT (NDIM)) 00400 ! 00401 !------------------------------------------------------------------------------- 00402 IF (NFLOOR_MAX < NPAR_FLOOR_LAYER) THEN 00403 WRITE(ILUOUT,*) '---------------------------------------------' 00404 WRITE(ILUOUT,*) 'Please update pgd_bem_par.F90 routine : ' 00405 WRITE(ILUOUT,*) 'The maximum number of FLOOR LAYER ' 00406 WRITE(ILUOUT,*) 'in the declaration of the namelist variables ' 00407 WRITE(ILUOUT,*) 'must be increased to : ', NPAR_FLOOR_LAYER 00408 WRITE(ILUOUT,*) '---------------------------------------------' 00409 CALL ABOR1_SFX('PGD_BEM_PAR: MAXIMUM NUMBER OF NPAR_FLOOR_LAYER MUST BE INCREASED') 00410 END IF 00411 !------------------------------------------------------------------------------- 00412 ! 00413 !* 3. user defined fields are prescribed 00414 ! ---------------------------------- 00415 ! 00416 ! 00417 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'MAJ','SHADE ','TWN', CFNAM_SHADE, CFTYP_SHADE, XUNIF_SHADE, & 00418 XPAR_SHADE, LDATA_SHADE ) 00419 IF (.NOT.LDATA_SHADE) DEALLOCATE(XPAR_SHADE) 00420 ! 00421 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'MAJ','NATVENT ','TWN', CFNAM_NATVENT, CFTYP_NATVENT, XUNIF_NATVENT, & 00422 XPAR_NATVENT, LDATA_NATVENT ) 00423 IF (.NOT.LDATA_NATVENT) DEALLOCATE(XPAR_NATVENT) 00424 ! 00425 CALL INI_VAR_FROM_DATA(HPROGRAM,'INV','HC_FLOOR ','TWN',CFNAM_HC_FLOOR,CFTYP_HC_FLOOR, & 00426 XUNIF_HC_FLOOR,XPAR_HC_FLOOR,LDATA_HC_FLOOR ) 00427 IF (.NOT.LDATA_HC_FLOOR) DEALLOCATE(XPAR_HC_FLOOR) 00428 ! 00429 CALL INI_VAR_FROM_DATA(HPROGRAM,'ARI','TC_FLOOR ','TWN',CFNAM_TC_FLOOR,CFTYP_TC_FLOOR, & 00430 XUNIF_TC_FLOOR ,XPAR_TC_FLOOR, LDATA_TC_FLOOR ) 00431 IF (.NOT.LDATA_TC_FLOOR) DEALLOCATE(XPAR_TC_FLOOR) 00432 ! 00433 CALL INI_VAR_FROM_DATA(HPROGRAM,'ARI','D_FLOOR ','TWN',CFNAM_D_FLOOR,CFTYP_D_FLOOR, & 00434 XUNIF_D_FLOOR ,XPAR_D_FLOOR , LDATA_D_FLOOR ) 00435 IF (.NOT.LDATA_D_FLOOR) DEALLOCATE(XPAR_D_FLOOR) 00436 ! 00437 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','TCOOL_TARGET','TWN',CFNAM_TCOOL_TARGET, CFTYP_TCOOL_TARGET, XUNIF_TCOOL_TARGET, & 00438 XPAR_TCOOL_TARGET, LDATA_TCOOL_TARGET) 00439 IF (.NOT.LDATA_TCOOL_TARGET) DEALLOCATE(XPAR_TCOOL_TARGET) 00440 ! 00441 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','THEAT_TARGET','TWN',CFNAM_THEAT_TARGET, CFTYP_THEAT_TARGET, XUNIF_THEAT_TARGET, & 00442 XPAR_THEAT_TARGET, LDATA_THEAT_TARGET) 00443 IF (.NOT.LDATA_THEAT_TARGET) DEALLOCATE(XPAR_THEAT_TARGET) 00444 ! 00445 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','F_WASTE_CAN','TWN',CFNAM_F_WASTE_CAN, CFTYP_F_WASTE_CAN, XUNIF_F_WASTE_CAN, & 00446 XPAR_F_WASTE_CAN, LDATA_F_WASTE_CAN) 00447 IF (.NOT.LDATA_F_WASTE_CAN) DEALLOCATE(XPAR_F_WASTE_CAN) 00448 ! 00449 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','EFF_HEAT','TWN',CFNAM_EFF_HEAT, CFTYP_EFF_HEAT, XUNIF_EFF_HEAT, & 00450 XPAR_EFF_HEAT, LDATA_EFF_HEAT) 00451 IF (.NOT.LDATA_EFF_HEAT) DEALLOCATE(XPAR_EFF_HEAT) 00452 ! 00453 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','QIN','TWN',CFNAM_QIN, CFTYP_QIN, XUNIF_QIN, XPAR_QIN, LDATA_QIN) 00454 IF (.NOT.LDATA_QIN) DEALLOCATE(XPAR_QIN) 00455 ! 00456 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','QIN_FRAD','TWN',CFNAM_QIN_FRAD, CFTYP_QIN_FRAD, XUNIF_QIN_FRAD, & 00457 XPAR_QIN_FRAD, LDATA_QIN_FRAD) 00458 IF (.NOT.LDATA_QIN_FRAD) DEALLOCATE(XPAR_QIN_FRAD) 00459 ! 00460 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','SHGC','TWN',CFNAM_SHGC, CFTYP_SHGC, XUNIF_SHGC, XPAR_SHGC, LDATA_SHGC) 00461 IF (.NOT.LDATA_SHGC) DEALLOCATE(XPAR_SHGC) 00462 ! 00463 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','U_WIN','TWN',CFNAM_U_WIN, CFTYP_U_WIN, XUNIF_U_WIN, XPAR_U_WIN, LDATA_U_WIN) 00464 IF (.NOT.LDATA_U_WIN) DEALLOCATE(XPAR_U_WIN) 00465 ! 00466 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','GR','TWN',CFNAM_GR, CFTYP_GR, XUNIF_GR, XPAR_GR, LDATA_GR) 00467 IF (.NOT.LDATA_GR) DEALLOCATE(XPAR_GR) 00468 ! 00469 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','SHGC_SH','TWN',CFNAM_SHGC_SH, CFTYP_SHGC_SH, XUNIF_SHGC_SH, & 00470 XPAR_SHGC_SH, LDATA_SHGC_SH) 00471 IF (.NOT.LDATA_SHGC_SH) DEALLOCATE(XPAR_SHGC_SH) 00472 ! 00473 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','FLOOR_HEIGHT','TWN',CFNAM_FLOOR_HEIGHT, CFTYP_FLOOR_HEIGHT, XUNIF_FLOOR_HEIGHT, & 00474 XPAR_FLOOR_HEIGHT, LDATA_FLOOR_HEIGHT) 00475 IF (.NOT.LDATA_FLOOR_HEIGHT) DEALLOCATE(XPAR_FLOOR_HEIGHT) 00476 ! 00477 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','INF','TWN',CFNAM_INF, CFTYP_INF, XUNIF_INF, XPAR_INF, LDATA_INF) 00478 IF (.NOT.LDATA_INF) DEALLOCATE(XPAR_INF) 00479 ! 00480 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','F_WATER_COND','TWN',CFNAM_F_WATER_COND, CFTYP_F_WATER_COND, XUNIF_F_WATER_COND, & 00481 XPAR_F_WATER_COND, LDATA_F_WATER_COND) 00482 IF (.NOT.LDATA_F_WATER_COND) DEALLOCATE(XPAR_F_WATER_COND) 00483 ! 00484 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','QIN_FLAT','TWN',CFNAM_QIN_FLAT, CFTYP_QIN_FLAT, XUNIF_QIN_FLAT, & 00485 XPAR_QIN_FLAT, LDATA_QIN_FLAT) 00486 IF (.NOT.LDATA_QIN_FLAT) DEALLOCATE(XPAR_QIN_FLAT) 00487 ! 00488 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','HR_TARGET','TWN',CFNAM_HR_TARGET, CFTYP_HR_TARGET, XUNIF_HR_TARGET, & 00489 XPAR_HR_TARGET, LDATA_HR_TARGET) 00490 IF (.NOT.LDATA_HR_TARGET) DEALLOCATE(XPAR_HR_TARGET) 00491 ! 00492 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','V_VENT','TWN',CFNAM_V_VENT, CFTYP_V_VENT, XUNIF_V_VENT, XPAR_V_VENT, LDATA_V_VENT) 00493 IF (.NOT.LDATA_V_VENT) DEALLOCATE(XPAR_V_VENT) 00494 ! 00495 ! 00496 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','T_SIZE_MAX','TWN',CFNAM_T_SIZE_MAX, CFTYP_T_SIZE_MAX, XUNIF_T_SIZE_MAX, & 00497 XPAR_T_SIZE_MAX, LDATA_T_SIZE_MAX) 00498 IF (.NOT.LDATA_T_SIZE_MAX) DEALLOCATE(XPAR_T_SIZE_MAX) 00499 ! 00500 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','T_SIZE_MIN','TWN',CFNAM_T_SIZE_MIN, CFTYP_T_SIZE_MIN, XUNIF_T_SIZE_MIN, & 00501 XPAR_T_SIZE_MIN, LDATA_T_SIZE_MIN) 00502 IF (.NOT.LDATA_T_SIZE_MIN) DEALLOCATE(XPAR_T_SIZE_MIN) 00503 ! 00504 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','CAP_SYS_HEAT','TWN',CFNAM_CAP_SYS_HEAT, CFTYP_CAP_SYS_HEAT, XUNIF_CAP_SYS_HEAT, & 00505 XPAR_CAP_SYS_HEAT, LDATA_CAP_SYS_HEAT) 00506 IF (.NOT.LDATA_CAP_SYS_HEAT) DEALLOCATE(XPAR_CAP_SYS_HEAT) 00507 ! 00508 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','CAP_SYS_RAT','TWN',CFNAM_CAP_SYS_RAT, CFTYP_CAP_SYS_RAT, XUNIF_CAP_SYS_RAT, & 00509 XPAR_CAP_SYS_RAT, LDATA_CAP_SYS_RAT) 00510 IF (.NOT.LDATA_CAP_SYS_RAT) DEALLOCATE(XPAR_CAP_SYS_RAT) 00511 ! 00512 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','M_SYS_RAT','TWN',CFNAM_M_SYS_RAT, CFTYP_M_SYS_RAT, XUNIF_M_SYS_RAT, & 00513 XPAR_M_SYS_RAT, LDATA_M_SYS_RAT) 00514 IF (.NOT.LDATA_M_SYS_RAT) DEALLOCATE(XPAR_M_SYS_RAT) 00515 ! 00516 IF (OAUTOSIZE) THEN 00517 IF (LDATA_CAP_SYS_HEAT .OR. LDATA_CAP_SYS_RAT .OR. LDATA_M_SYS_RAT) THEN 00518 WRITE(ILUOUT,*) '==> You choose LAUTOSIZE=T <==' 00519 WRITE(ILUOUT,*) 'Therefore HVAC systems characteristics will be computed automatically' 00520 IF (LDATA_CAP_SYS_HEAT) THEN 00521 WRITE(ILUOUT,*) 'Data you provided for CAP_SYS_HEAT are then discarded.' 00522 DEALLOCATE(XPAR_CAP_SYS_HEAT) 00523 END IF 00524 IF (LDATA_CAP_SYS_RAT ) THEN 00525 WRITE(ILUOUT,*) 'Data you provided for CAP_SYS_RAT are then discarded.' 00526 DEALLOCATE(XPAR_CAP_SYS_RAT) 00527 END IF 00528 IF (LDATA_M_SYS_RAT ) THEN 00529 WRITE(ILUOUT,*) 'Data you provided for M_SYS_RAT are then discarded.' 00530 DEALLOCATE(XPAR_M_SYS_RAT) 00531 END IF 00532 END IF 00533 LDATA_CAP_SYS_HEAT = .FALSE. 00534 LDATA_CAP_SYS_RAT = .FALSE. 00535 LDATA_M_SYS_RAT = .FALSE. 00536 ELSE 00537 IF (LDATA_T_SIZE_MAX .OR. LDATA_T_SIZE_MAX) THEN 00538 WRITE(ILUOUT,*) '==> You choose LAUTOSIZE=F <==' 00539 WRITE(ILUOUT,*) 'Therefore HVAC systems characteristics are specified' 00540 WRITE(ILUOUT,*) 'and you do not need the minimal and maximum temperatures' 00541 WRITE(ILUOUT,*) 'that would be used if you have chosen an automatic calibration.' 00542 IF (LDATA_T_SIZE_MAX) THEN 00543 WRITE(ILUOUT,*) 'Data you provided for T_SIZE_MAX are then discarded.' 00544 DEALLOCATE(XPAR_T_SIZE_MAX) 00545 END IF 00546 IF (LDATA_T_SIZE_MIN) THEN 00547 WRITE(ILUOUT,*) 'Data you provided for T_SIZE_MIN are then discarded.' 00548 DEALLOCATE(XPAR_T_SIZE_MIN) 00549 END IF 00550 END IF 00551 LDATA_T_SIZE_MAX = .FALSE. 00552 LDATA_T_SIZE_MIN = .FALSE. 00553 END IF 00554 ! 00555 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','T_ADP','TWN',CFNAM_T_ADP, CFTYP_T_ADP, XUNIF_T_ADP, XPAR_T_ADP, LDATA_T_ADP) 00556 IF (.NOT.LDATA_T_ADP) DEALLOCATE(XPAR_T_ADP) 00557 ! 00558 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','COP_RAT','TWN',CFNAM_COP_RAT, CFTYP_COP_RAT, XUNIF_COP_RAT, & 00559 XPAR_COP_RAT, LDATA_COP_RAT) 00560 IF (.NOT.LDATA_COP_RAT) DEALLOCATE(XPAR_COP_RAT) 00561 00562 !------------------------------------------------------------------------------- 00563 ! 00564 !* coherence checks 00565 ! 00566 CALL COHERENCE_THERMAL_DATA_FL('FLOOR',LDATA_HC_FLOOR,LDATA_TC_FLOOR,LDATA_D_FLOOR) 00567 ! 00568 !------------------------------------------------------------------------------- 00569 IF (LHOOK) CALL DR_HOOK('PGD_BEM_PAR',1,ZHOOK_HANDLE) 00570 !------------------------------------------------------------------------------- 00571 CONTAINS 00572 SUBROUTINE COHERENCE_THERMAL_DATA_FL(HTYPE,ODATA_HC,ODATA_TC,ODATA_D) 00573 CHARACTER(LEN=5), INTENT(IN) :: HTYPE 00574 LOGICAL, INTENT(IN) :: ODATA_HC 00575 LOGICAL, INTENT(IN) :: ODATA_TC 00576 LOGICAL, INTENT(IN) :: ODATA_D 00577 ! 00578 IF (ODATA_HC .OR. ODATA_TC .OR. ODATA_D) THEN 00579 IF (.NOT. (ODATA_HC .AND. ODATA_TC .AND. ODATA_D)) THEN 00580 WRITE(ILUOUT,*) '*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*' 00581 WRITE(ILUOUT,*) 'When specifying data for thermal ',TRIM(HTYPE),' characteristics,' 00582 WRITE(ILUOUT,*) 'All three parameters MUST be defined:' 00583 WRITE(ILUOUT,*) 'Heat capacity, Thermal conductivity and depths of layers' 00584 WRITE(ILUOUT,*) ' ' 00585 WRITE(ILUOUT,*) 'In your case :' 00586 IF (ODATA_HC) THEN 00587 WRITE(ILUOUT,*) 'Heat capacity is defined' 00588 ELSE 00589 WRITE(ILUOUT,*) 'Heat capacity is NOT defined' 00590 END IF 00591 IF (ODATA_TC) THEN 00592 WRITE(ILUOUT,*) 'Thermal conductivity is defined' 00593 ELSE 00594 WRITE(ILUOUT,*) 'Thermal conductivity is NOT defined' 00595 END IF 00596 IF (ODATA_D) THEN 00597 WRITE(ILUOUT,*) 'Depths of layers are defined' 00598 ELSE 00599 WRITE(ILUOUT,*) 'Depths of layers are NOT defined' 00600 END IF 00601 WRITE(ILUOUT,*) '*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*' 00602 CALL ABOR1_SFX('Heat capacity, Thermal conductivity and depths of layers MUST all be defined for '//HTYPE) 00603 END IF 00604 END IF 00605 END SUBROUTINE COHERENCE_THERMAL_DATA_FL 00606 !------------------------------------------------------------------------------- 00607 ! 00608 !------------------------------------------------------------------------------- 00609 ! 00610 END SUBROUTINE PGD_BEM_PAR