SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/modd_data_isban.F90
Go to the documentation of this file.
00001 !     ##################
00002       MODULE MODD_DATA_ISBA_n
00003 !     ##################
00004 !
00005 !!****  *MODD_DATA_ISBA - declaration of DATA surface parameters for ISBA scheme
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !!
00011 !!**  IMPLICIT ARGUMENTS
00012 !!    ------------------
00013 !!      None 
00014 !!
00015 !!    REFERENCE
00016 !!    ---------
00017 !!
00018 !!    AUTHOR
00019 !!    ------
00020 !!      V. Masson  *Meteo France*
00021 !!
00022 !!    MODIFICATIONS
00023 !!    -------------
00024 !!      Original       05/2005
00025 !
00026 !*       0.   DECLARATIONS
00027 !             ------------
00028 !
00029 !
00030 !
00031 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00032 USE PARKIND1  ,ONLY : JPRB
00033 !
00034 IMPLICIT NONE
00035 
00036 TYPE DATA_ISBA_t
00037 !-------------------------------------------------------------------------------
00038 !
00039 ! Mask and number of grid elements containing patches/tiles:
00040 !
00041   REAL, POINTER, DIMENSION(:,:)  :: XPAR_VEGTYPE       ! fraction of each vegetation type for
00042 !                                                  ! each grid mesh                          (-)
00043 !
00044 !-------------------------------------------------------------------------------
00045 !
00046   INTEGER                       :: NTIME               ! number of time data
00047 !                                                      ! for VEG, LAI, EMIS, Z0
00048   LOGICAL                        :: LDATA_MIXPAR
00049 !
00050   LOGICAL                        :: LDATA_VEGTYPE
00051   LOGICAL                        :: LDATA_LAI
00052   LOGICAL                        :: LDATA_H_TREE
00053   LOGICAL                        :: LDATA_DG
00054   LOGICAL                        :: LDATA_DICE  
00055   LOGICAL                        :: LDATA_ROOTFRAC
00056   LOGICAL                        :: LDATA_GROUND_DEPTH
00057   LOGICAL                        :: LDATA_ROOT_DEPTH
00058   LOGICAL                        :: LDATA_ROOT_EXTINCTION
00059   LOGICAL                        :: LDATA_ROOT_LIN
00060   LOGICAL                        :: LDATA_VEG
00061   LOGICAL                        :: LDATA_Z0
00062   LOGICAL                        :: LDATA_EMIS
00063   LOGICAL                        :: LDATA_ALBNIR_VEG
00064   LOGICAL                        :: LDATA_ALBVIS_VEG
00065   LOGICAL                        :: LDATA_ALBUV_VEG
00066   LOGICAL                        :: LDATA_RSMIN
00067   LOGICAL                        :: LDATA_GAMMA
00068   LOGICAL                        :: LDATA_WRMAX_CF
00069   LOGICAL                        :: LDATA_CV
00070   LOGICAL                        :: LDATA_Z0_O_Z0H
00071   LOGICAL                        :: LDATA_RGL
00072   LOGICAL                        :: LDATA_BSLAI
00073   LOGICAL                        :: LDATA_LAIMIN
00074   LOGICAL                        :: LDATA_SEFOLD
00075   LOGICAL                        :: LDATA_GMES
00076   LOGICAL                        :: LDATA_RE25
00077   LOGICAL                        :: LDATA_STRESS
00078   LOGICAL                        :: LDATA_F2I
00079   LOGICAL                        :: LDATA_GC
00080   LOGICAL                        :: LDATA_DMAX
00081   LOGICAL                        :: LDATA_CE_NITRO
00082   LOGICAL                        :: LDATA_CF_NITRO
00083   LOGICAL                        :: LDATA_CNA_NITRO
00084   LOGICAL                        :: LDATA_ALBNIR_SOIL
00085   LOGICAL                        :: LDATA_ALBVIS_SOIL
00086   LOGICAL                        :: LDATA_ALBUV_SOIL
00087   LOGICAL                        :: LDATA_IRRIG
00088   LOGICAL                        :: LDATA_WATSUP
00089 !  
00090 ! Input Parameters, per patch:
00091 !
00092 ! - vegetation + bare soil:
00093 !
00094   REAL, POINTER, DIMENSION(:,:) :: XPAR_Z0_O_Z0H         ! ratio of surface roughness lengths
00095 !                                                      ! (momentum to heat)                      (-)
00096   REAL, POINTER, DIMENSION(:,:,:) :: XPAR_EMIS             ! surface emissivity                      (-)
00097   REAL, POINTER, DIMENSION(:,:,:) :: XPAR_Z0               ! surface roughness length                (m)
00098 !
00099 ! - vegetation:
00100 !
00101   REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBNIR_VEG       ! vegetation near-infra-red albedo        (-)
00102   REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBVIS_VEG       ! vegetation visible albedo               (-)
00103   REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBUV_VEG        ! vegetation UV albedo                    (-)
00104 !
00105 ! - vegetation: default option (Jarvis) and general parameters:
00106 !
00107   REAL, POINTER, DIMENSION(:,:,:) :: XPAR_VEG            ! vegetation cover fraction               (-)
00108   REAL, POINTER, DIMENSION(:,:) :: XPAR_WRMAX_CF         ! coefficient for maximum water 
00109 !                                                      ! interception 
00110 !                                                      ! storage capacity on the vegetation      (-)
00111   REAL, POINTER, DIMENSION(:,:) :: XPAR_RSMIN            ! minimum stomatal resistance             (s/m)
00112   REAL, POINTER, DIMENSION(:,:) :: XPAR_GAMMA            ! coefficient for the calculation
00113 !                                                      ! of the surface stomatal
00114 !                                                      ! resistance
00115   REAL, POINTER, DIMENSION(:,:) :: XPAR_CV               ! vegetation thermal inertia coefficient  (K m2/J)
00116   REAL, POINTER, DIMENSION(:,:) :: XPAR_RGL              ! maximum solar radiation
00117 !                                                      ! usable in photosynthesis                (W/m2)
00118   REAL, POINTER, DIMENSION(:,:,:) :: XPAR_ROOTFRAC       ! root fraction profile ('DIF' option)
00119 !
00120   REAL, POINTER, DIMENSION(:,:) :: XPAR_ROOT_DEPTH       ! root depth ('DIF' option)
00121   REAL, POINTER, DIMENSION(:,:) :: XPAR_ROOT_EXTINCTION  ! root extinction parameter ('DIF' option)
00122   REAL, POINTER, DIMENSION(:,:) :: XPAR_ROOT_LIN         ! root linear parameter ('DIF' option)
00123 !  
00124 !-------------------------------------------------------------------------------
00125 !
00126 ! - vegetation: Ags parameters ('AGS', 'LAI', 'AST', 'LST', 'NIT', 'NCB' options)
00127 !
00128   REAL, POINTER, DIMENSION(:,:)    :: XPAR_BSLAI        ! ratio d(biomass)/d(lai)                 (kg/m2)
00129   REAL, POINTER, DIMENSION(:,:)    :: XPAR_LAIMIN       ! minimum LAI (Leaf Area Index)           (m2/m2)
00130   REAL, POINTER, DIMENSION(:,:)    :: XPAR_SEFOLD       ! e-folding time for senescence           (s)
00131   REAL, POINTER, DIMENSION(:,:)    :: XPAR_H_TREE       ! height of trees                         (m)
00132   REAL, POINTER, DIMENSION(:,:)    :: XPAR_GMES         ! mesophyll conductance                   (m s-1)
00133   REAL, POINTER, DIMENSION(:,:)    :: XPAR_RE25         ! Ecosystem respiration parameter         (kg m2 s-1)
00134 !
00135 !-------------------------------------------------------------------------------
00136 !
00137 ! - vegetation: Ags Stress parameters ('AST', 'LST', 'NIT', 'NCB' options)
00138 !
00139   LOGICAL, POINTER, DIMENSION(:,:) :: LPAR_STRESS       ! vegetation response type to water
00140 !                                                     ! stress (true:defensive false:offensive) (-)
00141   REAL, POINTER, DIMENSION(:,:)    :: XPAR_F2I          ! critical normilized soil water 
00142 !                                                     ! content for stress parameterisation
00143   REAL, POINTER, DIMENSION(:,:)    :: XPAR_GC           ! cuticular conductance                   (m s-1)
00144   REAL, POINTER, DIMENSION(:,:)    :: XPAR_DMAX         ! maximum air saturation deficit
00145 !                                                     ! tolerate by vegetation                  (kg/kg)
00146 !
00147 !-------------------------------------------------------------------------------
00148 !
00149 ! - vegetation: Ags Nitrogen-model parameters ('NIT', 'NCB' option)
00150 !
00151   REAL, POINTER, DIMENSION(:,:)    :: XPAR_CE_NITRO       ! leaf aera ratio sensitivity to 
00152 !                                                       ! nitrogen concentration                (m2/kg)
00153   REAL, POINTER, DIMENSION(:,:)    :: XPAR_CF_NITRO       ! lethal minimum value of leaf area
00154 !                                                       ! ratio                                 (m2/kg)
00155   REAL, POINTER, DIMENSION(:,:)    :: XPAR_CNA_NITRO      ! nitrogen concentration of active 
00156 !                                                       ! biomass                               (kg/kg)
00157 !
00158 !-------------------------------------------------------------------------------
00159 !
00160 ! - soil: primary parameters
00161 !
00162   REAL, POINTER, DIMENSION(:,:,:)  :: XPAR_DG          ! soil layer depth                        (m)
00163 !                                                      ! NOTE: in Force-Restore mode, the 
00164 !                                                      ! uppermost layer thickness is superficial
00165 !                                                      ! and is only explicitly used for soil 
00166 !                                                      ! water phase changes                     (m)
00167 !
00168   REAL, POINTER,DIMENSION(:,:)     :: XPAR_GROUND_DEPTH ! ground depth (DIF option)
00169 !
00170   REAL, POINTER,DIMENSION(:,:)     :: XPAR_DICE        ! depth of the soil column for the calculation
00171 !                                                        of the frozen soil fraction (m) (Force restore)
00172 !
00173 ! - bare soil albedo
00174 !
00175   REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBNIR_SOIL      ! soil near-infra-red albedo        (-)
00176   REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBVIS_SOIL      ! soil visible albedo               (-)
00177   REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBUV_SOIL       ! soil UV albedo                    (-)
00178 !
00179 !-------------------------------------------------------------------------------
00180 !
00181 ! - Vegetation: Ags Prognostic (YPHOTO = ('LAI', 'LST', 'NIT', or 'NCB') or prescribed (YPHOTO='NON', 'AGS' or 'AST')
00182 !
00183   REAL, POINTER, DIMENSION(:,:,:)     :: XPAR_LAI          ! Leaf Area Index                         (m2/m2)
00184 !
00185   REAL, POINTER, DIMENSION(:,:,:)     :: XPAR_IRRIG
00186   REAL, POINTER, DIMENSION(:,:,:)     :: XPAR_WATSUP
00187 !
00188 !-------------------------------------------------------------------------------
00189 !
00190 
00191 END TYPE DATA_ISBA_t
00192 
00193 TYPE(DATA_ISBA_t), ALLOCATABLE, TARGET, SAVE :: DATA_ISBA_MODEL(:)
00194 
00195 INTEGER, POINTER :: NTIME=>NULL()
00196 !$OMP THREADPRIVATE(NTIME)
00197 LOGICAL, POINTER :: LDATA_MIXPAR=>NULL()
00198 !$OMP THREADPRIVATE(LDATA_MIXPAR)
00199 LOGICAL, POINTER :: LDATA_VEGTYPE=>NULL()
00200 !$OMP THREADPRIVATE(LDATA_VEGTYPE)
00201 LOGICAL, POINTER:: LDATA_LAI=>NULL()
00202 !$OMP THREADPRIVATE(LDATA_LAI)
00203 LOGICAL, POINTER:: LDATA_H_TREE=>NULL()
00204 !$OMP THREADPRIVATE(LDATA_H_TREE)
00205 LOGICAL, POINTER:: LDATA_DG=>NULL()
00206 !$OMP THREADPRIVATE(LDATA_DG)
00207 LOGICAL, POINTER:: LDATA_DICE=>NULL()
00208 !$OMP THREADPRIVATE(LDATA_DICE)
00209 LOGICAL, POINTER:: LDATA_GROUND_DEPTH=>NULL()
00210 !$OMP THREADPRIVATE(LDATA_GROUND_DEPTH)
00211 LOGICAL, POINTER:: LDATA_ROOT_DEPTH=>NULL()
00212 !$OMP THREADPRIVATE(LDATA_ROOT_DEPTH)
00213 LOGICAL, POINTER:: LDATA_ROOT_EXTINCTION=>NULL()
00214 !$OMP THREADPRIVATE(LDATA_ROOT_EXTINCTION)
00215 LOGICAL, POINTER:: LDATA_ROOT_LIN=>NULL()
00216 !$OMP THREADPRIVATE(LDATA_ROOT_LIN)
00217 LOGICAL, POINTER:: LDATA_ROOTFRAC=>NULL()
00218 !$OMP THREADPRIVATE(LDATA_ROOTFRAC)
00219 LOGICAL, POINTER:: LDATA_VEG=>NULL()
00220 !$OMP THREADPRIVATE(LDATA_VEG)
00221 LOGICAL, POINTER:: LDATA_Z0=>NULL()
00222 !$OMP THREADPRIVATE(LDATA_Z0)
00223 LOGICAL, POINTER:: LDATA_EMIS=>NULL()
00224 !$OMP THREADPRIVATE(LDATA_EMIS)
00225 LOGICAL, POINTER:: LDATA_ALBNIR_VEG=>NULL()
00226 !$OMP THREADPRIVATE(LDATA_ALBNIR_VEG)
00227 LOGICAL, POINTER:: LDATA_ALBVIS_VEG=>NULL()
00228 !$OMP THREADPRIVATE(LDATA_ALBVIS_VEG)
00229 LOGICAL, POINTER:: LDATA_ALBUV_VEG=>NULL()
00230 !$OMP THREADPRIVATE(LDATA_ALBUV_VEG)
00231 LOGICAL, POINTER:: LDATA_RSMIN=>NULL()
00232 !$OMP THREADPRIVATE(LDATA_RSMIN)
00233 LOGICAL, POINTER:: LDATA_GAMMA=>NULL()
00234 !$OMP THREADPRIVATE(LDATA_GAMMA)
00235 LOGICAL, POINTER:: LDATA_WRMAX_CF=>NULL()
00236 !$OMP THREADPRIVATE(LDATA_WRMAX_CF)
00237 LOGICAL, POINTER:: LDATA_CV=>NULL()
00238 !$OMP THREADPRIVATE(LDATA_CV)
00239 LOGICAL, POINTER:: LDATA_RGL=>NULL()
00240 !$OMP THREADPRIVATE(LDATA_RGL)
00241 LOGICAL, POINTER:: LDATA_Z0_O_Z0H=>NULL()
00242 !$OMP THREADPRIVATE(LDATA_Z0_O_Z0H)
00243 LOGICAL, POINTER:: LDATA_BSLAI=>NULL()
00244 !$OMP THREADPRIVATE(LDATA_BSLAI)
00245 LOGICAL, POINTER:: LDATA_LAIMIN=>NULL()
00246 !$OMP THREADPRIVATE(LDATA_LAIMIN)
00247 LOGICAL, POINTER:: LDATA_SEFOLD=>NULL()
00248 !$OMP THREADPRIVATE(LDATA_SEFOLD)
00249 LOGICAL, POINTER:: LDATA_GMES=>NULL()
00250 !$OMP THREADPRIVATE(LDATA_GMES)
00251 LOGICAL, POINTER:: LDATA_RE25=>NULL()
00252 !$OMP THREADPRIVATE(LDATA_RE25)
00253 LOGICAL, POINTER:: LDATA_STRESS=>NULL()
00254 !$OMP THREADPRIVATE(LDATA_STRESS)
00255 LOGICAL, POINTER:: LDATA_F2I=>NULL()
00256 !$OMP THREADPRIVATE(LDATA_F2I)
00257 LOGICAL, POINTER:: LDATA_GC=>NULL()
00258 !$OMP THREADPRIVATE(LDATA_GC)
00259 LOGICAL, POINTER:: LDATA_DMAX=>NULL()
00260 !$OMP THREADPRIVATE(LDATA_DMAX)
00261 LOGICAL, POINTER:: LDATA_CE_NITRO=>NULL()
00262 !$OMP THREADPRIVATE(LDATA_CE_NITRO)
00263 LOGICAL, POINTER:: LDATA_CF_NITRO=>NULL()
00264 !$OMP THREADPRIVATE(LDATA_CF_NITRO)
00265 LOGICAL, POINTER:: LDATA_CNA_NITRO=>NULL()
00266 !$OMP THREADPRIVATE(LDATA_CNA_NITRO)
00267 LOGICAL, POINTER:: LDATA_ALBNIR_SOIL=>NULL()
00268 !$OMP THREADPRIVATE(LDATA_ALBNIR_SOIL)
00269 LOGICAL, POINTER:: LDATA_ALBVIS_SOIL=>NULL()
00270 !$OMP THREADPRIVATE(LDATA_ALBVIS_SOIL)
00271 LOGICAL, POINTER:: LDATA_ALBUV_SOIL=>NULL()
00272 !$OMP THREADPRIVATE(LDATA_ALBUV_SOIL)
00273 LOGICAL, POINTER:: LDATA_IRRIG=>NULL()
00274 !$OMP THREADPRIVATE(LDATA_IRRIG)
00275 LOGICAL, POINTER:: LDATA_WATSUP=>NULL()
00276 !$OMP THREADPRIVATE(LDATA_WATSUP)
00277 REAL, POINTER, DIMENSION(:,:)    :: XPAR_VEGTYPE=>NULL()
00278 !$OMP THREADPRIVATE(XPAR_VEGTYPE)
00279 REAL, POINTER, DIMENSION(:,:) :: XPAR_Z0_O_Z0H=>NULL()
00280 !$OMP THREADPRIVATE(XPAR_Z0_O_Z0H)
00281 REAL, POINTER, DIMENSION(:,:,:) :: XPAR_EMIS=>NULL()
00282 !$OMP THREADPRIVATE(XPAR_EMIS)
00283 REAL, POINTER, DIMENSION(:,:,:) :: XPAR_Z0=>NULL()
00284 !$OMP THREADPRIVATE(XPAR_Z0)
00285 REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBNIR_VEG=>NULL()
00286 !$OMP THREADPRIVATE(XPAR_ALBNIR_VEG)
00287 REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBVIS_VEG=>NULL()
00288 !$OMP THREADPRIVATE(XPAR_ALBVIS_VEG)
00289 REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBUV_VEG=>NULL()
00290 !$OMP THREADPRIVATE(XPAR_ALBUV_VEG)
00291 REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBNIR_SOIL=>NULL()
00292 !$OMP THREADPRIVATE(XPAR_ALBNIR_SOIL)
00293 REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBVIS_SOIL=>NULL()
00294 !$OMP THREADPRIVATE(XPAR_ALBVIS_SOIL)
00295 REAL, POINTER, DIMENSION(:,:) :: XPAR_ALBUV_SOIL=>NULL()
00296 !$OMP THREADPRIVATE(XPAR_ALBUV_SOIL)
00297 REAL, POINTER, DIMENSION(:,:,:) :: XPAR_VEG=>NULL()
00298 !$OMP THREADPRIVATE(XPAR_VEG)
00299 REAL, POINTER, DIMENSION(:,:) :: XPAR_WRMAX_CF=>NULL()
00300 !$OMP THREADPRIVATE(XPAR_WRMAX_CF)
00301 REAL, POINTER, DIMENSION(:,:) :: XPAR_RSMIN=>NULL()
00302 !$OMP THREADPRIVATE(XPAR_RSMIN)
00303 REAL, POINTER, DIMENSION(:,:) :: XPAR_GAMMA=>NULL()
00304 !$OMP THREADPRIVATE(XPAR_GAMMA)
00305 REAL, POINTER, DIMENSION(:,:) :: XPAR_CV=>NULL()
00306 !$OMP THREADPRIVATE(XPAR_CV)
00307 REAL, POINTER, DIMENSION(:,:) :: XPAR_RGL=>NULL()
00308 !$OMP THREADPRIVATE(XPAR_RGL)
00309 REAL, POINTER, DIMENSION(:,:,:) :: XPAR_ROOTFRAC=>NULL()
00310 !$OMP THREADPRIVATE(XPAR_ROOTFRAC)
00311 REAL, POINTER, DIMENSION(:,:)    :: XPAR_BSLAI=>NULL()
00312 !$OMP THREADPRIVATE(XPAR_BSLAI)
00313 REAL, POINTER, DIMENSION(:,:)    :: XPAR_LAIMIN=>NULL()
00314 !$OMP THREADPRIVATE(XPAR_LAIMIN)
00315 REAL, POINTER, DIMENSION(:,:)    :: XPAR_SEFOLD=>NULL()
00316 !$OMP THREADPRIVATE(XPAR_SEFOLD)
00317 REAL, POINTER, DIMENSION(:,:)    :: XPAR_H_TREE=>NULL()
00318 !$OMP THREADPRIVATE(XPAR_H_TREE)
00319 REAL, POINTER, DIMENSION(:,:)    :: XPAR_GMES=>NULL()
00320 !$OMP THREADPRIVATE(XPAR_GMES)
00321 REAL, POINTER, DIMENSION(:,:)    :: XPAR_RE25=>NULL()
00322 !$OMP THREADPRIVATE(XPAR_RE25)
00323 LOGICAL, POINTER, DIMENSION(:,:) :: LPAR_STRESS=>NULL()
00324 !$OMP THREADPRIVATE(LPAR_STRESS)
00325 REAL, POINTER, DIMENSION(:,:)    :: XPAR_F2I=>NULL()
00326 !$OMP THREADPRIVATE(XPAR_F2I)
00327 REAL, POINTER, DIMENSION(:,:)    :: XPAR_GC=>NULL()
00328 !$OMP THREADPRIVATE(XPAR_GC)
00329 REAL, POINTER, DIMENSION(:,:)    :: XPAR_DMAX=>NULL()
00330 !$OMP THREADPRIVATE(XPAR_DMAX)
00331 REAL, POINTER, DIMENSION(:,:)    :: XPAR_CE_NITRO=>NULL()
00332 !$OMP THREADPRIVATE(XPAR_CE_NITRO)
00333 REAL, POINTER, DIMENSION(:,:)    :: XPAR_CF_NITRO=>NULL()
00334 !$OMP THREADPRIVATE(XPAR_CF_NITRO)
00335 REAL, POINTER, DIMENSION(:,:)    :: XPAR_CNA_NITRO=>NULL()
00336 !$OMP THREADPRIVATE(XPAR_CNA_NITRO)
00337 REAL, POINTER, DIMENSION(:,:,:)  :: XPAR_DG=>NULL()
00338 !$OMP THREADPRIVATE(XPAR_DG)
00339 REAL, POINTER, DIMENSION(:,:)    :: XPAR_DICE=>NULL()
00340 !$OMP THREADPRIVATE(XPAR_DICE)
00341 REAL, POINTER, DIMENSION(:,:)    :: XPAR_GROUND_DEPTH=>NULL()
00342 !$OMP THREADPRIVATE(XPAR_GROUND_DEPTH)
00343 REAL, POINTER, DIMENSION(:,:)    :: XPAR_ROOT_DEPTH=>NULL()
00344 !$OMP THREADPRIVATE(XPAR_ROOT_DEPTH)
00345 REAL, POINTER, DIMENSION(:,:)    :: XPAR_ROOT_EXTINCTION=>NULL()
00346 !$OMP THREADPRIVATE(XPAR_ROOT_EXTINCTION)
00347 REAL, POINTER, DIMENSION(:,:)    :: XPAR_ROOT_LIN=>NULL()
00348 !$OMP THREADPRIVATE(XPAR_ROOT_LIN)
00349 REAL, POINTER, DIMENSION(:,:,:)     :: XPAR_LAI=>NULL()
00350 !$OMP THREADPRIVATE(XPAR_LAI)
00351 REAL, POINTER, DIMENSION(:,:,:)     :: XPAR_IRRIG=>NULL()
00352 !$OMP THREADPRIVATE(XPAR_IRRIG)
00353 REAL, POINTER, DIMENSION(:,:,:)     :: XPAR_WATSUP=>NULL()
00354 !$OMP THREADPRIVATE(XPAR_WATSUP)
00355 
00356 CONTAINS
00357 
00358 SUBROUTINE DATA_ISBA_GOTO_MODEL(KFROM, KTO, LKFROM)
00359 LOGICAL, INTENT(IN) :: LKFROM
00360 INTEGER, INTENT(IN) :: KFROM, KTO
00361 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00362 !
00363 ! Save current state for allocated arrays
00364 IF (LKFROM) THEN
00365 DATA_ISBA_MODEL(KFROM)%XPAR_VEGTYPE=>XPAR_VEGTYPE
00366 DATA_ISBA_MODEL(KFROM)%XPAR_Z0_O_Z0H=>XPAR_Z0_O_Z0H
00367 DATA_ISBA_MODEL(KFROM)%XPAR_EMIS=>XPAR_EMIS
00368 DATA_ISBA_MODEL(KFROM)%XPAR_Z0=>XPAR_Z0
00369 DATA_ISBA_MODEL(KFROM)%XPAR_ALBNIR_VEG=>XPAR_ALBNIR_VEG
00370 DATA_ISBA_MODEL(KFROM)%XPAR_ALBVIS_VEG=>XPAR_ALBVIS_VEG
00371 DATA_ISBA_MODEL(KFROM)%XPAR_ALBUV_VEG=>XPAR_ALBUV_VEG
00372 DATA_ISBA_MODEL(KFROM)%XPAR_ALBNIR_SOIL=>XPAR_ALBNIR_SOIL
00373 DATA_ISBA_MODEL(KFROM)%XPAR_ALBVIS_SOIL=>XPAR_ALBVIS_SOIL
00374 DATA_ISBA_MODEL(KFROM)%XPAR_ALBUV_SOIL=>XPAR_ALBUV_SOIL
00375 DATA_ISBA_MODEL(KFROM)%XPAR_VEG=>XPAR_VEG
00376 DATA_ISBA_MODEL(KFROM)%XPAR_WRMAX_CF=>XPAR_WRMAX_CF
00377 DATA_ISBA_MODEL(KFROM)%XPAR_RSMIN=>XPAR_RSMIN
00378 DATA_ISBA_MODEL(KFROM)%XPAR_GAMMA=>XPAR_GAMMA
00379 DATA_ISBA_MODEL(KFROM)%XPAR_CV=>XPAR_CV
00380 DATA_ISBA_MODEL(KFROM)%XPAR_RGL=>XPAR_RGL
00381 DATA_ISBA_MODEL(KFROM)%XPAR_Z0_O_Z0H=>XPAR_Z0_O_Z0H
00382 DATA_ISBA_MODEL(KFROM)%XPAR_ROOTFRAC=>XPAR_ROOTFRAC
00383 DATA_ISBA_MODEL(KFROM)%XPAR_BSLAI=>XPAR_BSLAI
00384 DATA_ISBA_MODEL(KFROM)%XPAR_LAIMIN=>XPAR_LAIMIN
00385 DATA_ISBA_MODEL(KFROM)%XPAR_SEFOLD=>XPAR_SEFOLD
00386 DATA_ISBA_MODEL(KFROM)%XPAR_H_TREE=>XPAR_H_TREE
00387 DATA_ISBA_MODEL(KFROM)%XPAR_GMES=>XPAR_GMES
00388 DATA_ISBA_MODEL(KFROM)%XPAR_RE25=>XPAR_RE25
00389 DATA_ISBA_MODEL(KFROM)%LPAR_STRESS=>LPAR_STRESS
00390 DATA_ISBA_MODEL(KFROM)%XPAR_F2I=>XPAR_F2I
00391 DATA_ISBA_MODEL(KFROM)%XPAR_GC=>XPAR_GC
00392 DATA_ISBA_MODEL(KFROM)%XPAR_DMAX=>XPAR_DMAX
00393 DATA_ISBA_MODEL(KFROM)%XPAR_CE_NITRO=>XPAR_CE_NITRO
00394 DATA_ISBA_MODEL(KFROM)%XPAR_CF_NITRO=>XPAR_CF_NITRO
00395 DATA_ISBA_MODEL(KFROM)%XPAR_CNA_NITRO=>XPAR_CNA_NITRO
00396 DATA_ISBA_MODEL(KFROM)%XPAR_DG=>XPAR_DG
00397 DATA_ISBA_MODEL(KFROM)%XPAR_DICE=>XPAR_DICE
00398 DATA_ISBA_MODEL(KFROM)%XPAR_GROUND_DEPTH=>XPAR_GROUND_DEPTH
00399 DATA_ISBA_MODEL(KFROM)%XPAR_ROOT_DEPTH=>XPAR_ROOT_DEPTH
00400 DATA_ISBA_MODEL(KFROM)%XPAR_ROOT_EXTINCTION=>XPAR_ROOT_EXTINCTION
00401 DATA_ISBA_MODEL(KFROM)%XPAR_ROOT_LIN=>XPAR_ROOT_LIN
00402 DATA_ISBA_MODEL(KFROM)%XPAR_LAI=>XPAR_LAI
00403 DATA_ISBA_MODEL(KFROM)%XPAR_IRRIG=>XPAR_IRRIG
00404 DATA_ISBA_MODEL(KFROM)%XPAR_WATSUP=>XPAR_WATSUP
00405 ENDIF
00406 !
00407 ! Current model is set to model KTO
00408 IF (LHOOK) CALL DR_HOOK('MODD_DATA_ISBA_N:DATA_ISBA_GOTO_MODEL',0,ZHOOK_HANDLE)
00409 NTIME=>DATA_ISBA_MODEL(KTO)%NTIME
00410 LDATA_MIXPAR=>DATA_ISBA_MODEL(KTO)%LDATA_MIXPAR
00411 LDATA_VEGTYPE=>DATA_ISBA_MODEL(KTO)%LDATA_VEGTYPE
00412 LDATA_LAI=>DATA_ISBA_MODEL(KTO)%LDATA_LAI
00413 LDATA_H_TREE=>DATA_ISBA_MODEL(KTO)%LDATA_H_TREE
00414 LDATA_DG=>DATA_ISBA_MODEL(KTO)%LDATA_DG
00415 LDATA_DICE=>DATA_ISBA_MODEL(KTO)%LDATA_DICE
00416 LDATA_GROUND_DEPTH=>DATA_ISBA_MODEL(KTO)%LDATA_GROUND_DEPTH
00417 LDATA_ROOT_DEPTH=>DATA_ISBA_MODEL(KTO)%LDATA_ROOT_DEPTH
00418 LDATA_ROOT_EXTINCTION=>DATA_ISBA_MODEL(KTO)%LDATA_ROOT_EXTINCTION
00419 LDATA_ROOT_LIN=>DATA_ISBA_MODEL(KTO)%LDATA_ROOT_LIN
00420 LDATA_ROOTFRAC=>DATA_ISBA_MODEL(KTO)%LDATA_ROOTFRAC
00421 LDATA_VEG=>DATA_ISBA_MODEL(KTO)%LDATA_VEG
00422 LDATA_Z0=>DATA_ISBA_MODEL(KTO)%LDATA_Z0
00423 LDATA_EMIS=>DATA_ISBA_MODEL(KTO)%LDATA_EMIS
00424 LDATA_ALBNIR_VEG=>DATA_ISBA_MODEL(KTO)%LDATA_ALBNIR_VEG
00425 LDATA_ALBVIS_VEG=>DATA_ISBA_MODEL(KTO)%LDATA_ALBVIS_VEG
00426 LDATA_ALBUV_VEG=>DATA_ISBA_MODEL(KTO)%LDATA_ALBUV_VEG
00427 LDATA_RSMIN=>DATA_ISBA_MODEL(KTO)%LDATA_RSMIN
00428 LDATA_GAMMA=>DATA_ISBA_MODEL(KTO)%LDATA_GAMMA
00429 LDATA_WRMAX_CF=>DATA_ISBA_MODEL(KTO)%LDATA_WRMAX_CF
00430 LDATA_CV=>DATA_ISBA_MODEL(KTO)%LDATA_CV
00431 LDATA_RGL=>DATA_ISBA_MODEL(KTO)%LDATA_RGL
00432 LDATA_Z0_O_Z0H=>DATA_ISBA_MODEL(KTO)%LDATA_Z0_O_Z0H
00433 LDATA_BSLAI=>DATA_ISBA_MODEL(KTO)%LDATA_BSLAI
00434 LDATA_LAIMIN=>DATA_ISBA_MODEL(KTO)%LDATA_LAIMIN
00435 LDATA_SEFOLD=>DATA_ISBA_MODEL(KTO)%LDATA_SEFOLD
00436 LDATA_GMES=>DATA_ISBA_MODEL(KTO)%LDATA_GMES
00437 LDATA_RE25=>DATA_ISBA_MODEL(KTO)%LDATA_RE25
00438 LDATA_STRESS=>DATA_ISBA_MODEL(KTO)%LDATA_STRESS
00439 LDATA_F2I=>DATA_ISBA_MODEL(KTO)%LDATA_F2I
00440 LDATA_GC=>DATA_ISBA_MODEL(KTO)%LDATA_GC
00441 LDATA_DMAX=>DATA_ISBA_MODEL(KTO)%LDATA_DMAX
00442 LDATA_CE_NITRO=>DATA_ISBA_MODEL(KTO)%LDATA_CE_NITRO
00443 LDATA_CF_NITRO=>DATA_ISBA_MODEL(KTO)%LDATA_CF_NITRO
00444 LDATA_CNA_NITRO=>DATA_ISBA_MODEL(KTO)%LDATA_CNA_NITRO
00445 LDATA_ALBNIR_SOIL=>DATA_ISBA_MODEL(KTO)%LDATA_ALBNIR_SOIL
00446 LDATA_ALBVIS_SOIL=>DATA_ISBA_MODEL(KTO)%LDATA_ALBVIS_SOIL
00447 LDATA_ALBUV_SOIL=>DATA_ISBA_MODEL(KTO)%LDATA_ALBUV_SOIL
00448 LDATA_IRRIG=>DATA_ISBA_MODEL(KTO)%LDATA_IRRIG
00449 LDATA_WATSUP=>DATA_ISBA_MODEL(KTO)%LDATA_WATSUP
00450 XPAR_VEGTYPE=>DATA_ISBA_MODEL(KTO)%XPAR_VEGTYPE
00451 XPAR_Z0_O_Z0H=>DATA_ISBA_MODEL(KTO)%XPAR_Z0_O_Z0H
00452 XPAR_EMIS=>DATA_ISBA_MODEL(KTO)%XPAR_EMIS
00453 XPAR_Z0=>DATA_ISBA_MODEL(KTO)%XPAR_Z0
00454 XPAR_ALBNIR_VEG=>DATA_ISBA_MODEL(KTO)%XPAR_ALBNIR_VEG
00455 XPAR_ALBVIS_VEG=>DATA_ISBA_MODEL(KTO)%XPAR_ALBVIS_VEG
00456 XPAR_ALBUV_VEG=>DATA_ISBA_MODEL(KTO)%XPAR_ALBUV_VEG
00457 XPAR_ALBNIR_SOIL=>DATA_ISBA_MODEL(KTO)%XPAR_ALBNIR_SOIL
00458 XPAR_ALBVIS_SOIL=>DATA_ISBA_MODEL(KTO)%XPAR_ALBVIS_SOIL
00459 XPAR_ALBUV_SOIL=>DATA_ISBA_MODEL(KTO)%XPAR_ALBUV_SOIL
00460 XPAR_VEG=>DATA_ISBA_MODEL(KTO)%XPAR_VEG
00461 XPAR_WRMAX_CF=>DATA_ISBA_MODEL(KTO)%XPAR_WRMAX_CF
00462 XPAR_RSMIN=>DATA_ISBA_MODEL(KTO)%XPAR_RSMIN
00463 XPAR_GAMMA=>DATA_ISBA_MODEL(KTO)%XPAR_GAMMA
00464 XPAR_CV=>DATA_ISBA_MODEL(KTO)%XPAR_CV
00465 XPAR_RGL=>DATA_ISBA_MODEL(KTO)%XPAR_RGL
00466 XPAR_ROOTFRAC=>DATA_ISBA_MODEL(KTO)%XPAR_ROOTFRAC
00467 XPAR_BSLAI=>DATA_ISBA_MODEL(KTO)%XPAR_BSLAI
00468 XPAR_LAIMIN=>DATA_ISBA_MODEL(KTO)%XPAR_LAIMIN
00469 XPAR_SEFOLD=>DATA_ISBA_MODEL(KTO)%XPAR_SEFOLD
00470 XPAR_H_TREE=>DATA_ISBA_MODEL(KTO)%XPAR_H_TREE
00471 XPAR_GMES=>DATA_ISBA_MODEL(KTO)%XPAR_GMES
00472 XPAR_RE25=>DATA_ISBA_MODEL(KTO)%XPAR_RE25
00473 LPAR_STRESS=>DATA_ISBA_MODEL(KTO)%LPAR_STRESS
00474 XPAR_F2I=>DATA_ISBA_MODEL(KTO)%XPAR_F2I
00475 XPAR_GC=>DATA_ISBA_MODEL(KTO)%XPAR_GC
00476 XPAR_DMAX=>DATA_ISBA_MODEL(KTO)%XPAR_DMAX
00477 XPAR_CE_NITRO=>DATA_ISBA_MODEL(KTO)%XPAR_CE_NITRO
00478 XPAR_CF_NITRO=>DATA_ISBA_MODEL(KTO)%XPAR_CF_NITRO
00479 XPAR_CNA_NITRO=>DATA_ISBA_MODEL(KTO)%XPAR_CNA_NITRO
00480 XPAR_DG=>DATA_ISBA_MODEL(KTO)%XPAR_DG
00481 XPAR_DICE=>DATA_ISBA_MODEL(KTO)%XPAR_DICE
00482 XPAR_GROUND_DEPTH=>DATA_ISBA_MODEL(KTO)%XPAR_GROUND_DEPTH
00483 XPAR_ROOT_DEPTH=>DATA_ISBA_MODEL(KTO)%XPAR_ROOT_DEPTH
00484 XPAR_ROOT_EXTINCTION=>DATA_ISBA_MODEL(KTO)%XPAR_ROOT_EXTINCTION
00485 XPAR_ROOT_LIN=>DATA_ISBA_MODEL(KTO)%XPAR_ROOT_LIN
00486 XPAR_LAI=>DATA_ISBA_MODEL(KTO)%XPAR_LAI
00487 XPAR_IRRIG=>DATA_ISBA_MODEL(KTO)%XPAR_IRRIG
00488 XPAR_WATSUP=>DATA_ISBA_MODEL(KTO)%XPAR_WATSUP
00489 IF (LHOOK) CALL DR_HOOK('MODD_DATA_ISBA_N:DATA_ISBA_GOTO_MODEL',1,ZHOOK_HANDLE)
00490 
00491 END SUBROUTINE DATA_ISBA_GOTO_MODEL
00492 
00493 SUBROUTINE DATA_ISBA_ALLOC(KMODEL)
00494 INTEGER, INTENT(IN) :: KMODEL
00495 INTEGER :: J
00496 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00497 IF (LHOOK) CALL DR_HOOK("MODD_DATA_ISBA_N:DATA_ISBA_ALLOC",0,ZHOOK_HANDLE)
00498 ALLOCATE(DATA_ISBA_MODEL(KMODEL))
00499 DO J=1,KMODEL
00500   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_VEGTYPE)
00501   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_Z0_O_Z0H)
00502   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_EMIS)
00503   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_Z0)
00504   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_ALBNIR_VEG)
00505   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_ALBVIS_VEG)
00506   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_ALBUV_VEG)
00507   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_VEG)
00508   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_WRMAX_CF)
00509   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_RSMIN)
00510   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_GAMMA)
00511   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_CV)
00512   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_RGL)
00513   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_ROOTFRAC)
00514   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_BSLAI)
00515   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_LAIMIN)
00516   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_SEFOLD)
00517   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_H_TREE)
00518   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_GMES)
00519   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_RE25)
00520   NULLIFY(DATA_ISBA_MODEL(J)%LPAR_STRESS)
00521   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_F2I)
00522   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_GC)
00523   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_DMAX)
00524   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_CE_NITRO)
00525   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_CF_NITRO)
00526   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_CNA_NITRO)
00527   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_DG)
00528   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_DICE)
00529   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_GROUND_DEPTH)  
00530   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_ROOT_DEPTH)  
00531   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_ROOT_EXTINCTION)  
00532   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_ROOT_LIN)
00533   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_ALBNIR_SOIL)
00534   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_ALBVIS_SOIL)
00535   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_ALBUV_SOIL)
00536   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_LAI)
00537   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_IRRIG)
00538   NULLIFY(DATA_ISBA_MODEL(J)%XPAR_WATSUP)  
00539 ENDDO
00540 DATA_ISBA_MODEL(:)%NTIME=0
00541 DATA_ISBA_MODEL(:)%LDATA_MIXPAR=.FALSE.
00542 DATA_ISBA_MODEL(:)%LDATA_VEGTYPE=.FALSE.
00543 DATA_ISBA_MODEL(:)%LDATA_LAI=.FALSE.
00544 DATA_ISBA_MODEL(:)%LDATA_H_TREE=.FALSE.
00545 DATA_ISBA_MODEL(:)%LDATA_DG=.FALSE.
00546 DATA_ISBA_MODEL(:)%LDATA_DICE=.FALSE.
00547 DATA_ISBA_MODEL(:)%LDATA_GROUND_DEPTH=.FALSE.
00548 DATA_ISBA_MODEL(:)%LDATA_ROOT_DEPTH=.FALSE.
00549 DATA_ISBA_MODEL(:)%LDATA_ROOT_EXTINCTION=.FALSE.
00550 DATA_ISBA_MODEL(:)%LDATA_ROOT_LIN=.FALSE.
00551 DATA_ISBA_MODEL(:)%LDATA_ROOTFRAC=.FALSE.
00552 DATA_ISBA_MODEL(:)%LDATA_VEG=.FALSE.
00553 DATA_ISBA_MODEL(:)%LDATA_Z0=.FALSE.
00554 DATA_ISBA_MODEL(:)%LDATA_EMIS=.FALSE.
00555 DATA_ISBA_MODEL(:)%LDATA_ALBNIR_VEG=.FALSE.
00556 DATA_ISBA_MODEL(:)%LDATA_ALBVIS_VEG=.FALSE.
00557 DATA_ISBA_MODEL(:)%LDATA_ALBUV_VEG=.FALSE.
00558 DATA_ISBA_MODEL(:)%LDATA_RSMIN=.FALSE.
00559 DATA_ISBA_MODEL(:)%LDATA_GAMMA=.FALSE.
00560 DATA_ISBA_MODEL(:)%LDATA_WRMAX_CF=.FALSE.
00561 DATA_ISBA_MODEL(:)%LDATA_CV=.FALSE.
00562 DATA_ISBA_MODEL(:)%LDATA_RGL=.FALSE.
00563 DATA_ISBA_MODEL(:)%LDATA_Z0_O_Z0H=.FALSE.
00564 DATA_ISBA_MODEL(:)%LDATA_BSLAI=.FALSE.
00565 DATA_ISBA_MODEL(:)%LDATA_LAIMIN=.FALSE.
00566 DATA_ISBA_MODEL(:)%LDATA_SEFOLD=.FALSE.
00567 DATA_ISBA_MODEL(:)%LDATA_GMES=.FALSE.
00568 DATA_ISBA_MODEL(:)%LDATA_RE25=.FALSE.
00569 DATA_ISBA_MODEL(:)%LDATA_STRESS=.FALSE.
00570 DATA_ISBA_MODEL(:)%LDATA_F2I=.FALSE.
00571 DATA_ISBA_MODEL(:)%LDATA_GC=.FALSE.
00572 DATA_ISBA_MODEL(:)%LDATA_DMAX=.FALSE.
00573 DATA_ISBA_MODEL(:)%LDATA_CE_NITRO=.FALSE.
00574 DATA_ISBA_MODEL(:)%LDATA_CF_NITRO=.FALSE.
00575 DATA_ISBA_MODEL(:)%LDATA_CNA_NITRO=.FALSE.
00576 DATA_ISBA_MODEL(:)%LDATA_ALBNIR_SOIL=.FALSE.
00577 DATA_ISBA_MODEL(:)%LDATA_ALBVIS_SOIL=.FALSE.
00578 DATA_ISBA_MODEL(:)%LDATA_ALBUV_SOIL=.FALSE.
00579 DATA_ISBA_MODEL(:)%LDATA_IRRIG=.FALSE.
00580 DATA_ISBA_MODEL(:)%LDATA_WATSUP=.FALSE.
00581 IF (LHOOK) CALL DR_HOOK("MODD_DATA_ISBA_N:DATA_ISBA_ALLOC",1,ZHOOK_HANDLE)
00582 END SUBROUTINE DATA_ISBA_ALLOC
00583 
00584 SUBROUTINE DATA_ISBA_DEALLO
00585 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00586 IF (LHOOK) CALL DR_HOOK("MODD_DATA_ISBA_N:DATA_ISBA_DEALLO",0,ZHOOK_HANDLE)
00587 IF (ALLOCATED(DATA_ISBA_MODEL)) DEALLOCATE(DATA_ISBA_MODEL)
00588 IF (LHOOK) CALL DR_HOOK("MODD_DATA_ISBA_N:DATA_ISBA_DEALLO",1,ZHOOK_HANDLE)
00589 END SUBROUTINE DATA_ISBA_DEALLO
00590 
00591 END MODULE MODD_DATA_ISBA_n