Skip to content

Commit

Permalink
Sync with NoahMP Github version with all NoahMP updates since v4.3 (#…
Browse files Browse the repository at this point in the history
…1641)

TYPE: new feature

KEYWORDS: NoahMP

SOURCE: Cenlin He (NCAR)

DESCRIPTION OF CHANGES:
This is step one to synchronize with latest NoahMP Github code version in order to prepare for connecting WRF directly to NoahMP unified Github repo. 

Specifically, the updates in NoahMP since version 4.3:
1. three additional runoff schemes added (OPT_RUN=6, 7, 8)
2. new tile drainage capability/scheme added (OPT_TDRN)
3. New soil time step control capability added to allow users specify a different soil time step from main 
NoahMP time step
4. additional water and energy budget terms added for output and diagnosis
5. updated flood irrigation parameters
6. add constraints for snow thickness during compaction
7. updated snow viscosity coefficient in compaction process
8. add canopy heat storage in canopy temperature calculation
9. updated formulation and parameter values for TOPMODEL groundwater scheme (OPT_RUN=1)
10. Bug fixes: SWE cap value in initialization, NoahMP snow depth update, snow layer index update, floating 
issues in runoff scheme, and BATS albedo scheme

LIST OF MODIFIED FILES: list of changed files (use `git diff --name-status master` to get formatted list)
M       Registry/Registry.EM_COMMON
M       Registry/registry.noahmp
M       dyn_em/module_first_rk_step_part1.F
M       dyn_em/start_em.F
M       phys/module_diag_misc.F
M       phys/module_diagnostics_driver.F
M       phys/module_physics_init.F
M       phys/module_sf_noahmp_glacier.F
M       phys/module_sf_noahmp_groundwater.F
M       phys/module_sf_noahmpdrv.F
M       phys/module_sf_noahmplsm.F
M       phys/module_surface_driver.F
M       run/MPTABLE.TBL
M       run/README.namelist
M       run/SOILPARM.TBL

TESTS CONDUCTED: 
1. successfully compiled and tested for running in NCAR supercomputer by Cenlin He (NCAR)
2. Jenkins tests are all pass.

RELEASE NOTE: Updates from NoahMP and linking WRF directly to NoahMP Github repo.
  • Loading branch information
cenlinhe authored Jan 17, 2022
1 parent 7b642cc commit a82ce24
Show file tree
Hide file tree
Showing 15 changed files with 3,593 additions and 1,309 deletions.
16 changes: 12 additions & 4 deletions Registry/Registry.EM_COMMON
Original file line number Diff line number Diff line change
Expand Up @@ -825,6 +825,9 @@ state real SMSTOT ij misc 1 - r
state real SOLDRAIN ij misc 1 - r "SOLDRAIN" "soil column drainage" "mm"
state real SFCHEADRT ij misc 1 - r "SFCHEADRT" "surface water depth" "mm"
state real INFXSRT ij misc 1 - r "INFXSRT" "time step infiltration excess" "mm"
state real qtiledrain ij misc 1 - r "qtiledrain" "accumulated tile drainage" "mm"
state real ZWATBLE2D ij misc 1 - r "ZWATBLE2D" "water table depth for tile drainage" "mm"

