📄 clm_varder.f90
字号:
#include <misc.h>#include <preproc.h>module clm_varder! Declare clm variable use precision use clmtype implicit none type (clm1d), allocatable :: clm(:) SAVE !=======================================================================CONTAINS!======================================================================= subroutine clm_varder_ini use precision use infnan use clm_varmap, only : begpatch, endpatch use clm_varcon, only : spval implicit none integer :: k! allocate memory for clm derived type allocate (clm(begpatch:endpatch))! set all elements to infinity do k = begpatch, endpatch!*************************************************************************! Time-invariant boundary data for each of the subgrid patches!************************************************************************* clm(k)%kpatch = bigint clm(k)%itypveg = bigint clm(k)%itypwat = bigint clm(k)%isoicol = bigint ! level values clm(k)%dz(-nlevsno+1:0) = inf !snow layer thickness (m) clm(k)%z (-nlevsno+1:0) = inf !snow layer depth (m) clm(k)%zi(-nlevsno+0:0) = inf !snow layer interfaces (m) clm(k)%dz(1:nlevsoi) = inf !soil layer thickness (m) clm(k)%z (1:nlevsoi) = inf !soil layer depth (m) clm(k)%zi(1:nlevsoi) = inf !soil layer interfaces (m) ! soil physical properties clm(k)%bsw (1:nlevsoi) = inf !Clapp and Hornberger "b" clm(k)%watsat(1:nlevsoi) = inf !volumetric soil water at saturation (porosity) clm(k)%hksat (1:nlevsoi) = inf !hydraulic conductivity at saturation (mm H2O /s) clm(k)%sucsat(1:nlevsoi) = inf !minimum soil suction (mm) clm(k)%csol (1:nlevsoi) = inf !heat capacity, soil solids (J/m**3/Kelvin) clm(k)%tkmg (1:nlevsoi) = inf !thermal conductivity, soil minerals [W/m-K] (new) clm(k)%tkdry (1:nlevsoi) = inf !thermal conductivity, dry soil (W/m/Kelvin) clm(k)%tksatu(1:nlevsoi) = inf !thermal conductivity, saturated soil [W/m-K] (new) clm(k)%rootfr(1:nlevsoi) = inf !fraction of roots in each soil layer clm(k)%rootr (1:nlevsoi) = inf !effective fraction of roots in each soil layer! leaf constants clm(k)%dewmx = inf !Maximum allowed dew [mm]! hydraulic constants of soil clm(k)%wtfact = inf !Fraction of model area with high water table clm(k)%trsmx0 = inf !Max transpiration for moist soil+100% veg. [mm/s]! roughness lengths clm(k)%zlnd = inf !Roughness length for soil [m] (new) clm(k)%zsno = inf !Roughness length for snow [m] (new) clm(k)%csoilc = inf !Drag coefficient for soil under canopy [-] (new)! numerical finite-difference clm(k)%cnfac = inf !Crank Nicholson factor (between 0 and 1) (new) clm(k)%capr = inf !Tuning factor to turn first layer T into surface T (new) clm(k)%ssi = inf !Irreducible water saturation of snow (new) clm(k)%wimp = inf !Water impremeable if porosity less than wimp (new) clm(k)%pondmx = inf !Ponding depth (mm) (new) clm(k)%smpmax = inf !wilting point potential in mm (new) clm(k)%smpmin = inf !restriction for min of soil potential (mm) (new)! water and energy balance check clm(k)%begwb = inf !water mass begining of the time step clm(k)%endwb = inf !water mass end of the time step clm(k)%errh2o = inf !water conservation error (mm H2O) clm(k)%errsoi = inf !soil/lake energy conservation error (W/m**2) clm(k)%errseb = inf !surface energy conservation error (W/m**2) clm(k)%errsol = inf !solar radiation conservation error (W/m**2) clm(k)%errlon = inf !longwave radiation conservation error (W/m**2) clm(k)%acc_errseb = 0. !accumulation of surface energy balance error clm(k)%acc_errh2o = 0. !accumulation of water balance error!*************************************************************************! subgrid patch version of atm model input!************************************************************************* clm(k)%forc_t = inf !atmospheric temperature (Kelvin) clm(k)%forc_u = inf !atmospheric wind speed in east direction (m/s) clm(k)%forc_v = inf !atmospheric wind speed in north direction (m/s) clm(k)%forc_q = inf !atmospheric specific humidity (kg/kg) clm(k)%forc_hgt = inf !atmospheric reference height (m) clm(k)%forc_hgt_u = inf !observational height of wind [m] (new) clm(k)%forc_hgt_t = inf !observational height of temperature [m] (new) clm(k)%forc_hgt_q = inf !observational height of humidity [m] (new) clm(k)%forc_pbot = inf !atmospheric pressure (Pa) clm(k)%forc_th = inf !atmospheric potential temperature (Kelvin) clm(k)%forc_vp = inf !atmospheric vapor pressure (Pa) clm(k)%forc_rho = inf !density (kg/m**3) clm(k)%forc_co2 = inf !atmospheric CO2 concentration (Pa) clm(k)%forc_o2 = inf !atmospheric O2 concentration (Pa) clm(k)%forc_lwrad = inf !downward infrared (longwave) radiation (W/m**2) clm(k)%forc_psrf = inf !surface pressure (Pa) clm(k)%forc_solad(1:numrad) = inf !direct beam radiation (vis=forc_sols , nir=forc_soll ) clm(k)%forc_solai(1:numrad) = inf !diffuse radiation (vis=forc_solsd, nir=forc_solld) clm(k)%forc_rain = inf !rain rate [mm/s] clm(k)%forc_snow = inf !snow rate [mm/s]!*************************************************************************! biogeophys!*************************************************************************! Surface solar radiation clm(k)%rssun = inf !sunlit stomatal resistance (s/m) clm(k)%rssha = inf !shaded stomatal resistance (s/m) clm(k)%psnsun = inf !sunlit leaf photosynthesis (umol CO2 /m**2/ s) clm(k)%psnsha = inf !shaded leaf photosynthesis (umol CO2 /m**2/ s) clm(k)%laisun = inf !sunlit leaf area clm(k)%laisha = inf !shaded leaf area clm(k)%ndvi = inf !Normalized Difference Vegetation Index clm(k)%sabg = inf !solar radiation absorbed by ground (W/m**2) clm(k)%sabv = inf !solar radiation absorbed by vegetation (W/m**2) clm(k)%fsa = inf !solar radiation absorbed (total) (W/m**2) clm(k)%fsr = inf !solar radiation reflected (W/m**2)! Surface energy fluxes clm(k)%taux = inf !wind stress: e-w (kg/m/s**2) clm(k)%tauy = inf !wind stress: n-s (kg/m/s**2) clm(k)%eflx_lwrad_out = inf !emitted infrared (longwave) radiation (W/m**2) clm(k)%eflx_lwrad_net = inf !net infrared (longwave) rad (W/m**2) [+ = to atm]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -