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