SURFEX v7.3
General documentation of Surfex
|
00001 !###################### 00002 MODULE MODD_DIAG_TEB_GREENROOF_n 00003 !###################### 00004 ! 00005 !!**** *MODD_DIAG_TEB_GREENROOF - declaration of diagnostics for ISBA scheme 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 ! 00010 !! 00011 !!** IMPLICIT ARGUMENTS 00012 !! ------------------ 00013 !! None 00014 !! 00015 !! REFERENCE 00016 !! --------- 00017 !! Based on modd_diag_teb_gardenn 00018 !! 00019 !! AUTHOR 00020 !! ------ 00021 !! C. de Munck & A. Lemonsu *Meteo France 00022 !! 00023 !! MODIFICATIONS 00024 !! ------------- 00025 !! Original 07/2011 00026 ! 00027 !* 0. DECLARATIONS 00028 ! ------------ 00029 ! 00030 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00031 USE PARKIND1 ,ONLY : JPRB 00032 ! 00033 IMPLICIT NONE 00034 00035 TYPE DIAG_TEB_GREENROOF_t 00036 !------------------------------------------------------------------------------ 00037 ! 00038 !* variables for one patch 00039 ! 00040 REAL, POINTER, DIMENSION(:) :: XRI ! Bulk-Richardson number (-) 00041 REAL, POINTER, DIMENSION(:) :: XCD ! drag coefficient for wind (W/s2) 00042 REAL, POINTER, DIMENSION(:) :: XCH ! drag coefficient for heat (W/s) 00043 REAL, POINTER, DIMENSION(:) :: XCE ! drag coefficient for vapor (W/s/K) 00044 REAL, POINTER, DIMENSION(:) :: XRN ! net radiation at surface (W/m2) 00045 REAL, POINTER, DIMENSION(:) :: XH ! sensible heat flux (W/m2) 00046 REAL, POINTER, DIMENSION(:) :: XGFLUX ! net soil-vegetation flux (W/m2) 00047 REAL, POINTER, DIMENSION(:) :: XTS ! surface temperature (K) 00048 REAL, POINTER, DIMENSION(:) :: XTSRAD ! radiative surface temperature (K) 00049 REAL, POINTER, DIMENSION(:) :: XQS ! humidity at surface (kg/kg) 00050 REAL, POINTER, DIMENSION(:) :: XLWD ! downward long wave radiation (W/m2) 00051 REAL, POINTER, DIMENSION(:) :: XLWU ! upward long wave radiation (W/m2) 00052 REAL, POINTER, DIMENSION(:) :: XSWD ! downward short wave radiation (W/m2) 00053 REAL, POINTER, DIMENSION(:) :: XSWU ! upward short wave radiation (W/m2) 00054 REAL, POINTER, DIMENSION(:,:) :: XSWBD ! downward short wave radiation by spectral band (W/m2) 00055 REAL, POINTER, DIMENSION(:,:) :: XSWBU ! upward short wave radiation by spectral band (W/m2) 00056 REAL, POINTER, DIMENSION(:) :: XFMU ! horizontal momentum flux zonal (m2/s2) 00057 REAL, POINTER, DIMENSION(:) :: XFMV ! horizontal momentum flux meridian (m2/s2) 00058 ! 00059 REAL, POINTER, DIMENSION(:) :: XZ0_WITH_SNOW ! roughness length for momentum 00060 ! for vegetation and snow (m) 00061 REAL, POINTER, DIMENSION(:) :: XZ0H_WITH_SNOW ! roughness length for heat 00062 ! for vegetation and snow (m) 00063 REAL, POINTER, DIMENSION(:) :: XZ0EFF ! effective roughness length for heat 00064 ! for vegetation and snow (m) 00065 ! 00066 REAL, POINTER, DIMENSION(:) :: XLEI ! sublimation latent heat flux (W/m2) 00067 REAL, POINTER, DIMENSION(:) :: XLEG ! latent heat of evaporation over the ground (W/m2) 00068 REAL, POINTER, DIMENSION(:) :: XLEGI ! surface soil ice sublimation (W/m2) 00069 REAL, POINTER, DIMENSION(:) :: XLEV ! latent heat of evaporation over vegetation (W/m2) 00070 REAL, POINTER, DIMENSION(:) :: XLES ! latent heat of evaporation over the snow (W/m2) 00071 REAL, POINTER, DIMENSION(:) :: XLER ! evaporation from canopy water interception (W/m2) 00072 REAL, POINTER, DIMENSION(:) :: XLETR ! evapotranspiration of the vegetation (W/m2) 00073 REAL, POINTER, DIMENSION(:) :: XEVAP ! evapotranspiration (W/m2) 00074 REAL, POINTER, DIMENSION(:) :: XDRAIN ! soil drainage flux (kg/m2/s) 00075 REAL, POINTER, DIMENSION(:) :: XRUNOFF ! sub-grid and supersaturation runoff (kg/m2/s) 00076 REAL, POINTER, DIMENSION(:) :: XHORT ! sub-grid Horton runoff from the SGH scheme (kg/m2/s) 00077 REAL, POINTER, DIMENSION(:) :: XRRVEG ! precipitation intercepted by the vegetation (kg/m2/s) 00078 REAL, POINTER, DIMENSION(:) :: XMELT ! snow melt (kg/m2/s) 00079 REAL, POINTER, DIMENSION(:) :: XDRIP ! dripping from the vegetation reservoir (kg/m2/s) 00080 ! 00081 !* pack diag 00082 ! 00083 REAL, POINTER, DIMENSION(:) :: XCG ! heat capacity of the ground 00084 REAL, POINTER, DIMENSION(:) :: XC1 ! coefficients for the moisure 00085 REAL, POINTER, DIMENSION(:) :: XC2 ! equation. 00086 REAL, POINTER, DIMENSION(:) :: XWGEQ ! equilibrium volumetric water content 00087 REAL, POINTER, DIMENSION(:) :: XCT ! area-averaged heat capacity 00088 REAL, POINTER, DIMENSION(:) :: XRS ! stomatal resistance (s/m) 00089 REAL, POINTER, DIMENSION(:) :: XCDN ! neutral drag coefficient (-) 00090 REAL, POINTER, DIMENSION(:) :: XHU ! area averaged surface humidity coefficient (-) 00091 REAL, POINTER, DIMENSION(:) :: XHUG ! baresoil surface humidity coefficient (-) 00092 REAL, POINTER, DIMENSION(:) :: XRESTORE ! surface energy budget restore term (W/m2) 00093 REAL, POINTER, DIMENSION(:) :: XUSTAR ! friction velocity (m/s) 00094 REAL, POINTER, DIMENSION(:,:) :: XIACAN ! PAR in the canopy at different gauss level (micmolphot/m2/s) 00095 ! 00096 ! for ISBA-ES:3-L 00097 REAL, POINTER, DIMENSION(:,:) :: XSNOWTEMP ! snow temperature profile (ISBA-ES:3-L) (K) 00098 REAL, POINTER, DIMENSION(:,:) :: XSNOWLIQ ! snow liquid water profile (ISBA-ES:3-L) (m) 00099 REAL, POINTER, DIMENSION(:,:) :: XSNOWDZ ! snow layer thicknesses (m) 00100 REAL, POINTER, DIMENSION(:) :: XSNOWHMASS ! heat content change due to mass changes in snowpack (J/m2) 00101 REAL, POINTER, DIMENSION(:) :: XMELTADV ! advective energy from snow melt water! 00102 ! 00103 !* budget summation variables for one patch 00104 ! 00105 ! 00106 REAL, POINTER, DIMENSION(:) :: XHV ! Halstead coefficient 00107 ! 00108 REAL, POINTER, DIMENSION(:,:) :: XSWI ! Soil wetness index 00109 REAL, POINTER, DIMENSION(:,:) :: XTSWI ! Total soil wetness index 00110 ! 00111 REAL, POINTER, DIMENSION(:) :: XTWSNOW ! Total snow reservoir 00112 REAL, POINTER, DIMENSION(:) :: XTDSNOW ! Total snow height 00113 ! 00114 REAL, POINTER, DIMENSION(:) :: XALBT ! Total Albedo 00115 REAL, POINTER, DIMENSION(:) :: XEMIST ! averaged emissivity (-) 00116 ! 00117 REAL, POINTER, DIMENSION(:) :: XSEUIL ! Irrigation threshold 00118 ! 00119 REAL, POINTER, DIMENSION(:) :: XGPP ! Gross Primary Production 00120 REAL, POINTER, DIMENSION(:) :: XRESP_AUTO ! Autotrophic respiration 00121 REAL, POINTER, DIMENSION(:) :: XRESP_ECO ! Ecosystem respiration 00122 ! 00123 !------------------------------------------------------------------------------ 00124 ! 00125 00126 END TYPE DIAG_TEB_GREENROOF_t 00127 00128 TYPE(DIAG_TEB_GREENROOF_t), ALLOCATABLE, TARGET, SAVE :: DIAG_TEB_GREENROOF_MODEL(:) 00129 00130 REAL, POINTER, DIMENSION(:) :: XRI=>NULL() 00131 !$OMP THREADPRIVATE(XRI) 00132 REAL, POINTER, DIMENSION(:) :: XCD=>NULL() 00133 !$OMP THREADPRIVATE(XCD) 00134 REAL, POINTER, DIMENSION(:) :: XCH=>NULL() 00135 !$OMP THREADPRIVATE(XCH) 00136 REAL, POINTER, DIMENSION(:) :: XCE=>NULL() 00137 !$OMP THREADPRIVATE(XCE) 00138 REAL, POINTER, DIMENSION(:) :: XRN=>NULL() 00139 !$OMP THREADPRIVATE(XRN) 00140 REAL, POINTER, DIMENSION(:) :: XH=>NULL() 00141 !$OMP THREADPRIVATE(XH) 00142 REAL, POINTER, DIMENSION(:) :: XGFLUX=>NULL() 00143 !$OMP THREADPRIVATE(XGFLUX) 00144 REAL, POINTER, DIMENSION(:) :: XTS=>NULL() 00145 !$OMP THREADPRIVATE(XTS) 00146 REAL, POINTER, DIMENSION(:) :: XTSRAD=>NULL() 00147 !$OMP THREADPRIVATE(XTSRAD) 00148 REAL, POINTER, DIMENSION(:) :: XQS=>NULL() 00149 !$OMP THREADPRIVATE(XQS) 00150 REAL, POINTER, DIMENSION(:) :: XLWD=>NULL() 00151 !$OMP THREADPRIVATE(XLWD) 00152 REAL, POINTER, DIMENSION(:) :: XLWU=>NULL() 00153 !$OMP THREADPRIVATE(XLWU) 00154 REAL, POINTER, DIMENSION(:) :: XSWD=>NULL() 00155 !$OMP THREADPRIVATE(XSWD) 00156 REAL, POINTER, DIMENSION(:) :: XSWU=>NULL() 00157 !$OMP THREADPRIVATE(XSWU) 00158 REAL, POINTER, DIMENSION(:,:) :: XSWBD=>NULL() 00159 !$OMP THREADPRIVATE(XSWBD) 00160 REAL, POINTER, DIMENSION(:,:) :: XSWBU=>NULL() 00161 !$OMP THREADPRIVATE(XSWBU) 00162 REAL, POINTER, DIMENSION(:) :: XFMU=>NULL() 00163 !$OMP THREADPRIVATE(XFMU) 00164 REAL, POINTER, DIMENSION(:) :: XFMV=>NULL() 00165 !$OMP THREADPRIVATE(XFMV) 00166 00167 REAL, POINTER, DIMENSION(:) :: XZ0_WITH_SNOW=>NULL() 00168 !$OMP THREADPRIVATE(XZ0_WITH_SNOW) 00169 REAL, POINTER, DIMENSION(:) :: XZ0H_WITH_SNOW=>NULL() 00170 !$OMP THREADPRIVATE(XZ0H_WITH_SNOW) 00171 REAL, POINTER, DIMENSION(:) :: XZ0EFF=>NULL() 00172 !$OMP THREADPRIVATE(XZ0EFF) 00173 ! 00174 REAL, POINTER, DIMENSION(:) :: XLEI=>NULL() 00175 !$OMP THREADPRIVATE(XLEI) 00176 REAL, POINTER, DIMENSION(:) :: XLEG=>NULL() 00177 !$OMP THREADPRIVATE(XLEG) 00178 REAL, POINTER, DIMENSION(:) :: XLEGI=>NULL() 00179 !$OMP THREADPRIVATE(XLEGI) 00180 REAL, POINTER, DIMENSION(:) :: XLEV=>NULL() 00181 !$OMP THREADPRIVATE(XLEV) 00182 REAL, POINTER, DIMENSION(:) :: XLES=>NULL() 00183 !$OMP THREADPRIVATE(XLES) 00184 REAL, POINTER, DIMENSION(:) :: XLER=>NULL() 00185 !$OMP THREADPRIVATE(XLER) 00186 REAL, POINTER, DIMENSION(:) :: XLETR=>NULL() 00187 !$OMP THREADPRIVATE(XLETR) 00188 REAL, POINTER, DIMENSION(:) :: XEVAP=>NULL() 00189 !$OMP THREADPRIVATE(XEVAP) 00190 REAL, POINTER, DIMENSION(:) :: XDRAIN=>NULL() 00191 !$OMP THREADPRIVATE(XDRAIN) 00192 REAL, POINTER, DIMENSION(:) :: XRUNOFF=>NULL() 00193 !$OMP THREADPRIVATE(XRUNOFF) 00194 REAL, POINTER, DIMENSION(:) :: XHORT=>NULL() 00195 !$OMP THREADPRIVATE(XHORT) 00196 REAL, POINTER, DIMENSION(:) :: XDRIP=>NULL() 00197 !$OMP THREADPRIVATE(XDRIP) 00198 REAL, POINTER, DIMENSION(:) :: XMELT=>NULL() 00199 !$OMP THREADPRIVATE(XMELT) 00200 REAL, POINTER, DIMENSION(:) :: XRRVEG=>NULL() 00201 !$OMP THREADPRIVATE(XRRVEG) 00202 REAL, POINTER, DIMENSION(:) :: XCG=>NULL() 00203 !$OMP THREADPRIVATE(XCG) 00204 REAL, POINTER, DIMENSION(:) :: XC1=>NULL() 00205 !$OMP THREADPRIVATE(XC1) 00206 REAL, POINTER, DIMENSION(:) :: XC2=>NULL() 00207 !$OMP THREADPRIVATE(XC2) 00208 REAL, POINTER, DIMENSION(:) :: XWGEQ=>NULL() 00209 !$OMP THREADPRIVATE(XWGEQ) 00210 REAL, POINTER, DIMENSION(:) :: XCT=>NULL() 00211 !$OMP THREADPRIVATE(XCT) 00212 REAL, POINTER, DIMENSION(:) :: XRS=>NULL() 00213 !$OMP THREADPRIVATE(XRS) 00214 REAL, POINTER, DIMENSION(:) :: XCDN=>NULL() 00215 !$OMP THREADPRIVATE(XCDN) 00216 REAL, POINTER, DIMENSION(:) :: XHU=>NULL() 00217 !$OMP THREADPRIVATE(XHU) 00218 REAL, POINTER, DIMENSION(:) :: XHUG=>NULL() 00219 !$OMP THREADPRIVATE(XHUG) 00220 REAL, POINTER, DIMENSION(:) :: XRESTORE=>NULL() 00221 !$OMP THREADPRIVATE(XRESTORE) 00222 REAL, POINTER, DIMENSION(:) :: XUSTAR=>NULL() 00223 !$OMP THREADPRIVATE(XUSTAR) 00224 REAL, POINTER, DIMENSION(:,:) :: XIACAN=>NULL() 00225 !$OMP THREADPRIVATE(XIACAN) 00226 REAL, POINTER, DIMENSION(:,:) :: XSNOWTEMP=>NULL() 00227 !$OMP THREADPRIVATE(XSNOWTEMP) 00228 REAL, POINTER, DIMENSION(:,:) :: XSNOWLIQ=>NULL() 00229 !$OMP THREADPRIVATE(XSNOWLIQ) 00230 REAL, POINTER, DIMENSION(:,:) :: XSNOWDZ=>NULL() 00231 !$OMP THREADPRIVATE(XSNOWDZ) 00232 REAL, POINTER, DIMENSION(:) :: XSNOWHMASS=>NULL() 00233 !$OMP THREADPRIVATE(XSNOWHMASS) 00234 REAL, POINTER, DIMENSION(:) :: XMELTADV=>NULL() 00235 !$OMP THREADPRIVATE(XMELTADV) 00236 00237 ! 00238 REAL, POINTER, DIMENSION(:) :: XHV=>NULL() 00239 !$OMP THREADPRIVATE(XHV) 00240 REAL, POINTER, DIMENSION(:) :: XEMIST=>NULL() 00241 !$OMP THREADPRIVATE(XEMIST) 00242 REAL, POINTER, DIMENSION(:) :: XALBT=>NULL() 00243 !$OMP THREADPRIVATE(XALBT) 00244 REAL, POINTER, DIMENSION(:) :: XSEUIL=>NULL() 00245 !$OMP THREADPRIVATE(XSEUIL) 00246 REAL, POINTER, DIMENSION(:) :: XGPP=>NULL() 00247 !$OMP THREADPRIVATE(XGPP) 00248 REAL, POINTER, DIMENSION(:) :: XRESP_AUTO=>NULL() 00249 !$OMP THREADPRIVATE(XRESP_AUTO) 00250 REAL, POINTER, DIMENSION(:) :: XRESP_ECO=>NULL() 00251 !$OMP THREADPRIVATE(XRESP_ECO) 00252 ! 00253 REAL, POINTER, DIMENSION(:,:) :: XSWI=>NULL() 00254 !$OMP THREADPRIVATE(XSWI) 00255 REAL, POINTER, DIMENSION(:,:) :: XTSWI=>NULL() 00256 !$OMP THREADPRIVATE(XTSWI) 00257 ! 00258 REAL, POINTER, DIMENSION(:) :: XTWSNOW=>NULL() 00259 !$OMP THREADPRIVATE(XTWSNOW) 00260 REAL, POINTER, DIMENSION(:) :: XTDSNOW=>NULL() 00261 !$OMP THREADPRIVATE(XTDSNOW) 00262 ! 00263 00264 CONTAINS 00265 00266 SUBROUTINE DIAG_TEB_GREENROOF_GOTO_MODEL(KFROM, KTO, LKFROM) 00267 LOGICAL, INTENT(IN) :: LKFROM 00268 INTEGER, INTENT(IN) :: KFROM, KTO 00269 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00270 ! 00271 ! Save current state for allocated arrays 00272 IF (LKFROM) THEN 00273 DIAG_TEB_GREENROOF_MODEL(KFROM)%XRI=>XRI 00274 DIAG_TEB_GREENROOF_MODEL(KFROM)%XCD=>XCD 00275 DIAG_TEB_GREENROOF_MODEL(KFROM)%XCH=>XCH 00276 DIAG_TEB_GREENROOF_MODEL(KFROM)%XCE=>XCE 00277 DIAG_TEB_GREENROOF_MODEL(KFROM)%XRN=>XRN 00278 DIAG_TEB_GREENROOF_MODEL(KFROM)%XH=>XH 00279 DIAG_TEB_GREENROOF_MODEL(KFROM)%XGFLUX=>XGFLUX 00280 DIAG_TEB_GREENROOF_MODEL(KFROM)%XTS=>XTS 00281 DIAG_TEB_GREENROOF_MODEL(KFROM)%XTSRAD=>XTSRAD 00282 DIAG_TEB_GREENROOF_MODEL(KFROM)%XQS=>XQS 00283 DIAG_TEB_GREENROOF_MODEL(KFROM)%XLWD=>XLWD 00284 DIAG_TEB_GREENROOF_MODEL(KFROM)%XLWU=>XLWU 00285 DIAG_TEB_GREENROOF_MODEL(KFROM)%XSWD=>XSWD 00286 DIAG_TEB_GREENROOF_MODEL(KFROM)%XSWU=>XSWU 00287 DIAG_TEB_GREENROOF_MODEL(KFROM)%XSWBD=>XSWBD 00288 DIAG_TEB_GREENROOF_MODEL(KFROM)%XSWBU=>XSWBU 00289 DIAG_TEB_GREENROOF_MODEL(KFROM)%XFMU=>XFMU 00290 DIAG_TEB_GREENROOF_MODEL(KFROM)%XFMV=>XFMV 00291 DIAG_TEB_GREENROOF_MODEL(KFROM)%XZ0_WITH_SNOW=>XZ0_WITH_SNOW 00292 DIAG_TEB_GREENROOF_MODEL(KFROM)%XZ0H_WITH_SNOW=>XZ0H_WITH_SNOW 00293 DIAG_TEB_GREENROOF_MODEL(KFROM)%XZ0EFF=>XZ0EFF 00294 ! 00295 DIAG_TEB_GREENROOF_MODEL(KFROM)%XLEI=>XLEI 00296 DIAG_TEB_GREENROOF_MODEL(KFROM)%XLEG=>XLEG 00297 DIAG_TEB_GREENROOF_MODEL(KFROM)%XLEGI=>XLEGI 00298 DIAG_TEB_GREENROOF_MODEL(KFROM)%XLEV=>XLEV 00299 DIAG_TEB_GREENROOF_MODEL(KFROM)%XLES=>XLES 00300 DIAG_TEB_GREENROOF_MODEL(KFROM)%XLER=>XLER 00301 DIAG_TEB_GREENROOF_MODEL(KFROM)%XLETR=>XLETR 00302 DIAG_TEB_GREENROOF_MODEL(KFROM)%XEVAP=>XEVAP 00303 DIAG_TEB_GREENROOF_MODEL(KFROM)%XDRAIN=>XDRAIN 00304 DIAG_TEB_GREENROOF_MODEL(KFROM)%XRUNOFF=>XRUNOFF 00305 DIAG_TEB_GREENROOF_MODEL(KFROM)%XHORT=>XHORT 00306 DIAG_TEB_GREENROOF_MODEL(KFROM)%XDRIP=>XDRIP 00307 DIAG_TEB_GREENROOF_MODEL(KFROM)%XMELT=>XMELT 00308 DIAG_TEB_GREENROOF_MODEL(KFROM)%XRRVEG=>XRRVEG 00309 DIAG_TEB_GREENROOF_MODEL(KFROM)%XCG=>XCG 00310 DIAG_TEB_GREENROOF_MODEL(KFROM)%XC1=>XC1 00311 DIAG_TEB_GREENROOF_MODEL(KFROM)%XC2=>XC2 00312 DIAG_TEB_GREENROOF_MODEL(KFROM)%XWGEQ=>XWGEQ 00313 DIAG_TEB_GREENROOF_MODEL(KFROM)%XCT=>XCT 00314 DIAG_TEB_GREENROOF_MODEL(KFROM)%XRS=>XRS 00315 DIAG_TEB_GREENROOF_MODEL(KFROM)%XCDN=>XCDN 00316 DIAG_TEB_GREENROOF_MODEL(KFROM)%XHU=>XHU 00317 DIAG_TEB_GREENROOF_MODEL(KFROM)%XHUG=>XHUG 00318 DIAG_TEB_GREENROOF_MODEL(KFROM)%XRESTORE=>XRESTORE 00319 DIAG_TEB_GREENROOF_MODEL(KFROM)%XUSTAR=>XUSTAR 00320 DIAG_TEB_GREENROOF_MODEL(KFROM)%XIACAN=>XIACAN 00321 DIAG_TEB_GREENROOF_MODEL(KFROM)%XSNOWTEMP=>XSNOWTEMP 00322 DIAG_TEB_GREENROOF_MODEL(KFROM)%XSNOWLIQ=>XSNOWLIQ 00323 DIAG_TEB_GREENROOF_MODEL(KFROM)%XSNOWDZ=>XSNOWDZ 00324 DIAG_TEB_GREENROOF_MODEL(KFROM)%XSNOWHMASS=>XSNOWHMASS 00325 DIAG_TEB_GREENROOF_MODEL(KFROM)%XMELTADV=>XMELTADV 00326 ! 00327 DIAG_TEB_GREENROOF_MODEL(KFROM)%XHV=>XHV 00328 DIAG_TEB_GREENROOF_MODEL(KFROM)%XSWI=>XSWI 00329 DIAG_TEB_GREENROOF_MODEL(KFROM)%XTSWI=>XTSWI 00330 DIAG_TEB_GREENROOF_MODEL(KFROM)%XTWSNOW=>XTWSNOW 00331 DIAG_TEB_GREENROOF_MODEL(KFROM)%XTDSNOW=>XTDSNOW 00332 DIAG_TEB_GREENROOF_MODEL(KFROM)%XEMIST=>XEMIST 00333 DIAG_TEB_GREENROOF_MODEL(KFROM)%XALBT=>XALBT 00334 DIAG_TEB_GREENROOF_MODEL(KFROM)%XSEUIL=>XSEUIL 00335 DIAG_TEB_GREENROOF_MODEL(KFROM)%XGPP=>XGPP 00336 DIAG_TEB_GREENROOF_MODEL(KFROM)%XRESP_AUTO=>XRESP_AUTO 00337 DIAG_TEB_GREENROOF_MODEL(KFROM)%XRESP_ECO=>XRESP_ECO 00338 ENDIF 00339 ! 00340 ! Current model is set to model KTO 00341 IF (LHOOK) CALL DR_HOOK('MODD_DIAG_TEB_GREENROOF_N:DIAG_TEB_GREENROOF_GOTO_MODEL',0,ZHOOK_HANDLE) 00342 XRI=>DIAG_TEB_GREENROOF_MODEL(KTO)%XRI 00343 XCD=>DIAG_TEB_GREENROOF_MODEL(KTO)%XCD 00344 XCH=>DIAG_TEB_GREENROOF_MODEL(KTO)%XCH 00345 XCE=>DIAG_TEB_GREENROOF_MODEL(KTO)%XCE 00346 XRN=>DIAG_TEB_GREENROOF_MODEL(KTO)%XRN 00347 XH=>DIAG_TEB_GREENROOF_MODEL(KTO)%XH 00348 XGFLUX=>DIAG_TEB_GREENROOF_MODEL(KTO)%XGFLUX 00349 XTS=>DIAG_TEB_GREENROOF_MODEL(KTO)%XTS 00350 XTSRAD=>DIAG_TEB_GREENROOF_MODEL(KTO)%XTSRAD 00351 XQS=>DIAG_TEB_GREENROOF_MODEL(KTO)%XQS 00352 XLWD=>DIAG_TEB_GREENROOF_MODEL(KTO)%XLWD 00353 XLWU=>DIAG_TEB_GREENROOF_MODEL(KTO)%XLWU 00354 XSWD=>DIAG_TEB_GREENROOF_MODEL(KTO)%XSWD 00355 XSWU=>DIAG_TEB_GREENROOF_MODEL(KTO)%XSWU 00356 XSWBD=>DIAG_TEB_GREENROOF_MODEL(KTO)%XSWBD 00357 XSWBU=>DIAG_TEB_GREENROOF_MODEL(KTO)%XSWBU 00358 XFMU=>DIAG_TEB_GREENROOF_MODEL(KTO)%XFMU 00359 XFMV=>DIAG_TEB_GREENROOF_MODEL(KTO)%XFMV 00360 XZ0_WITH_SNOW=>DIAG_TEB_GREENROOF_MODEL(KTO)%XZ0_WITH_SNOW 00361 XZ0H_WITH_SNOW=>DIAG_TEB_GREENROOF_MODEL(KTO)%XZ0H_WITH_SNOW 00362 XZ0EFF=>DIAG_TEB_GREENROOF_MODEL(KTO)%XZ0EFF 00363 ! 00364 XLEI=>DIAG_TEB_GREENROOF_MODEL(KTO)%XLEI 00365 XLEG=>DIAG_TEB_GREENROOF_MODEL(KTO)%XLEG 00366 XLEGI=>DIAG_TEB_GREENROOF_MODEL(KTO)%XLEGI 00367 XLEV=>DIAG_TEB_GREENROOF_MODEL(KTO)%XLEV 00368 XLES=>DIAG_TEB_GREENROOF_MODEL(KTO)%XLES 00369 XLER=>DIAG_TEB_GREENROOF_MODEL(KTO)%XLER 00370 XLETR=>DIAG_TEB_GREENROOF_MODEL(KTO)%XLETR 00371 XEVAP=>DIAG_TEB_GREENROOF_MODEL(KTO)%XEVAP 00372 XDRAIN=>DIAG_TEB_GREENROOF_MODEL(KTO)%XDRAIN 00373 XRUNOFF=>DIAG_TEB_GREENROOF_MODEL(KTO)%XRUNOFF 00374 XHORT=>DIAG_TEB_GREENROOF_MODEL(KTO)%XHORT 00375 XDRIP=>DIAG_TEB_GREENROOF_MODEL(KTO)%XDRIP 00376 XMELT=>DIAG_TEB_GREENROOF_MODEL(KTO)%XMELT 00377 XRRVEG=>DIAG_TEB_GREENROOF_MODEL(KTO)%XRRVEG 00378 XCG=>DIAG_TEB_GREENROOF_MODEL(KTO)%XCG 00379 XC1=>DIAG_TEB_GREENROOF_MODEL(KTO)%XC1 00380 XC2=>DIAG_TEB_GREENROOF_MODEL(KTO)%XC2 00381 XWGEQ=>DIAG_TEB_GREENROOF_MODEL(KTO)%XWGEQ 00382 XCT=>DIAG_TEB_GREENROOF_MODEL(KTO)%XCT 00383 XRS=>DIAG_TEB_GREENROOF_MODEL(KTO)%XRS 00384 XCDN=>DIAG_TEB_GREENROOF_MODEL(KTO)%XCDN 00385 XHU=>DIAG_TEB_GREENROOF_MODEL(KTO)%XHU 00386 XHUG=>DIAG_TEB_GREENROOF_MODEL(KTO)%XHUG 00387 XRESTORE=>DIAG_TEB_GREENROOF_MODEL(KTO)%XRESTORE 00388 XUSTAR=>DIAG_TEB_GREENROOF_MODEL(KTO)%XUSTAR 00389 XIACAN=>DIAG_TEB_GREENROOF_MODEL(KTO)%XIACAN 00390 XSNOWTEMP=>DIAG_TEB_GREENROOF_MODEL(KTO)%XSNOWTEMP 00391 XSNOWLIQ=>DIAG_TEB_GREENROOF_MODEL(KTO)%XSNOWLIQ 00392 XSNOWDZ=>DIAG_TEB_GREENROOF_MODEL(KTO)%XSNOWDZ 00393 XSNOWHMASS=>DIAG_TEB_GREENROOF_MODEL(KTO)%XSNOWHMASS 00394 XMELTADV=>DIAG_TEB_GREENROOF_MODEL(KTO)%XMELTADV 00395 ! 00396 XHV=>DIAG_TEB_GREENROOF_MODEL(KTO)%XHV 00397 XSWI=>DIAG_TEB_GREENROOF_MODEL(KTO)%XSWI 00398 XTSWI=>DIAG_TEB_GREENROOF_MODEL(KTO)%XTSWI 00399 XTWSNOW=>DIAG_TEB_GREENROOF_MODEL(KTO)%XTWSNOW 00400 XTDSNOW=>DIAG_TEB_GREENROOF_MODEL(KTO)%XTDSNOW 00401 XEMIST=>DIAG_TEB_GREENROOF_MODEL(KTO)%XEMIST 00402 XALBT=>DIAG_TEB_GREENROOF_MODEL(KTO)%XALBT 00403 XSEUIL=>DIAG_TEB_GREENROOF_MODEL(KTO)%XSEUIL 00404 XGPP=>DIAG_TEB_GREENROOF_MODEL(KTO)%XGPP 00405 XRESP_AUTO=>DIAG_TEB_GREENROOF_MODEL(KTO)%XRESP_AUTO 00406 XRESP_ECO=>DIAG_TEB_GREENROOF_MODEL(KTO)%XRESP_ECO 00407 IF (LHOOK) CALL DR_HOOK('MODD_DIAG_TEB_GREENROOF_N:DIAG_TEB_GREENROOF_GOTO_MODEL',1,ZHOOK_HANDLE) 00408 00409 END SUBROUTINE DIAG_TEB_GREENROOF_GOTO_MODEL 00410 00411 SUBROUTINE DIAG_TEB_GREENROOF_ALLOC(KMODEL) 00412 INTEGER, INTENT(IN) :: KMODEL 00413 INTEGER :: J 00414 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00415 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_TEB_GREENROOF_N:DIAG_TEB_GREENROOF_ALLOC",0,ZHOOK_HANDLE) 00416 ALLOCATE(DIAG_TEB_GREENROOF_MODEL(KMODEL)) 00417 DO J=1,KMODEL 00418 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XRI) 00419 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XCD) 00420 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XCH) 00421 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XCE) 00422 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XRN) 00423 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XH) 00424 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XGFLUX) 00425 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XTS) 00426 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XTSRAD) 00427 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XQS) 00428 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XLWD) 00429 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XLWU) 00430 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XSWD) 00431 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XSWU) 00432 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XSWBD) 00433 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XSWBU) 00434 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XFMU) 00435 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XFMV) 00436 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XZ0_WITH_SNOW) 00437 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XZ0H_WITH_SNOW) 00438 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XZ0EFF) 00439 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XLEI) 00440 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XLEG) 00441 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XLEGI) 00442 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XLEV) 00443 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XLES) 00444 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XLER) 00445 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XLETR) 00446 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XEVAP) 00447 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XDRAIN) 00448 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XRUNOFF) 00449 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XHORT) 00450 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XRRVEG) 00451 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XMELT) 00452 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XDRIP) 00453 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XCG) 00454 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XC1) 00455 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XC2) 00456 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XWGEQ) 00457 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XCT) 00458 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XRS) 00459 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XCDN) 00460 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XHU) 00461 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XHUG) 00462 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XRESTORE) 00463 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XUSTAR) 00464 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XIACAN) 00465 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XSNOWTEMP) 00466 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XSNOWLIQ) 00467 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XSNOWDZ) 00468 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XSNOWHMASS) 00469 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XMELTADV) 00470 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XHV) 00471 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XSWI) 00472 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XTSWI) 00473 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XTWSNOW) 00474 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XTDSNOW) 00475 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XALBT) 00476 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XEMIST) 00477 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XSEUIL) 00478 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XGPP) 00479 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XRESP_AUTO) 00480 NULLIFY(DIAG_TEB_GREENROOF_MODEL(J)%XRESP_ECO) 00481 ENDDO 00482 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_TEB_GREENROOF_N:DIAG_TEB_GREENROOF_ALLOC",1,ZHOOK_HANDLE) 00483 END SUBROUTINE DIAG_TEB_GREENROOF_ALLOC 00484 00485 SUBROUTINE DIAG_TEB_GREENROOF_DEALLO 00486 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00487 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_TEB_GREENROOF_N:DIAG_TEB_GREENROOF_DEALLO",0,ZHOOK_HANDLE) 00488 IF (ALLOCATED(DIAG_TEB_GREENROOF_MODEL)) DEALLOCATE(DIAG_TEB_GREENROOF_MODEL) 00489 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_TEB_GREENROOF_N:DIAG_TEB_GREENROOF_DEALLO",1,ZHOOK_HANDLE) 00490 END SUBROUTINE DIAG_TEB_GREENROOF_DEALLO 00491 00492 END MODULE MODD_DIAG_TEB_GREENROOF_n