CCPP Scientific Documentation
v5.0.0
module_sf_noahmplsm.f90 File Reference

This file contains the NoahMP land surface model. More...

Data Types

type  module_sf_noahmplsm::noahmp_parameters
 

Modules

module  module_sf_noahmplsm
 

Functions/Subroutines

subroutine, public module_sf_noahmplsm::noahmp_sflx (parameters, iloc , jloc , lat , yearlen, julian , cosz , dt , dx , dz8w , nsoil , zsoil , nsnow , shdfac , shdmax , vegtyp , ice , ist , smceq , sfctmp , sfcprs , psfc , uu , vv , q2 , qc , soldn , lwdn , prcpconv, prcpnonc, prcpshcv, prcpsnow, prcpgrpl, prcphail, tbot , co2air , o2air , foln , ficeold, zlvl , albold , sneqvo , stc , sh2o , smc , tah , eah , fwet , canliq , canice , tv , tg , qsfc , qsnow , isnow , zsnso , snowh , sneqv , snice , snliq , zwt , wa , wt , wslake , lfmass , rtmass , stmass , wood , stblcp , fastcp , lai , sai , cm , ch , tauss , smcwtd ,deeprech, rech , z0wrf , fsa , fsr , fira , fsh , ssoil , fcev , fgev , fctr , ecan , etran , edir , trad , tgb , tgv , t2mv , t2mb , q2v , q2b , runsrf , runsub , apar , psn , sav , sag , fsno , nee , gpp , npp , fveg , albedo , qsnbot , ponding, ponding1, ponding2, rssun , rssha , bgap , wgap , chv , chb , emissi , shg , shc , shb , evg , evb , ghv , ghb , irg , irc , irb , tr , evc , chleaf , chuc , chv2 , chb2 , fpice , pahv , ifdef CCPP
 
subroutine, private module_sf_noahmplsm::atm (parameters, sfcprs,sfctmp ,q2 , prcpconv, prcpnonc, prcpshcv, prcpsnow, prcpgrpl, prcphail, soldn ,cosz ,thair ,qair , eair ,rhoair ,qprecc,qprecl,solad , solai , swdown,bdfall ,rain ,snow ,fp , fpice ,prcp)
 re-process atmospheric forcing More...
 
subroutine, private module_sf_noahmplsm::phenology (parameters, vegtyp, snowh, tv , lat , yearlen, julian, lai , sai , troot, elai , esai , igs)
 vegetation phenology considering vegeation canopy being buries by snow and evolution in time More...
 
subroutine, private module_sf_noahmplsm::precip_heat (parameters, iloc ,jloc ,vegtyp, dt ,uu ,vv , elai ,esai ,fveg ,ist , bdfall, rain ,snow ,fp , canliq, canice, tv ,sfctmp, tg , qintr,qdripr, qthror, qints,qdrips, qthros, pahv ,pahg ,pahb ,qrain,qsnow,snowhin, fwet ,cmc )
 
subroutine, private module_sf_noahmplsm::error (parameters, swdown,fsa ,fsr ,fira ,fsh ,fcev , fgev ,fctr ,ssoil ,beg_wb,canliq,canice, sneqv ,wa ,smc ,dzsnso,prcp ,ecan , etran ,edir ,runsrf,runsub,dt ,nsoil , nsnow ,ist ,errwat, iloc ,jloc ,fveg , sav ,sag ,fsrv ,fsrg ,zwt ,pah , ifdef CCPP
 check surface energy balance and water balance More...
 
subroutine, private module_sf_noahmplsm::energy (parameters, ice ,vegtyp,ist ,nsnow ,nsoil , isnow ,dt ,rhoair,sfcprs,qair , sfctmp,thair ,lwdn ,uu ,vv ,zref , co2air,o2air ,solad ,solai ,cosz ,igs , eair ,tbot ,zsnso ,zsoil , elai ,esai ,fwet ,foln , fveg ,pahv ,pahg ,pahb , qsnow ,dzsnso,lat ,canliq,canice,iloc , jloc, z0wrf , imelt ,snicev,snliqv,epore ,t2m ,fsno , sav ,sag ,qmelt ,fsa ,fsr ,taux , tauy ,fira ,fsh ,fcev ,fgev ,fctr , trad ,psn ,apar ,ssoil ,btrani,btran , ponding, ts ,latheav, latheag, frozen_canopy, frozen_ground, tv ,tg ,stc ,snowh ,eah ,tah , sneqvo,sneqv ,sh2o ,smc ,snice ,snliq , albold,cm ,ch ,dx ,dz8w ,q2 , ifdef CCPP
 we use different approaches to deal with subgrid features of radiation transfer and turbulent transfer. we use 'tile' approach to compute turbulent fluxes, while we use modified two- stream to compute radiation transfer. tile approach, assemblying vegetation canopies together, may expose too much ground surfaces (either covered by snow or grass) to solar radiation. the modified two-stream assumes vegetation covers fully the gridcell but with gaps between tree crowns. More...
 
subroutine, private module_sf_noahmplsm::thermoprop (parameters, nsoil ,nsnow ,isnow ,ist ,dzsnso, dt ,snowh ,snice ,snliq , smc ,sh2o ,tg ,stc ,ur , lat ,z0m ,zlvl ,vegtyp, df ,hcpct ,snicev,snliqv,epore , fact )
 
subroutine, private module_sf_noahmplsm::csnow (parameters, isnow ,nsnow ,nsoil ,snice ,snliq ,dzsnso, tksno ,cvsno ,snicev,snliqv,epore )
 
subroutine, private module_sf_noahmplsm::tdfcnd (parameters, df, smc, sh2o)
 
subroutine, private module_sf_noahmplsm::radiation (parameters, vegtyp,ist ,ice ,nsoil , sneqvo,sneqv ,dt ,cosz ,snowh , tg ,tv ,fsno ,qsnow ,fwet , elai ,esai ,smc ,solad ,solai , fveg ,iloc ,jloc , albold,tauss , fsun ,laisun,laisha,parsun,parsha, sav ,sag ,fsr ,fsa ,fsrv , fsrg ,bgap ,wgap)
 
subroutine, private module_sf_noahmplsm::albedo (parameters, vegtyp, ist ,ice ,nsoil, dt ,cosz ,fage ,elai ,esai , tg ,tv ,snowh,fsno ,fwet , smc ,sneqvo, sneqv,qsnow,fveg , iloc ,jloc , albold, tauss , albgrd, albgri, albd ,albi ,fabd , fabi ,ftdd ,ftid ,ftii ,fsun , frevi,frevd,fregd,fregi,bgap , wgap)
 
subroutine, private module_sf_noahmplsm::surrad (parameters, mpe ,fsun ,fsha ,elai ,vai , laisun,laisha,solad ,solai ,fabd , fabi ,ftdd ,ftid ,ftii ,albgrd, albgri,albd ,albi ,iloc ,jloc , parsun,parsha,sav ,sag ,fsa , fsr , frevi ,frevd ,fregd ,fregi ,fsrv , fsrg)
 
subroutine, private module_sf_noahmplsm::snow_age (parameters, dt, tg, sneqvo, sneqv, tauss, fage)
 
subroutine, private module_sf_noahmplsm::snowalb_bats (parameters, nband, fsno, cosz, fage, albsnd, albsni)
 
subroutine, private module_sf_noahmplsm::snowalb_class (parameters, nband, qsnow, dt, alb, albold, albsnd, albsni, iloc, jloc)
 
subroutine, private module_sf_noahmplsm::groundalb (parameters, nsoil ,nband ,ice ,ist , fsno ,smc ,albsnd,albsni,cosz , tg ,iloc ,jloc , albgrd,albgri)
 
subroutine, private module_sf_noahmplsm::twostream (parameters, ib ,ic ,vegtyp,cosz ,vai , fwet ,t ,albgrd,albgri,rho , tau ,fveg ,ist ,iloc ,jloc , fab ,fre ,ftd ,fti ,gdir , frev ,freg ,bgap ,wgap)
 
subroutine, private module_sf_noahmplsm::vege_flux (parameters, nsnow ,nsoil ,isnow ,vegtyp ,veg , dt ,sav ,sag ,lwdn ,ur , uu ,vv ,sfctmp ,thair ,qair , eair ,rhoair ,snowh ,vai ,gammav ,gammag, fwet ,laisun ,laisha ,cwp ,dzsnso , zlvl ,zpd ,z0m ,fveg , z0mg ,emv ,emg ,canliq ,fsno, canice ,stc ,df ,rssun ,rssha , rsurf ,latheav,latheag ,parsun ,parsha ,igs , foln ,co2air ,o2air ,btran ,sfcprs , rhsur ,iloc ,jloc ,q2 ,pahv ,pahg , eah ,tah ,tv ,tg ,cm , ifdef CCPP
 
subroutine, private module_sf_noahmplsm::bare_flux (parameters, nsnow ,nsoil ,isnow ,dt ,sag , lwdn ,ur ,uu ,vv ,sfctmp , thair ,qair ,eair ,rhoair ,snowh , dzsnso ,zlvl ,zpd ,z0m ,fsno , emg ,stc ,df ,rsurf ,lathea , gamma ,rhsur ,iloc ,jloc ,q2 ,pahb , ifdef CCPP
 
subroutine, private module_sf_noahmplsm::ragrb (parameters, iter ,vai ,rhoair, hg ,tah , zpd ,z0mg ,z0hg ,hcan ,uc , z0h ,fv ,cwp ,vegtyp, mpe , tv ,mozg ,fhg ,iloc ,jloc , ramg ,rahg ,rawg ,rb )
 
subroutine, private module_sf_noahmplsm::sfcdif1 (parameters, iter ,sfctmp,rhoair,h ,qair , zlvl ,zpd ,z0m ,z0h ,ur , mpe ,iloc ,jloc , ifdef CCPP
 
subroutine, private module_sf_noahmplsm::sfcdif2 (parameters, iter ,z0 ,thz0 ,thlm ,sfcspd, zlm ,iloc ,jloc , akms ,akhs ,rlmo ,wstar2, ustar)
 
subroutine, private module_sf_noahmplsm::esat (t, esw, esi, desw, desi)
 
subroutine, private module_sf_noahmplsm::stomata (parameters, vegtyp,mpe ,apar ,foln ,iloc , jloc, tv ,ei ,ea ,sfctmp,sfcprs, o2 ,co2 ,igs ,btran ,rb , rs ,psn )
 
subroutine, private module_sf_noahmplsm::canres (parameters, par ,sfctmp, rcsoil, eah ,sfcprs, rc ,psn ,iloc ,jloc)
 
subroutine module_sf_noahmplsm::calhum (parameters, sfctmp, sfcprs, q2sat, dqsdt2)
 
subroutine, private module_sf_noahmplsm::tsnosoi (parameters, ice ,nsoil ,nsnow ,isnow ,ist , tbot ,zsnso ,ssoil ,df ,hcpct , sag ,dt ,snowh ,dzsnso , tg ,iloc ,jloc , ifdef CCPP
 
subroutine, private module_sf_noahmplsm::hrt (parameters, nsnow ,nsoil ,isnow ,zsnso , stc ,tbot ,zbot ,dt , df ,hcpct ,ssoil ,phi , ai ,bi ,ci ,rhsts , botflx )
 
subroutine, private module_sf_noahmplsm::hstep (parameters, nsnow ,nsoil ,isnow ,dt , ai ,bi ,ci ,rhsts , stc )
 
subroutine, private module_sf_noahmplsm::rosr12 (p, a, b, c, d, delta, ntop, nsoil, nsnow)
 
subroutine, private module_sf_noahmplsm::phasechange (parameters, nsnow ,nsoil ,isnow ,dt ,fact , dzsnso ,hcpct ,ist ,iloc ,jloc , stc ,snice ,snliq ,sneqv ,snowh , ifdef CCPP
 
subroutine, private module_sf_noahmplsm::frh2o (parameters, free, tkelv, smc, sh2o, ifdef CCPP
 
subroutine, private module_sf_noahmplsm::water (parameters, vegtyp, nsnow,nsoil,imelt,dt ,uu , vv ,fcev ,fctr ,qprecc, qprecl, elai , esai ,sfctmp, qvap ,qdew ,zsoil,btrani, ficeold, ponding, tg ,ist ,fveg ,iloc ,jloc, smceq, bdfall, fp ,rain ,snow, qsnow,qrain,snowhin, latheav, latheag, frozen_canopy, frozen_ground, isnow,canliq, canice, tv ,snowh,sneqv, snice,snliq,stc ,zsnso,sh2o ,smc , sice ,zwt ,wa ,wt ,dzsnso, wslake, smcwtd, deeprech, rech , cmc ,ecan ,etran,fwet ,runsrf, runsub, qin ,qdis ,ponding1 ,ponding2, qsnbot, esnow)
 
subroutine, private module_sf_noahmplsm::canwater (parameters, vegtyp, dt , fcev ,fctr ,elai , esai ,tg ,fveg ,iloc , jloc, bdfall, frozen_canopy, canliq, canice, tv , cmc ,ecan ,etran, fwet )
 
subroutine, private module_sf_noahmplsm::snowwater (parameters, nsnow,nsoil,imelt,dt ,zsoil, sfctmp, snowhin, qsnow,qsnfro, qsnsub, qrain,ficeold, iloc ,jloc , isnow,snowh,sneqv,snice,snliq, sh2o ,sice ,stc ,zsnso,dzsnso, qsnbot, snoflow, ponding1 ,ponding2)
 
subroutine, private module_sf_noahmplsm::snowfall (parameters, nsoil,nsnow,dt ,qsnow,snowhin, sfctmp, iloc ,jloc , isnow,snowh,dzsnso, stc ,snice , snliq,sneqv)
 
subroutine, private module_sf_noahmplsm::combine (parameters, nsnow,nsoil,iloc ,jloc , isnow,sh2o ,stc ,snice,snliq, dzsnso, sice ,snowh,sneqv, ponding1 ,ponding2)
 
subroutine, private module_sf_noahmplsm::divide (parameters, nsnow,nsoil, isnow,stc ,snice,snliq,dzsnso)
 
subroutine, private module_sf_noahmplsm::combo (parameters, dz, wliq, wice, t, dz2, wliq2, wice2, t2)
 
subroutine, private module_sf_noahmplsm::compact (parameters, nsnow,nsoil,dt ,stc ,snice, snliq,zsoil,imelt,ficeold, iloc , jloc, isnow,dzsnso, zsnso)
 
subroutine, private module_sf_noahmplsm::snowh2o (parameters, nsnow,nsoil,dt ,qsnfro, qsnsub, qrain,iloc ,jloc , isnow,dzsnso, snowh,sneqv,snice, snliq,sh2o ,sice ,stc , qsnbot, ponding1 ,ponding2)
 
subroutine, private module_sf_noahmplsm::soilwater (parameters, nsoil,nsnow,dt ,zsoil,dzsnso, qinsur, qseva,etrani, sice ,iloc , jloc, sh2o ,smc ,zwt ,vegtyp, smcwtd, deeprech , runsrf, qdrain, runsub, wcnd ,fcrmax)
 
subroutine, private module_sf_noahmplsm::zwteq (parameters, nsoil,nsnow,zsoil,dzsnso, sh2o ,zwt)
 
subroutine, private module_sf_noahmplsm::infil (parameters, nsoil,dt ,zsoil,sh2o ,sice , sicemax, qinsur, pddum,runsrf)
 
subroutine, private module_sf_noahmplsm::srt (parameters, nsoil,zsoil,dt ,pddum,etrani, qseva,sh2o ,smc ,zwt ,fcr , sicemax, fcrmax, iloc ,jloc ,smcwtd, rhstt,ai ,bi ,ci ,qdrain, wcnd )
 
subroutine, private module_sf_noahmplsm::sstep (parameters, nsoil,nsnow,dt ,zsoil,dzsnso, sice ,iloc ,jloc ,zwt , sh2o ,smc ,ai ,bi ,ci , rhstt,smcwtd, qdrain, deeprech, wplus)
 
subroutine, private module_sf_noahmplsm::wdfcnd1 (parameters, wdf, wcnd, smc, fcr)
 
subroutine, private module_sf_noahmplsm::wdfcnd2 (parameters, wdf, wcnd, smc, sice)
 
subroutine, private module_sf_noahmplsm::groundwater (parameters, nsnow,nsoil,dt ,sice ,zsoil, stc ,wcnd ,fcrmax, iloc ,jloc , sh2o ,zwt ,wa ,wt , qin ,qdis )
 
subroutine, private module_sf_noahmplsm::shallowwatertable (parameters, nsnow,nsoil,zsoil, dt , dzsnso, smceq, iloc ,jloc , smc ,wtd ,smcwtd, rech, qdrain)
 diagnoses water table depth and computes recharge when the water table is within the resolved soil layers, according to the miguez-macho&fan scheme More...
 
subroutine, private module_sf_noahmplsm::carbon (parameters, nsnow,nsoil,vegtyp, dt ,zsoil, dzsnso, stc ,smc ,tv ,tg ,psn , foln ,btran,apar ,fveg ,igs , troot,ist ,lat ,iloc ,jloc , lfmass, rtmass, stmass, wood ,stblcp, fastcp, gpp ,npp ,nee ,autors, heters, totsc, totlb,xlai ,xsai )
 
subroutine, private module_sf_noahmplsm::co2flux (parameters, nsnow,nsoil,vegtyp, igs ,dt , dzsnso, stc ,psn ,troot,tv , wroot,wstres, foln ,lapm , lat ,iloc ,jloc ,fveg , xlai ,xsai ,lfmass, rtmass, stmass, fastcp, stblcp, wood , gpp ,npp ,nee ,autors, heters, totsc,totlb)
 
subroutine, public module_sf_noahmplsm::noahmp_options (idveg ,iopt_crs,iopt_btr,iopt_run,iopt_sfc,iopt_frz, iopt_inf,iopt_rad,iopt_alb,iopt_snf,iopt_tbot, iopt_stc)
 

Variables

integer module_sf_noahmplsm::dveg
 options for dynamic vegetation: More...
 
integer module_sf_noahmplsm::opt_crs
 options for canopy stomatal resistance More...
 
integer module_sf_noahmplsm::opt_btr
 options for soil moisture factor for stomatal resistance More...
 
integer module_sf_noahmplsm::opt_run
 options for runoff and groundwater More...
 
integer module_sf_noahmplsm::opt_sfc
 options for surface layer drag coeff (ch & cm) More...
 
integer module_sf_noahmplsm::opt_frz
 options for supercooled liquid water (or ice fraction) More...
 
integer module_sf_noahmplsm::opt_inf
 options for frozen soil permeability More...
 
integer module_sf_noahmplsm::opt_rad
 options for radiation transfer More...
 
integer module_sf_noahmplsm::opt_alb
 options for ground snow surface albedo More...
 
integer module_sf_noahmplsm::opt_snf
 options for partitioning precipitation into rainfall & snowfall More...
 
integer module_sf_noahmplsm::opt_tbot
 options for lower boundary condition of soil temperature More...
 
integer module_sf_noahmplsm::opt_stc
 options for snow/soil temperature time scheme (only layer 1) More...
 
real, parameter module_sf_noahmplsm::grav = 9.80616
 acceleration due to gravity (m/s2) More...
 
real, parameter module_sf_noahmplsm::sb = 5.67e-08
 stefan-boltzmann constant (w/m2/k4) More...
 
real, parameter module_sf_noahmplsm::vkc = 0.40
 von karman constant More...
 
real, parameter module_sf_noahmplsm::tfrz = 273.16
 freezing/melting point (k) More...
 
real, parameter module_sf_noahmplsm::hsub = 2.8440e06
 latent heat of sublimation (j/kg) More...
 
real, parameter module_sf_noahmplsm::hvap = 2.5104e06
 latent heat of vaporization (j/kg) More...
 
real, parameter module_sf_noahmplsm::hfus = 0.3336e06
 latent heat of fusion (j/kg) More...
 
real, parameter module_sf_noahmplsm::cwat = 4.188e06
 specific heat capacity of water (j/m3/k) More...
 
real, parameter module_sf_noahmplsm::cice = 2.094e06
 specific heat capacity of ice (j/m3/k) More...
 
real, parameter module_sf_noahmplsm::cpair = 1004.64
 heat capacity dry air at const pres (j/kg/k) More...
 
real, parameter module_sf_noahmplsm::tkwat = 0.6
 thermal conductivity of water (w/m/k) More...
 
real, parameter module_sf_noahmplsm::tkice = 2.2
 thermal conductivity of ice (w/m/k) More...
 
real, parameter module_sf_noahmplsm::tkair = 0.023
 thermal conductivity of air (w/m/k) (not used mb: 20140718) More...
 
real, parameter module_sf_noahmplsm::rair = 287.04
 gas constant for dry air (j/kg/k) More...
 
real, parameter module_sf_noahmplsm::rw = 461.269
 gas constant for water vapor (j/kg/k) More...
 
real, parameter module_sf_noahmplsm::denh2o = 1000.
 density of water (kg/m3) More...
 
real, parameter module_sf_noahmplsm::denice = 917.
 density of ice (kg/m3) More...
 
integer, parameter, private module_sf_noahmplsm::mband = 2