SURFEX v7.3
General documentation of Surfex
|
00001 ! ######################### 00002 SUBROUTINE INI_DATA_PARAM(PTYPE,PSURF, PSURF2, PLAI, PH_TREE, & 00003 PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, PRSMIN, & 00004 PRGL, PCV, PGAMMA, PGMES, PGC, PBSLAI, PSEFOLD, & 00005 PLAIMIN, PDMAX, PSTRESS, PF2I, PVEG_IN, PVEG_OUT, & 00006 PGREEN, PZ0, PZ0_O_Z0H, PEMIS_ECO, PWRMAX_CF, & 00007 PROOT_LIN, PROOT_EXTINCTION, PSOILRC_SO2, & 00008 PSOILRC_O3, PRE25, PCE_NITRO,PCF_NITRO,PCNA_NITRO, & 00009 PGMES_ST, PGC_ST, PBSLAI_ST, PSEFOLD_ST, PDMAX_ST ) 00010 00011 ! ######################### 00012 ! 00013 !!**** *INI_DATA_PARAM* initializes secondary cover-field correspondance arrays 00014 !! from VEGTYPE and LAI 00015 !! 00016 !! PURPOSE 00017 !! ------- 00018 !! 00019 !! METHOD 00020 !! ------ 00021 !! 00022 !! 00023 !! EXTERNAL 00024 !! -------- 00025 !! 00026 !! IMPLICIT ARGUMENTS 00027 !! ------------------ 00028 !! 00029 !! REFERENCE 00030 !! --------- 00031 !! 00032 !! AUTHOR 00033 !! ------ 00034 !! 00035 !! V. Masson Meteo-France 00036 !! 00037 !! MODIFICATION 00038 !! ------------ 00039 !! 00040 !! Original 06/01/2000 00041 !! F.solmon 01/06/2000 adaptation for patch approach: calculation of parameters 00042 !! for each vegtypes of basic covers 00043 !! V Masson 03/04/2002 set RSMIN value to 120 for NVT_TROG and NVT_C4 00044 !! L Jarlan 15/10/2004 modify xdata_gmes following Gibelin 00045 !! P Le Moigne 09/2005 AGS modifs of L. Jarlan (duplicate arrays for ast, lst or nit options) 00046 !! S. Lafont 03/09 : change unit of RE25 00047 !! S. Faroux 03/09 : irrigated crops are assumed C4 crops 00048 !! S. Lafont 09/11 : Reco bare soil is 0; corrected comments 00049 !! B. Decharme 07/12 : Ponderation coefficient for cumulative root fraction of evergreen forest 00050 !---------------------------------------------------------------------------- 00051 ! 00052 !* 0. DECLARATION 00053 ! ----------- 00054 ! 00055 USE MODD_CSTS, ONLY : XDAY 00056 USE MODD_DATA_COVER_PAR, ONLY : NVT_TREE, NVT_CONI, NVT_EVER, NVT_C3, & 00057 NVT_C4, NVT_IRR, NVT_TROG, NVT_GRAS, & 00058 NVT_PARK, NVT_ROCK, NVT_NO, NVT_SNOW, & 00059 NVEGTYPE, JPCOVER 00060 ! 00061 USE MODI_VEG_FROM_LAI 00062 USE MODI_GREEN_FROM_LAI 00063 USE MODI_Z0V_FROM_LAI 00064 USE MODI_EMIS_FROM_VEG 00065 USE MODI_ABOR1_SFX 00066 ! 00067 ! 00068 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00069 USE PARKIND1 ,ONLY : JPRB 00070 ! 00071 IMPLICIT NONE 00072 ! 00073 !* 0.1 Declaration of arguments 00074 ! ------------------------ 00075 ! 00076 REAL, DIMENSION(:,:), INTENT(IN) :: PTYPE 00077 REAL, DIMENSION(:), OPTIONAL, INTENT(IN) :: PSURF 00078 REAL, DIMENSION(:), OPTIONAL, INTENT(IN) :: PSURF2 00079 REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PLAI 00080 REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PH_TREE 00081 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PALBNIR_VEG 00082 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PALBVIS_VEG 00083 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PALBUV_VEG 00084 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PRSMIN 00085 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PRGL 00086 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PCV 00087 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PGAMMA 00088 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PGMES 00089 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PGC 00090 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PBSLAI 00091 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PSEFOLD 00092 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PLAIMIN 00093 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PDMAX 00094 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PSTRESS 00095 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PF2I 00096 REAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: PVEG_IN 00097 REAL, DIMENSION(:,:,:), INTENT(OUT), OPTIONAL :: PVEG_OUT 00098 REAL, DIMENSION(:,:,:), INTENT(OUT), OPTIONAL :: PGREEN 00099 REAL, DIMENSION(:,:,:), INTENT(OUT), OPTIONAL :: PZ0 00100 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PZ0_O_Z0H 00101 REAL, DIMENSION(:,:,:), INTENT(OUT), OPTIONAL :: PEMIS_ECO 00102 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PWRMAX_CF 00103 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PROOT_LIN 00104 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PROOT_EXTINCTION 00105 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PSOILRC_SO2 00106 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PSOILRC_O3 00107 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PRE25 00108 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PCE_NITRO 00109 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PCF_NITRO 00110 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PCNA_NITRO 00111 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PGMES_ST 00112 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PGC_ST 00113 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PBSLAI_ST 00114 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PSEFOLD_ST 00115 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PDMAX_ST 00116 ! 00117 !* 0.2 Declaration of local variables 00118 ! ------------------------------ 00119 ! 00120 REAL, DIMENSION(SIZE(PTYPE,1)) :: ZGARDEN 00121 LOGICAL :: LSURF 00122 INTEGER :: JLOOP ! class loop counter 00123 ! 00124 INTEGER :: JMONTH ! month loop counter 00125 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00126 ! 00127 !------------------------------------------------------------------------------- 00128 !------------------------------------------------------------------------------- 00129 ! 00130 !* 7. Secondary variables on natural covers 00131 ! ------------------------------------- 00132 ! 00133 IF (LHOOK) CALL DR_HOOK('INI_DATA_PARAM',0,ZHOOK_HANDLE) 00134 ! 00135 LSURF=.TRUE. 00136 ! 00137 DO JLOOP=1,SIZE(PTYPE,1) 00138 ! 00139 IF (PRESENT(PSURF2) .AND. PRESENT(PSURF)) THEN 00140 LSURF=(PSURF(JLOOP)>0. .OR. PSURF2(JLOOP)>0.) 00141 ELSEIF (PRESENT(PSURF)) THEN 00142 LSURF=(PSURF(JLOOP)>0.) 00143 ENDIF 00144 ! 00145 !------------------------------------------------------------------------------- 00146 ! 00147 !* nature exists for this cover type 00148 ! 00149 IF (LSURF) THEN 00150 ! 00151 !------------------------------------------------------------------------------- 00152 !* 7.5 albnir (veg only) 00153 ! ------ 00154 IF (PRESENT(PALBNIR_VEG)) THEN 00155 PALBNIR_VEG(JLOOP,:)= 0.30 00156 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PALBNIR_VEG(JLOOP,NVT_TREE)= 0.25 00157 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PALBNIR_VEG(JLOOP,NVT_CONI)= 0.15 00158 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PALBNIR_VEG(JLOOP,NVT_EVER)= 0.21 00159 ENDIF 00160 !------------------------------------------------------------------------------- 00161 !* 7.6 albvis (veg only) 00162 ! ------ 00163 IF (PRESENT(PALBVIS_VEG)) THEN 00164 PALBVIS_VEG(JLOOP,:)= 0.10 00165 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PALBVIS_VEG(JLOOP,NVT_TREE)= 0.05 00166 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PALBVIS_VEG(JLOOP,NVT_CONI)= 0.05 00167 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PALBVIS_VEG(JLOOP,NVT_EVER)= 0.05 00168 ENDIF 00169 !------------------------------------------------------------------------------- 00170 !* 7.6 albUV (veg only) 00171 ! ----- 00172 IF (PRESENT(PALBUV_VEG)) THEN 00173 PALBUV_VEG(JLOOP,:)= 0.06 00174 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PALBUV_VEG(JLOOP,NVT_TREE)= 0.0525 00175 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PALBUV_VEG(JLOOP,NVT_CONI)= 0.0425 00176 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PALBUV_VEG(JLOOP,NVT_EVER)= 0.038 00177 IF(PTYPE(JLOOP,NVT_GRAS)>0. ) PALBUV_VEG(JLOOP,NVT_GRAS)= 0.08 00178 IF(PTYPE(JLOOP,NVT_TROG)>0. ) PALBUV_VEG(JLOOP,NVT_TROG)= 0.125 00179 IF(PTYPE(JLOOP,NVT_IRR )>0. ) PALBUV_VEG(JLOOP,NVT_IRR )= 0.045 00180 IF(PTYPE(JLOOP,NVT_PARK)>0. ) PALBUV_VEG(JLOOP,NVT_PARK)= 0.08 00181 ENDIF 00182 !------------------------------------------------------------------------------ 00183 !* 7.7 Rsmin 00184 ! ----- 00185 IF (PRESENT(PRSMIN)) THEN 00186 PRSMIN(JLOOP,:)= 40. 00187 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PRSMIN(JLOOP,NVT_TREE)= 150. 00188 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PRSMIN(JLOOP,NVT_CONI)= 150. 00189 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PRSMIN(JLOOP,NVT_EVER)= 250. 00190 IF(PTYPE(JLOOP,NVT_TROG)>0. ) PRSMIN(JLOOP,NVT_TROG)= 120. 00191 IF(PTYPE(JLOOP,NVT_C4 )>0. ) PRSMIN(JLOOP,NVT_C4 )= 120. 00192 IF(PTYPE(JLOOP,NVT_IRR )>0. ) PRSMIN(JLOOP,NVT_IRR )= 120. 00193 ENDIF 00194 !------------------------------------------------------------------------------- 00195 !* 7.8 Gamma 00196 ! ----- 00197 IF (PRESENT(PGAMMA)) THEN 00198 PGAMMA(JLOOP,:)= 0. 00199 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PGAMMA(JLOOP,NVT_TREE)= 0.04 00200 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PGAMMA(JLOOP,NVT_CONI)= 0.04 00201 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PGAMMA(JLOOP,NVT_EVER)= 0.04 00202 ENDIF 00203 !------------------------------------------------------------------------------- 00204 !* 7.8 Wrmax_cf 00205 ! -------- 00206 IF (PRESENT(PWRMAX_CF)) THEN 00207 PWRMAX_CF(JLOOP,:)= 0.2 00208 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PWRMAX_CF(JLOOP,NVT_TREE)=0.1 00209 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PWRMAX_CF(JLOOP,NVT_CONI)=0.1 00210 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PWRMAX_CF(JLOOP,NVT_EVER)=0.1 00211 ENDIF 00212 !------------------------------------------------------------------------------- 00213 !* 7.9 Rgl 00214 ! --- 00215 IF (PRESENT(PRGL)) THEN 00216 PRGL(JLOOP,:)= 100. 00217 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PRGL(JLOOP,NVT_TREE)= 30. 00218 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PRGL(JLOOP,NVT_CONI)= 30. 00219 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PRGL(JLOOP,NVT_EVER)= 30. 00220 ENDIF 00221 !------------------------------------------------------------------------------- 00222 !* 7.10 Cv 00223 ! -- 00224 IF (PRESENT(PCV)) THEN 00225 PCV(JLOOP,:)=2.E-5 00226 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PCV(JLOOP,NVT_TREE)= 1.E-5 00227 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PCV(JLOOP,NVT_CONI)= 1.E-5 00228 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PCV(JLOOP,NVT_EVER)= 1.E-5 00229 ENDIF 00230 !------------------------------------------------------------------------------- 00231 !* 7.11 mesophyll conductance (m s-1) 00232 ! ----------------------------- 00233 IF (PRESENT(PGMES)) THEN 00234 PGMES(JLOOP,:)=0.020 00235 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PGMES(JLOOP,NVT_TREE)= 0.001 00236 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PGMES(JLOOP,NVT_CONI)= 0.001 00237 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PGMES(JLOOP,NVT_EVER)= 0.001 00238 IF(PTYPE(JLOOP,NVT_C3 )>0. ) PGMES(JLOOP,NVT_C3 )= 0.003 00239 IF(PTYPE(JLOOP,NVT_C4 )>0. ) PGMES(JLOOP,NVT_C4 )= 0.003 00240 IF(PTYPE(JLOOP,NVT_IRR )>0. ) PGMES(JLOOP,NVT_IRR )= 0.003 00241 ENDIF 00242 ! 00243 IF (PRESENT(PGMES_ST)) THEN 00244 PGMES_ST(JLOOP,:)=0.003 00245 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PGMES_ST(JLOOP,NVT_TREE)= 0.003 00246 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PGMES_ST(JLOOP,NVT_CONI)= 0.002 00247 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PGMES_ST(JLOOP,NVT_EVER)= 0.002 00248 IF(PTYPE(JLOOP,NVT_C3 )>0. ) PGMES_ST(JLOOP,NVT_C3 )= 0.001 00249 IF(PTYPE(JLOOP,NVT_C4 )>0. ) PGMES_ST(JLOOP,NVT_C4 )= 0.009 00250 IF(PTYPE(JLOOP,NVT_IRR )>0. ) PGMES_ST(JLOOP,NVT_IRR )= 0.009 00251 IF(PTYPE(JLOOP,NVT_GRAS)>0. ) PGMES_ST(JLOOP,NVT_GRAS )= 0.001 00252 IF(PTYPE(JLOOP,NVT_TROG)>0. ) PGMES_ST(JLOOP,NVT_TROG )= 0.006 00253 IF(PTYPE(JLOOP,NVT_PARK)>0. ) PGMES_ST(JLOOP,NVT_PARK )= 0.001 00254 ENDIF 00255 !------------------------------------------------------------------------------- 00256 !* 7.11 Ecosystem Respiration (kg m-2 s-1) 00257 ! ----------------------------------- 00258 IF (PRESENT(PRE25)) THEN 00259 PRE25(JLOOP,:)= 3.6E-7 00260 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PRE25(JLOOP,NVT_CONI)= 1.8E-7 00261 IF(PTYPE(JLOOP,NVT_C4 )>0. ) PRE25(JLOOP,NVT_C4 )= 3.0E-7 00262 IF(PTYPE(JLOOP,NVT_IRR )>0. ) PRE25(JLOOP,NVT_IRR )= 3.0E-7 00263 !ecosystem respiration only if vegetetation is present 00264 IF(PTYPE(JLOOP,NVT_NO )>0. ) PRE25(JLOOP,NVT_NO )= 0. 00265 IF(PTYPE(JLOOP,NVT_ROCK)>0. ) PRE25(JLOOP,NVT_ROCK)= 0. 00266 IF(PTYPE(JLOOP,NVT_SNOW)>0. ) PRE25(JLOOP,NVT_SNOW)= 0. 00267 ENDIF 00268 !------------------------------------------------------------------------------- 00269 !* 7.11 cuticular conductance (m s-1) 00270 ! ----------------------------- 00271 IF (PRESENT(PGC)) THEN 00272 PGC(JLOOP,:)=0.00025 00273 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PGC(JLOOP,NVT_TREE)= 0.00015 00274 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PGC(JLOOP,NVT_CONI)= 0. 00275 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PGC(JLOOP,NVT_EVER)= 0.00015 00276 ENDIF 00277 ! 00278 IF (PRESENT(PGC_ST)) THEN 00279 PGC_ST(JLOOP,:)=0.00015 00280 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PGC_ST(JLOOP,NVT_CONI)= 0. 00281 IF(PTYPE(JLOOP,NVT_C3 )>0. ) PGC_ST(JLOOP,NVT_C3 )= 0.00025 00282 IF(PTYPE(JLOOP,NVT_GRAS)>0. ) PGC_ST(JLOOP,NVT_GRAS)= 0.00025 00283 IF(PTYPE(JLOOP,NVT_PARK)>0. ) PGC_ST(JLOOP,NVT_PARK)= 0.001 00284 ENDIF 00285 !------------------------------------------------------------------------------- 00286 !* 7.11 critical normilized soil water content for stress parameterisation 00287 ! ------------------------------------------------------------------ 00288 IF (PRESENT(PF2I)) PF2I(JLOOP,:)=0.3 00289 !------------------------------------------------------------------------------- 00290 !* 7.12 ratio d(biomass)/d(lai) (kg/m2) 00291 ! ----------------------- 00292 IF (PRESENT(PBSLAI)) THEN 00293 PBSLAI(JLOOP,:)=0.36 00294 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PBSLAI(JLOOP,NVT_TREE)= 0.25 00295 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PBSLAI(JLOOP,NVT_CONI)= 0.25 00296 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PBSLAI(JLOOP,NVT_EVER)= 0.25 00297 IF(PTYPE(JLOOP,NVT_C3 )>0. ) PBSLAI(JLOOP,NVT_C3 )= 0.06 00298 IF(PTYPE(JLOOP,NVT_C4 )>0. ) PBSLAI(JLOOP,NVT_C4 )= 0.06 00299 IF(PTYPE(JLOOP,NVT_IRR )>0. ) PBSLAI(JLOOP,NVT_IRR )= 0.06 00300 ENDIF 00301 ! 00302 IF (PRESENT(PBSLAI_ST)) THEN 00303 PBSLAI_ST(JLOOP,:)=0.08 00304 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PBSLAI_ST(JLOOP,NVT_TREE)= 0.125 00305 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PBSLAI_ST(JLOOP,NVT_CONI)= 0.50 00306 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PBSLAI_ST(JLOOP,NVT_EVER)= 0.25 00307 IF(PTYPE(JLOOP,NVT_C3 )>0. ) PBSLAI_ST(JLOOP,NVT_C3 )= 0.06 00308 IF(PTYPE(JLOOP,NVT_C4 )>0. ) PBSLAI_ST(JLOOP,NVT_C4 )= 0.06 00309 IF(PTYPE(JLOOP,NVT_IRR )>0. ) PBSLAI_ST(JLOOP,NVT_IRR )= 0.06 00310 ENDIF 00311 !------------------------------------------------------------------------------- 00312 !* 7.12 maximum air saturation deficit tolerate by vegetation (kg/kg) 00313 ! ----------------------------------------------------- 00314 IF (PRESENT(PDMAX)) THEN 00315 PDMAX(JLOOP,:) = 0.1 00316 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PDMAX(JLOOP,NVT_TREE)= 0.1 00317 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PDMAX(JLOOP,NVT_CONI)= 0.1 00318 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PDMAX(JLOOP,NVT_EVER)= 0.1 00319 ENDIF 00320 ! 00321 IF (PRESENT(PDMAX_ST)) THEN 00322 PDMAX_ST(JLOOP,:) = 0.05 00323 IF(PTYPE(JLOOP,NVT_C4 )>0. ) PDMAX_ST(JLOOP,NVT_C4 )= 0.033 00324 IF(PTYPE(JLOOP,NVT_IRR )>0. ) PDMAX_ST(JLOOP,NVT_IRR )= 0.033 00325 IF(PTYPE(JLOOP,NVT_TROG)>0. ) PDMAX_ST(JLOOP,NVT_TROG)= 0.052 00326 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PDMAX_ST(JLOOP,NVT_CONI)= 0.124 00327 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PDMAX_ST(JLOOP,NVT_EVER)= 0.124 00328 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PDMAX_ST(JLOOP,NVT_TREE)= 0.109 00329 ENDIF 00330 !------------------------------------------------------------------------------- 00331 !* 7.12 Defensive/offensive strategy (1/0) 00332 ! ---------------------------- 00333 IF (PRESENT(PSTRESS)) THEN 00334 PSTRESS(JLOOP,:) = 1. 00335 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PSTRESS(JLOOP,NVT_TREE)= 0. 00336 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PSTRESS(JLOOP,NVT_EVER)= 0. 00337 IF(PTYPE(JLOOP,NVT_C4 )>0. ) PSTRESS(JLOOP,NVT_C4 )= 0. 00338 IF(PTYPE(JLOOP,NVT_GRAS)>0. ) PSTRESS(JLOOP,NVT_GRAS)= 0. 00339 IF(PTYPE(JLOOP,NVT_TROG)>0. ) PSTRESS(JLOOP,NVT_TROG)= 0. 00340 IF(PTYPE(JLOOP,NVT_PARK)>0. ) PSTRESS(JLOOP,NVT_PARK)= 0. 00341 ENDIF 00342 !------------------------------------------------------------------------------- 00343 !* 7.13 e-folding time for senescence (days) 00344 ! ------------------------------------ 00345 ! parameters use in case HPHOTO == 'NONE' 'AGS' 'LAI' 00346 IF (PRESENT(PSEFOLD)) THEN 00347 PSEFOLD(JLOOP,:)=90. * XDAY 00348 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PSEFOLD(JLOOP,NVT_TREE)= 365.* XDAY 00349 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PSEFOLD(JLOOP,NVT_CONI)= 365.* XDAY 00350 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PSEFOLD(JLOOP,NVT_EVER)= 365.* XDAY 00351 IF(PTYPE(JLOOP,NVT_C3 )>0. ) PSEFOLD(JLOOP,NVT_C3 )= 60.* XDAY 00352 IF(PTYPE(JLOOP,NVT_C4 )>0. ) PSEFOLD(JLOOP,NVT_C4 )= 60.* XDAY 00353 IF(PTYPE(JLOOP,NVT_IRR )>0. ) PSEFOLD(JLOOP,NVT_IRR )= 60.* XDAY 00354 ENDIF 00355 ! 00356 ! parameters use in case HPHOTO == 'AST','LST' 'NIT', 'NCB' 00357 00358 IF (PRESENT(PSEFOLD_ST)) THEN 00359 PSEFOLD_ST(JLOOP,:)=150. * XDAY 00360 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PSEFOLD_ST(JLOOP,NVT_TREE)= 230.* XDAY 00361 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PSEFOLD_ST(JLOOP,NVT_CONI)= 365.* XDAY 00362 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PSEFOLD_ST(JLOOP,NVT_EVER)= 365.* XDAY 00363 ENDIF 00364 !------------------------------------------------------------------------------- 00365 !* 7.14 Minimum LAI (m2/m2) 00366 ! ------------------- 00367 ! Modi lai/patch defined 00368 IF (PRESENT(PLAIMIN)) THEN 00369 PLAIMIN (JLOOP,:) = 0.3 00370 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PLAIMIN (JLOOP,NVT_CONI) = 1.0 00371 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PLAIMIN (JLOOP,NVT_EVER) = 1.0 00372 ENDIF 00373 !------------------------------------------------------------------------ 00374 !* 2.20 leaf aera ratio sensitivity to nitrogen concentration 00375 ! ---------- 00376 IF (PRESENT(PCE_NITRO)) THEN 00377 PCE_NITRO(JLOOP,:)=7.68 00378 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PCE_NITRO(JLOOP,NVT_TREE)= 4.83 00379 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PCE_NITRO(JLOOP,NVT_CONI)= 4.85 00380 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PCE_NITRO(JLOOP,NVT_EVER)= 4.83 00381 IF(PTYPE(JLOOP,NVT_C3 )>0. ) PCE_NITRO(JLOOP,NVT_C3 )= 3.79 00382 IF(PTYPE(JLOOP,NVT_GRAS)>0. ) PCE_NITRO(JLOOP,NVT_GRAS)= 5.56 00383 IF(PTYPE(JLOOP,NVT_PARK)>0. ) PCE_NITRO(JLOOP,NVT_PARK)= 5.56 00384 ENDIF 00385 !------------------------------------------------------------------------------- 00386 !* 2.21 lethal minimum value of leaf area ratio 00387 ! ---------- 00388 IF (PRESENT(PCF_NITRO)) THEN 00389 PCF_NITRO(JLOOP,:)=-4.33 00390 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PCF_NITRO(JLOOP,NVT_TREE)= 2.53 00391 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PCF_NITRO(JLOOP,NVT_CONI)= -0.24 00392 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PCF_NITRO(JLOOP,NVT_EVER)= 2.53 00393 IF(PTYPE(JLOOP,NVT_C3 )>0. ) PCF_NITRO(JLOOP,NVT_C3 )= 9.84 00394 IF(PTYPE(JLOOP,NVT_GRAS)>0. ) PCF_NITRO(JLOOP,NVT_GRAS)= 6.73 00395 IF(PTYPE(JLOOP,NVT_PARK)>0. ) PCF_NITRO(JLOOP,NVT_PARK)= 6.73 00396 ENDIF 00397 !------------------------------------------------------------------------------- 00398 !* 2.22 nitrogen concentration of active biomass (assimilated to N 00399 ! concentration of leaf biomass following Gibelin) 00400 ! ---------- 00401 IF (PRESENT(PCNA_NITRO)) THEN 00402 PCNA_NITRO(JLOOP,:)=1.3 00403 IF(PTYPE(JLOOP,NVT_C4 )>0. ) PCNA_NITRO(JLOOP,NVT_C4 )= 1.9 00404 IF(PTYPE(JLOOP,NVT_IRR )>0. ) PCNA_NITRO(JLOOP,NVT_IRR) = 1.9 00405 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PCNA_NITRO(JLOOP,NVT_CONI)= 2.8 00406 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PCNA_NITRO(JLOOP,NVT_TREE)= 2.0 00407 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PCNA_NITRO(JLOOP,NVT_EVER)= 2.5 00408 ENDIF 00409 !------------------------------------------------------------------------------- 00410 !* 7.15 Jackson (1996) coefficient for cumulative root fraction 00411 ! ------------------------------------------------------- 00412 IF (PRESENT(PROOT_EXTINCTION)) THEN 00413 PROOT_EXTINCTION(JLOOP,:)= 0.943 ! no vegetation (default value) 00414 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PROOT_EXTINCTION(JLOOP,NVT_TREE)= 0.966 00415 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PROOT_EXTINCTION(JLOOP,NVT_CONI)= 0.943 00416 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PROOT_EXTINCTION(JLOOP,NVT_EVER)= 0.962 00417 IF(PTYPE(JLOOP,NVT_C3 )>0. ) PROOT_EXTINCTION(JLOOP,NVT_C3 )= 0.961 00418 IF(PTYPE(JLOOP,NVT_C4 )>0. ) PROOT_EXTINCTION(JLOOP,NVT_C4 )= 0.972 00419 IF(PTYPE(JLOOP,NVT_IRR )>0. ) PROOT_EXTINCTION(JLOOP,NVT_IRR )= 0.972 00420 IF(PTYPE(JLOOP,NVT_GRAS)>0. ) PROOT_EXTINCTION(JLOOP,NVT_GRAS)= 0.943 00421 IF(PTYPE(JLOOP,NVT_PARK)>0. ) PROOT_EXTINCTION(JLOOP,NVT_PARK)= 0.943 00422 IF(PTYPE(JLOOP,NVT_TROG)>0. ) PROOT_EXTINCTION(JLOOP,NVT_TROG)= 0.972 00423 ENDIF 00424 !------------------------------------------------------------------------------- 00425 !* 7.16 Ponderation coefficient between formulations for cumulative root fraction 00426 ! ------------------------------------------------------------------------- 00427 ! 00428 IF (PRESENT(PROOT_LIN)) THEN 00429 PROOT_LIN(JLOOP,:)= 0.05 00430 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PROOT_LIN(JLOOP,NVT_EVER)= 0.25 00431 ENDIF 00432 ! 00433 !------------------------------------------------------------------------------- 00434 !* 7.17 Coefficient for chemistry deposition of SO2 00435 ! ------------------------------------------- 00436 IF (PRESENT(PSOILRC_SO2)) THEN 00437 PSOILRC_SO2(JLOOP,:)= 9999. 00438 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PSOILRC_SO2(JLOOP,NVT_TREE)= 500. 00439 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PSOILRC_SO2(JLOOP,NVT_CONI)= 500. 00440 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PSOILRC_SO2(JLOOP,NVT_EVER)= 200. 00441 IF(PTYPE(JLOOP,NVT_C3 )>0. ) PSOILRC_SO2(JLOOP,NVT_C3 )= 150. 00442 IF(PTYPE(JLOOP,NVT_C4 )>0. ) PSOILRC_SO2(JLOOP,NVT_C4 )= 150. 00443 IF(PTYPE(JLOOP,NVT_IRR )>0. ) PSOILRC_SO2(JLOOP,NVT_IRR )= 0.001 00444 IF(PTYPE(JLOOP,NVT_GRAS)>0. ) PSOILRC_SO2(JLOOP,NVT_GRAS)= 350. 00445 IF(PTYPE(JLOOP,NVT_PARK)>0. ) PSOILRC_SO2(JLOOP,NVT_PARK)= 350. 00446 IF(PTYPE(JLOOP,NVT_TROG)>0. ) PSOILRC_SO2(JLOOP,NVT_TROG)= 350. 00447 IF(PTYPE(JLOOP,NVT_NO )>0. ) PSOILRC_SO2(JLOOP,NVT_NO )=1000. 00448 IF(PTYPE(JLOOP,NVT_ROCK)>0. ) PSOILRC_SO2(JLOOP,NVT_ROCK)= 400. 00449 IF(PTYPE(JLOOP,NVT_SNOW)>0. ) PSOILRC_SO2(JLOOP,NVT_SNOW)= 100. 00450 ENDIF 00451 !------------------------------------------------------------------------------ 00452 !* 7.18 Coefficient for chemistry deposition of O3 00453 ! ------------------------------------------ 00454 IF (PRESENT(PSOILRC_O3)) THEN 00455 PSOILRC_O3(JLOOP,:)= 9999. 00456 IF(PTYPE(JLOOP,NVT_TREE)>0. ) PSOILRC_O3(JLOOP,NVT_TREE)= 200. 00457 IF(PTYPE(JLOOP,NVT_CONI)>0. ) PSOILRC_O3(JLOOP,NVT_CONI)= 200. 00458 IF(PTYPE(JLOOP,NVT_EVER)>0. ) PSOILRC_O3(JLOOP,NVT_EVER)= 500. 00459 IF(PTYPE(JLOOP,NVT_C3 )>0. ) PSOILRC_O3(JLOOP,NVT_C3 )= 150. 00460 IF(PTYPE(JLOOP,NVT_C4 )>0. ) PSOILRC_O3(JLOOP,NVT_C4 )= 150. 00461 IF(PTYPE(JLOOP,NVT_IRR )>0. ) PSOILRC_O3(JLOOP,NVT_IRR )=1000. 00462 IF(PTYPE(JLOOP,NVT_GRAS)>0. ) PSOILRC_O3(JLOOP,NVT_GRAS)= 200. 00463 IF(PTYPE(JLOOP,NVT_PARK)>0. ) PSOILRC_O3(JLOOP,NVT_PARK)= 200. 00464 IF(PTYPE(JLOOP,NVT_TROG)>0. ) PSOILRC_O3(JLOOP,NVT_TROG)= 200. 00465 IF(PTYPE(JLOOP,NVT_NO )>0. ) PSOILRC_O3(JLOOP,NVT_NO )= 400. 00466 IF(PTYPE(JLOOP,NVT_ROCK)>0. ) PSOILRC_O3(JLOOP,NVT_ROCK)= 200. 00467 IF(PTYPE(JLOOP,NVT_SNOW)>0. ) PSOILRC_O3(JLOOP,NVT_SNOW)=3500. 00468 ENDIF 00469 !------------------------------------------------------------------------------- 00470 !* 7.15 vegetation and greeness fractions 00471 ! --------------------------------- 00472 IF (PRESENT(PVEG_OUT) .AND. PRESENT(PLAI)) THEN 00473 DO JMONTH=1,SIZE(PVEG_OUT,2) 00474 PVEG_OUT(JLOOP,JMONTH,:) = VEG_FROM_LAI(PLAI(JLOOP,JMONTH,:), & 00475 PTYPE(JLOOP,:)) 00476 END DO 00477 ELSEIF (PRESENT(PVEG_OUT) .AND. .NOT. PRESENT(PLAI)) THEN 00478 CALL ABOR1_SFX("INI_DATA_PARAM: WHEN CALLING WITH PVEG_OUT, PLAI MUST BE IN ARGUMENTS TOO") 00479 ENDIF 00480 ! 00481 00482 IF (PRESENT(PGREEN) .AND. PRESENT(PLAI)) THEN 00483 DO JMONTH=1,SIZE(PGREEN,2) 00484 PGREEN(JLOOP,JMONTH,:) = GREEN_FROM_LAI(PLAI(JLOOP,JMONTH,:), & 00485 PTYPE(JLOOP,:)) 00486 END DO 00487 ELSEIF (PRESENT(PGREEN) .AND. .NOT. PRESENT(PLAI)) THEN 00488 CALL ABOR1_SFX("INI_DATA_PARAM: WHEN CALLING WITH PGREEN, PLAI MUST BE IN ARGUMENTS TOO") 00489 ENDIF 00490 !------------------------------------------------------------------------------- 00491 !* 7.16 z0 00492 ! -- 00493 IF (PRESENT(PZ0) .AND. PRESENT(PLAI) .AND. PRESENT(PH_TREE)) THEN 00494 DO JMONTH=1,SIZE(PZ0,2) 00495 PZ0(JLOOP,JMONTH,:) = Z0V_FROM_LAI(PLAI(JLOOP,JMONTH,:), & 00496 PH_TREE(JLOOP,:), & 00497 PTYPE(JLOOP,:) ) 00498 END DO 00499 ELSEIF (PRESENT(PZ0) .AND. (.NOT. PRESENT(PLAI) .OR. .NOT. PRESENT(PH_TREE))) THEN 00500 CALL ABOR1_SFX("INI_DATA_PARAM: WHEN CALLING WITH PZ0, PLAI AND PH_TREE MUST BE IN ARGUMENTS TOO") 00501 ENDIF 00502 !------------------------------------------------------------------------------- 00503 !* 7.17 z0/z0h 00504 ! ------ 00505 IF (PRESENT(PZ0_O_Z0H)) PZ0_O_Z0H (JLOOP,:) = 10. 00506 !------------------------------------------------------------------------------- 00507 !* 7.18 emissivity 00508 ! ---------- 00509 IF (PRESENT(PEMIS_ECO) .AND. (PRESENT(PVEG_IN).OR.PRESENT(PVEG_OUT))) THEN 00510 DO JMONTH=1,SIZE(PEMIS_ECO,2) 00511 00512 IF (PRESENT(PVEG_OUT)) THEN 00513 PEMIS_ECO(JLOOP,JMONTH,:) = EMIS_FROM_VEG(PVEG_OUT(JLOOP,JMONTH,:), & 00514 PTYPE(JLOOP,:)) 00515 ELSEIF (PRESENT(PVEG_IN)) THEN 00516 PEMIS_ECO(JLOOP,JMONTH,:) = EMIS_FROM_VEG(PVEG_IN(JLOOP,JMONTH,:), & 00517 PTYPE(JLOOP,:)) 00518 ENDIF 00519 END DO 00520 ELSEIF (PRESENT(PEMIS_ECO) .AND. .NOT.PRESENT(PVEG_IN) .AND. .NOT.PRESENT(PVEG_OUT)) THEN 00521 CALL ABOR1_SFX("INI_DATA_PARAM: WHEN CALLING WITH PEMIS_ECO, PVEG_IN OR PVEG_OUT MUST BE IN ARGUMENTS TOO") 00522 ENDIF 00523 !------------------------------------------------------------------------------- 00524 END IF 00525 !------------------------------------------------------------------------------- 00526 END DO 00527 !------------------------------------------------------------------------------- 00528 IF (LHOOK) CALL DR_HOOK('INI_DATA_PARAM',1,ZHOOK_HANDLE) 00529 !------------------------------------------------------------------------------- 00530 ! 00531 END SUBROUTINE INI_DATA_PARAM