|
SURFEX v7.3
General documentation of Surfex
|
00001 ! ################ 00002 MODULE MODD_TEB_n 00003 ! ################ 00004 ! 00005 !!**** *MODD_TEB_n - declaration of surface parameters for urban surface 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 ! Declaration of surface parameters 00010 ! 00011 !! 00012 !!** IMPLICIT ARGUMENTS 00013 !! ------------------ 00014 !! None 00015 !! 00016 !! REFERENCE 00017 !! --------- 00018 !! 00019 !! AUTHOR 00020 !! ------ 00021 !! V. Masson *Meteo France* 00022 !! 00023 !! MODIFICATIONS 00024 !! ------------- 00025 !! Original 01/2004 00026 !! A. Lemonsu 07/2012 Key for urban hydrology 00027 ! 00028 !* 0. DECLARATIONS 00029 ! ------------ 00030 ! 00031 USE MODD_TYPE_SNOW 00032 USE MODD_TYPE_DATE_SURF 00033 ! 00034 ! 00035 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00036 USE PARKIND1 ,ONLY : JPRB 00037 ! 00038 IMPLICIT NONE 00039 00040 00041 TYPE TEB_OPTIONS_t 00042 ! TEB scheme option 00043 ! 00044 LOGICAL :: LCANOPY ! T: SBL scheme within the canopy 00045 ! F: no atmospheric layers below forcing level 00046 LOGICAL :: LGARDEN ! T: Urban green areas (call ISBA from TEB) 00047 ! F: No urban green areas 00048 CHARACTER(LEN=4) :: CROAD_DIR ! TEB option for road directions 00049 ! 'UNIF' : no specific direction 00050 ! 'ORIE' : many road ORIEntations 00051 ! ( one per TEB patch) 00052 CHARACTER(LEN=4) :: CWALL_OPT ! TEB option for walls 00053 ! 'UNIF' : uniform walls 00054 ! 'TWO ' : two separated walls 00055 CHARACTER(LEN=3) :: CBLD_ATYPE ! Type of averaging for walls 00056 ! 'ARI' : Characteristics are 00057 ! linearly averaged 00058 ! 'MAJ ' : Majoritary building in 00059 ! grid mesh is chosen 00060 CHARACTER(LEN=6) :: CZ0H ! TEB option for z0h roof & road 00061 ! 'MASC95' : Mascart et al 1995 00062 ! 'BRUT82' : Brustaert 1982 00063 ! 'KAND07' : Kanda 2007 00064 CHARACTER(LEN=5) :: CCH_BEM ! BEM option for roof/wall outside convective coefficient 00065 ! 'DOE-2' : DOE-2 model from 00066 ! EnergyPlus Engineering reference, p65 00067 CHARACTER(LEN=3) :: CBEM ! TEB option for the building energy model 00068 ! 'DEF': DEFault version force-restore model from Masson et al. 2002 00069 ! 'BEM': Building Energy Model Bueno et al. 2011 00070 00071 CHARACTER(LEN=3) :: CTREE ! TEB option for the high vegetation 00072 ! 'DEF': DEFault version without radiative, dynamic effects or turbulent fluxes 00073 ! 'RAD': only RADiative effects 00074 ! 'DYN': radiative and DYNamic effects 00075 ! 'FLX': radiative, dynamic effects, and turbulent fluxes 00076 LOGICAL :: LGREENROOF ! T: green roofs (call ISBA from TEB) 00077 LOGICAL :: LHYDRO ! T: urban subsoil and hydrology processes 00078 ! 00079 ! type of initialization of vegetation: from cover types (ecoclimap) or parameters prescribed 00080 ! 00081 LOGICAL :: LECOCLIMAP ! T: parameters computed from ecoclimap 00082 ! ! F: they are read in the file 00083 ! 00084 ! General surface: 00085 ! 00086 REAL, POINTER, DIMENSION(:) :: XZS ! orography (m) 00087 REAL, POINTER, DIMENSION(:,:) :: XCOVER ! fraction of each ecosystem (-) 00088 LOGICAL, POINTER, DIMENSION(:):: LCOVER ! GCOVER(i)=T --> ith cover field is not 0. 00089 INTEGER :: NTEB_PATCH ! number of TEB patches 00090 REAL, POINTER, DIMENSION(:,:) :: XTEB_PATCH ! fraction of each TEB patch 00091 ! 00092 ! Number of layers 00093 ! 00094 INTEGER :: NROOF_LAYER ! number of layers in roofs 00095 INTEGER :: NROAD_LAYER ! number of layers in roads 00096 INTEGER :: NWALL_LAYER ! number of layers in walls 00097 ! 00098 ! Date: 00099 ! 00100 TYPE (DATE_TIME) :: TTIME ! current date and time 00101 ! 00102 ! Time-step: 00103 ! 00104 REAL :: XTSTEP ! time step for TEB 00105 ! 00106 REAL :: XOUT_TSTEP ! TEB output writing time step 00107 ! 00108 END TYPE TEB_OPTIONS_t 00109 00110 TYPE(TEB_OPTIONS_t), ALLOCATABLE, TARGET, SAVE :: TEB_OPTIONS_MODEL(:) 00111 00112 LOGICAL, POINTER :: LCANOPY=>NULL() 00113 !$OMP THREADPRIVATE(LCANOPY) 00114 LOGICAL, POINTER :: LGARDEN=>NULL() 00115 !$OMP THREADPRIVATE(LGARDEN) 00116 CHARACTER(LEN=4), POINTER :: CROAD_DIR=>NULL() 00117 !$OMP THREADPRIVATE(CROAD_DIR) 00118 CHARACTER(LEN=4), POINTER :: CWALL_OPT=>NULL() 00119 !$OMP THREADPRIVATE(CWALL_OPT) 00120 CHARACTER(LEN=3), POINTER :: CBLD_ATYPE=>NULL() 00121 !$OMP THREADPRIVATE(CBLD_ATYPE) 00122 CHARACTER(LEN=6), POINTER :: CZ0H=>NULL() 00123 !$OMP THREADPRIVATE(CZ0H) 00124 CHARACTER(LEN=5), POINTER :: CCH_BEM=>NULL() 00125 !$OMP THREADPRIVATE(CCH_BEM) 00126 CHARACTER(LEN=3), POINTER :: CBEM=>NULL() 00127 !$OMP THREADPRIVATE(CBEM) 00128 CHARACTER(LEN=3), POINTER :: CTREE=>NULL() 00129 !$OMP THREADPRIVATE(CTREE) 00130 LOGICAL, POINTER :: LGREENROOF=>NULL() 00131 !$OMP THREADPRIVATE(LGREENROOF) 00132 LOGICAL, POINTER :: LHYDRO=>NULL() 00133 !$OMP THREADPRIVATE(LHYDRO) 00134 LOGICAL, POINTER :: LECOCLIMAP=>NULL() 00135 !$OMP THREADPRIVATE(LECOCLIMAP) 00136 REAL, POINTER, DIMENSION(:) :: XZS=>NULL() 00137 !$OMP THREADPRIVATE(XZS) 00138 REAL, POINTER, DIMENSION(:,:) :: XCOVER=>NULL() 00139 !$OMP THREADPRIVATE(XCOVER) 00140 LOGICAL, POINTER, DIMENSION(:):: LCOVER=>NULL() 00141 !$OMP THREADPRIVATE(LCOVER) 00142 INTEGER, POINTER :: NTEB_PATCH=>NULL() 00143 !$OMP THREADPRIVATE(NTEB_PATCH) 00144 REAL, POINTER, DIMENSION(:,:) :: XTEB_PATCH=>NULL() 00145 !$OMP THREADPRIVATE(XTEB_PATCH) 00146 INTEGER, POINTER :: NROOF_LAYER=>NULL() 00147 !$OMP THREADPRIVATE(NROOF_LAYER) 00148 INTEGER, POINTER :: NROAD_LAYER=>NULL() 00149 !$OMP THREADPRIVATE(NROAD_LAYER) 00150 INTEGER, POINTER :: NWALL_LAYER=>NULL() 00151 !$OMP THREADPRIVATE(NWALL_LAYER) 00152 TYPE (DATE_TIME), POINTER :: TTIME=>NULL() 00153 !$OMP THREADPRIVATE(TTIME) 00154 REAL, POINTER :: XTSTEP=>NULL() 00155 !$OMP THREADPRIVATE(XTSTEP) 00156 REAL, POINTER :: XOUT_TSTEP=>NULL() 00157 !$OMP THREADPRIVATE(XOUT_TSTEP) 00158 00159 !-------------------------------------------------------------------------- 00160 00161 TYPE TEB_t 00162 ! TEB scheme option 00163 ! 00164 ! Geometric Parameters: 00165 ! 00166 REAL, POINTER, DIMENSION(:) :: XROAD_DIR ! Road direction (° from North, clockwise) 00167 REAL, POINTER, DIMENSION(:) :: XGARDEN ! fraction of veg in the streets (-) 00168 REAL, POINTER, DIMENSION(:) :: XGREENROOF ! fraction of greenroofs on roofs (-) 00169 REAL, POINTER, DIMENSION(:) :: XBLD ! fraction of buildings (-) 00170 REAL, POINTER, DIMENSION(:) :: XROAD ! fraction of roads (-) 00171 REAL, POINTER, DIMENSION(:) :: XCAN_HW_RATIO ! canyon h/W (-) 00172 REAL, POINTER, DIMENSION(:) :: XBLD_HEIGHT ! buildings height 'h' (m) 00173 REAL, POINTER, DIMENSION(:) :: XWALL_O_HOR ! wall surf. / hor. surf. (-) 00174 REAL, POINTER, DIMENSION(:) :: XROAD_O_GRND ! road surf. / (road + garden surf.) (-) 00175 REAL, POINTER, DIMENSION(:) :: XGARDEN_O_GRND! gard. surf. / (road + garden surf.)(-) 00176 REAL, POINTER, DIMENSION(:) :: XWALL_O_GRND ! wall surf. / (road + garden surf.) (-) 00177 REAL, POINTER, DIMENSION(:) :: XWALL_O_BLD ! wall surf. / bld surf. (-) 00178 REAL, POINTER, DIMENSION(:) :: XZ0_TOWN ! roughness length for momentum (m) 00179 REAL, POINTER, DIMENSION(:) :: XSVF_ROAD ! road sky view factor (-) 00180 REAL, POINTER, DIMENSION(:) :: XSVF_GARDEN ! green area sky view factor (-) 00181 REAL, POINTER, DIMENSION(:) :: XSVF_WALL ! wall sky view factor (-) 00182 ! 00183 ! Roof parameters 00184 ! 00185 REAL, POINTER, DIMENSION(:) :: XALB_ROOF ! roof albedo (-) 00186 REAL, POINTER, DIMENSION(:) :: XEMIS_ROOF ! roof emissivity (-) 00187 REAL, POINTER, DIMENSION(:,:) :: XHC_ROOF ! roof layers heat capacity (J/K/m3) 00188 REAL, POINTER, DIMENSION(:,:) :: XTC_ROOF ! roof layers thermal conductivity (W/K/m) 00189 REAL, POINTER, DIMENSION(:,:) :: XD_ROOF ! depth of roof layers (m) 00190 REAL, POINTER, DIMENSION(:) :: XROUGH_ROOF ! roof roughness coef 00191 ! 00192 ! 00193 ! Road parameters 00194 ! 00195 REAL, POINTER, DIMENSION(:) :: XALB_ROAD ! road albedo (-) 00196 REAL, POINTER, DIMENSION(:) :: XEMIS_ROAD ! road emissivity (-) 00197 REAL, POINTER, DIMENSION(:,:) :: XHC_ROAD ! road layers heat capacity (J/K/m3) 00198 REAL, POINTER, DIMENSION(:,:) :: XTC_ROAD ! road layers thermal conductivity (W/K/m) 00199 REAL, POINTER, DIMENSION(:,:) :: XD_ROAD ! depth of road layers (m) 00200 ! 00201 ! Wall parameters 00202 ! 00203 REAL, POINTER, DIMENSION(:) :: XALB_WALL ! wall albedo (-) 00204 REAL, POINTER, DIMENSION(:) :: XEMIS_WALL ! wall emissivity (-) 00205 REAL, POINTER, DIMENSION(:,:) :: XHC_WALL ! wall layers heat capacity (J/K/m3) 00206 REAL, POINTER, DIMENSION(:,:) :: XTC_WALL ! wall layers thermal conductivity (W/K/m) 00207 REAL, POINTER, DIMENSION(:,:) :: XD_WALL ! depth of wall layers (m) 00208 REAL, POINTER, DIMENSION(:) :: XROUGH_WALL ! wall roughness coef 00209 ! 00210 ! anthropogenic fluxes 00211 ! 00212 REAL, POINTER, DIMENSION(:) :: XH_TRAFFIC ! anthropogenic sensible 00213 ! ! heat fluxes due to traffic (W/m2) 00214 REAL, POINTER, DIMENSION(:) :: XLE_TRAFFIC ! anthropogenic latent 00215 ! ! heat fluxes due to traffic (W/m2) 00216 REAL, POINTER, DIMENSION(:) :: XH_INDUSTRY ! anthropogenic sensible 00217 ! ! heat fluxes due to factories (W/m2) 00218 REAL, POINTER, DIMENSION(:) :: XLE_INDUSTRY ! anthropogenic latent 00219 ! ! heat fluxes due to factories (W/m2) 00220 ! 00221 ! temperatures for boundary conditions 00222 ! 00223 REAL, POINTER, DIMENSION(:) :: XTI_ROAD ! road interior temperature (K) 00224 ! 00225 ! Prognostic variables: 00226 ! 00227 REAL, POINTER, DIMENSION(:) :: XWS_ROOF ! roof water reservoir (kg/m2) 00228 REAL, POINTER, DIMENSION(:) :: XWS_ROAD ! road water reservoir (kg/m2) 00229 REAL, POINTER, DIMENSION(:,:) :: XT_ROOF ! roof layer temperatures (K) 00230 REAL, POINTER, DIMENSION(:,:) :: XT_ROAD ! road layer temperatures (K) 00231 REAL, POINTER, DIMENSION(:,:) :: XT_WALL_A ! wall layer temperatures (K) 00232 REAL, POINTER, DIMENSION(:,:) :: XT_WALL_B ! wall layer temperatures (K) 00233 ! 00234 REAL, POINTER, DIMENSION(:) :: XAC_ROOF ! roof aerodynamic conductance () 00235 REAL, POINTER, DIMENSION(:) :: XAC_ROAD ! road aerodynamic conductance () 00236 REAL, POINTER, DIMENSION(:) :: XAC_WALL ! wall aerodynamic conductance () 00237 REAL, POINTER, DIMENSION(:) :: XAC_TOP ! top aerodynamic conductance () 00238 REAL, POINTER, DIMENSION(:) :: XAC_ROOF_WAT ! water aerodynamic conductance () 00239 REAL, POINTER, DIMENSION(:) :: XAC_ROAD_WAT ! water aerodynamic conductance () 00240 ! 00241 REAL, POINTER, DIMENSION(:) :: XQSAT_ROOF ! humidity of saturation for roofs (kg/kg) 00242 REAL, POINTER, DIMENSION(:) :: XQSAT_ROAD ! humidity of saturation for roads (kg/kg) 00243 ! 00244 REAL, POINTER, DIMENSION(:) :: XDELT_ROOF ! humidity of saturation for roofs (-) 00245 REAL, POINTER, DIMENSION(:) :: XDELT_ROAD ! humidity of saturation for roads (-) 00246 ! 00247 ! Semi-prognostic variables: 00248 ! 00249 REAL, POINTER, DIMENSION(:) :: XT_CANYON ! canyon air temperature (K) 00250 REAL, POINTER, DIMENSION(:) :: XQ_CANYON ! canyon air specific humidity (kg/kg) 00251 ! 00252 ! 00253 ! Prognostic snow: 00254 ! 00255 TYPE(SURF_SNOW) :: TSNOW_ROOF ! snow state on roofs: 00256 ! ! scheme type/option (-) 00257 ! ! number of layers (-) 00258 ! ! snow (& liq. water) content (kg/m2) 00259 ! ! heat content (J/m2) 00260 ! ! temperature (K) 00261 ! ! density (kg m-3) 00262 TYPE(SURF_SNOW) :: TSNOW_ROAD ! snow state on roads: 00263 ! ! scheme type/option (-) 00264 ! ! number of layers (-) 00265 ! ! snow (& liq. water) content (kg/m2) 00266 ! ! heat content (J/m2) 00267 ! ! temperature (K) 00268 ! ! density (kg m-3) 00269 ! ! density (kg m-3) 00270 TYPE(SURF_SNOW) :: TSNOW_GARDEN ! snow state on green areas: 00271 ! ! scheme type/option (-) 00272 ! ! number of layers (-) 00273 ! ! snow (& liq. water) content (kg/m2) 00274 ! ! heat content (J/m2) 00275 ! ! temperature (K) 00276 ! ! density (kg m-3) 00277 ! 00278 END TYPE TEB_t 00279 00280 TYPE(TEB_t), ALLOCATABLE, TARGET, SAVE :: TEB_MODEL(:,:) 00281 00282 REAL, POINTER, DIMENSION(:) :: XROAD_DIR=>NULL() 00283 !$OMP THREADPRIVATE(XROAD_DIR) 00284 REAL, POINTER, DIMENSION(:) :: XGARDEN=>NULL() 00285 !$OMP THREADPRIVATE(XGARDEN) 00286 REAL, POINTER, DIMENSION(:) :: XGREENROOF=>NULL() 00287 !$OMP THREADPRIVATE(XGREENROOF) 00288 REAL, POINTER, DIMENSION(:) :: XBLD=>NULL() 00289 !$OMP THREADPRIVATE(XBLD) 00290 REAL, POINTER, DIMENSION(:) :: XROAD=>NULL() 00291 !$OMP THREADPRIVATE(XROAD) 00292 REAL, POINTER, DIMENSION(:) :: XCAN_HW_RATIO=>NULL() 00293 !$OMP THREADPRIVATE(XCAN_HW_RATIO) 00294 REAL, POINTER, DIMENSION(:) :: XBLD_HEIGHT=>NULL() 00295 !$OMP THREADPRIVATE(XBLD_HEIGHT) 00296 REAL, POINTER, DIMENSION(:) :: XWALL_O_HOR=>NULL() 00297 !$OMP THREADPRIVATE(XWALL_O_HOR) 00298 REAL, POINTER, DIMENSION(:) :: XROAD_O_GRND=>NULL() 00299 !$OMP THREADPRIVATE(XROAD_O_GRND) 00300 REAL, POINTER, DIMENSION(:) :: XGARDEN_O_GRND=>NULL() 00301 !$OMP THREADPRIVATE(XGARDEN_O_GRND) 00302 REAL, POINTER, DIMENSION(:) :: XWALL_O_GRND=>NULL() 00303 !$OMP THREADPRIVATE(XWALL_O_GRND) 00304 REAL, POINTER, DIMENSION(:) :: XWALL_O_BLD=>NULL() 00305 !$OMP THREADPRIVATE(XWALL_O_BLD) 00306 REAL, POINTER, DIMENSION(:) :: XZ0_TOWN=>NULL() 00307 !$OMP THREADPRIVATE(XZ0_TOWN) 00308 REAL, POINTER, DIMENSION(:) :: XSVF_ROAD=>NULL() 00309 !$OMP THREADPRIVATE(XSVF_ROAD) 00310 REAL, POINTER, DIMENSION(:) :: XSVF_GARDEN=>NULL() 00311 !$OMP THREADPRIVATE(XSVF_GARDEN) 00312 REAL, POINTER, DIMENSION(:) :: XSVF_WALL=>NULL() 00313 !$OMP THREADPRIVATE(XSVF_WALL) 00314 REAL, POINTER, DIMENSION(:) :: XALB_ROOF=>NULL() 00315 !$OMP THREADPRIVATE(XALB_ROOF) 00316 REAL, POINTER, DIMENSION(:) :: XEMIS_ROOF=>NULL() 00317 !$OMP THREADPRIVATE(XEMIS_ROOF) 00318 REAL, POINTER, DIMENSION(:,:) :: XHC_ROOF=>NULL() 00319 !$OMP THREADPRIVATE(XHC_ROOF) 00320 REAL, POINTER, DIMENSION(:,:) :: XTC_ROOF=>NULL() 00321 !$OMP THREADPRIVATE(XTC_ROOF) 00322 REAL, POINTER, DIMENSION(:,:) :: XD_ROOF=>NULL() 00323 !$OMP THREADPRIVATE(XD_ROOF) 00324 REAL, POINTER, DIMENSION(:) :: XALB_ROAD=>NULL() 00325 !$OMP THREADPRIVATE(XALB_ROAD) 00326 REAL, POINTER, DIMENSION(:) :: XEMIS_ROAD=>NULL() 00327 !$OMP THREADPRIVATE(XEMIS_ROAD) 00328 REAL, POINTER, DIMENSION(:,:) :: XHC_ROAD=>NULL() 00329 !$OMP THREADPRIVATE(XHC_ROAD) 00330 REAL, POINTER, DIMENSION(:,:) :: XTC_ROAD=>NULL() 00331 !$OMP THREADPRIVATE(XTC_ROAD) 00332 REAL, POINTER, DIMENSION(:,:) :: XD_ROAD=>NULL() 00333 !$OMP THREADPRIVATE(XD_ROAD) 00334 REAL, POINTER, DIMENSION(:) :: XALB_WALL=>NULL() 00335 !$OMP THREADPRIVATE(XALB_WALL) 00336 REAL, POINTER, DIMENSION(:) :: XEMIS_WALL=>NULL() 00337 !$OMP THREADPRIVATE(XEMIS_WALL) 00338 REAL, POINTER, DIMENSION(:,:) :: XHC_WALL=>NULL() 00339 !$OMP THREADPRIVATE(XHC_WALL) 00340 REAL, POINTER, DIMENSION(:,:) :: XTC_WALL=>NULL() 00341 !$OMP THREADPRIVATE(XTC_WALL) 00342 REAL, POINTER, DIMENSION(:,:) :: XD_WALL=>NULL() 00343 !$OMP THREADPRIVATE(XD_WALL) 00344 REAL, POINTER, DIMENSION(:) :: XH_TRAFFIC=>NULL() 00345 !$OMP THREADPRIVATE(XH_TRAFFIC) 00346 REAL, POINTER, DIMENSION(:) :: XLE_TRAFFIC=>NULL() 00347 !$OMP THREADPRIVATE(XLE_TRAFFIC) 00348 REAL, POINTER, DIMENSION(:) :: XH_INDUSTRY=>NULL() 00349 !$OMP THREADPRIVATE(XH_INDUSTRY) 00350 REAL, POINTER, DIMENSION(:) :: XLE_INDUSTRY=>NULL() 00351 !$OMP THREADPRIVATE(XLE_INDUSTRY) 00352 REAL, POINTER, DIMENSION(:) :: XTI_ROAD=>NULL() 00353 !$OMP THREADPRIVATE(XTI_ROAD) 00354 REAL, POINTER, DIMENSION(:) :: XWS_ROOF=>NULL() 00355 !$OMP THREADPRIVATE(XWS_ROOF) 00356 REAL, POINTER, DIMENSION(:) :: XWS_ROAD=>NULL() 00357 !$OMP THREADPRIVATE(XWS_ROAD) 00358 REAL, POINTER, DIMENSION(:,:) :: XT_ROOF=>NULL() 00359 !$OMP THREADPRIVATE(XT_ROOF) 00360 REAL, POINTER, DIMENSION(:,:) :: XT_ROAD=>NULL() 00361 !$OMP THREADPRIVATE(XT_ROAD) 00362 REAL, POINTER, DIMENSION(:,:) :: XT_WALL_A=>NULL() 00363 !$OMP THREADPRIVATE(XT_WALL_A) 00364 REAL, POINTER, DIMENSION(:,:) :: XT_WALL_B=>NULL() 00365 !$OMP THREADPRIVATE(XT_WALL_B) 00366 REAL, POINTER, DIMENSION(:) :: XAC_ROOF=>NULL() 00367 !$OMP THREADPRIVATE(XAC_ROOF) 00368 REAL, POINTER, DIMENSION(:) :: XAC_ROAD=>NULL() 00369 !$OMP THREADPRIVATE(XAC_ROAD) 00370 REAL, POINTER, DIMENSION(:) :: XAC_WALL=>NULL() 00371 !$OMP THREADPRIVATE(XAC_WALL) 00372 REAL, POINTER, DIMENSION(:) :: XAC_TOP=>NULL() 00373 !$OMP THREADPRIVATE(XAC_TOP) 00374 REAL, POINTER, DIMENSION(:) :: XAC_ROOF_WAT=>NULL() 00375 !$OMP THREADPRIVATE(XAC_ROOF_WAT) 00376 REAL, POINTER, DIMENSION(:) :: XAC_ROAD_WAT=>NULL() 00377 !$OMP THREADPRIVATE(XAC_ROAD_WAT) 00378 REAL, POINTER, DIMENSION(:) :: XQSAT_ROOF=>NULL() 00379 !$OMP THREADPRIVATE(XQSAT_ROOF) 00380 REAL, POINTER, DIMENSION(:) :: XQSAT_ROAD=>NULL() 00381 !$OMP THREADPRIVATE(XQSAT_ROAD) 00382 REAL, POINTER, DIMENSION(:) :: XDELT_ROOF=>NULL() 00383 !$OMP THREADPRIVATE(XDELT_ROOF) 00384 REAL, POINTER, DIMENSION(:) :: XDELT_ROAD=>NULL() 00385 !$OMP THREADPRIVATE(XDELT_ROAD) 00386 REAL, POINTER, DIMENSION(:) :: XT_CANYON=>NULL() 00387 !$OMP THREADPRIVATE(XT_CANYON) 00388 REAL, POINTER, DIMENSION(:) :: XQ_CANYON=>NULL() 00389 !$OMP THREADPRIVATE(XQ_CANYON) 00390 TYPE(SURF_SNOW), POINTER :: TSNOW_ROOF=>NULL() 00391 !$OMP THREADPRIVATE(TSNOW_ROOF) 00392 TYPE(SURF_SNOW), POINTER :: TSNOW_ROAD=>NULL() 00393 !$OMP THREADPRIVATE(TSNOW_ROAD) 00394 TYPE(SURF_SNOW), POINTER :: TSNOW_GARDEN=>NULL() 00395 !$OMP THREADPRIVATE(TSNOW_GARDEN) 00396 REAL, POINTER, DIMENSION(:) :: XROUGH_ROOF=>NULL() 00397 !$OMP THREADPRIVATE(XROUGH_ROOF) 00398 REAL, POINTER, DIMENSION(:) :: XROUGH_WALL=>NULL() 00399 !$OMP THREADPRIVATE(XROUGH_WALL) 00400 00401 !---------------------------------------------------------------------------- 00402 CONTAINS 00403 !---------------------------------------------------------------------------- 00404 00405 SUBROUTINE TEB_OPTIONS_GOTO_MODEL(KFROM, KTO, LKFROM) 00406 LOGICAL, INTENT(IN) :: LKFROM 00407 INTEGER, INTENT(IN) :: KFROM, KTO 00408 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00409 ! 00410 ! Save current state for allocated arrays 00411 IF (LKFROM) THEN 00412 TEB_OPTIONS_MODEL(KFROM)%XZS=>XZS 00413 TEB_OPTIONS_MODEL(KFROM)%XCOVER=>XCOVER 00414 TEB_OPTIONS_MODEL(KFROM)%LCOVER=>LCOVER 00415 TEB_OPTIONS_MODEL(KFROM)%XTEB_PATCH=>XTEB_PATCH 00416 ENDIF 00417 ! 00418 ! Current model is set to model KTO 00419 IF (LHOOK) CALL DR_HOOK('MODD_TEB_N:TEB_OPTIONS_GOTO_MODEL',0,ZHOOK_HANDLE) 00420 LCANOPY=>TEB_OPTIONS_MODEL(KTO)%LCANOPY 00421 LGARDEN=>TEB_OPTIONS_MODEL(KTO)%LGARDEN 00422 CZ0H=>TEB_OPTIONS_MODEL(KTO)%CZ0H 00423 CCH_BEM=>TEB_OPTIONS_MODEL(KTO)%CCH_BEM 00424 CBEM=>TEB_OPTIONS_MODEL(KTO)%CBEM 00425 CTREE=>TEB_OPTIONS_MODEL(KTO)%CTREE 00426 CROAD_DIR=>TEB_OPTIONS_MODEL(KTO)%CROAD_DIR 00427 CWALL_OPT=>TEB_OPTIONS_MODEL(KTO)%CWALL_OPT 00428 CBLD_ATYPE=>TEB_OPTIONS_MODEL(KTO)%CBLD_ATYPE 00429 LGREENROOF=>TEB_OPTIONS_MODEL(KTO)%LGREENROOF 00430 LHYDRO=>TEB_OPTIONS_MODEL(KTO)%LHYDRO 00431 LECOCLIMAP=>TEB_OPTIONS_MODEL(KTO)%LECOCLIMAP 00432 XZS=>TEB_OPTIONS_MODEL(KTO)%XZS 00433 XCOVER=>TEB_OPTIONS_MODEL(KTO)%XCOVER 00434 LCOVER=>TEB_OPTIONS_MODEL(KTO)%LCOVER 00435 NTEB_PATCH=>TEB_OPTIONS_MODEL(KTO)%NTEB_PATCH 00436 XTEB_PATCH=>TEB_OPTIONS_MODEL(KTO)%XTEB_PATCH 00437 NROOF_LAYER=>TEB_OPTIONS_MODEL(KTO)%NROOF_LAYER 00438 NROAD_LAYER=>TEB_OPTIONS_MODEL(KTO)%NROAD_LAYER 00439 NWALL_LAYER=>TEB_OPTIONS_MODEL(KTO)%NWALL_LAYER 00440 TTIME=>TEB_OPTIONS_MODEL(KTO)%TTIME 00441 XTSTEP=>TEB_OPTIONS_MODEL(KTO)%XTSTEP 00442 XOUT_TSTEP=>TEB_OPTIONS_MODEL(KTO)%XOUT_TSTEP 00443 IF (LHOOK) CALL DR_HOOK('MODD_TEB_N:TEB_OPTIONS_GOTO_MODEL',1,ZHOOK_HANDLE) 00444 00445 END SUBROUTINE TEB_OPTIONS_GOTO_MODEL 00446 00447 SUBROUTINE TEB_OPTIONS_ALLOC(KMODEL) 00448 INTEGER, INTENT(IN) :: KMODEL 00449 INTEGER :: J,JP 00450 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00451 IF (LHOOK) CALL DR_HOOK("MODD_TEB_N:TEB_OPTIONS_ALLOC",0,ZHOOK_HANDLE) 00452 ALLOCATE(TEB_OPTIONS_MODEL(KMODEL)) 00453 DO J=1,KMODEL 00454 NULLIFY(TEB_OPTIONS_MODEL(J)%XZS) 00455 NULLIFY(TEB_OPTIONS_MODEL(J)%XCOVER) 00456 NULLIFY(TEB_OPTIONS_MODEL(J)%LCOVER) 00457 NULLIFY(TEB_OPTIONS_MODEL(J)%XTEB_PATCH) 00458 ENDDO 00459 TEB_OPTIONS_MODEL(:)%LCANOPY=.FALSE. 00460 TEB_OPTIONS_MODEL(:)%LGARDEN=.FALSE. 00461 TEB_OPTIONS_MODEL(:)%CROAD_DIR=' ' 00462 TEB_OPTIONS_MODEL(:)%CWALL_OPT=' ' 00463 TEB_OPTIONS_MODEL(:)%CBLD_ATYPE=' ' 00464 TEB_OPTIONS_MODEL(:)%CZ0H=' ' 00465 TEB_OPTIONS_MODEL(:)%CCH_BEM=' ' 00466 TEB_OPTIONS_MODEL(:)%CBEM=' ' 00467 TEB_OPTIONS_MODEL(:)%CTREE=' ' 00468 TEB_OPTIONS_MODEL(:)%LGREENROOF=.FALSE. 00469 TEB_OPTIONS_MODEL(:)%LHYDRO=.FALSE. 00470 TEB_OPTIONS_MODEL(:)%LECOCLIMAP=.FALSE. 00471 TEB_OPTIONS_MODEL(:)%NTEB_PATCH=0 00472 TEB_OPTIONS_MODEL(:)%NROOF_LAYER=0 00473 TEB_OPTIONS_MODEL(:)%NROAD_LAYER=0 00474 TEB_OPTIONS_MODEL(:)%NWALL_LAYER=0 00475 TEB_OPTIONS_MODEL(:)%XTSTEP=0. 00476 TEB_OPTIONS_MODEL(:)%XOUT_TSTEP=0. 00477 IF (LHOOK) CALL DR_HOOK("MODD_TEB_N:TEB_OPTIONS_ALLOC",1,ZHOOK_HANDLE) 00478 END SUBROUTINE TEB_OPTIONS_ALLOC 00479 00480 SUBROUTINE TEB_OPTIONS_DEALLO 00481 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00482 IF (LHOOK) CALL DR_HOOK("MODD_TEB_N:TEB_OPTIONS_DEALLO",0,ZHOOK_HANDLE) 00483 IF (ALLOCATED(TEB_OPTIONS_MODEL)) DEALLOCATE(TEB_OPTIONS_MODEL) 00484 IF (LHOOK) CALL DR_HOOK("MODD_TEB_N:TEB_OPTIONS_DEALLO",1,ZHOOK_HANDLE) 00485 END SUBROUTINE TEB_OPTIONS_DEALLO 00486 00487 !---------------------------------------------------------------------------- 00488 00489 SUBROUTINE TEB_GOTO_MODEL(KFROM, KTO, LKFROM, KFROM_PATCH, KTO_PATCH) 00490 LOGICAL, INTENT(IN) :: LKFROM 00491 INTEGER, INTENT(IN) :: KFROM, KTO 00492 INTEGER, INTENT(IN) :: KFROM_PATCH, KTO_PATCH 00493 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00494 ! 00495 00496 ! Save current state for allocated arrays 00497 IF (LKFROM) THEN 00498 TEB_MODEL(KFROM,KFROM_PATCH)%XBLD=>XBLD 00499 TEB_MODEL(KFROM,KFROM_PATCH)%XROAD_DIR=>XROAD_DIR 00500 TEB_MODEL(KFROM,KFROM_PATCH)%XGARDEN=>XGARDEN 00501 TEB_MODEL(KFROM,KFROM_PATCH)%XGREENROOF=>XGREENROOF 00502 TEB_MODEL(KFROM,KFROM_PATCH)%XROAD=>XROAD 00503 TEB_MODEL(KFROM,KFROM_PATCH)%XCAN_HW_RATIO=>XCAN_HW_RATIO 00504 TEB_MODEL(KFROM,KFROM_PATCH)%XBLD_HEIGHT=>XBLD_HEIGHT 00505 TEB_MODEL(KFROM,KFROM_PATCH)%XWALL_O_HOR=>XWALL_O_HOR 00506 TEB_MODEL(KFROM,KFROM_PATCH)%XROAD_O_GRND=>XROAD_O_GRND 00507 TEB_MODEL(KFROM,KFROM_PATCH)%XGARDEN_O_GRND=>XGARDEN_O_GRND 00508 TEB_MODEL(KFROM,KFROM_PATCH)%XWALL_O_GRND=>XWALL_O_GRND 00509 TEB_MODEL(KFROM,KFROM_PATCH)%XWALL_O_BLD=>XWALL_O_BLD 00510 TEB_MODEL(KFROM,KFROM_PATCH)%XZ0_TOWN=>XZ0_TOWN 00511 TEB_MODEL(KFROM,KFROM_PATCH)%XSVF_ROAD=>XSVF_ROAD 00512 TEB_MODEL(KFROM,KFROM_PATCH)%XSVF_GARDEN=>XSVF_GARDEN 00513 TEB_MODEL(KFROM,KFROM_PATCH)%XSVF_WALL=>XSVF_WALL 00514 TEB_MODEL(KFROM,KFROM_PATCH)%XALB_ROOF=>XALB_ROOF 00515 TEB_MODEL(KFROM,KFROM_PATCH)%XEMIS_ROOF=>XEMIS_ROOF 00516 TEB_MODEL(KFROM,KFROM_PATCH)%XHC_ROOF=>XHC_ROOF 00517 TEB_MODEL(KFROM,KFROM_PATCH)%XTC_ROOF=>XTC_ROOF 00518 TEB_MODEL(KFROM,KFROM_PATCH)%XD_ROOF=>XD_ROOF 00519 TEB_MODEL(KFROM,KFROM_PATCH)%XALB_ROAD=>XALB_ROAD 00520 TEB_MODEL(KFROM,KFROM_PATCH)%XEMIS_ROAD=>XEMIS_ROAD 00521 TEB_MODEL(KFROM,KFROM_PATCH)%XHC_ROAD=>XHC_ROAD 00522 TEB_MODEL(KFROM,KFROM_PATCH)%XTC_ROAD=>XTC_ROAD 00523 TEB_MODEL(KFROM,KFROM_PATCH)%XD_ROAD=>XD_ROAD 00524 TEB_MODEL(KFROM,KFROM_PATCH)%XALB_WALL=>XALB_WALL 00525 TEB_MODEL(KFROM,KFROM_PATCH)%XEMIS_WALL=>XEMIS_WALL 00526 TEB_MODEL(KFROM,KFROM_PATCH)%XHC_WALL=>XHC_WALL 00527 TEB_MODEL(KFROM,KFROM_PATCH)%XTC_WALL=>XTC_WALL 00528 TEB_MODEL(KFROM,KFROM_PATCH)%XD_WALL=>XD_WALL 00529 TEB_MODEL(KFROM,KFROM_PATCH)%XH_TRAFFIC=>XH_TRAFFIC 00530 TEB_MODEL(KFROM,KFROM_PATCH)%XLE_TRAFFIC=>XLE_TRAFFIC 00531 TEB_MODEL(KFROM,KFROM_PATCH)%XH_INDUSTRY=>XH_INDUSTRY 00532 TEB_MODEL(KFROM,KFROM_PATCH)%XLE_INDUSTRY=>XLE_INDUSTRY 00533 TEB_MODEL(KFROM,KFROM_PATCH)%XTI_ROAD=>XTI_ROAD 00534 TEB_MODEL(KFROM,KFROM_PATCH)%XWS_ROOF=>XWS_ROOF 00535 TEB_MODEL(KFROM,KFROM_PATCH)%XWS_ROAD=>XWS_ROAD 00536 TEB_MODEL(KFROM,KFROM_PATCH)%XT_ROOF=>XT_ROOF 00537 TEB_MODEL(KFROM,KFROM_PATCH)%XT_ROAD=>XT_ROAD 00538 TEB_MODEL(KFROM,KFROM_PATCH)%XT_WALL_A=>XT_WALL_A 00539 TEB_MODEL(KFROM,KFROM_PATCH)%XT_WALL_B=>XT_WALL_B 00540 TEB_MODEL(KFROM,KFROM_PATCH)%XAC_ROOF=>XAC_ROOF 00541 TEB_MODEL(KFROM,KFROM_PATCH)%XAC_ROAD=>XAC_ROAD 00542 TEB_MODEL(KFROM,KFROM_PATCH)%XAC_WALL=>XAC_WALL 00543 TEB_MODEL(KFROM,KFROM_PATCH)%XAC_TOP=>XAC_TOP 00544 TEB_MODEL(KFROM,KFROM_PATCH)%XAC_ROOF_WAT=>XAC_ROOF_WAT 00545 TEB_MODEL(KFROM,KFROM_PATCH)%XAC_ROAD_WAT=>XAC_ROAD_WAT 00546 TEB_MODEL(KFROM,KFROM_PATCH)%XQSAT_ROOF=>XQSAT_ROOF 00547 TEB_MODEL(KFROM,KFROM_PATCH)%XQSAT_ROAD=>XQSAT_ROAD 00548 TEB_MODEL(KFROM,KFROM_PATCH)%XDELT_ROOF=>XDELT_ROOF 00549 TEB_MODEL(KFROM,KFROM_PATCH)%XDELT_ROAD=>XDELT_ROAD 00550 TEB_MODEL(KFROM,KFROM_PATCH)%XT_CANYON=>XT_CANYON 00551 TEB_MODEL(KFROM,KFROM_PATCH)%XQ_CANYON=>XQ_CANYON 00552 TEB_MODEL(KFROM,KFROM_PATCH)%XROUGH_ROOF=>XROUGH_ROOF 00553 TEB_MODEL(KFROM,KFROM_PATCH)%XROUGH_WALL=>XROUGH_WALL 00554 ENDIF 00555 00556 ! 00557 ! Current model is set to model KTO 00558 IF (LHOOK) CALL DR_HOOK('MODD_TEB_N:TEB_GOTO_MODEL',0,ZHOOK_HANDLE) 00559 XBLD=>TEB_MODEL(KTO,KTO_PATCH)%XBLD 00560 XROAD_DIR=>TEB_MODEL(KTO,KTO_PATCH)%XROAD_DIR 00561 XGARDEN=>TEB_MODEL(KTO,KTO_PATCH)%XGARDEN 00562 XGREENROOF=>TEB_MODEL(KTO,KTO_PATCH)%XGREENROOF 00563 XROAD=>TEB_MODEL(KTO,KTO_PATCH)%XROAD 00564 XCAN_HW_RATIO=>TEB_MODEL(KTO,KTO_PATCH)%XCAN_HW_RATIO 00565 XBLD_HEIGHT=>TEB_MODEL(KTO,KTO_PATCH)%XBLD_HEIGHT 00566 XWALL_O_HOR=>TEB_MODEL(KTO,KTO_PATCH)%XWALL_O_HOR 00567 XROAD_O_GRND=>TEB_MODEL(KTO,KTO_PATCH)%XROAD_O_GRND 00568 XGARDEN_O_GRND=>TEB_MODEL(KTO,KTO_PATCH)%XGARDEN_O_GRND 00569 XWALL_O_GRND=>TEB_MODEL(KTO,KTO_PATCH)%XWALL_O_GRND 00570 XWALL_O_BLD=>TEB_MODEL(KTO,KTO_PATCH)%XWALL_O_BLD 00571 XZ0_TOWN=>TEB_MODEL(KTO,KTO_PATCH)%XZ0_TOWN 00572 XSVF_ROAD=>TEB_MODEL(KTO,KTO_PATCH)%XSVF_ROAD 00573 XSVF_GARDEN=>TEB_MODEL(KTO,KTO_PATCH)%XSVF_GARDEN 00574 XSVF_WALL=>TEB_MODEL(KTO,KTO_PATCH)%XSVF_WALL 00575 XALB_ROOF=>TEB_MODEL(KTO,KTO_PATCH)%XALB_ROOF 00576 XEMIS_ROOF=>TEB_MODEL(KTO,KTO_PATCH)%XEMIS_ROOF 00577 XHC_ROOF=>TEB_MODEL(KTO,KTO_PATCH)%XHC_ROOF 00578 XTC_ROOF=>TEB_MODEL(KTO,KTO_PATCH)%XTC_ROOF 00579 XD_ROOF=>TEB_MODEL(KTO,KTO_PATCH)%XD_ROOF 00580 XALB_ROAD=>TEB_MODEL(KTO,KTO_PATCH)%XALB_ROAD 00581 XEMIS_ROAD=>TEB_MODEL(KTO,KTO_PATCH)%XEMIS_ROAD 00582 XHC_ROAD=>TEB_MODEL(KTO,KTO_PATCH)%XHC_ROAD 00583 XTC_ROAD=>TEB_MODEL(KTO,KTO_PATCH)%XTC_ROAD 00584 XD_ROAD=>TEB_MODEL(KTO,KTO_PATCH)%XD_ROAD 00585 XALB_WALL=>TEB_MODEL(KTO,KTO_PATCH)%XALB_WALL 00586 XEMIS_WALL=>TEB_MODEL(KTO,KTO_PATCH)%XEMIS_WALL 00587 XHC_WALL=>TEB_MODEL(KTO,KTO_PATCH)%XHC_WALL 00588 XTC_WALL=>TEB_MODEL(KTO,KTO_PATCH)%XTC_WALL 00589 XD_WALL=>TEB_MODEL(KTO,KTO_PATCH)%XD_WALL 00590 XH_TRAFFIC=>TEB_MODEL(KTO,KTO_PATCH)%XH_TRAFFIC 00591 XLE_TRAFFIC=>TEB_MODEL(KTO,KTO_PATCH)%XLE_TRAFFIC 00592 XH_INDUSTRY=>TEB_MODEL(KTO,KTO_PATCH)%XH_INDUSTRY 00593 XLE_INDUSTRY=>TEB_MODEL(KTO,KTO_PATCH)%XLE_INDUSTRY 00594 XTI_ROAD=>TEB_MODEL(KTO,KTO_PATCH)%XTI_ROAD 00595 XWS_ROOF=>TEB_MODEL(KTO,KTO_PATCH)%XWS_ROOF 00596 XWS_ROAD=>TEB_MODEL(KTO,KTO_PATCH)%XWS_ROAD 00597 XT_ROOF=>TEB_MODEL(KTO,KTO_PATCH)%XT_ROOF 00598 XT_ROAD=>TEB_MODEL(KTO,KTO_PATCH)%XT_ROAD 00599 XT_WALL_A=>TEB_MODEL(KTO,KTO_PATCH)%XT_WALL_A 00600 XT_WALL_B=>TEB_MODEL(KTO,KTO_PATCH)%XT_WALL_B 00601 XAC_ROOF=>TEB_MODEL(KTO,KTO_PATCH)%XAC_ROOF 00602 XAC_ROAD=>TEB_MODEL(KTO,KTO_PATCH)%XAC_ROAD 00603 XAC_WALL=>TEB_MODEL(KTO,KTO_PATCH)%XAC_WALL 00604 XAC_TOP=>TEB_MODEL(KTO,KTO_PATCH)%XAC_TOP 00605 XAC_ROOF_WAT=>TEB_MODEL(KTO,KTO_PATCH)%XAC_ROOF_WAT 00606 XAC_ROAD_WAT=>TEB_MODEL(KTO,KTO_PATCH)%XAC_ROAD_WAT 00607 XQSAT_ROOF=>TEB_MODEL(KTO,KTO_PATCH)%XQSAT_ROOF 00608 XQSAT_ROAD=>TEB_MODEL(KTO,KTO_PATCH)%XQSAT_ROAD 00609 XDELT_ROOF=>TEB_MODEL(KTO,KTO_PATCH)%XDELT_ROOF 00610 XDELT_ROAD=>TEB_MODEL(KTO,KTO_PATCH)%XDELT_ROAD 00611 XT_CANYON=>TEB_MODEL(KTO,KTO_PATCH)%XT_CANYON 00612 XQ_CANYON=>TEB_MODEL(KTO,KTO_PATCH)%XQ_CANYON 00613 TSNOW_ROOF=>TEB_MODEL(KTO,KTO_PATCH)%TSNOW_ROOF 00614 TSNOW_ROAD=>TEB_MODEL(KTO,KTO_PATCH)%TSNOW_ROAD 00615 TSNOW_GARDEN=>TEB_MODEL(KTO,KTO_PATCH)%TSNOW_GARDEN 00616 XROUGH_ROOF=>TEB_MODEL(KTO,KTO_PATCH)%XROUGH_ROOF 00617 IF (LHOOK) CALL DR_HOOK('MODD_TEB_N:TEB_GOTO_MODEL',1,ZHOOK_HANDLE) 00618 ! 00619 ! 00620 END SUBROUTINE TEB_GOTO_MODEL 00621 00622 SUBROUTINE TEB_ALLOC(KMODEL,KPATCH) 00623 INTEGER, INTENT(IN) :: KMODEL 00624 INTEGER, INTENT(IN) :: KPATCH 00625 INTEGER :: J,JP 00626 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00627 IF (LHOOK) CALL DR_HOOK("MODD_TEB_N:TEB_ALLOC",0,ZHOOK_HANDLE) 00628 ALLOCATE(TEB_MODEL(KMODEL,KPATCH)) 00629 DO J=1,KMODEL 00630 DO JP=1,KPATCH 00631 NULLIFY(TEB_MODEL(J,JP)%XROAD_DIR) 00632 NULLIFY(TEB_MODEL(J,JP)%XGARDEN) 00633 NULLIFY(TEB_MODEL(J,JP)%XGREENROOF) 00634 NULLIFY(TEB_MODEL(J,JP)%XBLD) 00635 NULLIFY(TEB_MODEL(J,JP)%XROAD) 00636 NULLIFY(TEB_MODEL(J,JP)%XCAN_HW_RATIO) 00637 NULLIFY(TEB_MODEL(J,JP)%XBLD_HEIGHT) 00638 NULLIFY(TEB_MODEL(J,JP)%XWALL_O_HOR) 00639 NULLIFY(TEB_MODEL(J,JP)%XROAD_O_GRND) 00640 NULLIFY(TEB_MODEL(J,JP)%XGARDEN_O_GRND) 00641 NULLIFY(TEB_MODEL(J,JP)%XWALL_O_GRND) 00642 NULLIFY(TEB_MODEL(J,JP)%XWALL_O_BLD) 00643 NULLIFY(TEB_MODEL(J,JP)%XZ0_TOWN) 00644 NULLIFY(TEB_MODEL(J,JP)%XSVF_ROAD) 00645 NULLIFY(TEB_MODEL(J,JP)%XSVF_GARDEN) 00646 NULLIFY(TEB_MODEL(J,JP)%XSVF_WALL) 00647 NULLIFY(TEB_MODEL(J,JP)%XALB_ROOF) 00648 NULLIFY(TEB_MODEL(J,JP)%XEMIS_ROOF) 00649 NULLIFY(TEB_MODEL(J,JP)%XHC_ROOF) 00650 NULLIFY(TEB_MODEL(J,JP)%XTC_ROOF) 00651 NULLIFY(TEB_MODEL(J,JP)%XD_ROOF) 00652 NULLIFY(TEB_MODEL(J,JP)%XALB_ROAD) 00653 NULLIFY(TEB_MODEL(J,JP)%XEMIS_ROAD) 00654 NULLIFY(TEB_MODEL(J,JP)%XHC_ROAD) 00655 NULLIFY(TEB_MODEL(J,JP)%XTC_ROAD) 00656 NULLIFY(TEB_MODEL(J,JP)%XD_ROAD) 00657 NULLIFY(TEB_MODEL(J,JP)%XALB_WALL) 00658 NULLIFY(TEB_MODEL(J,JP)%XEMIS_WALL) 00659 NULLIFY(TEB_MODEL(J,JP)%XHC_WALL) 00660 NULLIFY(TEB_MODEL(J,JP)%XTC_WALL) 00661 NULLIFY(TEB_MODEL(J,JP)%XD_WALL) 00662 NULLIFY(TEB_MODEL(J,JP)%XH_TRAFFIC) 00663 NULLIFY(TEB_MODEL(J,JP)%XLE_TRAFFIC) 00664 NULLIFY(TEB_MODEL(J,JP)%XH_INDUSTRY) 00665 NULLIFY(TEB_MODEL(J,JP)%XLE_INDUSTRY) 00666 NULLIFY(TEB_MODEL(J,JP)%XTI_ROAD) 00667 NULLIFY(TEB_MODEL(J,JP)%XWS_ROOF) 00668 NULLIFY(TEB_MODEL(J,JP)%XWS_ROAD) 00669 NULLIFY(TEB_MODEL(J,JP)%XT_ROOF) 00670 NULLIFY(TEB_MODEL(J,JP)%XT_ROAD) 00671 NULLIFY(TEB_MODEL(J,JP)%XT_WALL_A) 00672 NULLIFY(TEB_MODEL(J,JP)%XT_WALL_B) 00673 NULLIFY(TEB_MODEL(J,JP)%XAC_ROOF) 00674 NULLIFY(TEB_MODEL(J,JP)%XAC_ROAD) 00675 NULLIFY(TEB_MODEL(J,JP)%XAC_WALL) 00676 NULLIFY(TEB_MODEL(J,JP)%XAC_TOP) 00677 NULLIFY(TEB_MODEL(J,JP)%XAC_ROOF_WAT) 00678 NULLIFY(TEB_MODEL(J,JP)%XAC_ROAD_WAT) 00679 NULLIFY(TEB_MODEL(J,JP)%XQSAT_ROOF) 00680 NULLIFY(TEB_MODEL(J,JP)%XQSAT_ROAD) 00681 NULLIFY(TEB_MODEL(J,JP)%XDELT_ROOF) 00682 NULLIFY(TEB_MODEL(J,JP)%XDELT_ROAD) 00683 NULLIFY(TEB_MODEL(J,JP)%XT_CANYON) 00684 NULLIFY(TEB_MODEL(J,JP)%XQ_CANYON) 00685 NULLIFY(TEB_MODEL(J,JP)%XROUGH_ROOF) 00686 NULLIFY(TEB_MODEL(J,JP)%XROUGH_WALL) 00687 ENDDO 00688 ENDDO 00689 IF (LHOOK) CALL DR_HOOK("MODD_TEB_N:TEB_ALLOC",1,ZHOOK_HANDLE) 00690 END SUBROUTINE TEB_ALLOC 00691 00692 SUBROUTINE TEB_DEALLO 00693 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00694 IF (LHOOK) CALL DR_HOOK("MODD_TEB_N:TEB_DEALLO",0,ZHOOK_HANDLE) 00695 IF (ALLOCATED(TEB_MODEL)) DEALLOCATE(TEB_MODEL) 00696 IF (LHOOK) CALL DR_HOOK("MODD_TEB_N:TEB_DEALLO",1,ZHOOK_HANDLE) 00697 END SUBROUTINE TEB_DEALLO 00698 00699 END MODULE MODD_TEB_n
1.8.0