SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/modd_teb_greenroofn.F90
Go to the documentation of this file.
00001 !##################
00002 MODULE MODD_TEB_GREENROOF_n
00003 !##################
00004 !
00005 !!****  *MODD_TEB_GREENROOF - declaration of ISBA scheme packed surface parameters for urban green roofs
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !!
00011 !!**  IMPLICIT ARGUMENTS
00012 !!    ------------------
00013 !!      None 
00014 !!
00015 !!    REFERENCE
00016 !!    ---------
00017 !!
00018 !!    AUTHOR
00019 !!    ------
00020 !!      A. Lemonsu *Meteo France*
00021 !!
00022 !!    MODIFICATIONS
00023 !!    -------------
00024 !!      Original       09/2009
00025 !!      C. de Munck     06/2011 
00026 !!
00027 !-------------------------------------------------------------------------------
00028 !
00029 !*       0.   DECLARATIONS
00030 !             ------------
00031 !
00032 USE MODD_TYPE_SNOW
00033 !
00034 !
00035 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00036 USE PARKIND1  ,ONLY : JPRB
00037 !
00038 IMPLICIT NONE
00039 
00040 
00041 
00042 
00043 TYPE TEB_GREENROOF_OPTIONS_t
00044 !-------------------------------------------------------------------------------
00045 !
00046 ! type of initialization : from cover types (ecoclimap) or parameters prescribed
00047 !
00048   LOGICAL                         :: LPAR_GREENROOF ! T: parameters computed from ecoclimap
00049 !                                                   ! F: they are read in the file
00050 !
00051 ! ISBA Scheme Options specific to urban green roofs:
00052 !
00053   CHARACTER(LEN=3)                :: CISBA_GR       ! type of ISBA version ('2-L' = default, '3-L', 'DIF')
00054   CHARACTER(LEN=4)                :: CSCOND_GR      ! Thermal conductivity ('DEF '= NP89 implicit method , 
00055                                                     ! 'PL98' = Peters-Lidard et al. 1998 used for explicit computation of CG)
00056 !
00057   LOGICAL                          :: LTR_ML_GR
00058 !-------------------------------------------------------------------------------
00059 !
00060 ! type of initialization of vegetation: from cover types (ecoclimap) or parameters prescribed
00061 !
00062   INTEGER                         :: NLAYER_GR       ! number of ground layers
00063   INTEGER                         :: NTIME_GR        ! number of time data : for VEG, LAI, EMIS, Z0
00064 !
00065   INTEGER                              :: NLAYER_HORT_GR
00066   INTEGER                              :: NLAYER_DUN_GR
00067 !
00068   REAL, POINTER, DIMENSION(:)          :: XSOILGRID_GR        ! Soil layer grid as reference for DIF
00069 !-------------------------------------------------------------------------------
00070 !
00071 ! - SGH scheme
00072 !                                                     
00073   CHARACTER(LEN=4)                :: CRUNOFF_GR      ! surface runoff formulation for green roofs
00074 !                                                    ! 'WSAT'
00075 !                                                    ! 'DT92'
00076 !                                                    ! 'SGH ' Topmodel
00077   CHARACTER(LEN=3)                :: CTOPREG_GR      ! Wolock and McCabe (2000) linear regression for Topmodel
00078 !                                                    ! 'DEF' = Reg
00079 !                                                    ! 'NON' = no Reg  
00080   CHARACTER(LEN=3)                :: CKSAT_GR        ! ksat
00081 !                                                    ! 'DEF' = default value 
00082 !                                                    ! 'SGH' = profil exponentiel
00083   CHARACTER(LEN=3)                :: CHORT_GR        ! Horton runoff
00084 !                                                    ! 'DEF' = no Horton runoff
00085 !                                                    ! 'SGH' = Horton runoff
00086   CHARACTER(LEN=3)               :: CSOC_GR          ! soil organic carbon effect
00087 !                                                   ! 'DEF' = default value 
00088 !                                                   ! 'SGH' = SOC profil
00089 !
00090 !-------------------------------------------------------------------------------
00091 !                                 
00092 ! Type of green roof (characterization of green roof structure based on GR vegetation)
00093 !
00094   CHARACTER(LEN=5)                :: CTYP_GR         ! type of green roof
00095 !
00096 !-------------------------------------------------------------------------------
00097 !
00098 END TYPE TEB_GREENROOF_OPTIONS_t
00099 
00100 
00101 
00102 
00103 TYPE TEB_GREENROOF_PGD_t
00104 !-------------------------------------------------------------------------------
00105 !
00106 ! Mask and number of grid elements containing patches/tiles:
00107 !
00108   REAL, POINTER, DIMENSION(:,:) :: XVEGTYPE          ! fraction of each vegetation type for
00109 !                                                    ! each grid mesh                          (-)
00110 !
00111 !-------------------------------------------------------------------------------
00112 !
00113 ! Averaged Surface radiative parameters:
00114 !
00115   REAL, POINTER, DIMENSION(:)   :: XALBNIR_DRY       ! dry soil near-infra-red albedo          (-)
00116   REAL, POINTER, DIMENSION(:)   :: XALBVIS_DRY       ! dry soil visible albedo                 (-)
00117   REAL, POINTER, DIMENSION(:)   :: XALBUV_DRY        ! dry soil UV albedo                      (-)
00118   REAL, POINTER, DIMENSION(:)   :: XALBNIR_WET       ! wet soil near-infra-red albedo          (-)
00119   REAL, POINTER, DIMENSION(:)   :: XALBVIS_WET       ! wet soil visible albedo                 (-)
00120   REAL, POINTER, DIMENSION(:)   :: XALBUV_WET        ! wet soil UV albedo                      (-)
00121   REAL, POINTER, DIMENSION(:)   :: XALBNIR_SOIL      ! soil near-infra-red albedo              (-)
00122   REAL, POINTER, DIMENSION(:)   :: XALBVIS_SOIL      ! soil visible albedo                     (-)
00123   REAL, POINTER, DIMENSION(:)   :: XALBUV_SOIL       ! soil UV albedo                          (-)
00124   REAL, POINTER, DIMENSION(:)   :: XALBNIR_TSOIL     ! total near-infra-red albedo of wet soil (-)
00125   REAL, POINTER, DIMENSION(:)   :: XALBVIS_TSOIL     ! total visible albedo of soil            (-)  
00126 !
00127 !-------------------------------------------------------------------------------
00128 !
00129 ! Input Parameters, per patch:
00130 !
00131 ! - vegetation + bare soil:
00132 !
00133   REAL, POINTER, DIMENSION(:)   :: XZ0_O_Z0H         ! ratio of surface roughness lengths
00134 !                                                    ! (momentum to heat)                      (-)
00135 
00136 !
00137 ! - vegetation:
00138 !
00139   REAL, POINTER, DIMENSION(:)   :: XALBNIR_VEG       ! vegetation near-infra-red albedo        (-)
00140   REAL, POINTER, DIMENSION(:)   :: XALBVIS_VEG       ! vegetation visible albedo               (-)
00141   REAL, POINTER, DIMENSION(:)   :: XALBUV_VEG        ! vegetation UV albedo                    (-)
00142   REAL, POINTER, DIMENSION(:)   :: XALBNIR_TVEG      ! total near-infra-red albedo of vegetation (-)
00143   REAL, POINTER, DIMENSION(:)   :: XALBVIS_TVEG      ! total visible albedo of vegetation        (-)    
00144 !
00145 ! - vegetation: default option (Jarvis) and general parameters:
00146 !
00147   REAL, POINTER, DIMENSION(:)   :: XWRMAX_CF         ! coefficient for maximum water 
00148                                                      ! interception 
00149                                                      ! storage capacity on the vegetation      (-)
00150   REAL, POINTER, DIMENSION(:)   :: XRSMIN            ! minimum stomatal resistance             (s/m)
00151   REAL, POINTER, DIMENSION(:)   :: XGAMMA            ! coefficient for the calculation
00152                                                      ! of the surface stomatal
00153                                                      ! resistance
00154   REAL, POINTER, DIMENSION(:)   :: XCV               ! vegetation thermal inertia coefficient  (K m2/J)
00155   REAL, POINTER, DIMENSION(:)   :: XRGL              ! maximum solar radiation
00156                                                      ! usable in photosynthesis                (W/m2)
00157   REAL, POINTER, DIMENSION(:,:) :: XROOTFRAC         ! root fraction profile ('DIF' option)
00158 !
00159 !-------------------------------------------------------------------------------
00160 !
00161 ! - vegetation: Ags parameters ('AGS', 'LAI', 'AST', 'LST', 'NIT', 'NCB' options)
00162 !
00163   REAL, POINTER, DIMENSION(:)   :: XABC              ! abscissa needed for integration
00164                                                      ! of net assimilation and stomatal
00165                                                      ! conductance over canopy depth           (-)
00166   REAL, POINTER, DIMENSION(:)   :: XPOI              ! Gaussian weights for integration
00167                                                      ! of net assimilation and stomatal
00168                                                      ! conductance over canopy depth           (-)
00169   REAL, POINTER, DIMENSION(:)   :: XBSLAI            ! ratio d(biomass)/d(lai)                 (kg/m2)
00170   REAL, POINTER, DIMENSION(:)   :: XLAIMIN           ! minimum LAI (Leaf Area Index)           (m2/m2)
00171   REAL, POINTER, DIMENSION(:)   :: XSEFOLD           ! e-folding time for senescence           (s)
00172   REAL, POINTER, DIMENSION(:)   :: XH_TREE           ! height of trees                         (m)
00173   REAL, POINTER, DIMENSION(:)   :: XANF              ! total assimilation over canopy          (
00174   REAL, POINTER, DIMENSION(:)   :: XANMAX            ! maximum photosynthesis rate             (
00175   REAL, POINTER, DIMENSION(:)   :: XFZERO            ! ideal value of F, no photo- 
00176                                                      ! respiration or saturation deficit       (
00177   REAL, POINTER, DIMENSION(:)   :: XEPSO             ! maximum initial quantum use             
00178                                                      ! efficiency                              (mg J-1 PAR)
00179   REAL, POINTER, DIMENSION(:)   :: XGAMM             ! CO2 conpensation concentration          (ppm)
00180   REAL, POINTER, DIMENSION(:)   :: XQDGAMM           ! Q10 function for CO2 conpensation 
00181                                                      ! concentration                           (-)
00182   REAL, POINTER, DIMENSION(:)   :: XGMES             ! mesophyll conductance                   (m s-1)
00183   REAL, POINTER, DIMENSION(:)   :: XRE25             ! Ecosystem respiration parameter         (kg/kg.m.s-1)
00184   REAL, POINTER, DIMENSION(:)   :: XQDGMES           ! Q10 function for mesophyll conductance  (-)
00185   REAL, POINTER, DIMENSION(:)   :: XT1GMES           ! reference temperature for computing 
00186                                                      ! compensation concentration function for 
00187                                                      ! mesophyll conductance: minimum
00188                                                      ! temperature                             (K)
00189   REAL, POINTER, DIMENSION(:)   :: XT2GMES           ! reference temperature for computing 
00190                                                      ! compensation concentration function for 
00191                                                      ! mesophyll conductance: maximum
00192                                                      ! temperature                             (K)
00193   REAL, POINTER, DIMENSION(:)   :: XAMAX             ! leaf photosynthetic capacity            (mg m-2 s-1)
00194   REAL, POINTER, DIMENSION(:)   :: XQDAMAX           ! Q10 function for leaf photosynthetic 
00195                                                      ! capacity                                (-)
00196   REAL, POINTER, DIMENSION(:)   :: XT1AMAX           ! reference temperature for computing 
00197                                                      ! compensation concentration function for 
00198                                                      ! leaf photosynthetic capacity: minimum
00199                                                      ! temperature                             (K)
00200   REAL, POINTER, DIMENSION(:)   :: XT2AMAX           ! reference temperature for computing 
00201                                                      ! compensation concentration function for 
00202                                                      ! leaf photosynthetic capacity: maximum
00203                                                      ! temperature                             (K)
00204 !                                      
00205 !-------------------------------------------------------------------------------
00206 !
00207 ! - vegetation: Ags Stress parameters ('AST', 'LST', 'NIT', 'NCB' options)
00208 !
00209   LOGICAL, POINTER, DIMENSION(:):: LSTRESS           ! vegetation response (offensive/defensive)
00210   REAL, POINTER, DIMENSION(:)   :: XF2I              ! critical normilized soil water 
00211                                                      ! content for stress parameterisation
00212   REAL, POINTER, DIMENSION(:)   :: XGC               ! cuticular conductance                   (m s-1)
00213   REAL, POINTER, DIMENSION(:)   :: XAH               ! coefficients for herbaceous water stress 
00214                                                      ! response (offensive or defensive)       (log(mm/s))
00215   REAL, POINTER, DIMENSION(:)   :: XBH               ! coefficients for herbaceous water stress 
00216                                                      ! response (offensive or defensive)       (-)
00217   REAL, POINTER, DIMENSION(:)   :: XDMAX             ! maximum air saturation deficit
00218                                                      ! tolerate by vegetation                  (kg/kg)
00219 !
00220 !-------------------------------------------------------------------------------
00221 !
00222 ! - vegetation: Ags Nitrogen-model parameters ('NIT', 'NCB' option)
00223 !
00224   REAL, POINTER, DIMENSION(:)    :: XCE_NITRO        ! leaf aera ratio sensitivity to 
00225                                                      ! nitrogen concentration                (m2/kg)
00226   REAL, POINTER, DIMENSION(:)    :: XCF_NITRO        ! lethal minimum value of leaf area
00227                                                      ! ratio                                 (m2/kg)
00228   REAL, POINTER, DIMENSION(:)    :: XCNA_NITRO       ! nitrogen concentration of active 
00229                                                      ! biomass                               (kg/kg)
00230   REAL, POINTER, DIMENSION(:)    :: XBSLAI_NITRO     ! biomass/LAI ratio from nitrogen 
00231                                                      ! decline theory                        (kg/m2)
00232 !
00233 !-------------------------------------------------------------------------------
00234 !
00235 ! - soil: primary parameters
00236 !
00237   REAL, POINTER, DIMENSION(:,:)  :: XOM_GR           ! green roof OM fraction (-)
00238   REAL, POINTER, DIMENSION(:,:)  :: XSAND_GR         ! green roof sand fraction of the non-OM part (-)
00239   REAL, POINTER, DIMENSION(:,:)  :: XCLAY_GR         ! green roof clay fraction of the non-OM part (-)
00240   REAL, POINTER, DIMENSION(:)    :: XRUNOFFB_GR      ! green roof sub-grid surface runoff slope parameter (-)
00241   REAL, POINTER, DIMENSION(:)    :: XWDRAIN_GR       ! green roof continuous drainage parameter           (-)
00242   REAL, POINTER, DIMENSION(:)    :: XTAUICE          ! soil freezing characteristic timescale  (s)
00243   REAL, POINTER, DIMENSION(:)    :: XGAMMAT          ! 'Force-Restore' timescale when using a
00244                                                      ! prescribed lower boundary temperature   (1/days)
00245   REAL, POINTER, DIMENSION(:,:)  :: XDG              ! soil layer thicknesses                  (m)
00246                                                      ! NOTE: in Force-Restore mode, the 
00247                                                      ! uppermost layer thickness is superficial
00248                                                      ! and is only explicitly used for soil 
00249                                                      ! water phase changes                     (m)
00250   REAL, POINTER, DIMENSION(:)    :: XRUNOFFD         ! depth over which sub-grid runoff is
00251                                                      ! computed: in Force-Restore this is the
00252                                                      ! total soil column ('2-L'), or root zone
00253                                                      ! ('3-L'). For the 'DIF' option, it can
00254                                                      ! be any depth within soil column         (m)
00255 !
00256   REAL, POINTER, DIMENSION(:,:)  :: XSOILWGHT      ! ISBA-DIF: weights for vertical
00257   REAL, POINTER, DIMENSION(:,:)  :: XDZG           ! soil layers thicknesses (DIF option)
00258   REAL, POINTER, DIMENSION(:,:)  :: XDZDIF         ! distance between consecuative layer mid-points (DIF option)
00259 !
00260   INTEGER, POINTER, DIMENSION(:) :: NWG_LAYER      ! Number of soil moisture layers for DIF
00261   REAL, POINTER, DIMENSION(:)    :: XDROOT         ! effective root depth for DIF (m)
00262   REAL, POINTER, DIMENSION(:)    :: XDG2           ! root depth for DIF as 3-L (m)
00263 !-------------------------------------------------------------------------------
00264 !
00265 ! - soil: Secondary parameters: hydrology
00266 !
00267   REAL, POINTER, DIMENSION(:)    :: XC1SAT           ! 'Force-Restore' C1 coefficient at 
00268                                                      ! saturation                              (-)
00269   REAL, POINTER, DIMENSION(:)    :: XC2REF           ! 'Force-Restore' reference value of C2   (-)
00270   REAL, POINTER, DIMENSION(:,:)  :: XC3              ! 'Force-Restore' C3 drainage coefficient (m)
00271   REAL, POINTER, DIMENSION(:)    :: XC4B             ! 'Force-Restore' sub-surface vertical 
00272                                                      ! diffusion coefficient (slope parameter) (-)
00273   REAL, POINTER, DIMENSION(:)    :: XC4REF           ! 'Force-Restore' sub-surface vertical 
00274                                                      ! diffusion coefficient                   (-)
00275   REAL, POINTER, DIMENSION(:)    :: XACOEF           ! 'Force-Restore' surface vertical 
00276                                                      ! diffusion coefficient                   (-)
00277   REAL, POINTER, DIMENSION(:)    :: XPCOEF           ! 'Force-Restore' surface vertical 
00278                                                      ! diffusion coefficient                   (-)
00279   REAL, POINTER, DIMENSION(:,:)  :: XWFC             ! field capacity volumetric water content
00280                                                      ! profile                             (m3/m3)
00281   REAL, POINTER, DIMENSION(:,:)  :: XWWILT           ! wilting point volumetric water content 
00282                                                      ! profile         
00283   REAL, POINTER, DIMENSION(:,:)  :: XWSAT            ! porosity profile                      (m3/m3) 
00284   REAL, POINTER, DIMENSION(:,:)  :: XBCOEF           ! soil water CH78 b-parameter             (-)
00285   REAL, POINTER, DIMENSION(:,:)  :: XCONDSAT         ! hydraulic conductivity at saturation    (m/s)
00286   REAL, POINTER, DIMENSION(:,:)  :: XMPOTSAT         ! matric potential at saturation          (m)
00287 !
00288   REAL, POINTER, DIMENSION(:)    :: XPCPS
00289   REAL, POINTER, DIMENSION(:)    :: XPLVTT
00290   REAL, POINTER, DIMENSION(:)    :: XPLSTT 
00291 !
00292 !-------------------------------------------------------------------------------
00293 !
00294 ! - soil: Secondary parameters: thermal 
00295 !
00296   REAL, POINTER, DIMENSION(:)    :: XCGSAT           ! soil thermal inertia coefficient at 
00297                                                      ! saturation                              (K m2/J)
00298   REAL, POINTER, DIMENSION(:,:)  :: XHCAPSOIL        ! soil heat capacity                      (J/K/m3)
00299   REAL, POINTER, DIMENSION(:,:)  :: XCONDDRY         ! soil dry thermal conductivity           (W/m/K)
00300   REAL, POINTER, DIMENSION(:,:)  :: XCONDSLD         ! soil solids thermal conductivity        (W/m/K)
00301   REAL, POINTER, DIMENSION(:)    :: XTDEEP           ! prescribed deep soil temperature 
00302                                                      ! (optional)                              (K)
00303 !
00304 ! - SGH scheme
00305 !
00306   REAL, POINTER, DIMENSION(:)    :: XD_ICE          ! depth of the soil column for the calculation
00307                                                     ! of the frozen soil fraction (m)
00308 !-------------------------------------------------------------------------------
00309 !
00310 END TYPE TEB_GREENROOF_PGD_t
00311 
00312 
00313 TYPE TEB_GREENROOF_PGD_EVOL_t
00314 ! - Vegetation: Ags Prognostic (YPHOTO = ('LAI', 'LST', or 'NIT') or prescribed (YPHOTO='NON', 'AGS' or 'LST')
00315 !
00316   REAL, POINTER, DIMENSION(:)   :: XLAI              ! Leaf Area Index                         (m2/m2)
00317   REAL, POINTER, DIMENSION(:)   :: XVEG              ! vegetation cover fraction               (-)
00318   REAL, POINTER, DIMENSION(:)   :: XALBNIR           ! near-infra-red albedo                   (-)
00319   REAL, POINTER, DIMENSION(:)   :: XALBVIS           ! visible albedo                          (-)
00320   REAL, POINTER, DIMENSION(:)   :: XALBUV            ! UV albedo                               (-)
00321   REAL, POINTER, DIMENSION(:)   :: XEMIS             ! surface emissivity                      (-)
00322   REAL, POINTER, DIMENSION(:)   :: XZ0               ! surface roughness length                (m)
00323 !
00324 END TYPE TEB_GREENROOF_PGD_EVOL_t
00325 
00326 
00327 TYPE TEB_GREENROOF_t
00328 !-------------------------------------------------------------------------------
00329 !
00330 ! Prognostic variables:
00331 !
00332 ! - Snow Cover:
00333 !
00334   TYPE(SURF_SNOW)                :: TSNOW            ! snow state: 
00335                                                      ! scheme type/option                      (-)
00336                                                      ! number of layers                        (-)
00337                                                      ! snow (& liq. water) content             (kg/m2)
00338                                                      ! heat content                            (J/m2)
00339                                                      ! temperature                             (K)
00340                                                      ! density                                 (kg m-3)
00341 !
00342 ! - Soil and vegetation heat and water:
00343 !
00344   REAL, POINTER, DIMENSION(:)    :: XWR              ! liquid water retained on the
00345                                                      ! foliage of the vegetation
00346                                                      ! canopy                                  (kg/m2)
00347   REAL, POINTER, DIMENSION(:,:)  :: XTG              ! surface and sub-surface soil 
00348                                                      ! temperature profile                     (K)
00349   REAL, POINTER, DIMENSION(:,:)  :: XWG              ! soil volumetric water content profile   (m3/m3)
00350   REAL, POINTER, DIMENSION(:,:)  :: XWGI             ! soil liquid water equivalent volumetric 
00351                                                      ! ice content profile                     (m3/m3)
00352   REAL, POINTER, DIMENSION(:)    :: XRESA            ! aerodynamic resistance                  (s/m)
00353 !
00354 
00355 ! - Vegetation: Ags Prognostic (YPHOTO = 'AGS', 'LAI', 'AST', 'LST', 'NIT', 'NCB')
00356 !
00357   REAL, POINTER, DIMENSION(:)    :: XAN              ! net CO2 assimilation                    (mg/m2/s)
00358   REAL, POINTER, DIMENSION(:)    :: XANDAY           ! daily net CO2 assimilation              (mg/m2)
00359   REAL, POINTER, DIMENSION(:)    :: XANFM            ! maximum leaf assimilation               (mg/m2/s)
00360   REAL, POINTER, DIMENSION(:)    :: XLE              ! evapotranspiration                      (W/m2)
00361   REAL, POINTER, DIMENSION(:)     :: XFAPARC       ! Fapar of vegetation (cumul)
00362   REAL, POINTER, DIMENSION(:)     :: XFAPIRC       ! Fapir of vegetation (cumul)
00363   REAL, POINTER, DIMENSION(:)     :: XLAI_EFFC     ! Effective LAI (cumul)
00364   REAL, POINTER, DIMENSION(:)     :: XMUS          ! cos zenithal angle (cumul)    
00365 !
00366 ! - Vegetation: Ags Prognostic (YPHOTO = 'NIT', 'NCB')
00367 !
00368   REAL, POINTER, DIMENSION(:,:)  :: XRESP_BIOMASS    ! daily cumulated respiration of 
00369                                                      ! biomass                              (kg/m2/s)
00370   REAL, POINTER, DIMENSION(:,:)  :: XBIOMASS         ! biomass of previous day              (kg/m2) 
00371 !
00372 ! - SGH scheme
00373 !                                                     
00374   REAL, POINTER, DIMENSION(:)    :: XKSAT_ICE       ! hydraulic conductivity at saturation
00375                                                     ! over frozen area (m s-1)                                     
00376 !-------------------------------------------------------------------------------
00377 !
00378 ! - Snow and flood fractions and total albedo at time t:
00379 !
00380   REAL, POINTER, DIMENSION(:)    :: XPSNG              ! Snow fraction over ground
00381   REAL, POINTER, DIMENSION(:)    :: XPSNV              ! Snow fraction over vegetation
00382   REAL, POINTER, DIMENSION(:)    :: XPSNV_A            ! Snow fraction over vegetation
00383   REAL, POINTER, DIMENSION(:)    :: XPSN               ! Total Snow fraction
00384 ! 
00385   REAL, POINTER, DIMENSION(:)    :: XSNOWFREE_ALB      ! snow free albedo                        (-)
00386   REAL, POINTER, DIMENSION(:)    :: XSNOWFREE_ALB_VEG  ! snow free albedo for vegetation         (-)
00387   REAL, POINTER, DIMENSION(:)    :: XSNOWFREE_ALB_SOIL ! snow free albedo for soil               (-)
00388 !
00389 !-------------------------------------------------------------------------------
00390 !
00391 END TYPE TEB_GREENROOF_t
00392 
00393 
00394 
00395 TYPE(TEB_GREENROOF_OPTIONS_t), ALLOCATABLE, TARGET, SAVE :: TEB_GREENROOF_OPTIONS_MODEL(:)
00396 TYPE(TEB_GREENROOF_PGD_t),     ALLOCATABLE, TARGET, SAVE :: TEB_GREENROOF_PGD_MODEL(:)
00397 TYPE(TEB_GREENROOF_PGD_EVOL_t),ALLOCATABLE, TARGET, SAVE :: TEB_GREENROOF_PGD_EVOL_MODEL(:,:)
00398 TYPE(TEB_GREENROOF_t),         ALLOCATABLE, TARGET, SAVE :: TEB_GREENROOF_MODEL(:,:)
00399 
00400 
00401 
00402 LOGICAL, POINTER                 :: LPAR_GREENROOF=>NULL()
00403 !$OMP THREADPRIVATE(LPAR_GREENROOF)
00404  CHARACTER(LEN=3), POINTER        :: CISBA_GR=>NULL()
00405 !$OMP THREADPRIVATE(CISBA_GR)
00406  CHARACTER(LEN=4), POINTER        :: CRUNOFF_GR=>NULL()
00407 !$OMP THREADPRIVATE(CRUNOFF_GR)
00408  CHARACTER(LEN=4), POINTER        :: CSCOND_GR=>NULL()
00409 !$OMP THREADPRIVATE(CSCOND_GR)
00410 LOGICAL,          POINTER        :: LTR_ML_GR=>NULL()
00411 !$OMP THREADPRIVATE(LTR_ML_GR)
00412 REAL, POINTER, DIMENSION(:,:)    :: XVEGTYPE=>NULL()
00413 !$OMP THREADPRIVATE(XVEGTYPE)
00414 INTEGER, POINTER                 :: NLAYER_GR=>NULL()
00415 !$OMP THREADPRIVATE(NLAYER_GR)
00416 INTEGER, POINTER                 :: NLAYER_HORT_GR=>NULL()
00417 !$OMP THREADPRIVATE(NLAYER_HORT_GR)
00418 INTEGER, POINTER                 :: NLAYER_DUN_GR=>NULL()
00419 !$OMP THREADPRIVATE(NLAYER_DUN_GR)
00420 REAL, POINTER, DIMENSION(:)      :: XSOILGRID_GR=>NULL()
00421 !$OMP THREADPRIVATE(XSOILGRID_GR)
00422 INTEGER, POINTER                 :: NTIME_GR=>NULL()
00423 !$OMP THREADPRIVATE(NTIME_GR)
00424 REAL, POINTER, DIMENSION(:)      :: XALBNIR_DRY=>NULL()
00425 !$OMP THREADPRIVATE(XALBNIR_DRY)
00426 REAL, POINTER, DIMENSION(:)      :: XALBVIS_DRY=>NULL()
00427 !$OMP THREADPRIVATE(XALBVIS_DRY)
00428 REAL, POINTER, DIMENSION(:)      :: XALBUV_DRY=>NULL()
00429 !$OMP THREADPRIVATE(XALBUV_DRY)
00430 REAL, POINTER, DIMENSION(:)      :: XALBNIR_WET=>NULL()
00431 !$OMP THREADPRIVATE(XALBNIR_WET)
00432 REAL, POINTER, DIMENSION(:)      :: XALBVIS_WET=>NULL()
00433 !$OMP THREADPRIVATE(XALBVIS_WET)
00434 REAL, POINTER, DIMENSION(:)      :: XALBUV_WET=>NULL()
00435 !$OMP THREADPRIVATE(XALBUV_WET)
00436 REAL, POINTER, DIMENSION(:)      :: XALBNIR_SOIL=>NULL()
00437 !$OMP THREADPRIVATE(XALBNIR_SOIL)
00438 REAL, POINTER, DIMENSION(:)      :: XALBVIS_SOIL=>NULL()
00439 !$OMP THREADPRIVATE(XALBVIS_SOIL)
00440 REAL, POINTER, DIMENSION(:)      :: XALBUV_SOIL=>NULL()
00441 !$OMP THREADPRIVATE(XALBUV_SOIL)
00442 REAL, POINTER, DIMENSION(:)   :: XALBNIR_TSOIL=>NULL()
00443 !$OMP THREADPRIVATE(XALBNIR_TSOIL)
00444 REAL, POINTER, DIMENSION(:)   :: XALBVIS_TSOIL=>NULL()
00445 !$OMP THREADPRIVATE(XALBVIS_TSOIL)
00446 REAL, POINTER, DIMENSION(:)      :: XZ0_O_Z0H=>NULL()
00447 !$OMP THREADPRIVATE(XZ0_O_Z0H)
00448 REAL, POINTER, DIMENSION(:)      :: XALBNIR=>NULL()
00449 !$OMP THREADPRIVATE(XALBNIR)
00450 REAL, POINTER, DIMENSION(:)      :: XALBVIS=>NULL()
00451 !$OMP THREADPRIVATE(XALBVIS)
00452 REAL, POINTER, DIMENSION(:)      :: XALBUV=>NULL()
00453 !$OMP THREADPRIVATE(XALBUV)
00454 REAL, POINTER, DIMENSION(:)      :: XEMIS=>NULL()
00455 !$OMP THREADPRIVATE(XEMIS)
00456 REAL, POINTER, DIMENSION(:)      :: XZ0=>NULL()
00457 !$OMP THREADPRIVATE(XZ0)
00458 REAL, POINTER, DIMENSION(:)      :: XALBNIR_VEG=>NULL()
00459 !$OMP THREADPRIVATE(XALBNIR_VEG)
00460 REAL, POINTER, DIMENSION(:)      :: XALBVIS_VEG=>NULL()
00461 !$OMP THREADPRIVATE(XALBVIS_VEG)
00462 REAL, POINTER, DIMENSION(:)      :: XALBUV_VEG=>NULL()
00463 !$OMP THREADPRIVATE(XALBUV_VEG)
00464 REAL, POINTER, DIMENSION(:)   :: XALBNIR_TVEG=>NULL()
00465 !$OMP THREADPRIVATE(XALBNIR_TVEG)
00466 REAL, POINTER, DIMENSION(:)   :: XALBVIS_TVEG=>NULL()
00467 !$OMP THREADPRIVATE(XALBVIS_TVEG)
00468 REAL, POINTER, DIMENSION(:)      :: XVEG=>NULL()
00469 !$OMP THREADPRIVATE(XVEG)
00470 REAL, POINTER, DIMENSION(:)      :: XWRMAX_CF=>NULL()
00471 !$OMP THREADPRIVATE(XWRMAX_CF)
00472 REAL, POINTER, DIMENSION(:)      :: XRSMIN=>NULL()
00473 !$OMP THREADPRIVATE(XRSMIN)
00474 REAL, POINTER, DIMENSION(:)      :: XGAMMA=>NULL()
00475 !$OMP THREADPRIVATE(XGAMMA)
00476 REAL, POINTER, DIMENSION(:)      :: XCV=>NULL()
00477 !$OMP THREADPRIVATE(XCV)
00478 REAL, POINTER, DIMENSION(:)      :: XRGL=>NULL()
00479 !$OMP THREADPRIVATE(XRGL)
00480 REAL, POINTER, DIMENSION(:,:)    :: XROOTFRAC=>NULL()
00481 !$OMP THREADPRIVATE(XROOTFRAC)
00482 REAL, DIMENSION(:), POINTER      :: XABC=>NULL()
00483 !$OMP THREADPRIVATE(XABC)
00484 REAL, DIMENSION(:), POINTER      :: XPOI=>NULL()
00485 !$OMP THREADPRIVATE(XPOI)
00486 REAL, POINTER, DIMENSION(:)      :: XBSLAI=>NULL()
00487 !$OMP THREADPRIVATE(XBSLAI)
00488 REAL, POINTER, DIMENSION(:)      :: XLAIMIN=>NULL()
00489 !$OMP THREADPRIVATE(XLAIMIN)
00490 REAL, POINTER, DIMENSION(:)      :: XSEFOLD=>NULL()
00491 !$OMP THREADPRIVATE(XSEFOLD)
00492 REAL, POINTER, DIMENSION(:)      :: XH_TREE=>NULL()
00493 !$OMP THREADPRIVATE(XH_TREE)
00494 REAL, POINTER, DIMENSION(:)      :: XANF=>NULL()
00495 !$OMP THREADPRIVATE(XANF)
00496 REAL, POINTER, DIMENSION(:)      :: XANMAX=>NULL()
00497 !$OMP THREADPRIVATE(XANMAX)
00498 REAL, POINTER, DIMENSION(:)      :: XFZERO=>NULL()
00499 !$OMP THREADPRIVATE(XFZERO)
00500 REAL, POINTER, DIMENSION(:)      :: XEPSO=>NULL()
00501 !$OMP THREADPRIVATE(XEPSO)
00502 REAL, POINTER, DIMENSION(:)      :: XGAMM=>NULL()
00503 !$OMP THREADPRIVATE(XGAMM)
00504 REAL, POINTER, DIMENSION(:)      :: XQDGAMM=>NULL()
00505 !$OMP THREADPRIVATE(XQDGAMM)
00506 REAL, POINTER, DIMENSION(:)      :: XGMES=>NULL()
00507 !$OMP THREADPRIVATE(XGMES)
00508 REAL, POINTER, DIMENSION(:)      :: XRE25=>NULL()
00509 !$OMP THREADPRIVATE(XRE25)
00510 REAL, POINTER, DIMENSION(:)      :: XQDGMES=>NULL()
00511 !$OMP THREADPRIVATE(XQDGMES)
00512 REAL, POINTER, DIMENSION(:)      :: XT1GMES=>NULL()
00513 !$OMP THREADPRIVATE(XT1GMES)
00514 REAL, POINTER, DIMENSION(:)      :: XT2GMES=>NULL()
00515 !$OMP THREADPRIVATE(XT2GMES)
00516 REAL, POINTER, DIMENSION(:)      :: XAMAX=>NULL()
00517 !$OMP THREADPRIVATE(XAMAX)
00518 REAL, POINTER, DIMENSION(:)      :: XQDAMAX=>NULL()
00519 !$OMP THREADPRIVATE(XQDAMAX)
00520 REAL, POINTER, DIMENSION(:)      :: XT1AMAX=>NULL()
00521 !$OMP THREADPRIVATE(XT1AMAX)
00522 REAL, POINTER, DIMENSION(:)      :: XT2AMAX=>NULL()
00523 !$OMP THREADPRIVATE(XT2AMAX)
00524 LOGICAL, POINTER, DIMENSION(:)   :: LSTRESS=>NULL()
00525 !$OMP THREADPRIVATE(LSTRESS)
00526 REAL, POINTER, DIMENSION(:)      :: XF2I=>NULL()
00527 !$OMP THREADPRIVATE(XF2I)
00528 REAL, POINTER, DIMENSION(:)      :: XGC=>NULL()
00529 !$OMP THREADPRIVATE(XGC)
00530 REAL, POINTER, DIMENSION(:)      :: XAH=>NULL()
00531 !$OMP THREADPRIVATE(XAH)
00532 REAL, POINTER, DIMENSION(:)      :: XBH=>NULL()
00533 !$OMP THREADPRIVATE(XBH)
00534 REAL, POINTER, DIMENSION(:)      :: XDMAX=>NULL()
00535 !$OMP THREADPRIVATE(XDMAX)
00536 REAL, POINTER, DIMENSION(:)      :: XCE_NITRO=>NULL()
00537 !$OMP THREADPRIVATE(XCE_NITRO)
00538 REAL, POINTER, DIMENSION(:)      :: XCF_NITRO=>NULL()
00539 !$OMP THREADPRIVATE(XCF_NITRO)
00540 REAL, POINTER, DIMENSION(:)      :: XCNA_NITRO=>NULL()
00541 !$OMP THREADPRIVATE(XCNA_NITRO)
00542 REAL, POINTER, DIMENSION(:)      :: XBSLAI_NITRO=>NULL()
00543 !$OMP THREADPRIVATE(XBSLAI_NITRO)
00544 REAL, POINTER, DIMENSION(:,:)    :: XOM_GR=>NULL()
00545 !$OMP THREADPRIVATE(XOM_GR)
00546 REAL, POINTER, DIMENSION(:,:)    :: XSAND_GR=>NULL()
00547 !$OMP THREADPRIVATE(XSAND_GR)
00548 REAL, POINTER, DIMENSION(:,:)    :: XCLAY_GR=>NULL()
00549 !$OMP THREADPRIVATE(XCLAY_GR)
00550 REAL, POINTER, DIMENSION(:)      :: XRUNOFFB_GR=>NULL()
00551 !$OMP THREADPRIVATE(XRUNOFFB_GR)
00552 REAL, POINTER, DIMENSION(:)      :: XWDRAIN_GR=>NULL()
00553 !$OMP THREADPRIVATE(XWDRAIN_GR)
00554 REAL, POINTER, DIMENSION(:)      :: XTAUICE=>NULL()
00555 !$OMP THREADPRIVATE(XTAUICE)
00556 REAL, POINTER, DIMENSION(:)      :: XGAMMAT=>NULL()
00557 !$OMP THREADPRIVATE(XGAMMAT)
00558 REAL, POINTER, DIMENSION(:,:)    :: XDG=>NULL()
00559 !$OMP THREADPRIVATE(XDG)
00560 REAL, POINTER, DIMENSION(:)      :: XRUNOFFD=>NULL()
00561 !$OMP THREADPRIVATE(XRUNOFFD)
00562 REAL, POINTER, DIMENSION(:,:)  :: XSOILWGHT=>NULL()
00563 !$OMP THREADPRIVATE(XSOILWGHT)
00564 REAL, POINTER, DIMENSION(:,:)  :: XDZG=>NULL()
00565 !$OMP THREADPRIVATE(XDZG)
00566 REAL, POINTER, DIMENSION(:,:)  :: XDZDIF=>NULL()
00567 !$OMP THREADPRIVATE(XDZDIF)
00568 INTEGER, POINTER, DIMENSION(:) :: NWG_LAYER=>NULL()
00569 !$OMP THREADPRIVATE(NWG_LAYER)
00570 REAL, POINTER, DIMENSION(:)    :: XDROOT=>NULL()
00571 !$OMP THREADPRIVATE(XDROOT)
00572 REAL, POINTER, DIMENSION(:)    :: XDG2=>NULL()
00573 !$OMP THREADPRIVATE(XDG2)
00574 REAL, POINTER, DIMENSION(:)      :: XC1SAT=>NULL()
00575 !$OMP THREADPRIVATE(XC1SAT)
00576 REAL, POINTER, DIMENSION(:)      :: XC2REF=>NULL()
00577 !$OMP THREADPRIVATE(XC2REF)
00578 REAL, POINTER, DIMENSION(:,:)    :: XC3=>NULL()
00579 !$OMP THREADPRIVATE(XC3)
00580 REAL, POINTER, DIMENSION(:)      :: XC4B=>NULL()
00581 !$OMP THREADPRIVATE(XC4B)
00582 REAL, POINTER, DIMENSION(:)      :: XC4REF=>NULL()
00583 !$OMP THREADPRIVATE(XC4REF)
00584 REAL, POINTER, DIMENSION(:)      :: XACOEF=>NULL()
00585 !$OMP THREADPRIVATE(XACOEF)
00586 REAL, POINTER, DIMENSION(:)       :: XPCOEF=>NULL()
00587 !$OMP THREADPRIVATE(XPCOEF)
00588 REAL, POINTER, DIMENSION(:,:)     :: XWFC=>NULL()
00589 !$OMP THREADPRIVATE(XWFC)
00590 REAL, POINTER, DIMENSION(:,:)     :: XWWILT=>NULL()
00591 !$OMP THREADPRIVATE(XWWILT)
00592 REAL, POINTER, DIMENSION(:,:)     :: XWSAT=>NULL()
00593 !$OMP THREADPRIVATE(XWSAT)
00594 REAL, POINTER, DIMENSION(:,:)     :: XBCOEF=>NULL()
00595 !$OMP THREADPRIVATE(XBCOEF)
00596 REAL, POINTER, DIMENSION(:,:)     :: XCONDSAT=>NULL()
00597 !$OMP THREADPRIVATE(XCONDSAT)
00598 REAL, POINTER, DIMENSION(:,:)     :: XMPOTSAT=>NULL()
00599 !$OMP THREADPRIVATE(XMPOTSAT)
00600 REAL, POINTER, DIMENSION(:)       :: XCGSAT=>NULL()
00601 !$OMP THREADPRIVATE(XCGSAT)
00602 REAL, POINTER, DIMENSION(:,:)     :: XHCAPSOIL=>NULL()
00603 !$OMP THREADPRIVATE(XHCAPSOIL)
00604 REAL, POINTER, DIMENSION(:,:)     :: XCONDDRY=>NULL()
00605 !$OMP THREADPRIVATE(XCONDDRY)
00606 REAL, POINTER, DIMENSION(:,:)     :: XCONDSLD=>NULL()
00607 !$OMP THREADPRIVATE(XCONDSLD)
00608 REAL, POINTER, DIMENSION(:)       :: XTDEEP=>NULL()
00609 !$OMP THREADPRIVATE(XTDEEP)
00610 TYPE(SURF_SNOW), POINTER          :: TSNOW=>NULL()
00611 !$OMP THREADPRIVATE(TSNOW)
00612 REAL, POINTER, DIMENSION(:)       :: XWR=>NULL()
00613 !$OMP THREADPRIVATE(XWR)
00614 REAL, POINTER, DIMENSION(:,:)     :: XTG=>NULL()
00615 !$OMP THREADPRIVATE(XTG)
00616 REAL, POINTER, DIMENSION(:,:)     :: XWG=>NULL()
00617 !$OMP THREADPRIVATE(XWG)
00618 REAL, POINTER, DIMENSION(:,:)     :: XWGI=>NULL()
00619 !$OMP THREADPRIVATE(XWGI)
00620 REAL, POINTER, DIMENSION(:)       :: XRESA=>NULL()
00621 !$OMP THREADPRIVATE(XRESA)
00622 REAL, POINTER, DIMENSION(:)       :: XPCPS=>NULL()
00623 !$OMP THREADPRIVATE(XPCPS)
00624 REAL, POINTER, DIMENSION(:)       :: XPLVTT=>NULL()
00625 !$OMP THREADPRIVATE(XPLVTT)
00626 REAL, POINTER, DIMENSION(:)       :: XPLSTT=>NULL()
00627 !$OMP THREADPRIVATE(XPLSTT)
00628 REAL, POINTER, DIMENSION(:)       :: XLAI=>NULL()
00629 !$OMP THREADPRIVATE(XLAI)
00630 REAL, POINTER, DIMENSION(:)       :: XAN=>NULL()
00631 !$OMP THREADPRIVATE(XAN)
00632 REAL, POINTER, DIMENSION(:)       :: XANDAY=>NULL()
00633 !$OMP THREADPRIVATE(XANDAY)
00634 REAL, POINTER, DIMENSION(:)       :: XANFM=>NULL()
00635 !$OMP THREADPRIVATE(XANFM)
00636 REAL, POINTER, DIMENSION(:)       :: XLE=>NULL()
00637 !$OMP THREADPRIVATE(XLE)
00638 REAL, POINTER, DIMENSION(:)     :: XFAPARC=>NULL()
00639 !$OMP THREADPRIVATE(XFAPARC)
00640 REAL, POINTER, DIMENSION(:)     :: XFAPIRC=>NULL()
00641 !$OMP THREADPRIVATE(XFAPIRC)
00642 REAL, POINTER, DIMENSION(:)     :: XLAI_EFFC=>NULL()
00643 !$OMP THREADPRIVATE(XLAI_EFFC)
00644 REAL, POINTER, DIMENSION(:)     :: XMUS=>NULL()
00645 !$OMP THREADPRIVATE(XMUS)
00646 REAL, POINTER, DIMENSION(:,:)     :: XRESP_BIOMASS=>NULL()
00647 !$OMP THREADPRIVATE(XRESP_BIOMASS)
00648 REAL, POINTER, DIMENSION(:,:)     :: XBIOMASS=>NULL()
00649 !$OMP THREADPRIVATE(XBIOMASS)
00650 REAL, POINTER, DIMENSION(:)       :: XPSNG=>NULL()
00651 !$OMP THREADPRIVATE(XPSNG)
00652 REAL, POINTER, DIMENSION(:)       :: XPSNV=>NULL()
00653 !$OMP THREADPRIVATE(XPSNV)
00654 REAL, POINTER, DIMENSION(:)       :: XPSNV_A=>NULL()
00655 !$OMP THREADPRIVATE(XPSNV_A)
00656 REAL, POINTER, DIMENSION(:)       :: XPSN=>NULL()
00657 !$OMP THREADPRIVATE(XPSN)
00658 REAL, POINTER, DIMENSION(:)       :: XSNOWFREE_ALB=>NULL()
00659 !$OMP THREADPRIVATE(XSNOWFREE_ALB)
00660 REAL, POINTER, DIMENSION(:)       :: XSNOWFREE_ALB_VEG=>NULL()
00661 !$OMP THREADPRIVATE(XSNOWFREE_ALB_VEG)
00662 REAL, POINTER, DIMENSION(:)       :: XSNOWFREE_ALB_SOIL=>NULL()
00663 !$OMP THREADPRIVATE(XSNOWFREE_ALB_SOIL)
00664 !
00665 !SGH scheme
00666 !
00667  CHARACTER(LEN=3), POINTER         :: CTOPREG_GR=>NULL()
00668 !$OMP THREADPRIVATE(CTOPREG_GR)
00669  CHARACTER(LEN=3), POINTER         :: CKSAT_GR=>NULL()
00670 !$OMP THREADPRIVATE(CKSAT_GR)
00671  CHARACTER(LEN=3), POINTER         :: CHORT_GR=>NULL()
00672 !$OMP THREADPRIVATE(CHORT_GR)
00673  CHARACTER(LEN=3), POINTER         :: CSOC_GR=>NULL()
00674 !$OMP THREADPRIVATE(CSOC_GR)
00675 !
00676 REAL, POINTER, DIMENSION(:)       :: XD_ICE=>NULL()
00677 !$OMP THREADPRIVATE(XD_ICE)
00678 REAL, POINTER, DIMENSION(:)       :: XKSAT_ICE=>NULL()
00679 !$OMP THREADPRIVATE(XKSAT_ICE)
00680 !
00681 ! Type of green roof (characterization of green roof structure based on GR vegetation)
00682  CHARACTER(LEN=5), POINTER         :: CTYP_GR=>NULL()
00683 !$OMP THREADPRIVATE(CTYP_GR)
00684 !
00685 CONTAINS
00686 
00687 
00688 
00689 SUBROUTINE TEB_GREENROOF_OPTIONS_GOTO_MODEL(KFROM, KTO, LKFROM)
00690 LOGICAL, INTENT(IN) :: LKFROM
00691 INTEGER, INTENT(IN) :: KFROM, KTO
00692 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00693 !
00694 ! Save current state for allocated arrays
00695 IF (LKFROM) THEN
00696 ENDIF
00697 !
00698 ! Current model is set to model KTO
00699 IF (LHOOK) CALL DR_HOOK('MODD_TEB_GREENROOF_N:TEB_GREENROOF_OPTIONS_GOTO_MODEL',0,ZHOOK_HANDLE)
00700 LPAR_GREENROOF=>TEB_GREENROOF_OPTIONS_MODEL(KTO)%LPAR_GREENROOF
00701 IF (LKFROM) THEN
00702 TEB_GREENROOF_OPTIONS_MODEL(KTO)%XSOILGRID_GR=>XSOILGRID_GR
00703 ENDIF
00704 CISBA_GR=>TEB_GREENROOF_OPTIONS_MODEL(KTO)%CISBA_GR
00705 LTR_ML_GR=>TEB_GREENROOF_OPTIONS_MODEL(KTO)%LTR_ML_GR
00706 CRUNOFF_GR=>TEB_GREENROOF_OPTIONS_MODEL(KTO)%CRUNOFF_GR
00707 CSCOND_GR=>TEB_GREENROOF_OPTIONS_MODEL(KTO)%CSCOND_GR
00708 CTOPREG_GR=>TEB_GREENROOF_OPTIONS_MODEL(KTO)%CTOPREG_GR
00709 CKSAT_GR=>TEB_GREENROOF_OPTIONS_MODEL(KTO)%CKSAT_GR
00710 CHORT_GR=>TEB_GREENROOF_OPTIONS_MODEL(KTO)%CHORT_GR
00711 CTYP_GR=>TEB_GREENROOF_OPTIONS_MODEL(KTO)%CTYP_GR
00712 CSOC_GR=>TEB_GREENROOF_OPTIONS_MODEL(KTO)%CSOC_GR
00713 NLAYER_GR=>TEB_GREENROOF_OPTIONS_MODEL(KTO)%NLAYER_GR
00714 NLAYER_HORT_GR=>TEB_GREENROOF_OPTIONS_MODEL(KTO)%NLAYER_HORT_GR
00715 NLAYER_DUN_GR=>TEB_GREENROOF_OPTIONS_MODEL(KTO)%NLAYER_DUN_GR
00716 XSOILGRID_GR=>TEB_GREENROOF_OPTIONS_MODEL(KTO)%XSOILGRID_GR
00717 NTIME_GR=>TEB_GREENROOF_OPTIONS_MODEL(KTO)%NTIME_GR
00718 IF (LHOOK) CALL DR_HOOK('MODD_TEB_GREENROOF_N:TEB_GREENROOF_OPTIONS_GOTO_MODEL',1,ZHOOK_HANDLE)
00719 !
00720 END SUBROUTINE TEB_GREENROOF_OPTIONS_GOTO_MODEL
00721 
00722 SUBROUTINE TEB_GREENROOF_OPTIONS_ALLOC(KMODEL)
00723 INTEGER, INTENT(IN) :: KMODEL
00724 INTEGER :: J
00725 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00726 IF (LHOOK) CALL DR_HOOK("MODD_TEB_GREENROOF_N:TEB_GREENROOF_ALLOC",0,ZHOOK_HANDLE)
00727 ALLOCATE(TEB_GREENROOF_OPTIONS_MODEL(KMODEL))
00728 DO J=1,KMODEL
00729   NULLIFY(TEB_GREENROOF_OPTIONS_MODEL(J)%XSOILGRID_GR)
00730 ENDDO
00731 TEB_GREENROOF_OPTIONS_MODEL(:)%LPAR_GREENROOF=.TRUE.
00732 TEB_GREENROOF_OPTIONS_MODEL(:)%CISBA_GR=' '
00733 TEB_GREENROOF_OPTIONS_MODEL(:)%LTR_ML_GR=.FALSE.
00734 TEB_GREENROOF_OPTIONS_MODEL(:)%CSOC_GR=' '
00735 TEB_GREENROOF_OPTIONS_MODEL(:)%CRUNOFF_GR=' '
00736 TEB_GREENROOF_OPTIONS_MODEL(:)%CSCOND_GR=' '
00737 TEB_GREENROOF_OPTIONS_MODEL(:)%CTOPREG_GR=' '
00738 TEB_GREENROOF_OPTIONS_MODEL(:)%CKSAT_GR=' '
00739 TEB_GREENROOF_OPTIONS_MODEL(:)%CHORT_GR=' '
00740 TEB_GREENROOF_OPTIONS_MODEL(:)%CTYP_GR=' '
00741 TEB_GREENROOF_OPTIONS_MODEL(:)%NLAYER_GR=0
00742 TEB_GREENROOF_OPTIONS_MODEL(:)%NLAYER_HORT_GR=0
00743 TEB_GREENROOF_OPTIONS_MODEL(:)%NLAYER_DUN_GR=0
00744 TEB_GREENROOF_OPTIONS_MODEL(:)%NTIME_GR=0
00745 IF (LHOOK) CALL DR_HOOK("MODD_TEB_GREENROOF_N:TEB_GREENROOF_OPTIONS_ALLOC",1,ZHOOK_HANDLE)
00746 END SUBROUTINE TEB_GREENROOF_OPTIONS_ALLOC
00747 
00748 SUBROUTINE TEB_GREENROOF_OPTIONS_DEALLO
00749 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00750 IF (LHOOK) CALL DR_HOOK("MODD_TEB_GREENROOF_N:TEB_GREENROOF_OPTIONS_DEALLO",0,ZHOOK_HANDLE)
00751 IF (ALLOCATED(TEB_GREENROOF_OPTIONS_MODEL)) DEALLOCATE(TEB_GREENROOF_OPTIONS_MODEL)
00752 IF (LHOOK) CALL DR_HOOK("MODD_TEB_GREENROOF_N:TEB_GREENROOF_OPTIONS_DEALLO",1,ZHOOK_HANDLE)
00753 END SUBROUTINE TEB_GREENROOF_OPTIONS_DEALLO
00754 
00755 
00756 
00757 SUBROUTINE TEB_GREENROOF_PGD_GOTO_MODEL(KFROM, KTO, LKFROM)
00758 LOGICAL, INTENT(IN) :: LKFROM
00759 INTEGER, INTENT(IN) :: KFROM, KTO
00760 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00761 !
00762 ! Save current state for allocated arrays
00763 IF (LKFROM) THEN
00764 TEB_GREENROOF_PGD_MODEL(KFROM)%XVEGTYPE=>XVEGTYPE
00765 TEB_GREENROOF_PGD_MODEL(KFROM)%XALBNIR_DRY=>XALBNIR_DRY
00766 TEB_GREENROOF_PGD_MODEL(KFROM)%XALBVIS_DRY=>XALBVIS_DRY
00767 TEB_GREENROOF_PGD_MODEL(KFROM)%XALBUV_DRY=>XALBUV_DRY
00768 TEB_GREENROOF_PGD_MODEL(KFROM)%XALBNIR_WET=>XALBNIR_WET
00769 TEB_GREENROOF_PGD_MODEL(KFROM)%XALBVIS_WET=>XALBVIS_WET
00770 TEB_GREENROOF_PGD_MODEL(KFROM)%XALBUV_WET=>XALBUV_WET
00771 TEB_GREENROOF_PGD_MODEL(KFROM)%XALBNIR_SOIL=>XALBNIR_SOIL
00772 TEB_GREENROOF_PGD_MODEL(KFROM)%XALBVIS_SOIL=>XALBVIS_SOIL
00773 TEB_GREENROOF_PGD_MODEL(KFROM)%XALBUV_SOIL=>XALBUV_SOIL
00774 TEB_GREENROOF_PGD_MODEL(KFROM)%XALBNIR_TSOIL=>XALBNIR_TSOIL
00775 TEB_GREENROOF_PGD_MODEL(KFROM)%XALBVIS_TSOIL=>XALBVIS_TSOIL
00776 TEB_GREENROOF_PGD_MODEL(KFROM)%XZ0_O_Z0H=>XZ0_O_Z0H
00777 TEB_GREENROOF_PGD_MODEL(KFROM)%XALBNIR_VEG=>XALBNIR_VEG
00778 TEB_GREENROOF_PGD_MODEL(KFROM)%XALBVIS_VEG=>XALBVIS_VEG
00779 TEB_GREENROOF_PGD_MODEL(KFROM)%XALBUV_VEG=>XALBUV_VEG
00780 TEB_GREENROOF_PGD_MODEL(KFROM)%XALBNIR_TVEG=>XALBNIR_TVEG
00781 TEB_GREENROOF_PGD_MODEL(KFROM)%XALBVIS_TVEG=>XALBVIS_TVEG
00782 TEB_GREENROOF_PGD_MODEL(KFROM)%XWRMAX_CF=>XWRMAX_CF
00783 TEB_GREENROOF_PGD_MODEL(KFROM)%XRSMIN=>XRSMIN
00784 TEB_GREENROOF_PGD_MODEL(KFROM)%XGAMMA=>XGAMMA
00785 TEB_GREENROOF_PGD_MODEL(KFROM)%XCV=>XCV
00786 TEB_GREENROOF_PGD_MODEL(KFROM)%XRGL=>XRGL
00787 TEB_GREENROOF_PGD_MODEL(KFROM)%XROOTFRAC=>XROOTFRAC
00788 TEB_GREENROOF_PGD_MODEL(KFROM)%XABC=>XABC
00789 TEB_GREENROOF_PGD_MODEL(KFROM)%XPOI=>XPOI
00790 TEB_GREENROOF_PGD_MODEL(KFROM)%XBSLAI=>XBSLAI
00791 TEB_GREENROOF_PGD_MODEL(KFROM)%XLAIMIN=>XLAIMIN
00792 TEB_GREENROOF_PGD_MODEL(KFROM)%XSEFOLD=>XSEFOLD
00793 TEB_GREENROOF_PGD_MODEL(KFROM)%XH_TREE=>XH_TREE
00794 TEB_GREENROOF_PGD_MODEL(KFROM)%XANF=>XANF
00795 TEB_GREENROOF_PGD_MODEL(KFROM)%XANMAX=>XANMAX
00796 TEB_GREENROOF_PGD_MODEL(KFROM)%XFZERO=>XFZERO
00797 TEB_GREENROOF_PGD_MODEL(KFROM)%XEPSO=>XEPSO
00798 TEB_GREENROOF_PGD_MODEL(KFROM)%XGAMM=>XGAMM
00799 TEB_GREENROOF_PGD_MODEL(KFROM)%XQDGAMM=>XQDGAMM
00800 TEB_GREENROOF_PGD_MODEL(KFROM)%XGMES=>XGMES
00801 TEB_GREENROOF_PGD_MODEL(KFROM)%XRE25=>XRE25
00802 TEB_GREENROOF_PGD_MODEL(KFROM)%XQDGMES=>XQDGMES
00803 TEB_GREENROOF_PGD_MODEL(KFROM)%XT1GMES=>XT1GMES
00804 TEB_GREENROOF_PGD_MODEL(KFROM)%XT2GMES=>XT2GMES
00805 TEB_GREENROOF_PGD_MODEL(KFROM)%XAMAX=>XAMAX
00806 TEB_GREENROOF_PGD_MODEL(KFROM)%XQDAMAX=>XQDAMAX
00807 TEB_GREENROOF_PGD_MODEL(KFROM)%XT1AMAX=>XT1AMAX
00808 TEB_GREENROOF_PGD_MODEL(KFROM)%XT2AMAX=>XT2AMAX
00809 TEB_GREENROOF_PGD_MODEL(KFROM)%LSTRESS=>LSTRESS
00810 TEB_GREENROOF_PGD_MODEL(KFROM)%XF2I=>XF2I
00811 TEB_GREENROOF_PGD_MODEL(KFROM)%XGC=>XGC
00812 TEB_GREENROOF_PGD_MODEL(KFROM)%XAH=>XAH
00813 TEB_GREENROOF_PGD_MODEL(KFROM)%XBH=>XBH
00814 TEB_GREENROOF_PGD_MODEL(KFROM)%XDMAX=>XDMAX
00815 TEB_GREENROOF_PGD_MODEL(KFROM)%XCE_NITRO=>XCE_NITRO
00816 TEB_GREENROOF_PGD_MODEL(KFROM)%XCF_NITRO=>XCF_NITRO
00817 TEB_GREENROOF_PGD_MODEL(KFROM)%XCNA_NITRO=>XCNA_NITRO
00818 TEB_GREENROOF_PGD_MODEL(KFROM)%XBSLAI_NITRO=>XBSLAI_NITRO
00819 TEB_GREENROOF_PGD_MODEL(KFROM)%XOM_GR=>XOM_GR
00820 TEB_GREENROOF_PGD_MODEL(KFROM)%XSAND_GR=>XSAND_GR
00821 TEB_GREENROOF_PGD_MODEL(KFROM)%XCLAY_GR=>XCLAY_GR
00822 TEB_GREENROOF_PGD_MODEL(KFROM)%XRUNOFFB_GR=>XRUNOFFB_GR
00823 TEB_GREENROOF_PGD_MODEL(KFROM)%XWDRAIN_GR=>XWDRAIN_GR
00824 TEB_GREENROOF_PGD_MODEL(KFROM)%XTAUICE=>XTAUICE
00825 TEB_GREENROOF_PGD_MODEL(KFROM)%XGAMMAT=>XGAMMAT
00826 TEB_GREENROOF_PGD_MODEL(KFROM)%XDG=>XDG
00827 TEB_GREENROOF_PGD_MODEL(KFROM)%XRUNOFFD=>XRUNOFFD
00828 TEB_GREENROOF_PGD_MODEL(KFROM)%XSOILWGHT=>XSOILWGHT
00829 TEB_GREENROOF_PGD_MODEL(KFROM)%XDZG=>XDZG
00830 TEB_GREENROOF_PGD_MODEL(KFROM)%XDZDIF=>XDZDIF
00831 TEB_GREENROOF_PGD_MODEL(KFROM)%NWG_LAYER=>NWG_LAYER
00832 TEB_GREENROOF_PGD_MODEL(KFROM)%XDROOT=>XDROOT
00833 TEB_GREENROOF_PGD_MODEL(KFROM)%XDG2=>XDG2
00834 TEB_GREENROOF_PGD_MODEL(KFROM)%XPCPS=>XPCPS
00835 TEB_GREENROOF_PGD_MODEL(KFROM)%XPLVTT=>XPLVTT
00836 TEB_GREENROOF_PGD_MODEL(KFROM)%XPLSTT=>XPLSTT
00837 TEB_GREENROOF_PGD_MODEL(KFROM)%XC1SAT=>XC1SAT
00838 TEB_GREENROOF_PGD_MODEL(KFROM)%XC2REF=>XC2REF
00839 TEB_GREENROOF_PGD_MODEL(KFROM)%XC3=>XC3
00840 TEB_GREENROOF_PGD_MODEL(KFROM)%XC4B=>XC4B
00841 TEB_GREENROOF_PGD_MODEL(KFROM)%XC4REF=>XC4REF
00842 TEB_GREENROOF_PGD_MODEL(KFROM)%XACOEF=>XACOEF
00843 TEB_GREENROOF_PGD_MODEL(KFROM)%XPCOEF=>XPCOEF
00844 TEB_GREENROOF_PGD_MODEL(KFROM)%XWFC=>XWFC
00845 TEB_GREENROOF_PGD_MODEL(KFROM)%XWWILT=>XWWILT
00846 TEB_GREENROOF_PGD_MODEL(KFROM)%XWSAT=>XWSAT
00847 TEB_GREENROOF_PGD_MODEL(KFROM)%XBCOEF=>XBCOEF
00848 TEB_GREENROOF_PGD_MODEL(KFROM)%XCONDSAT=>XCONDSAT
00849 TEB_GREENROOF_PGD_MODEL(KFROM)%XMPOTSAT=>XMPOTSAT
00850 TEB_GREENROOF_PGD_MODEL(KFROM)%XCGSAT=>XCGSAT
00851 TEB_GREENROOF_PGD_MODEL(KFROM)%XHCAPSOIL=>XHCAPSOIL
00852 TEB_GREENROOF_PGD_MODEL(KFROM)%XCONDDRY=>XCONDDRY
00853 TEB_GREENROOF_PGD_MODEL(KFROM)%XCONDSLD=>XCONDSLD
00854 TEB_GREENROOF_PGD_MODEL(KFROM)%XTDEEP=>XTDEEP
00855 TEB_GREENROOF_PGD_MODEL(KFROM)%XD_ICE=>XD_ICE
00856 ENDIF
00857 !
00858 ! Current model is set to model KTO
00859 IF (LHOOK) CALL DR_HOOK('MODD_TEB_GREENROOF_N:TEB_GREENROOF_PGD_GOTO_MODEL',0,ZHOOK_HANDLE)
00860 XVEGTYPE=>TEB_GREENROOF_PGD_MODEL(KTO)%XVEGTYPE
00861 XALBNIR_DRY=>TEB_GREENROOF_PGD_MODEL(KTO)%XALBNIR_DRY
00862 XALBVIS_DRY=>TEB_GREENROOF_PGD_MODEL(KTO)%XALBVIS_DRY
00863 XALBUV_DRY=>TEB_GREENROOF_PGD_MODEL(KTO)%XALBUV_DRY
00864 XALBNIR_WET=>TEB_GREENROOF_PGD_MODEL(KTO)%XALBNIR_WET
00865 XALBVIS_WET=>TEB_GREENROOF_PGD_MODEL(KTO)%XALBVIS_WET
00866 XALBUV_WET=>TEB_GREENROOF_PGD_MODEL(KTO)%XALBUV_WET
00867 XALBNIR_SOIL=>TEB_GREENROOF_PGD_MODEL(KTO)%XALBNIR_SOIL
00868 XALBVIS_SOIL=>TEB_GREENROOF_PGD_MODEL(KTO)%XALBVIS_SOIL
00869 XALBUV_SOIL=>TEB_GREENROOF_PGD_MODEL(KTO)%XALBUV_SOIL
00870 XALBNIR_TSOIL=>TEB_GREENROOF_PGD_MODEL(KTO)%XALBNIR_TSOIL
00871 XALBVIS_TSOIL=>TEB_GREENROOF_PGD_MODEL(KTO)%XALBVIS_TSOIL
00872 XZ0_O_Z0H=>TEB_GREENROOF_PGD_MODEL(KTO)%XZ0_O_Z0H
00873 XALBNIR_VEG=>TEB_GREENROOF_PGD_MODEL(KTO)%XALBNIR_VEG
00874 XALBVIS_VEG=>TEB_GREENROOF_PGD_MODEL(KTO)%XALBVIS_VEG
00875 XALBUV_VEG=>TEB_GREENROOF_PGD_MODEL(KTO)%XALBUV_VEG
00876 XALBNIR_TVEG=>TEB_GREENROOF_PGD_MODEL(KTO)%XALBNIR_TVEG
00877 XALBVIS_TVEG=>TEB_GREENROOF_PGD_MODEL(KTO)%XALBVIS_TVEG
00878 XWRMAX_CF=>TEB_GREENROOF_PGD_MODEL(KTO)%XWRMAX_CF
00879 XRSMIN=>TEB_GREENROOF_PGD_MODEL(KTO)%XRSMIN
00880 XGAMMA=>TEB_GREENROOF_PGD_MODEL(KTO)%XGAMMA
00881 XCV=>TEB_GREENROOF_PGD_MODEL(KTO)%XCV
00882 XRGL=>TEB_GREENROOF_PGD_MODEL(KTO)%XRGL
00883 XROOTFRAC=>TEB_GREENROOF_PGD_MODEL(KTO)%XROOTFRAC
00884 XABC=>TEB_GREENROOF_PGD_MODEL(KTO)%XABC
00885 XPOI=>TEB_GREENROOF_PGD_MODEL(KTO)%XPOI
00886 XBSLAI=>TEB_GREENROOF_PGD_MODEL(KTO)%XBSLAI
00887 XLAIMIN=>TEB_GREENROOF_PGD_MODEL(KTO)%XLAIMIN
00888 XSEFOLD=>TEB_GREENROOF_PGD_MODEL(KTO)%XSEFOLD
00889 XH_TREE=>TEB_GREENROOF_PGD_MODEL(KTO)%XH_TREE
00890 XANF=>TEB_GREENROOF_PGD_MODEL(KTO)%XANF
00891 XANMAX=>TEB_GREENROOF_PGD_MODEL(KTO)%XANMAX
00892 XFZERO=>TEB_GREENROOF_PGD_MODEL(KTO)%XFZERO
00893 XEPSO=>TEB_GREENROOF_PGD_MODEL(KTO)%XEPSO
00894 XGAMM=>TEB_GREENROOF_PGD_MODEL(KTO)%XGAMM
00895 XQDGAMM=>TEB_GREENROOF_PGD_MODEL(KTO)%XQDGAMM
00896 XGMES=>TEB_GREENROOF_PGD_MODEL(KTO)%XGMES
00897 XRE25=>TEB_GREENROOF_PGD_MODEL(KTO)%XRE25
00898 XQDGMES=>TEB_GREENROOF_PGD_MODEL(KTO)%XQDGMES
00899 XT1GMES=>TEB_GREENROOF_PGD_MODEL(KTO)%XT1GMES
00900 XT2GMES=>TEB_GREENROOF_PGD_MODEL(KTO)%XT2GMES
00901 XAMAX=>TEB_GREENROOF_PGD_MODEL(KTO)%XAMAX
00902 XQDAMAX=>TEB_GREENROOF_PGD_MODEL(KTO)%XQDAMAX
00903 XT1AMAX=>TEB_GREENROOF_PGD_MODEL(KTO)%XT1AMAX
00904 XT2AMAX=>TEB_GREENROOF_PGD_MODEL(KTO)%XT2AMAX
00905 LSTRESS=>TEB_GREENROOF_PGD_MODEL(KTO)%LSTRESS
00906 XF2I=>TEB_GREENROOF_PGD_MODEL(KTO)%XF2I
00907 XGC=>TEB_GREENROOF_PGD_MODEL(KTO)%XGC
00908 XAH=>TEB_GREENROOF_PGD_MODEL(KTO)%XAH
00909 XBH=>TEB_GREENROOF_PGD_MODEL(KTO)%XBH
00910 XDMAX=>TEB_GREENROOF_PGD_MODEL(KTO)%XDMAX
00911 XCE_NITRO=>TEB_GREENROOF_PGD_MODEL(KTO)%XCE_NITRO
00912 XCF_NITRO=>TEB_GREENROOF_PGD_MODEL(KTO)%XCF_NITRO
00913 XCNA_NITRO=>TEB_GREENROOF_PGD_MODEL(KTO)%XCNA_NITRO
00914 XBSLAI_NITRO=>TEB_GREENROOF_PGD_MODEL(KTO)%XBSLAI_NITRO
00915 XOM_GR=>TEB_GREENROOF_PGD_MODEL(KTO)%XOM_GR
00916 XSAND_GR=>TEB_GREENROOF_PGD_MODEL(KTO)%XSAND_GR
00917 XCLAY_GR=>TEB_GREENROOF_PGD_MODEL(KTO)%XCLAY_GR
00918 XRUNOFFB_GR=>TEB_GREENROOF_PGD_MODEL(KTO)%XRUNOFFB_GR
00919 XWDRAIN_GR=>TEB_GREENROOF_PGD_MODEL(KTO)%XWDRAIN_GR
00920 XTAUICE=>TEB_GREENROOF_PGD_MODEL(KTO)%XTAUICE
00921 XGAMMAT=>TEB_GREENROOF_PGD_MODEL(KTO)%XGAMMAT
00922 XDG=>TEB_GREENROOF_PGD_MODEL(KTO)%XDG
00923 XRUNOFFD=>TEB_GREENROOF_PGD_MODEL(KTO)%XRUNOFFD
00924 XSOILWGHT=>TEB_GREENROOF_PGD_MODEL(KTO)%XSOILWGHT
00925 XDZG=>TEB_GREENROOF_PGD_MODEL(KTO)%XDZG
00926 XDZDIF=>TEB_GREENROOF_PGD_MODEL(KTO)%XDZDIF
00927 NWG_LAYER=>TEB_GREENROOF_PGD_MODEL(KTO)%NWG_LAYER
00928 XDROOT=>TEB_GREENROOF_PGD_MODEL(KTO)%XDROOT
00929 XDG2=>TEB_GREENROOF_PGD_MODEL(KTO)%XDG2
00930 XPCPS=>TEB_GREENROOF_PGD_MODEL(KTO)%XPCPS
00931 XPLVTT=>TEB_GREENROOF_PGD_MODEL(KTO)%XPLVTT
00932 XPLSTT=>TEB_GREENROOF_PGD_MODEL(KTO)%XPLSTT
00933 XC1SAT=>TEB_GREENROOF_PGD_MODEL(KTO)%XC1SAT
00934 XC2REF=>TEB_GREENROOF_PGD_MODEL(KTO)%XC2REF
00935 XC3=>TEB_GREENROOF_PGD_MODEL(KTO)%XC3
00936 XC4B=>TEB_GREENROOF_PGD_MODEL(KTO)%XC4B
00937 XC4REF=>TEB_GREENROOF_PGD_MODEL(KTO)%XC4REF
00938 XACOEF=>TEB_GREENROOF_PGD_MODEL(KTO)%XACOEF
00939 XPCOEF=>TEB_GREENROOF_PGD_MODEL(KTO)%XPCOEF
00940 XWFC=>TEB_GREENROOF_PGD_MODEL(KTO)%XWFC
00941 XWWILT=>TEB_GREENROOF_PGD_MODEL(KTO)%XWWILT
00942 XWSAT=>TEB_GREENROOF_PGD_MODEL(KTO)%XWSAT
00943 XBCOEF=>TEB_GREENROOF_PGD_MODEL(KTO)%XBCOEF
00944 XCONDSAT=>TEB_GREENROOF_PGD_MODEL(KTO)%XCONDSAT
00945 XMPOTSAT=>TEB_GREENROOF_PGD_MODEL(KTO)%XMPOTSAT
00946 XCGSAT=>TEB_GREENROOF_PGD_MODEL(KTO)%XCGSAT
00947 XHCAPSOIL=>TEB_GREENROOF_PGD_MODEL(KTO)%XHCAPSOIL
00948 XCONDDRY=>TEB_GREENROOF_PGD_MODEL(KTO)%XCONDDRY
00949 XCONDSLD=>TEB_GREENROOF_PGD_MODEL(KTO)%XCONDSLD
00950 XTDEEP=>TEB_GREENROOF_PGD_MODEL(KTO)%XTDEEP
00951 XD_ICE=>TEB_GREENROOF_PGD_MODEL(KTO)%XD_ICE
00952 IF (LHOOK) CALL DR_HOOK('MODD_TEB_GREENROOF_N:TEB_GREENROOF_PGD_GOTO_MODEL',1,ZHOOK_HANDLE)
00953 !
00954 END SUBROUTINE TEB_GREENROOF_PGD_GOTO_MODEL
00955 
00956 SUBROUTINE TEB_GREENROOF_PGD_ALLOC(KMODEL)
00957 INTEGER, INTENT(IN) :: KMODEL
00958 INTEGER :: J
00959 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00960 IF (LHOOK) CALL DR_HOOK("MODD_TEB_GREENROOF_N:TEB_GREENROOF_PGD_ALLOC",0,ZHOOK_HANDLE)
00961 ALLOCATE(TEB_GREENROOF_PGD_MODEL(KMODEL))
00962 DO J=1,KMODEL
00963 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XVEGTYPE)
00964 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XALBNIR_DRY)
00965 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XALBVIS_DRY)
00966 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XALBUV_DRY)
00967 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XALBNIR_WET)
00968 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XALBVIS_WET)
00969 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XALBUV_WET)
00970 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XALBNIR_SOIL)
00971 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XALBVIS_SOIL)
00972 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XALBUV_SOIL)
00973 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XALBNIR_TSOIL)
00974 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XALBVIS_TSOIL)
00975 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XZ0_O_Z0H)
00976 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XALBNIR_VEG)
00977 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XALBVIS_VEG)
00978 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XALBUV_VEG)
00979 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XALBNIR_TVEG)
00980 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XALBVIS_TVEG)
00981 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XWRMAX_CF)
00982 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XRSMIN)
00983 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XGAMMA)
00984 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XCV)
00985 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XRGL)
00986 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XROOTFRAC)
00987 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XABC)
00988 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XPOI)
00989 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XBSLAI)
00990 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XLAIMIN)
00991 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XSEFOLD)
00992 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XH_TREE)
00993 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XANF)
00994 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XANMAX)
00995 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XFZERO)
00996 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XEPSO)
00997 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XGAMM)
00998 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XQDGAMM)
00999 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XGMES)
01000 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XRE25)
01001 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XQDGMES)
01002 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XT1GMES)
01003 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XT2GMES)
01004 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XAMAX)
01005 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XQDAMAX)
01006 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XT1AMAX)
01007 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XT2AMAX)
01008 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%LSTRESS)
01009 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XF2I)
01010 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XGC)
01011 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XAH)
01012 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XBH)
01013 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XDMAX)
01014 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XCE_NITRO)
01015 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XCF_NITRO)
01016 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XCNA_NITRO)
01017 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XBSLAI_NITRO)
01018 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XOM_GR)
01019 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XSAND_GR)
01020 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XCLAY_GR)
01021 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XRUNOFFB_GR)
01022 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XWDRAIN_GR)
01023 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XTAUICE)
01024 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XGAMMAT)
01025 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XDG)
01026 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XRUNOFFD)
01027 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XSOILWGHT)
01028 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XDZG)
01029 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XDZDIF)
01030 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%NWG_LAYER)
01031 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XDROOT)
01032 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XDG2)
01033 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XPCPS)
01034 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XPLVTT)
01035 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XPLSTT)
01036 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XC1SAT)
01037 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XC2REF)
01038 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XC3)
01039 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XC4B)
01040 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XC4REF)
01041 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XACOEF)
01042 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XPCOEF)
01043 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XWFC)
01044 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XWWILT)
01045 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XWSAT)
01046 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XBCOEF)
01047 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XCONDSAT)
01048 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XMPOTSAT)
01049 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XCGSAT)
01050 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XHCAPSOIL)
01051 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XCONDDRY)
01052 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XCONDSLD)
01053 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XTDEEP)
01054 NULLIFY(TEB_GREENROOF_PGD_MODEL(J)%XD_ICE)
01055 ENDDO
01056 IF (LHOOK) CALL DR_HOOK("MODD_TEB_GREENROOF_N:TEB_GREENROOF_PGD_ALLOC",1,ZHOOK_HANDLE)
01057 END SUBROUTINE TEB_GREENROOF_PGD_ALLOC
01058 
01059 SUBROUTINE TEB_GREENROOF_PGD_DEALLO
01060 REAL(KIND=JPRB) :: ZHOOK_HANDLE
01061 IF (LHOOK) CALL DR_HOOK("MODD_TEB_GREENROOF_N:TEB_GREENROOF_PGD_DEALLO",0,ZHOOK_HANDLE)
01062 IF (ALLOCATED(TEB_GREENROOF_PGD_MODEL)) DEALLOCATE(TEB_GREENROOF_PGD_MODEL)
01063 IF (LHOOK) CALL DR_HOOK("MODD_TEB_GREENROOF_N:TEB_GREENROOF_PGD_DEALLO",1,ZHOOK_HANDLE)
01064 END SUBROUTINE TEB_GREENROOF_PGD_DEALLO
01065 
01066 
01067 
01068 
01069 SUBROUTINE TEB_GREENROOF_PGD_EVOL_GOTO_MODEL(KFROM, KTO, LKFROM, KFROM_PATCH, KTO_PATCH)
01070 LOGICAL, INTENT(IN) :: LKFROM
01071 INTEGER, INTENT(IN) :: KFROM, KTO
01072 INTEGER, INTENT(IN) :: KFROM_PATCH, KTO_PATCH
01073 REAL(KIND=JPRB) :: ZHOOK_HANDLE
01074 !
01075 ! Save current state for allocated arrays
01076 IF (LKFROM) THEN
01077 TEB_GREENROOF_PGD_EVOL_MODEL(KFROM,KFROM_PATCH)%XALBNIR=>XALBNIR
01078 TEB_GREENROOF_PGD_EVOL_MODEL(KFROM,KFROM_PATCH)%XALBVIS=>XALBVIS
01079 TEB_GREENROOF_PGD_EVOL_MODEL(KFROM,KFROM_PATCH)%XALBUV=>XALBUV
01080 TEB_GREENROOF_PGD_EVOL_MODEL(KFROM,KFROM_PATCH)%XEMIS=>XEMIS
01081 TEB_GREENROOF_PGD_EVOL_MODEL(KFROM,KFROM_PATCH)%XZ0=>XZ0
01082 TEB_GREENROOF_PGD_EVOL_MODEL(KFROM,KFROM_PATCH)%XVEG=>XVEG
01083 TEB_GREENROOF_PGD_EVOL_MODEL(KFROM,KFROM_PATCH)%XLAI=>XLAI
01084 ENDIF
01085 !
01086 ! Current model is set to model KTO
01087 IF (LHOOK) CALL DR_HOOK('MODD_TEB_GREENROOF_N:TEB_GREENROOF_PGD_EVOL_GOTO_MODEL',0,ZHOOK_HANDLE)
01088 XALBNIR=>TEB_GREENROOF_PGD_EVOL_MODEL(KTO,KTO_PATCH)%XALBNIR
01089 XALBVIS=>TEB_GREENROOF_PGD_EVOL_MODEL(KTO,KTO_PATCH)%XALBVIS
01090 XALBUV=>TEB_GREENROOF_PGD_EVOL_MODEL(KTO,KTO_PATCH)%XALBUV
01091 XEMIS=>TEB_GREENROOF_PGD_EVOL_MODEL(KTO,KTO_PATCH)%XEMIS
01092 XZ0=>TEB_GREENROOF_PGD_EVOL_MODEL(KTO,KTO_PATCH)%XZ0
01093 XVEG=>TEB_GREENROOF_PGD_EVOL_MODEL(KTO,KTO_PATCH)%XVEG
01094 XLAI=>TEB_GREENROOF_PGD_EVOL_MODEL(KTO,KTO_PATCH)%XLAI
01095 IF (LHOOK) CALL DR_HOOK('MODD_TEB_GREENROOF_N:TEB_GREENROOF_PGD_EVOL_GOTO_MODEL',1,ZHOOK_HANDLE)
01096 !
01097 END SUBROUTINE TEB_GREENROOF_PGD_EVOL_GOTO_MODEL
01098 
01099 SUBROUTINE TEB_GREENROOF_PGD_EVOL_ALLOC(KMODEL,KPATCH)
01100 INTEGER, INTENT(IN) :: KMODEL, KPATCH
01101 INTEGER :: J, JP
01102 REAL(KIND=JPRB) :: ZHOOK_HANDLE
01103 IF (LHOOK) CALL DR_HOOK("MODD_TEB_GREENROOF_N:TEB_GREENROOF_PGD_EVOL_ALLOC",0,ZHOOK_HANDLE)
01104 ALLOCATE(TEB_GREENROOF_PGD_EVOL_MODEL(KMODEL,KPATCH))
01105 DO J=1,KMODEL
01106  DO JP=1,KPATCH
01107 NULLIFY(TEB_GREENROOF_PGD_EVOL_MODEL(J,JP)%XALBNIR)
01108 NULLIFY(TEB_GREENROOF_PGD_EVOL_MODEL(J,JP)%XALBVIS)
01109 NULLIFY(TEB_GREENROOF_PGD_EVOL_MODEL(J,JP)%XALBUV)
01110 NULLIFY(TEB_GREENROOF_PGD_EVOL_MODEL(J,JP)%XEMIS)
01111 NULLIFY(TEB_GREENROOF_PGD_EVOL_MODEL(J,JP)%XZ0)
01112 NULLIFY(TEB_GREENROOF_PGD_EVOL_MODEL(J,JP)%XVEG)
01113 NULLIFY(TEB_GREENROOF_PGD_EVOL_MODEL(J,JP)%XLAI)
01114  ENDDO
01115 ENDDO
01116 IF (LHOOK) CALL DR_HOOK("MODD_TEB_GREENROOF_N:TEB_GREENROOF_PGD_EVOL_ALLOC",1,ZHOOK_HANDLE)
01117 END SUBROUTINE TEB_GREENROOF_PGD_EVOL_ALLOC
01118 
01119 SUBROUTINE TEB_GREENROOF_PGD_EVOL_DEALLO
01120 REAL(KIND=JPRB) :: ZHOOK_HANDLE
01121 IF (LHOOK) CALL DR_HOOK("MODD_TEB_GREENROOF_N:TEB_GREENROOF_PGD_EVOL_DEALLO",0,ZHOOK_HANDLE)
01122 IF (ALLOCATED(TEB_GREENROOF_PGD_EVOL_MODEL)) DEALLOCATE(TEB_GREENROOF_PGD_EVOL_MODEL)
01123 IF (LHOOK) CALL DR_HOOK("MODD_TEB_GREENROOF_N:TEB_GREENROOF_PGD_EVOL_DEALLO",1,ZHOOK_HANDLE)
01124 END SUBROUTINE TEB_GREENROOF_PGD_EVOL_DEALLO
01125 
01126 
01127 
01128 
01129 SUBROUTINE TEB_GREENROOF_GOTO_MODEL(KFROM, KTO, LKFROM, KFROM_PATCH, KTO_PATCH)
01130 LOGICAL, INTENT(IN) :: LKFROM
01131 INTEGER, INTENT(IN) :: KFROM, KTO
01132 INTEGER, INTENT(IN) :: KFROM_PATCH, KTO_PATCH
01133 REAL(KIND=JPRB) :: ZHOOK_HANDLE
01134 !
01135 ! Save current state for allocated arrays
01136 IF (LKFROM) THEN
01137 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XWR=>XWR
01138 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XTG=>XTG
01139 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XWG=>XWG
01140 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XWGI=>XWGI
01141 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XRESA=>XRESA
01142 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XAN=>XAN
01143 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XANDAY=>XANDAY
01144 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XANFM=>XANFM
01145 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XLE=>XLE
01146 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XFAPARC=>XFAPARC
01147 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XFAPIRC=>XFAPIRC
01148 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XLAI_EFFC=>XLAI_EFFC
01149 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XMUS=>XMUS
01150 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XRESP_BIOMASS=>XRESP_BIOMASS
01151 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XBIOMASS=>XBIOMASS
01152 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XPSNG=>XPSNG
01153 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XPSNV_A=>XPSNV_A
01154 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XPSNV=>XPSNV
01155 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XPSN=>XPSN
01156 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XSNOWFREE_ALB=>XSNOWFREE_ALB
01157 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XSNOWFREE_ALB_VEG=>XSNOWFREE_ALB_VEG
01158 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XSNOWFREE_ALB_SOIL=>XSNOWFREE_ALB_SOIL
01159 TEB_GREENROOF_MODEL(KFROM,KFROM_PATCH)%XKSAT_ICE=>XKSAT_ICE
01160 ENDIF
01161 !
01162 ! Current model is set to model KTO
01163 IF (LHOOK) CALL DR_HOOK('MODD_TEB_GREENROOF_N:TEB_GREENROOF_GOTO_MODEL',0,ZHOOK_HANDLE)
01164 TSNOW=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%TSNOW
01165 XWR=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XWR
01166 XTG=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XTG
01167 XWG=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XWG
01168 XWGI=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XWGI
01169 XRESA=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XRESA
01170 XAN=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XAN
01171 XANDAY=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XANDAY
01172 XANFM=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XANFM
01173 XLE=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XLE
01174 XFAPARC=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XFAPARC
01175 XFAPIRC=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XFAPIRC
01176 XLAI_EFFC=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XLAI_EFFC
01177 XMUS=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XMUS
01178 XRESP_BIOMASS=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XRESP_BIOMASS
01179 XBIOMASS=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XBIOMASS
01180 XPSNG=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XPSNG
01181 XPSNV_A=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XPSNV_A
01182 XPSNV=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XPSNV
01183 XPSN=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XPSN
01184 XSNOWFREE_ALB=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XSNOWFREE_ALB
01185 XSNOWFREE_ALB_VEG=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XSNOWFREE_ALB_VEG
01186 XSNOWFREE_ALB_SOIL=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XSNOWFREE_ALB_SOIL
01187 XKSAT_ICE=>TEB_GREENROOF_MODEL(KTO,KTO_PATCH)%XKSAT_ICE
01188 IF (LHOOK) CALL DR_HOOK('MODD_TEB_GREENROOF_N:TEB_GREENROOF_GOTO_MODEL',1,ZHOOK_HANDLE)
01189 !
01190 END SUBROUTINE TEB_GREENROOF_GOTO_MODEL
01191 
01192 SUBROUTINE TEB_GREENROOF_ALLOC(KMODEL,KPATCH)
01193 INTEGER, INTENT(IN) :: KMODEL, KPATCH
01194 INTEGER :: J, JP
01195 REAL(KIND=JPRB) :: ZHOOK_HANDLE
01196 IF (LHOOK) CALL DR_HOOK("MODD_TEB_GREENROOF_N:TEB_GREENROOF_ALLOC",0,ZHOOK_HANDLE)
01197 ALLOCATE(TEB_GREENROOF_MODEL(KMODEL,KPATCH))
01198 DO J=1,KMODEL
01199  DO JP=1,KPATCH
01200   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XWR)
01201   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XTG)
01202   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XWG)
01203   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XWGI)
01204   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XRESA)
01205   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XAN)
01206   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XANDAY)
01207   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XANFM)
01208   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XLE)
01209   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XFAPARC)
01210   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XFAPIRC)
01211   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XLAI_EFFC)  
01212   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XMUS)     
01213   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XRESP_BIOMASS)
01214   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XBIOMASS)
01215   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XKSAT_ICE)
01216   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XPSNG)
01217   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XPSNV)
01218   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XPSNV_A)
01219   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XPSN)
01220   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XSNOWFREE_ALB)
01221   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XSNOWFREE_ALB_VEG)
01222   NULLIFY(TEB_GREENROOF_MODEL(J,JP)%XSNOWFREE_ALB_SOIL)
01223  ENDDO
01224 ENDDO
01225 IF (LHOOK) CALL DR_HOOK("MODD_TEB_GREENROOF_N:TEB_GREENROOF_ALLOC",1,ZHOOK_HANDLE)
01226 END SUBROUTINE TEB_GREENROOF_ALLOC
01227 
01228 SUBROUTINE TEB_GREENROOF_DEALLO
01229 REAL(KIND=JPRB) :: ZHOOK_HANDLE
01230 IF (LHOOK) CALL DR_HOOK("MODD_TEB_GREENROOF_N:TEB_GREENROOF_DEALLO",0,ZHOOK_HANDLE)
01231 IF (ALLOCATED(TEB_GREENROOF_MODEL)) DEALLOCATE(TEB_GREENROOF_MODEL)
01232 IF (LHOOK) CALL DR_HOOK("MODD_TEB_GREENROOF_N:TEB_GREENROOF_DEALLO",1,ZHOOK_HANDLE)
01233 END SUBROUTINE TEB_GREENROOF_DEALLO
01234 
01235 END MODULE MODD_TEB_GREENROOF_n