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