state real SFCRUNOFF ij misc 1 - rhd=(interp_mask_field:lu_index,iswater) "SFROFF" "SURFACE RUNOFF" "mm"
state real UDRUNOFF ij misc 1 - rhd=(interp_mask_field:lu_index,iswater) "UDROFF" "UNDERGROUND RUNOFF" "mm"
state integer IVGTYP ij misc 1 - i02rhd=(interp_fcni)u=(copy_fcni) "IVGTYP" "DOMINANT VEGETATION CATEGORY" ""
Expand Down Expand Up @@ -2615,7 +2618,7 @@ rconfig integer madwrf_cldinit namelist,physics 1
rconfig integer dveg namelist,noah_mp 1 4 h "dveg" "dynamic vegetation (1 -> off ; 2 -> on)" ""
rconfig integer opt_crs namelist,noah_mp 1 1 h "opt_crs" "canopy stomatal resistance (1-> Ball-Berry; 2->Jarvis)" ""
rconfig integer opt_btr namelist,noah_mp 1 1 h "opt_btr" "soil moisture factor for stomatal resistance (1-> Noah; 2-> CLM; 3-> SSiB)" ""
rconfig integer opt_run namelist,noah_mp 1 3 h "opt_run" "runoff and groundwater (1->SIMGM; 2->SIMTOP; 3->Schaake96; 4->BATS; 5->Miguez-Macho & Fan)" ""
rconfig integer opt_run namelist,noah_mp 1 3 h "opt_run" "runoff and groundwater (1->SIMGM; 2->SIMTOP; 3->Schaake96; 4->BATS; 5->Miguez-Macho & Fan; 6->VIC; 7->Xiananjiang; 8->Dynamic VIC)" ""
rconfig integer opt_sfc namelist,noah_mp 1 1 h "opt_sfc" "surface layer drag coeff (CH & CM) (1->M-O; 2->Chen97)" ""
rconfig integer opt_frz namelist,noah_mp 1 1 h "opt_frz" "supercooled liquid water (1-> NY06; 2->Koren99)" ""
rconfig integer opt_inf namelist,noah_mp 1 1 h "opt_inf" "frozen soil permeability (1-> NY06; 2->Koren99)" ""
Expand All @@ -2631,7 +2634,12 @@ rconfig integer opt_pedo namelist,noah_mp 1 1 h "
rconfig integer opt_crop namelist,noah_mp 1 0 h "opt_crop" "crop model option" ""
rconfig integer opt_irr namelist,noah_mp 1 0 h "opt_irr" "Noah-MP irrigation option" ""
rconfig integer opt_irrm namelist,noah_mp 1 0 h "opt_irrm" "Noah-MP irrigation method option" ""
rconfig real WTDDT namelist,physics max_domains 30. h "wtddt" "minutes between calls to lateral hydro" ""
rconfig integer opt_infdv namelist,noah_mp 1 0 h "opt_infdv" "Noah-MP infiltration option in dynamic VIC runoff scheme (only works with opt_run=8), 1->Philip; 2->Green-Ampt; 3->Smith-Parlange"
rconfig integer opt_tdrn namelist,noah_mp 1 0 h "opt_tdrn" "NoahMP tile drainage option (currently only tested & works with opt_run=3), 0->no tile drainage; 1->Simple drainage; 2->Hooghoudt scheme"
rconfig real soiltstep namelist,noah_mp 1 0. h "soiltstep" "NoahMP soil process timestep (s) for solving soil temperature and water (default:0->same as main noahmp timestep)"
rconfig real WTDDT namelist,physics max_domains 30. h "wtddt" "minutes between calls to lateral hydro" ""
rconfig real noahmp_acc_dt namelist,noah_mp 1 0. h "noahmp_acc_dt" "bucket reset time interval between outputs for noah-mp accumulation" "minutes"
rconfig integer noahmp_output namelist,noah_mp 1 1 h "noahmp_output" "noahmp output level" ""

