📄 clm_main.f90
字号:
SUBROUTINE clm_main ( kpt, ivt, msl, maxsnl, istep, dtime, dlat, & ! soil information csol, porsl, phi0, bsw, & dkmg, dksatu, dkdry, & hksati, & ! vegetation information z0m, displa, sqrtdi, & effcon, vmax25, slti, hlti, shti, hhti, & trda, trdm, trop, gradm, binter, extkn, & lai, sai, rootfr, & ! atmospheric forcing pco2m, po2m, us, vs, tm, qm, psrf, rhoair, & iptype, rainrate, snowrate, & hu, ht, hq, & ! main land surface variables needed for restart snl, dz, z, zi, & tss, tlsun, tlsha, ldew, wliq, wice, & sag, scv, snowdp, rootr, etrc, & tg, & ! fraction fveg,wt,fsno,sigf,ssw, & ! fluxes taux, tauy, & fsena, fevpa, lfevpa, fsenl, fevpl, etr, & fseng, fevpg, olrg, fgrnd, trad, tref, & rsur, rnof, rst, assim, respc, & ! net solar radiation cosz, frl, parsun, parsha, sabvsun, sabvsha, sabg, sabvg, & extkb, extkd, thermk, solisb, solisd, & ! energy balance error errore )!=======================================================================! Source file: clm_main.f90! Original version: Yongjiu Dai, September 15, 1999!! Main subroutine, advance time information!!======================================================================= USE PHYCON_MODULE ! physical constants IMPLICIT NONE ! ------------------------ Dummy Argument ------------------------------ integer, INTENT(in) :: & kpt, &! number of clm land points, including subgrid points msl, &! number of soil layers maxsnl, &! maximum number of snow layers istep ! number of time step real, INTENT(in) :: & dtime, &! model time step [second] dlat(kpt) ! latitude in radians integer, dimension(kpt), INTENT(in) :: & ivt ! land cover type! vegetation static, dynamic, derived parameters real, dimension(kpt), INTENT(in) :: & lai, &! leaf area index sai, &! stem area index z0m, &! aerodynamic roughness length [m] displa, &! displacement height [m] sqrtdi, &! inverse sqrt of leaf dimension [m**-0.5] effcon, &! quantum efficiency of RuBP regeneration (mol CO2 / mol quanta) vmax25, &! maximum carboxylation rate at 25 C at canopy top slti, &! slope of low temperature inhibition function (0.2) hlti, &! 1/2 point of low temperature inhibition function (288.16) shti, &! slope of high temperature inhibition function (0.3) hhti, &! 1/2 point of high temperature inhibition function (313.16) trda, &! temperature coefficient in gs-a model (1.3) trdm, &! temperature coefficient in gs-a model (328.16) trop, &! temperature coefficient in gs-a model (298.16) gradm, &! conductance-photosynthesis slope parameter binter, &! conductance-photosynthesis intercep extkn !! soil physical parameters real, dimension(1:msl,1:kpt), INTENT(in) :: & csol, &! heat capacity of soil solids [J/(m3 K)] porsl, &! fraction of soil that is voids [-] phi0, &! minimum soil suction [mm] bsw, &! clapp and hornbereger "b" parameter [-] dkmg, &! thermal conductivity of soil minerals [W/m-K] dksatu, &! thermal conductivity of saturated soil [W/m-K] dkdry, &! thermal conductivity for dry soil [J/(K s m)] hksati ! hydraulic conductivity at saturation [mm h2o/s] real, dimension(1 : msl, kpt), INTENT(in) :: & rootfr ! fraction of roots in each soil layer! ----------------------------------------------------------------------! Forcing real, dimension(kpt), INTENT(in) :: & pco2m, &! po2m, &! us, &! wind speed in eastward direction [m/s] vs, &! wind speed in northward direction [m/s] tm, &! temperature at agcm reference height [kelvin] qm, &! specific humidity at agcm reference height [kg/kg] rainrate, &! rain rate [mm/s] snowrate, &! snow rate [mm/s] psrf, &! atmosphere pressure at the surface [pa] rhoair, &! density air [kg/m3] hu, &! observational height of wind [m] ht, &! observational height of temperature [m] hq, &! observational height of humidity [m] cosz, &! cosine of solar zenith angle solisb, &! solisd, &! parsun, &! parsha, &! sabvsun, &! solar absorbed by sunlit vegetation [W/m2] sabvsha, &! solar absorbed by shaded vegetation [W/m2] sabg, &! solar absorbed by ground [W/m2] sabvg, &! solar absorbed by ground + vegetation [W/m2] frl, &! atmospheric infrared (longwave) radiation [W/m2] extkb, &! extkd, &! thermk ! integer, dimension(kpt), INTENT(in) :: & iptype ! precipitation type (from met data) 1= rain 2 =snow! Main variables needed for restart real, dimension(kpt), INTENT(in) :: & fveg, &! fraction of vegetation cover wt, &! fraction of vegetation buried (covered) by snow [-] fsno, &! fractional snow cover sigf ! fraction of veg cover, excluding snow-covered veg [-] integer, dimension(kpt), INTENT(inout) :: & snl ! number of snow layers real, dimension(maxsnl+1:msl, kpt), INTENT(inout) :: & z, &! layer depth (m) dz, &! layer thickness (m) tss, &! soil + snow layer temperature [K] wliq, &! liquid water (kg/m2) wice ! ice lens (kg/m2) real, dimension(maxsnl:msl, kpt), INTENT(inout) :: & zi ! interface level below a "z" level (m) real, dimension(kpt), INTENT(inout) :: & tlsun, &! sunlit leaf temperature [K] tlsha, &! shaded leaf temperature [K] ldew, &! depth of water on foliage [kg/m2/s] sag, &! non dimensional snow age [-] scv, &! snow mass (kg/m2) snowdp, &! snow depth (m) etrc ! maximum possible transpiration rate [mm/s] real, INTENT(inout) :: & tg(kpt) ! ground surface temperature [k] real, dimension(1:msl, kpt), INTENT(inout) :: & rootr ! root resistance of a layer, all layers add to 1.0! Fluxes real, dimension(kpt), INTENT(out) :: & taux, &! wind stress: E-W [kg/m/s**2] tauy, &! wind stress: N-S [kg/m/s**2] fsena, &! sensible heat from canopy height to atmosphere [W/m2] fevpa, &! evapotranspiration from canopy height to atmosphere [mm/s] lfevpa, &! latent heat flux from canopy height to atmosphere [W/2] fsenl, &! ensible heat from leaves [W/m2] fevpl, &! evaporation+transpiration from leaves [mm/s] etr, &! transpiration rate [mm/s] fseng, &! sensible heat flux from ground [W/m2] fevpg, &! evaporation heat flux from ground [mm/s] olrg, &! outgoing long-wave radiation from ground+canopy fgrnd, &! ground heat flux [W/m2] tref, &! 2 m height air temperature [K] trad, &! radiative temperature [K] rsur, &! surface runoff (mm h2o/s) rnof, &! total runoff (mm h2o/s) rst, &! assim, &! respc, &! errore ! energy balnce errore real, dimension(kpt), INTENT(out) :: & ssw ! water volumetric content of soil surface layer [m3/m3]!! ----------------------- Local Variables -----------------------------!! miscellaneous variables for local use integer & newnode(kpt), &! signification when new snow node is set, (1=yes, 0=non) imelt(maxsnl+1:msl, kpt) ! flag for melting (=1), freezing (=2), Not=0 real, dimension(maxsnl+1:msl, kpt) :: & fiold ! fraction of ice relative to the total water real, dimension(kpt) :: & scvold, &! snow cover for previous time step [mm] pg, &! water onto ground including canopy runoff [kg/(m2 s)] pg_snow, &! ice onto ground [kg/(m2 s)] pg_rain, &! liquid water onto ground [kg/(m2 s)] tti, &! direct throughfall [mm/s] etrrun, &! rate of canopy runoff and snow falling off canopy [mm/s] dz_snowf, &! layer thickness rate change due to precipitation [mm/s] flfall, &! fraction of liquid water within falling precip. bifall, &! bulk density of newly fallen dry snow [kg/m3] qseva, &! ground surface evaporation rate (mm h2o/s) qsdew, &! ground surface dew formation (mm h2o /s) [+] qsubl, &! sublimation rate from snow pack (mm h2o /s) [+] qfros, &! surface dew added to snow pack (mm h2o /s) [+] sm ! rate of snowmelt [kg/(m2 s)] integer i, j, k, &! do looping index lb, &! lower bound of arrays iub ! upper bound of array! ----------------------------------------------------------------------!! flow diagram for clm_main!! clm_main ===> leafdew! thermal ======================> thermalk! water =======> snowwater |oneleaf| ===> fractdew! soilwater |twoleaf| qsadv! lake tridia obuini! compact meltf obult! combin stomata! subdiv ! snowage ! fraction_cover ! !! ======================================================================! [1] Initial set
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -