SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/modd_diag_teb_gardenn.F90
Go to the documentation of this file.
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