SURFEX v7.3
General documentation of Surfex
|
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