# For WRF Hydro
rconfig integer wrf_hydro derived 1 0 h "wrf_hydro" "descrip" "unit"
Expand Down Expand Up @@ -3065,7 +3073,7 @@ package slabscheme sf_surface_physics==1 - -
package lsmscheme sf_surface_physics==2 - state:flx4,fvb,fbur,fgsn,smcrel,xlaidyn
package ruclsmscheme sf_surface_physics==3 - state:smfr3d,keepfr3dflag,soilt1,rhosnf,snowfallac,precipfr,acrunoff
package clmscheme sf_surface_physics==5 - state:numc,nump,sabv,sabg,lwup,lhsoi,lhveg,lhtran,snl,snowdp,wtc,wtp,h2osno,t_grnd,t_veg,h2ocan,h2ocan_col,t2m_max,t2m_min,t2clm,t_ref2m,q_ref2m,h2osoi_liq_s1,h2osoi_liq_s2,h2osoi_liq_s3,h2osoi_liq_s4,h2osoi_liq_s5,h2osoi_liq1,h2osoi_liq2,h2osoi_liq3,h2osoi_liq4,h2osoi_liq5,h2osoi_liq6,h2osoi_liq7,h2osoi_liq8,h2osoi_liq9,h2osoi_liq10,h2osoi_ice_s1,h2osoi_ice_s2,h2osoi_ice_s3,h2osoi_ice_s4,h2osoi_ice_s5,h2osoi_ice1,h2osoi_ice2,h2osoi_ice3,h2osoi_ice4,h2osoi_ice5,h2osoi_ice6,h2osoi_ice7,h2osoi_ice8,h2osoi_ice9,h2osoi_ice10,t_soisno_s1,t_soisno_s2,t_soisno_s3,t_soisno_s4,t_soisno_s5,t_soisno1,t_soisno2,t_soisno3,t_soisno4,t_soisno5,t_soisno6,t_soisno7,t_soisno8,t_soisno9,t_soisno10,dzsnow1,dzsnow2,dzsnow3,dzsnow4,dzsnow5,snowrds1,snowrds2,snowrds3,snowrds4,snowrds5,t_lake1,t_lake2,t_lake3,t_lake4,t_lake5,t_lake6,t_lake7,t_lake8,t_lake9,t_lake10,h2osoi_vol1,h2osoi_vol2,h2osoi_vol3,h2osoi_vol4,h2osoi_vol5,h2osoi_vol6,h2osoi_vol7,h2osoi_vol8,h2osoi_vol9,h2osoi_vol10,albedosubgrid,lhsubgrid,hfxsubgrid,lwupsubgrid,q2subgrid,sabvsubgrid,sabgsubgrid,nrasubgrid,swupsubgrid,t_veg24,t_veg240,fsun,fsun24,fsun240,fsd24,fsd240,fsi24,fsi240,laip,pct_pft_input
package noahmpscheme sf_surface_physics==4 - state:isnowxy,tvxy,tgxy,canliqxy,canicexy,eahxy,tahxy,cmxy,chxy,fwetxy,sneqvoxy,alboldxy,qsnowxy,qrainxy,wslakexy,zwtxy,waxy,wtxy,tsnoxy,zsnsoxy,snicexy,snliqxy,lfmassxy,rtmassxy,stmassxy,woodxy,stblcpxy,fastcpxy,xsaixy,taussxy,t2mvxy,t2mbxy,q2mvxy,q2mbxy,tradxy,neexy,gppxy,nppxy,fvegxy,qinxy,runsfxy,runsbxy,ecanxy,edirxy,etranxy,fsaxy,firaxy,aparxy,psnxy,savxy,sagxy,rssunxy,rsshaxy,bgapxy,wgapxy,tgvxy,tgbxy,chvxy,chbxy,shgxy,shcxy,shbxy,evgxy,evbxy,ghvxy,ghbxy,irgxy,ircxy,irbxy,trxy,evcxy,chleafxy,chucxy,chv2xy,chb2xy,chstarxy,smoiseq,smcwtdxy,rechxy,deeprechxy,fdepthxy,areaxy,rivercondxy,riverbedxy,eqzwt,pexpxy,qrfxy,qrfsxy,qspringxy,qspringsxy,qslatxy,stepwtd,rechclim,gddxy,grainxy,croptype,planting,harvest,season_gdd,cropcat,pgsxy,soilcomp,soilcl1,soilcl2,soilcl3,soilcl4,irfract,sifract,mifract,fifract,irnumsi,irnummi,irnumfi,irwatsi,irwatmi,irwatfi,irsivol,irmivol,irfivol,ireloss,irrsplh
package noahmpscheme sf_surface_physics==4 - state:isnowxy,tvxy,tgxy,canliqxy,canicexy,eahxy,tahxy,cmxy,chxy,fwetxy,sneqvoxy,alboldxy,qsnowxy,qrainxy,wslakexy,zwtxy,waxy,wtxy,tsnoxy,zsnsoxy,snicexy,snliqxy,lfmassxy,rtmassxy,stmassxy,woodxy,stblcpxy,fastcpxy,xsaixy,taussxy,t2mvxy,t2mbxy,q2mvxy,q2mbxy,tradxy,neexy,gppxy,nppxy,fvegxy,qinxy,runsfxy,runsbxy,ecanxy,edirxy,etranxy,fsaxy,firaxy,aparxy,psnxy,savxy,sagxy,rssunxy,rsshaxy,bgapxy,wgapxy,tgvxy,tgbxy,chvxy,chbxy,shgxy,shcxy,shbxy,evgxy,evbxy,ghvxy,ghbxy,irgxy,ircxy,irbxy,trxy,evcxy,chleafxy,chucxy,chv2xy,chb2xy,chstarxy,smoiseq,smcwtdxy,rechxy,deeprechxy,fdepthxy,areaxy,rivercondxy,riverbedxy,eqzwt,pexpxy,qrfxy,qrfsxy,qspringxy,qspringsxy,qslatxy,stepwtd,rechclim,gddxy,grainxy,croptype,planting,harvest,season_gdd,cropcat,pgsxy,soilcomp,soilcl1,soilcl2,soilcl3,soilcl4,irfract,sifract,mifract,fifract,irnumsi,irnummi,irnumfi,irwatsi,irwatmi,irwatfi,irsivol,irmivol,irfivol,ireloss,irrsplh,td_fraction,qtdrain,acrech,acqspring,qlatxy,qintsxy,qintrxy,qdripsxy,qdriprxy,qthrosxy,qthrorxy,qsnsubxy,qsnfroxy,qsubcxy,qfrocxy,qevacxy,qdewcxy,qfrzcxy,qmeltcxy,qsnbotxy,pondingxy,pahxy,pahgxy,pahvxy,pahbxy,fpicexy,rainlsm,snowlsm,acints,acintr,acdripr,acthror,acevac,acdewc,forctlsm,forcqlsm,forcplsm,forczlsm,forcwlsm,acrainlsm,acrunsb,acrunsf,acecan,acetran,acedir,acqlat,acqrf,acetlsm,acsnowlsm,acsubc,acfroc,acfrzc,acmeltc,acsnbot,acponding,acsnsub,acsnfro,acrainsnow,acdrips,acthros,acsagb,acirb,acshb,acevb,acghb,acpahb,acsagv,acirg,acshg,acevg,acghv,acpahg,acsav,acirc,acshc,acevc,actr,acpahv,acswdnlsm,acswuplsm,aclwdnlsm,aclwuplsm,acshflsm,aclhflsm,acghflsm,acpahlsm,accanhs,canhsxy,soilenergy,snowenergy,acc_ssoil,acc_qinsur,acc_qseva,acc_etrani,aceflxb,eflxbxy,acc_dwaterxy,acc_prcpxy,acc_ecanxy,acc_etranxy,acc_edirxy
package ctsmscheme sf_surface_physics==6 - -
package pxlsmscheme sf_surface_physics==7 - state:t2_ndg_new,q2_ndg_new,t2_ndg_old,q2_ndg_old,t2obs,q2obs,vegf_px,imperv,canfra,lai_px,wwlt_px,wfc_px,wsat_px,clay_px,csand_px,fmsand_px
package ssibscheme sf_surface_physics==8 - state:ssib_fm,ssib_fh,ssib_cm,ssibxdd,ssib_br,ssib_lhf,ssib_shf,ssib_ghf,ssib_egs,ssib_eci,ssib_ect,ssib_egi,ssib_egt,ssib_sdn,ssib_sup,ssib_ldn,ssib_lup,ssib_wat,ssib_shc,ssib_shg,ssib_lai,ssib_vcf,ssib_z00,ssib_veg,isnow,swe,snowden,snowdepth,tkair,dzo1,wo1,tssn1,tssno1,bwo1,bto1,cto1,fio1,flo1,bio1,blo1,ho1,dzo2,wo2,tssn2,tssno2,bwo2,bto2,cto2,fio2,flo2,bio2,blo2,ho2,dzo3,wo3,tssn3,tssno3,bwo3,bto3,cto3,fio3,flo3,bio3,blo3,ho3,dzo4,wo4,tssn4,tssno4,bwo4,bto4,cto4,fio4,flo4,bio4,blo4,ho4
Expand Down Expand Up @@ -3294,7 +3302,7 @@ package io_netcdfpar io_form_restart==13 - -

#WRF Hydro
package no_wrfhydro wrf_hydro==0 - -
package wrfhydro wrf_hydro==1 - state:SOLDRAIN, SFCHEADRT, INFXSRT
package wrfhydro wrf_hydro==1 - state:SOLDRAIN,SFCHEADRT,INFXSRT,qtiledrain,ZWATBLE2D

#WRF Windfarm
package no_windfarm windfarm_opt==0 - -
Expand Down
Loading

0 comments on commit a82ce24

Please sign in to comment.