diff --git a/CMakeLists.txt b/CMakeLists.txt index ad9e8a62ec..c3740bcf09 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -737,7 +737,7 @@ list( APPEND PROJECT_COMPILE_DEFINITIONS_OPTIONS # in code since cmake cannot handle basically any others :( # https://gitlab.kitware.com/cmake/cmake/-/issues/17398 if ( ${USE_DOUBLE} ) - list( APPEND PROJECT_COMPILE_DEFINITIONS_OPTIONS DOUBLE_PRECISION ) + list( APPEND PROJECT_COMPILE_DEFINITIONS_OPTIONS DOUBLE_PRECISION DOUBLE_PREC ) endif() if ( ${ENABLE_CHEM} ) list( APPEND PROJECT_COMPILE_DEFINITIONS_OPTIONS WRF_CHEM ) diff --git a/Makefile b/Makefile index 8373a325fe..6de91e2cef 100644 --- a/Makefile +++ b/Makefile @@ -108,11 +108,13 @@ framework_only : configcheck wrf : framework_only $(MAKE) MODULE_DIRS="$(ALL_MODULES)" physics - @if [ \( ! -f run/MPTABLE.TBL \) -o \ - \( ! -f phys/module_sf_noahmpdrv.F \) -o \ - \( ! -f phys/module_sf_noahmp_glacier.F \) -o \ - \( ! -f phys/module_sf_noahmp_groundwater.F \) -o \ - \( ! -f phys/module_sf_noahmplsm.F \) ] ; then \ + @if [ \( ! -f run/NoahmpTable.TBL \) -o \ + \( ! -f phys/noahmp/drivers/wrf/NoahmpWRFmainMod.F90 \) -o \ + \( ! -f phys/noahmp/drivers/wrf/NoahmpIOVarType.F90 \) -o \ + \( ! -f phys/noahmp/drivers/wrf/GroundWaterMmfMod.F90 \) -o \ + \( ! -f phys/noahmp/src/NoahmpMainMod.F90 \) -o \ + \( ! -f phys/noahmp/src/NoahmpVarType.F90 \) -o \ + \( ! -f phys/noahmp/drivers/wrf/NoahmpUrbanDriverMainMod.F90 \) ] ; then \ echo " " ; \ echo "------------------------------------------------------------------------------" ; \ echo "Error Error Error NoahMP submodule files not populating WRF directories" ; \ @@ -145,6 +147,7 @@ wrf : framework_only echo " " ; \ echo "------------------------------------------------------------------------------" ; \ echo "Error Error Error TEMPO submodule files not populating WRF directories" ; \ + fi @if [ \( ! -f phys/module_sf_mynnsfc_driver.F \) -o \ \( ! -f phys/module_sf_mynnsfc_land.F \) -o \ \( ! -f phys/module_sf_mynnsfc_water.F \) -o \ @@ -646,7 +649,10 @@ em_real : wrf ( cd test/em_esmf_exp ; /bin/rm -f URBPARM.TBL ; ln -s ../../run/URBPARM.TBL . ) ; \ ( cd test/em_esmf_exp ; /bin/rm -f URBPARM_LCZ.TBL ; ln -s ../../run/URBPARM_LCZ.TBL . ) ; \ ( cd test/em_esmf_exp ; /bin/rm -f VEGPARM.TBL ; ln -s ../../run/VEGPARM.TBL . ) ; \ - ( cd test/em_esmf_exp ; /bin/rm -f MPTABLE.TBL ; ln -s ../../run/MPTABLE.TBL . ) ; \ + ( cd test/em_esmf_exp ; /bin/rm -f NoahmpTable.TBL ; ln -s ../../run/NoahmpTable.TBL . ) ; \ + ( cd test/em_esmf_exp ; /bin/rm -f snicar_drdt_bst_fit_60_c070416.nc ; ln -s ../../run/snicar_drdt_bst_fit_60_c070416.nc . ) ; \ + ( cd test/em_esmf_exp ; /bin/rm -f snicar_optics_480bnd_c012422.nc ; ln -s ../../run/snicar_optics_480bnd_c012422.nc . ) ; \ + ( cd test/em_esmf_exp ; /bin/rm -f snicar_optics_5bnd_c013122.nc ; ln -s ../../run/snicar_optics_5bnd_c013122.nc . ) ; \ ( cd test/em_esmf_exp ; /bin/rm -f tr49t67 ; ln -s ../../run/tr49t67 . ) ; \ ( cd test/em_esmf_exp ; /bin/rm -f tr49t85 ; ln -s ../../run/tr49t85 . ) ; \ ( cd test/em_esmf_exp ; /bin/rm -f tr67t85 ; ln -s ../../run/tr67t85 . ) ; \ @@ -732,7 +738,10 @@ em_real : wrf ( cd test/em_real ; /bin/rm -f URBPARM.TBL ; ln -s ../../run/URBPARM.TBL . ) ( cd test/em_real ; /bin/rm -f URBPARM_LCZ.TBL ; ln -s ../../run/URBPARM_LCZ.TBL . ) ( cd test/em_real ; /bin/rm -f VEGPARM.TBL ; ln -s ../../run/VEGPARM.TBL . ) - ( cd test/em_real ; /bin/rm -f MPTABLE.TBL ; ln -s ../../run/MPTABLE.TBL . ) + ( cd test/em_real ; /bin/rm -f NoahmpTable.TBL ; ln -s ../../run/NoahmpTable.TBL . ) + ( cd test/em_real ; /bin/rm -f snicar_drdt_bst_fit_60_c070416.nc ; ln -s ../../run/snicar_drdt_bst_fit_60_c070416.nc . ) + ( cd test/em_real ; /bin/rm -f snicar_optics_480bnd_c012422.nc ; ln -s ../../run/snicar_optics_480bnd_c012422.nc . ) + ( cd test/em_real ; /bin/rm -f snicar_optics_5bnd_c013122.nc ; ln -s ../../run/snicar_optics_5bnd_c013122.nc . ) ( cd test/em_real ; /bin/rm -f tr49t67 ; ln -s ../../run/tr49t67 . ) ( cd test/em_real ; /bin/rm -f tr49t85 ; ln -s ../../run/tr49t85 . ) ( cd test/em_real ; /bin/rm -f tr67t85 ; ln -s ../../run/tr67t85 . ) diff --git a/Registry/Registry.EM_COMMON b/Registry/Registry.EM_COMMON index 1f857fef58..d193f04663 100644 --- a/Registry/Registry.EM_COMMON +++ b/Registry/Registry.EM_COMMON @@ -1859,7 +1859,7 @@ state real ALBBCK ij misc 1 - i0124rh "A state real EMBCK ij misc 1 - r "EMBCK" "BACKGROUND EMISSIVITY" "" state real EMISS ij misc 1 - rh "EMISS" "SURFACE EMISSIVITY" "" state real SNOTIME ij misc 1 - r "SNOTIME" "SNOTIME" "" -state real NOAHRES ij misc 1 - h "NOAHRES" "RESIDUAL OF THE NOAH SURFACE ENERGY BUDGET" "W m{-2}" +state real NOAHRES ij misc 1 - - "NOAHRES" "RESIDUAL OF THE NOAH SURFACE ENERGY BUDGET" "W m{-2}" state real CLDEFI ij misc 1 - r "CLDEFI" "precipitation efficiency in BMJ SCHEME" "" state integer STEPRA - misc 1 - r "STEPRA" "NUMBER OF FUNDAMENTAL TIMESTEPS BETWEEN RADIATION CALLS" "" @@ -2525,8 +2525,9 @@ rconfig integer default_soiltype namelist,physics 1 8 rconfig integer num_pft_clm namelist,physics 1 17 - "num_pft_clm" "" "" rconfig logical input_pft namelist,physics 1 .false. h "input_pft_flag" "use input pft instead of USGS" "" rconfig integer maxpatch namelist,physics 1 10 irh "maxpatch" "" "" -rconfig integer num_snow_layers namelist,physics 1 3 irh "num_snow_layers" "" "" -rconfig integer num_snso_layers namelist,physics 1 7 irh "num_snso_layers" "" "" +rconfig integer num_snow_layers namelist,physics 1 3 irh "num_snow_layers" "number of snow layer noahmp" "" +rconfig integer num_snso_layers namelist,physics 1 7 irh "num_snso_layers" "number of snow & soil layers noahmp" "" +rconfig integer num_radn_layers namelist,physics 1 2 irh "num_radn_layers" "number of radiation band noahmp" "" rconfig integer num_urban_ndm derived 1 1 irh "num_urban_ndm" "maximum number of street dimensions (ndm in BEP or BEM header)" "" rconfig integer num_urban_ng derived 1 1 irh "num_urban_ng" "number of grid levels in the ground (ng_u in BEP or BEM header)" "" @@ -2699,12 +2700,17 @@ 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; 6->VIC; 7->Xiananjiang; 8->Dynamic VIC)" "" +rconfig integer opt_runsrf namelist,noah_mp 1 3 h "opt_runsrf" "surface runoff (1->SIMGM; 2->SIMTOP; 3->Schaake96; 4->BATS; 5->Miguez-Macho & Fan; 6->VIC; 7->Xiananjiang; 8->Dynamic VIC)" "" +rconfig integer opt_runsub namelist,noah_mp 1 3 h "opt_runsub" "subsurface 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_compact namelist,noah_mp 1 2 h "opt_compact" "snowpack compaction (1->Anderson1976; 2->Abolafia-Rosenzweig2024)" +rconfig integer opt_tksno namelist,noah_mp 1 1 h "opt_tksno" "snow thermal conductivity: 1 -> Stieglitz(yen,1965) scheme (default), 2 -> Anderson, 1976 scheme, 3 -> constant, 4 -> Verseghy (1991) scheme, 5 -> Douvill(Yen, 1981) scheme" +rconfig integer opt_scf namelist,noah_mp 1 1 h "opt_scf" "snow cover fraction (1->NiuYang07; 2->Abolafia-Rosenzweig2025)" +rconfig integer opt_wetland namelist,noah_mp 1 0 h "opt_wetland" "wetland model option (0->off; 1->Zhang2022 fixed parameter; 2->Zhang2022 read in 2D parameter)" 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)" "" rconfig integer opt_rad namelist,noah_mp 1 3 h "opt_rad" "radiation transfer (1->gap=F(3D,cosz); 2->gap=0; 3->gap=1-Fveg)" "" -rconfig integer opt_alb namelist,noah_mp 1 2 h "opt_alb" "snow surface albedo (1->BATS; 2->CLASS)" "" +rconfig integer opt_alb namelist,noah_mp 1 2 h "opt_alb" "snow surface albedo (1->BATS; 2->CLASS; 3->SNICAR)" "" rconfig integer opt_snf namelist,noah_mp 1 1 h "opt_snf" "rainfall & snowfall (1-Jordan91; 2->BATS; 3->Noah)" "" rconfig integer opt_tbot namelist,noah_mp 1 2 h "opt_tbot" "lower boundary of soil temperature (1->zero-flux; 2->Noah)" "" rconfig integer opt_stc namelist,noah_mp 1 1 h "opt_stc" "soil/snow temperature time scheme 1->semi-implicit; 2->full-implicit (original Noah)" "" @@ -2721,6 +2727,18 @@ rconfig real soiltstep namelist,noah_mp 1 0. h " 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 Noah-MP SNICAR (opt_alb =3) +rconfig integer snicar_bandnumber_opt namelist,noah_mp 1 1 h "snicar_bandnumber_opt" "number of wavelength bands used in SNICAR" "" +rconfig integer snicar_solarspec_opt namelist,noah_mp 1 1 h "snicar_solarspec_opt" "type of downward solar radiation spectrum for SNICAR" "" +rconfig integer snicar_snowoptics_opt namelist,noah_mp 1 3 h "snicar_snowoptics_opt" "snow optics type using different refractive index databases in SNICAR" "" +rconfig integer snicar_dustoptics_opt namelist,noah_mp 1 1 h "snicar_dustoptics_opt" "dust optics type for SNICAR" "" +rconfig integer snicar_rtsolver_opt namelist,noah_mp 1 2 h "snicar_rtsolver_opt" "option for two different SNICAR radiative transfer solver" "" +rconfig integer snicar_snowshape_opt namelist,noah_mp 1 3 h "snicar_snowshape_opt" "option for snow grain shape in SNICAR" "" +rconfig logical snicar_use_aerosol namelist,noah_mp 1 .true. h "snicar_use_aerosol" "option to turn on/off aerosol deposition flux effect in snow in SNICAR" "" +rconfig logical snicar_snowbc_intmix namelist,noah_mp 1 .true. h "snicar_snowbc_intmix" "option to activate BC-snow internal mixing in SNICAR" "" +rconfig logical snicar_snowdust_intmix namelist,noah_mp 1 .false. h "snicar_snowdust_intmix" "option to activate dust-snow internal mixing in SNICAR" "" +rconfig logical snicar_use_oc namelist,noah_mp 1 .false. h "snicar_use_oc" "option to activate OC in snow in SNICAR" "" +rconfig logical snicar_aerosol_readtable namelist,noah_mp 1 .true. h "snicar_aerosol_readtable" "option to read aerosol deposition fluxes from table (on) or NetCDF forcing file (off)" "" # For WRF Hydro rconfig integer wrf_hydro derived 1 0 h "wrf_hydro" "descrip" "unit" @@ -3178,7 +3196,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,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,qmeltxy,acsnmelt +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,qmeltxy,acsnmelt,fsatxy,wsurfxy,snrdsxy,snfrxy,bcphixy,bcphoxy,ocphixy,ocphoxy,dust1xy,dust2xy,dust3xy,dust4xy,dust5xy,massconcbcphixy,massconcbcphoxy,massconcocphixy,massconcocphoxy,massconcdust1xy,massconcdust2xy,massconcdust3xy,massconcdust4xy,massconcdust5xy,albsoildirxy,albsoildifxy 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 diff --git a/Registry/registry.dimspec b/Registry/registry.dimspec index 6761de8f7b..93fb0dd15e 100644 --- a/Registry/registry.dimspec +++ b/Registry/registry.dimspec @@ -53,6 +53,7 @@ endif dimspec snly 2 namelist=num_snow_layers z snow_layers dimspec l 2 namelist=num_soil_layers z soil_layers dimspec snsl 2 namelist=num_snso_layers z snso_layers +dimspec radn 2 namelist=num_radn_layers z radn_layers dimspec umap0 2 namelist=num_urban_ndm z num_urban_ndm dimspec umap1 2 namelist=urban_map_zrd z urban_map_zrd diff --git a/Registry/registry.noahmp b/Registry/registry.noahmp index fbec3561bc..b4f7819c4d 100644 --- a/Registry/registry.noahmp +++ b/Registry/registry.noahmp @@ -28,7 +28,7 @@ state real woodxy ij - 1 - i02rhd=(interp_mask_fiel state real stblcpxy ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "stblcp" "stable carbon pool" "g/m2" state real fastcpxy ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "fastcp" "short-lived carbon" "g/m2" state real xsaixy ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "xsai" "stem area index" "-" -state real taussxy ij - 1 - rh "tauss" "non-dimensional snow age" "" +state real taussxy ij - 1 - rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "tauss" "non-dimensional snow age" "" state real t2mvxy ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "t2v" "2 meter temperature over canopy" "K" state real t2mbxy ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "t2b" "2 meter temperature over bare ground" "K" state real q2mvxy ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "q2v" "2 meter mixing ratio over canopy" "kg kg-1" @@ -125,87 +125,88 @@ state real soilcl1 ij - 1 - i012rd=(interp_mask_fiel state real soilcl2 ij - 1 - i012rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "SOILCL2" "soil texture class - level 2" "cat" state real soilcl3 ij - 1 - i012rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "SOILCL3" "soil texture class - level 3" "cat" state real soilcl4 ij - 1 - i012rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "SOILCL4" "soil texture class - level 4" "cat" +state real albsoildirxy i{radn}j - 1 Z i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "albsoildirxy" "soil albedo direct radiation" "-" +state real albsoildifxy i{radn}j - 1 Z i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "albsoildifxy" "soil albedo diffuse radiation" "-" # Some additional water movement -state real acints ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acints" "Accumulated canopy snow interception" "mm" -state real acintr ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acintr" "Accumulated canopy rain interception" "mm" -state real acdripr ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acdripr" "Accumulated canopy rain drip" "mm" -state real acthror ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acthror" "Accumulated rain throughfall" "mm" -state real acevac ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acevac" "Accumulated canopy evaporation" "mm" -state real acdewc ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acdewc" "Accumulated canopy dew" "mm" +state real acints ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acints" "Accumulated canopy snow interception" "mm" +state real acintr ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acintr" "Accumulated canopy rain interception" "mm" +state real acdripr ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acdripr" "Accumulated canopy rain drip" "mm" +state real acthror ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acthror" "Accumulated rain throughfall" "mm" +state real acevac ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acevac" "Accumulated canopy evaporation" "mm" +state real acdewc ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acdewc" "Accumulated canopy dew" "mm" # LSM forcing variables -state real forctlsm ij - 1 - i02hd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "forctlsm" "lowest model T into LSM" "K" -state real forcqlsm ij - 1 - i02hd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "forcqlsm" "lowest model Q into LSM" "kg/kg" -state real forcplsm ij - 1 - i02hd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "forcplsm" "lowest model P into LSM" "Pa" -state real forczlsm ij - 1 - i02hd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "forczlsm" "lowest model Z into LSM" "m" -state real forcwlsm ij - 1 - i02hd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "forcwlsm" "lowest model wind speed into LSM" "m/s" +state real forctlsm ij - 1 - i02d=(interp_mask_land_field:lu_index)u=(copy_fcnm) "forctlsm" "lowest model T into LSM" "K" +state real forcqlsm ij - 1 - i02d=(interp_mask_land_field:lu_index)u=(copy_fcnm) "forcqlsm" "lowest model Q into LSM" "kg/kg" +state real forcplsm ij - 1 - i02d=(interp_mask_land_field:lu_index)u=(copy_fcnm) "forcplsm" "lowest model P into LSM" "Pa" +state real forczlsm ij - 1 - i02d=(interp_mask_land_field:lu_index)u=(copy_fcnm) "forczlsm" "lowest model Z into LSM" "m" +state real forcwlsm ij - 1 - i02d=(interp_mask_land_field:lu_index)u=(copy_fcnm) "forcwlsm" "lowest model wind speed into LSM" "m/s" # Needed for water budget -state real acrainlsm ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acrainlsm" "Accumulated liquid precipitation into LSM" "mm" -state real acrunsb ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acrunsb" "Accumulated subsurface runoff" "mm" -state real acrunsf ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acrunsf" "Accumulated surface runoff" "mm" -state real acecan ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acecan" "Accumulated evaporation of intercepted water" "mm" -state real acetran ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acetran" "Accumulated transpiration" "mm" -state real acedir ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acedir" "Accumulated ground surface evaporation" "mm" -state real acqlat ij - 1 - rh "acqlat" "accumulated lateral flow" "mm" -state real acqrf ij - 1 - rh "acqrf" "accumulated baseflow" "mm" -state real acetlsm ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acetlsm" "Accumulated evaporation" "mm" +state real acrainlsm ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acrainlsm" "Accumulated liquid precipitation into LSM" "mm" +state real acrunsb ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acrunsb" "Accumulated subsurface runoff" "mm" +state real acrunsf ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acrunsf" "Accumulated surface runoff" "mm" +state real acecan ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acecan" "Accumulated evaporation of intercepted water" "mm" +state real acetran ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acetran" "Accumulated transpiration" "mm" +state real acedir ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acedir" "Accumulated ground surface evaporation" "mm" +state real acqlat ij - 1 - r "acqlat" "accumulated lateral flow" "mm" +state real acqrf ij - 1 - r "acqrf" "accumulated baseflow" "mm" +state real acetlsm ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acetlsm" "Accumulated evaporation" "mm" # Needed for snow water budget -state real acsnowlsm ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsnowlsm" "Accumulated frozen precipitation into LSM" "mm" -state real acsubc ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsubc" "Accumulated canopy sublimation" "mm" -state real acfroc ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acfroc" "Accumulated canopy frost" "mm" -state real acfrzc ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acfrzc" "Accumulated canopy liquid freeze" "mm" -state real acmeltc ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acmeltc" "Accumulated canopy snow melt" "mm" +state real acsnowlsm ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsnowlsm" "Accumulated frozen precipitation into LSM" "mm" +state real acsubc ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsubc" "Accumulated canopy sublimation" "mm" +state real acfroc ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acfroc" "Accumulated canopy frost" "mm" +state real acfrzc ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acfrzc" "Accumulated canopy liquid freeze" "mm" +state real acmeltc ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acmeltc" "Accumulated canopy snow melt" "mm" # Needed for snowpack water budget -state real acsnbot ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsnbot" "Accumulated total liquid water (melt + rain through pack) out of snowpack bottom" "mm" -state real acsnmelt ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsnmelt" "Accumulated snowmelt due to phase change" "mm" -state real acponding ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acponding" "Accumulated surface ponding from complete pack melt" "mm" -state real acsnsub ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsnsub" "Accumulated snow pack sublimation" "mm" -state real acsnfro ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsnfro" "Accumulated snow pack frost" "mm" -state real acrainsnow ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acrainsnow" "accumulated rain on snow pack" "mm" -state real acdrips ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acdrips" "Accumulated canopy snow drip" "mm" -state real acthros ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acthros" "Accumulated snow throughfall" "mm" +state real acsnbot ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsnbot" "Accumulated total liquid water (melt + rain through pack) out of snowpack bottom" "mm" +state real acsnmelt ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsnmelt" "Accumulated snowmelt due to phase change" "mm" +state real acponding ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acponding" "Accumulated surface ponding from complete pack melt" "mm" +state real acsnsub ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsnsub" "Accumulated snow pack sublimation" "mm" +state real acsnfro ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsnfro" "Accumulated snow pack frost" "mm" +state real acrainsnow ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acrainsnow" "accumulated rain on snow pack" "mm" +state real acdrips ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acdrips" "Accumulated canopy snow drip" "mm" +state real acthros ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acthros" "Accumulated snow throughfall" "mm" # Needed for energy budget -state real acsagb ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsagb" "Accumulated solar radiation absorbed at bare fraction" "kJ/m2" -state real acirb ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acirb" "Accumulated net longwave at bare fraction " "kJ/m2" -state real acshb ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acshb" "Accumulated sensible heat flux at bare fraction" "kJ/m2" -state real acevb ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acevb" "Accumulated latent heat flux at bare fraction" "kJ/m2" -state real acghb ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acghb" "Accumulated heat flux into soil at bare fraction" "kJ/m2" -state real acpahb ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acpahb" "Accumulated precipitation advected energy to bare ground" "kJ/m2" -state real acsagv ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsagv" "Accumulated solar radiation absorbed at vegetated fraction" "kJ/m2" -state real acirg ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acirg" "Accumulated net longwave below canopy surface" "kJ/m2" -state real acshg ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acshg" "Accumulated sensible heat flux: ground to canopy" "kJ/m2" -state real acevg ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acevg" "Accumulated latent heat flux: ground to canopy" "kJ/m2" -state real acghv ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acghv" "Accumulated heat flux into soil under canopy" "kJ/m2" -state real acpahg ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acpahg" "Accumulated precipitation advected energy to below canopy" "kJ/m2" -state real acsav ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsav" "Accumulated solar rad absorbed by vegetated fraction" "kJ/m2" -state real acirc ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acirc" "Accumulated net longwave in canopy" "kJ/m2" -state real acshc ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acshc" "Accumulated sensible heat flux: canopy to atmosphere" "kJ/m2" -state real acevc ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acevc" "Accumulated canopy evaporation" "kJ/m2" -state real actr ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "actr" "Accumulated transpiration" "kJ/m2" -state real acpahv ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acpahv" "Accumulated precipitation advected energy to vegetation" "kJ/m2" -state real acswdnlsm ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acswdnlsm" "Accumulated shortwave down at LSM" "kJ/m2" -state real acswuplsm ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acswuplsm" "Accumulated shortwave up at LSM" "kJ/m2" -state real aclwdnlsm ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "aclwdnlsm" "Accumulated longwave down at LSM" "kJ/m2" -state real aclwuplsm ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "aclwuplsm" "Accumulated longwave up at LSM" "kJ/m2" -state real acshflsm ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acshflsm" "accumulated total sensible heat flux" "kJ/m2" -state real aclhflsm ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "aclhflsm" "accumulated total latent heat flux" "kJ/m2" -state real acghflsm ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acghflsm" "accumulated total ground heat flux" "kJ/m2" -state real acpahlsm ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acpahlsm" "accumulated total precip heat flux" "kJ/m2" -state real accanhs ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "accanhs" "accumulated canopy storage change" "KJ/m2" - -state real soilenergy ij - 1 - hd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "soilenergy" "energy content in soil relative to 273.16" "kJ/m2" -state real snowenergy ij - 1 - hd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "snowenergy" "energy content in snow relative to 273.16" "kJ/m2" +state real acsagb ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsagb" "Accumulated solar radiation absorbed at bare fraction" "kJ/m2" +state real acirb ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acirb" "Accumulated net longwave at bare fraction " "kJ/m2" +state real acshb ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acshb" "Accumulated sensible heat flux at bare fraction" "kJ/m2" +state real acevb ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acevb" "Accumulated latent heat flux at bare fraction" "kJ/m2" +state real acghb ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acghb" "Accumulated heat flux into soil at bare fraction" "kJ/m2" +state real acpahb ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acpahb" "Accumulated precipitation advected energy to bare ground" "kJ/m2" +state real acsagv ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsagv" "Accumulated solar radiation absorbed at vegetated fraction" "kJ/m2" +state real acirg ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acirg" "Accumulated net longwave below canopy surface" "kJ/m2" +state real acshg ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acshg" "Accumulated sensible heat flux: ground to canopy" "kJ/m2" +state real acevg ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acevg" "Accumulated latent heat flux: ground to canopy" "kJ/m2" +state real acghv ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acghv" "Accumulated heat flux into soil under canopy" "kJ/m2" +state real acpahg ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acpahg" "Accumulated precipitation advected energy to below canopy" "kJ/m2" +state real acsav ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acsav" "Accumulated solar rad absorbed by vegetated fraction" "kJ/m2" +state real acirc ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acirc" "Accumulated net longwave in canopy" "kJ/m2" +state real acshc ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acshc" "Accumulated sensible heat flux: canopy to atmosphere" "kJ/m2" +state real acevc ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acevc" "Accumulated canopy evaporation" "kJ/m2" +state real actr ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "actr" "Accumulated transpiration" "kJ/m2" +state real acpahv ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acpahv" "Accumulated precipitation advected energy to vegetation" "kJ/m2" +state real acswdnlsm ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acswdnlsm" "Accumulated shortwave down at LSM" "kJ/m2" +state real acswuplsm ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acswuplsm" "Accumulated shortwave up at LSM" "kJ/m2" +state real aclwdnlsm ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "aclwdnlsm" "Accumulated longwave down at LSM" "kJ/m2" +state real aclwuplsm ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "aclwuplsm" "Accumulated longwave up at LSM" "kJ/m2" +state real acshflsm ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acshflsm" "accumulated total sensible heat flux" "kJ/m2" +state real aclhflsm ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "aclhflsm" "accumulated total latent heat flux" "kJ/m2" +state real acghflsm ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acghflsm" "accumulated total ground heat flux" "kJ/m2" +state real acpahlsm ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acpahlsm" "accumulated total precip heat flux" "kJ/m2" +state real accanhs ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "accanhs" "accumulated canopy storage change" "KJ/m2" +state real soilenergy ij - 1 - d=(interp_mask_land_field:lu_index)u=(copy_fcnm) "soilenergy" "energy content in soil relative to 273.16" "kJ/m2" +state real snowenergy ij - 1 - d=(interp_mask_land_field:lu_index)u=(copy_fcnm) "snowenergy" "energy content in snow relative to 273.16" "kJ/m2" state real acc_ssoil ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acc_ssoil" "accumulated SSOIL between dt_soil" "W/m2" state real acc_qinsur ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acc_qinsur" "accumulated QINSUR between dt_soil" "m/s*dt_soil/dt_noahmp" state real acc_qseva ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acc_qseva" "accumulated QSEVA between dt_soil" "m/s*dt_soil/dt_noahmp" state real acc_etrani ilj - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acc_etrani" "accumulated ETRANI between dt_soil" "m/s*dt_soil/dt_noahmp" -state real aceflxb ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "aceflxb " "accumulated bottom soil heat flux" "kJ/m2" +state real aceflxb ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "aceflxb " "accumulated bottom soil heat flux" "kJ/m2" state real eflxbxy ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "eflxbxy " "bottom soil heat flux" "W/m2" state real acc_dwaterxy ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acc_dwater" "accumulated canopy,snow,soil water change between dt_soil" "mm" state real acc_prcpxy ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acc_prcp" "accumulated precipitation between dt_soil" "mm" @@ -213,6 +214,32 @@ state real acc_ecanxy ij - 1 - rd=(interp_mask_land_ state real acc_etranxy ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acc_etran" "accumulated transpiration between dt_soil" "mm" state real acc_edirxy ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acc_edir" "accumulated net soil evaporation between dt_soil" "mm" +# Wetland model +state real fsatxy ij - 1 - i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "fsat" "saturated fraction of the grid" "-" +state real wsurfxy ij - 1 - i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "wsurf" "wetland water storage" "mm" + +# SNICAR snow albedo scheme +state real snrdsxy i{snly}j - 1 Z i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "snrds" "snow layer effective grain radius" "micron" +state real snfrxy i{snly}j - 1 Z i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "snfr" "snow layer rate of snow freezing" "mm/s" +state real bcphixy i{snly}j - 1 Z i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "bcphi" "mass of hydrophillic Black Carbon in snow" "kg/m2" +state real bcphoxy i{snly}j - 1 Z i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "bcpho" "mass of hydrophobic Black Carbon in snow" "kg/m2" +state real ocphixy i{snly}j - 1 Z i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "ocphi" "mass of hydrophillic Organic Carbon in snow" "kg/m2" +state real ocphoxy i{snly}j - 1 Z i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "ocpho" "mass of hydrophobic Organic Carbon in snow" "kg/m2" +state real dust1xy i{snly}j - 1 Z i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "dust1s" "mass of dust species 1 in snow" "kg/m2" +state real dust2xy i{snly}j - 1 Z i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "dust2s" "mass of dust species 2 in snow" "kg/m2" +state real dust3xy i{snly}j - 1 Z i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "dust3s" "mass of dust species 3 in snow" "kg/m2" +state real dust4xy i{snly}j - 1 Z i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "dust4s" "mass of dust species 4 in snow" "kg/m2" +state real dust5xy i{snly}j - 1 Z i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "dust5s" "mass of dust species 5 in snow" "kg/m2" +state real massconcbcphixy i{snly}j - 1 Z i02d=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "concbcphi" "mass concentration of hydrophillic Black Carbon in snow" "kg/kg" +state real massconcbcphoxy i{snly}j - 1 Z i02d=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "concbcpho" "mass concentration of hydrophobic Black Carbon in snow" "kg/kg" +state real massconcocphixy i{snly}j - 1 Z i02d=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "concocphi" "mass concentration of hydrophillic Organic Carbon in snow" "kg/kg" +state real massconcocphoxy i{snly}j - 1 Z i02d=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "concocpho" "mass concentration of hydrophobic Organic Carbon in snow" "kg/kg" +state real massconcdust1xy i{snly}j - 1 Z i02d=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "concdust1" "mass concentration of dust species 1 in snow" "kg/kg" +state real massconcdust2xy i{snly}j - 1 Z i02d=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "concdust2" "mass concentration of dust species 2 in snow" "kg/kg" +state real massconcdust3xy i{snly}j - 1 Z i02d=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "concdust3" "mass concentration of dust species 3 in snow" "kg/kg" +state real massconcdust4xy i{snly}j - 1 Z i02d=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "concdust4" "mass concentration of dust species 4 in snow" "kg/kg" +state real massconcdust5xy i{snly}j - 1 Z i02d=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "concdust5" "mass concentration of dust species 5 in snow" "kg/kg" + # Crop model only state real grainxy ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "grain" "mass of grain" "g/m2" state real gddxy ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "gdd" "growing degree days" "" @@ -220,29 +247,29 @@ state real croptype i{crop}j - 1 Z i012rd=(interp_mask_fiel state real planting ij - 1 - i012rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "planting" "planting date" "julian day" state real harvest ij - 1 - i012rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "harvest" "harvest date" "julian day" state real season_gdd ij - 1 - i012rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "season_gdd" "growing season GDD" "C" -state integer cropcat ij - 1 - rh "cropcat" "dominant crop category" "category" -state integer pgsxy ij - 1 - rh "pgs" "pgs" "" +state integer cropcat ij - 1 - rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "cropcat" "dominant crop category" "category" +state integer pgsxy ij - 1 - rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "pgs" "pgs" "" # Gecros crop model only -state real gecros_state i{gecros}j - 1 Z rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "gecros" "gecros state array" "-" +state real gecros_state i{gecros}j - 1 Z rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "gecros" "gecros state array" "-" # NoahMP tile drainage state real TD_FRACTION ij - 1 - i012rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "TD_FRACTION" "Tile drainage fraction" "" -state real QTDRAIN ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "QTDRAIN" "Accumulated tile drainage flux" "mm" +state real QTDRAIN ij - 1 - i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "QTDRAIN" "Accumulated tile drainage flux" "mm" #Noah-MP Irrigation state real IRFRACT ij - 1 - i012rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRFRACT" "Irrigation fraction" "" state real SIFRACT ij - 1 - i012rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "SIFRACT" "Sprinkler Irrigation fraction" "" state real MIFRACT ij - 1 - i012rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "MIFRACT" "Micro Irrigation fraction" "" state real FIFRACT ij - 1 - i012rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "FIFRACT" "Flood Irrigation fraction" "" -state integer IRNUMSI ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRNUMSI" "Sprinkler Irrigation Event Count" "" -state integer IRNUMMI ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRNUMMI" "Micro Irrigation Event Count" "" -state integer IRNUMFI ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRNUMFI" "Flood Irrigation Event Count" "" -state real IRWATSI ij - 1 - r "IRWATSI" "Sprinkler Irrigation Amount for the Event" "m" -state real IRWATMI ij - 1 - r "IRWATMI" "Micro Irrigation Amount for the Event" "m" -state real IRWATFI ij - 1 - r "IRWATFI" "Flood Irrigation Amount for the Event" "m" -state real IRSIVOL ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRSIVOL" "Sprinkler Irrigation Water Accumulated" "mm" -state real IRMIVOL ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRMIVOL" "Micro Irrigation Water Accumulated" "mm" -state real IRFIVOL ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRFIVOL" "Flood Irrigation Water Accumulated" "mm" -state real IRELOSS ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRELOSS" "Sprinkler Evaporation Loss Accumulated" "mm" -state real IRRSPLH ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRRSPLH" "Sprinkler Evaporation Loss Accumulated" "Joules m^-2" +state integer IRNUMSI ij - 1 - i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRNUMSI" "Sprinkler Irrigation Event Count" "" +state integer IRNUMMI ij - 1 - i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRNUMMI" "Micro Irrigation Event Count" "" +state integer IRNUMFI ij - 1 - i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRNUMFI" "Flood Irrigation Event Count" "" +state real IRWATSI ij - 1 - rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRWATSI" "Sprinkler Irrigation Amount for the Event" "m" +state real IRWATMI ij - 1 - rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRWATMI" "Micro Irrigation Amount for the Event" "m" +state real IRWATFI ij - 1 - rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRWATFI" "Flood Irrigation Amount for the Event" "m" +state real IRSIVOL ij - 1 - i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRSIVOL" "Sprinkler Irrigation Water Accumulated" "mm" +state real IRMIVOL ij - 1 - i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRMIVOL" "Micro Irrigation Water Accumulated" "mm" +state real IRFIVOL ij - 1 - i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRFIVOL" "Flood Irrigation Water Accumulated" "mm" +state real IRELOSS ij - 1 - i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRELOSS" "Sprinkler Evaporation Loss Accumulated" "mm" +state real IRRSPLH ij - 1 - i02rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "IRRSPLH" "Sprinkler Evaporation Loss Accumulated" "Joules m^-2" diff --git a/arch/Config.pl b/arch/Config.pl index 0c36ddcf12..fe9fd8acfd 100644 --- a/arch/Config.pl +++ b/arch/Config.pl @@ -323,7 +323,7 @@ $sw_rwordsize = "8" if ( $sw_wrfplus_core eq "-DWRFPLUS=1" ); if ( $sw_rwordsize eq "8" ) { - $sw_promotion = "-DDOUBLE_PRECISION" ; + $sw_promotion = "-DDOUBLE_PRECISION -DDOUBLE_PREC" ; } # A separately-installed ESMF library is required to build the ESMF diff --git a/chem/depend.chem b/chem/depend.chem index 86fb038e81..da865d7990 100644 --- a/chem/depend.chem +++ b/chem/depend.chem @@ -55,7 +55,7 @@ module_gocart_dust.o: ../phys/module_data_gocart_dust.o module_gocart_dust_afwa.o: ../phys/module_data_gocart_dust.o module_data_sorgam.o -module_uoc_dust.o: module_qf03.o module_soilpsd.o ../phys/module_sf_noahlsm.o ../phys/module_sf_noahmplsm.o ../phys/module_sf_ruclsm.o +module_uoc_dust.o: module_qf03.o module_soilpsd.o ../phys/module_sf_noahlsm.o ../phys/module_sf_ruclsm.o module_uoc_dustwd.o: module_data_uoc_wd.o diff --git a/chem/module_uoc_dust.F b/chem/module_uoc_dust.F index c0ebcd8edc..e8961e40eb 100644 --- a/chem/module_uoc_dust.F +++ b/chem/module_uoc_dust.F @@ -16,7 +16,6 @@ MODULE uoc_dust USE qf03 USE module_soilpsd USE module_sf_noahlsm, ONLY:DRYSMC - USE NOAHMP_TABLES, ONLY: DRYSMC_nmp => SMCDRY_TABLE USE module_sf_ruclsm, ONLY:DRYSMC_ruc => DRYSMC CONTAINS @@ -216,7 +215,7 @@ subroutine uoc_dust_driver(dt,config_flags, & if ( config_flags%sf_surface_physics .eq. 3 ) then DRYSMC = DRYSMC_ruc elseif ( config_flags%sf_surface_physics .eq. 4 ) then - DRYSMC = DRYSMC_nmp + DRYSMC = DRYSMC elseif ( config_flags%sf_surface_physics .eq. 1 .or. & & config_flags%sf_surface_physics .eq. 5 .or. & & config_flags%sf_surface_physics .eq. 7 .or. & diff --git a/clean b/clean index 06514476df..cdf7bc00b2 100755 --- a/clean +++ b/clean @@ -3,7 +3,7 @@ set nonomatch -foreach dir ( frame chem share dyn_em phys phys/physics_mmm cmaq main tools wrftladj ) +foreach dir ( frame chem share dyn_em phys phys/physics_mmm cmaq main tools wrftladj phys/noahmp/drivers/wrf phys/noahmp/src phys/noahmp/utility) if ( -d $dir ) then if ( $dir == cmaq ) then ( cd $dir ; echo $dir ; /bin/rm -f *.o *.mod ) >& /dev/null @@ -56,8 +56,8 @@ if ( "$arg" == '-a' || "$arg" == '-aa' ) then /bin/rm -f namelist.input ) >& /dev/null ( cd test/exp_real ; /bin/rm -f gm* out* fort* real* ) >& /dev/null ( cd test ; rm -f */*.exe */ETAMPNEW_DATA* */GENPARM.TBL */LANDUSE.TBL */README.namelist */README.physics_files \ - */RRTM_DATA */SOILPARM.TBL */VEGPARM.TBL */MPTABLE.TBL */URBPARM.TBL */URBPARM_LCZ.TBL */grib2map.tbl \ - */CAM_ABS_DATA */CAM_AEROPT_DATA \ + */RRTM_DATA */SOILPARM.TBL */VEGPARM.TBL */NoahmpTable.TBL */URBPARM.TBL */URBPARM_LCZ.TBL */grib2map.tbl \ + */CAM_ABS_DATA */CAM_AEROPT_DATA */snicar_*.nc \ */CCN_ACTIVATE.BIN */STOCHPERT.TBL \ */CAMtr_volume_mixing_ratio.RCP4.5 */CAMtr_volume_mixing_ratio.RCP6 */CAMtr_volume_mixing_ratio.RCP8.5 \ */CAMtr_volume_mixing_ratio.A1B */CAMtr_volume_mixing_ratio.A2 */CAMtr_volume_mixing_ratio \ @@ -80,9 +80,8 @@ if ( "$arg" == '-a' || "$arg" == '-aa' ) then /bin/rm -f configure.wrf.backup /bin/rm -f Registry/Registry.backup /bin/rm -f run/namelist.input.backup.* - /bin/rm -f phys/module_sf_noahmpdrv.F phys/module_sf_noahmp_glacier.F \ - phys/module_sf_noahmp_groundwater.F phys/module_sf_noahmplsm.F \ - run/MPTABLE.TBL + /bin/rm -fr phys/noahmp + /bin/rm -f run/NoahmpTable.TBL run/snicar_*.nc /bin/rm -f phys/module_bl_mynnedmf.F phys/module_bl_mynnedmf_common.F \ phys/module_bl_mynnedmf_driver.F /bin/rm -f phys/module_mp_tempo_cfgs.F90 phys/module_mp_tempo_params.F90 \ diff --git a/dyn_em/module_first_rk_step_part1.F b/dyn_em/module_first_rk_step_part1.F index 4aff0f798c..6cbd4d5282 100644 --- a/dyn_em/module_first_rk_step_part1.F +++ b/dyn_em/module_first_rk_step_part1.F @@ -540,7 +540,7 @@ SUBROUTINE first_rk_step_part1 ( grid , config_flags & !gmm halo of wtd and riverflow for leafhydro #ifdef DM_PARALLEL - IF ( ( config_flags%sf_surface_physics.eq.NOAHMPSCHEME ) .and. ( config_flags%opt_run.eq.5 ) ) THEN + IF ( ( config_flags%sf_surface_physics.eq.NOAHMPSCHEME ) .and. (config_flags%opt_runsub.eq.5 ) ) THEN IF ( mod(grid%itimestep,grid%STEPWTD).eq.0 ) THEN # include "HALO_EM_HYDRO_NOAHMP.inc" ENDIF @@ -931,7 +931,7 @@ SUBROUTINE first_rk_step_part1 ( grid , config_flags & & ,CSAND_PX=grid%csand_px, FMSAND_PX=grid%fmsand_px & ! for Noah-MP LSM & ,idveg=config_flags%dveg, iopt_crs=config_flags%opt_crs & - & ,iopt_btr=config_flags%opt_btr, iopt_run=config_flags%opt_run & + & ,iopt_btr=config_flags%opt_btr,iopt_runsub=config_flags%opt_runsub & & ,iopt_sfc=config_flags%opt_sfc, iopt_frz=config_flags%opt_frz & & ,iopt_inf=config_flags%opt_inf, iopt_rad=config_flags%opt_rad & & ,iopt_alb=config_flags%opt_alb, iopt_snf=config_flags%opt_snf & @@ -941,7 +941,10 @@ SUBROUTINE first_rk_step_part1 ( grid , config_flags & & ,iopt_crop=config_flags%opt_crop, iopt_irr=config_flags%opt_irr & & ,iopt_irrm=config_flags%opt_irrm & & ,iopt_infdv=config_flags%opt_infdv,iopt_tdrn=config_flags%opt_tdrn & - & ,soiltstep=config_flags%soiltstep & + & ,soiltstep=config_flags%soiltstep & + & ,iopt_runsrf=config_flags%opt_runsrf,iopt_tksno=config_flags%opt_tksno & + & ,iopt_compact=config_flags%opt_compact, iopt_scf=config_flags%opt_scf & + & ,iopt_wetland=config_flags%opt_wetland & & , isnowxy=grid%isnowxy , tvxy=grid%tvxy , tgxy=grid%tgxy & & ,canicexy=grid%canicexy ,canliqxy=grid%canliqxy, eahxy=grid%eahxy & & , tahxy=grid%tahxy , cmxy=grid%cmxy , chxy=grid%chxy & @@ -991,6 +994,30 @@ SUBROUTINE first_rk_step_part1 ( grid , config_flags & & , soilenergy=grid%soilenergy ,snowenergy=grid%snowenergy, canhsxy=grid%canhsxy & & , ACC_DWATERXY=grid%ACC_DWATERXY, ACC_PRCPXY=grid%ACC_PRCPXY,ACC_ECANXY=grid%ACC_ECANXY & & , ACC_ETRANXY=grid%ACC_ETRANXY, ACC_EDIRXY=grid%ACC_EDIRXY & +! Noah-MP wetland + & , FSATXY=grid%FSATXY, WSURFXY=grid%WSURFXY & +! Noah-MP SNICAR snow albedo + & ,SNICAR_BANDNUMBER_OPT=config_flags%SNICAR_BANDNUMBER_OPT & + & ,SNICAR_SOLARSPEC_OPT=config_flags%SNICAR_SOLARSPEC_OPT & + & ,SNICAR_SNOWOPTICS_OPT=config_flags%SNICAR_SNOWOPTICS_OPT & + & ,SNICAR_DUSTOPTICS_OPT=config_flags%SNICAR_DUSTOPTICS_OPT & + & ,SNICAR_RTSOLVER_OPT=config_flags%SNICAR_RTSOLVER_OPT & + & ,SNICAR_SNOWSHAPE_OPT=config_flags%SNICAR_SNOWSHAPE_OPT & + & ,SNICAR_USE_AEROSOL=config_flags%SNICAR_USE_AEROSOL & + & ,SNICAR_SNOWBC_INTMIX=config_flags%SNICAR_SNOWBC_INTMIX & + & ,SNICAR_SNOWDUST_INTMIX=config_flags%SNICAR_SNOWDUST_INTMIX & + & ,SNICAR_USE_OC=config_flags%SNICAR_USE_OC & + & ,SNICAR_AEROSOL_READTABLE=config_flags%SNICAR_AEROSOL_READTABLE & + & ,SNRDSXY=grid%SNRDSXY, SNFRXY=grid%SNFRXY, BCPHIXY=grid%BCPHIXY & + & ,BCPHOXY=grid%BCPHOXY, OCPHIXY=grid%OCPHIXY, OCPHOXY=grid%OCPHOXY & + & ,DUST1XY=grid%DUST1XY, DUST2XY=grid%DUST2XY, DUST3XY=grid%DUST3XY & + & ,DUST4XY=grid%DUST4XY, DUST5XY=grid%DUST5XY & + & ,MassConcBCPHIXY=grid%MassConcBCPHIXY & + & ,MassConcBCPHOXY=grid%MassConcBCPHOXY, MassConcOCPHIXY=grid%MassConcOCPHIXY & + & ,MassConcOCPHOXY=grid%MassConcOCPHOXY, MassConcDUST1XY=grid%MassConcDUST1XY & + & ,MassConcDUST2XY=grid%MassConcDUST2XY, MassConcDUST3XY=grid%MassConcDUST3XY & + & ,MassConcDUST4XY=grid%MassConcDUST4XY, MassConcDUST5XY=grid%MassConcDUST5XY & + & ,ALBSOILDIRXY=grid%ALBSOILDIRXY, ALBSOILDIFXY=grid%ALBSOILDIFXY & ! Noah-MP irrigation & , IRFRACT=grid%IRFRACT , SIFRACT=grid%SIFRACT ,MIFRACT=grid%MIFRACT & & , FIFRACT=grid%FIFRACT , IRNUMSI=grid%IRNUMSI ,IRNUMMI=grid%IRNUMMI & diff --git a/dyn_em/start_em.F b/dyn_em/start_em.F index 78872ae19e..f6605e509a 100644 --- a/dyn_em/start_em.F +++ b/dyn_em/start_em.F @@ -26,7 +26,7 @@ SUBROUTINE start_domain_em ( grid, allowed_to_read & USE module_comm_dm USE module_llxy, ONLY : proj_cassini USE module_physics_init - USE module_sf_noahmpdrv, ONLY : groundwater_init + USE NoahmpGroundwaterInitMod, ONLY: NoahmpGroundwaterInitMain USE module_lightning_driver, ONLY : lightning_init USE module_fr_fire_driver_wrf, ONLY : fire_driver_em_init USE module_firebrand_spotting, ONLY : firebrand_spotting_em_init @@ -46,6 +46,7 @@ SUBROUTINE start_domain_em ( grid, allowed_to_read & USE module_diag_zld, ONLY : zld USE module_trad_fields, ONLY : trad_fields + USE NoahmpIOVarType, only : NoahmpIOdom !!debug !USE module_compute_geop @@ -1004,7 +1005,7 @@ SUBROUTINE start_domain_em ( grid, allowed_to_read & ! #ifdef DM_PARALLEL -if(config_flags%sf_surface_physics.eq.NOAHMPSCHEME.and.config_flags%opt_run.eq.5)then +if(config_flags%sf_surface_physics.eq.NOAHMPSCHEME.and.config_flags%opt_runsub.eq.5)then # include "HALO_EM_HYDRO_NOAHMP_INIT.inc" endif #endif @@ -1132,7 +1133,14 @@ SUBROUTINE start_domain_em ( grid, allowed_to_read & grid%IRRSPLH, grid%qtdrain, & ! Optional Noah-MP grid%gecros_state, & ! Optional gecros crop grid%XSAIXY,grid%LAI, & ! Optional Noah-MP - grid%T2MVXY, grid%T2MBXY, grid%CHSTARXY, & ! Optional Noah-MP + grid%T2MVXY, grid%T2MBXY, grid%CHSTARXY, grid%FSATXY, grid%WSURFXY, & ! Optional Noah-MP + grid%snrdsxy, grid%snfrxy, grid%bcphixy, grid%bcphoxy, grid%ocphixy, & ! Optional Noah-MP + grid%ocphoxy, grid%dust1xy, grid%dust2xy, grid%dust3xy, grid%dust4xy, & ! Optional Noah-MP + grid%dust5xy, grid%massconcbcphixy, grid%massconcbcphoxy, & ! Optional Noah-MP + grid%massconcocphixy, grid%massconcocphoxy, grid%massconcdust1xy, & ! Optional Noah-MP + grid%massconcdust2xy, grid%massconcdust3xy, grid%massconcdust4xy, & ! Optional Noah-MP + grid%massconcdust5xy, & ! Optional Noah-MP + grid%ALBSOILDIRXY, grid%ALBSOILDIFXY, & ! Optional Noah-MP grid%SMOISEQ ,grid%SMCWTDXY ,grid%RECHXY, grid%DEEPRECHXY, grid%AREAXY, & ! Optional Noah-MP config_flags%wtddt ,grid%stepwtd ,grid%QRFSXY ,grid%QSPRINGSXY ,grid%QSLATXY, & ! Optional Noah-MP grid%FDEPTHXY, grid%RIVERBEDXY, grid%EQZWT, grid%RIVERCONDXY, grid%PEXPXY, & ! Optional Noah-MP @@ -1274,13 +1282,13 @@ SUBROUTINE start_domain_em ( grid, allowed_to_read & ,grid%NC_CU, grid%NI_CU, grid%NR_CU, grid%NS_CU,grid%CCN_CU & ,grid%alevsiz_cu,grid%num_months,grid%no_src_types_cu,grid%aeromcu & ,grid%aeropcu,grid%EFCG,grid%EFCS,grid%EFIG,grid%EFIS,grid%EFSG,grid%EFSS & - ) + ,NoahmpIOdom(grid%id)) ENDDO ! loop of tiles for phy_init if(.not.grid%restart) then - if(config_flags%sf_surface_physics .eq. NOAHMPSCHEME .and. config_flags%opt_run .eq. 5) then - call groundwater_init ( grid , & + if(config_flags%sf_surface_physics .eq. NOAHMPSCHEME .and. config_flags%opt_runsub .eq. 5) then + call NoahmpGroundwaterInitMain (NoahmpIOdom(grid%id), grid , & config_flags%num_soil_layers, grid%dzs, grid%isltyp, grid%ivgtyp, config_flags%wtddt , & grid%fdepthxy , grid%ht , grid%riverbedxy, grid%eqzwt , & grid%rivercondxy, grid%pexpxy , grid%areaxy , grid%zwtxy , & @@ -1434,7 +1442,7 @@ SUBROUTINE start_domain_em ( grid, allowed_to_read & # include "PERIOD_BDY_EM_TKE.inc" # include "PERIOD_BDY_EM_SCALAR.inc" # include "PERIOD_BDY_EM_CHEM.inc" -if(config_flags%sf_surface_physics.eq.NOAHMPSCHEME.and.config_flags%opt_run.eq.5)then +if(config_flags%sf_surface_physics.eq.NOAHMPSCHEME.and.config_flags%opt_runsub.eq.5)then # include "HALO_EM_HYDRO_NOAHMP_INIT.inc" endif #endif diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 78967e24f2..b7fa1ad005 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -145,7 +145,10 @@ wrf_setup_targets( # Re-setup this particular file wrf_setup_files( FILES - ${PROJECT_SOURCE_DIR}/phys/noahmp/parameters/MPTABLE.TBL + ${PROJECT_SOURCE_DIR}/phys/noahmp/parameters/NoahmpTable.TBL + ${PROJECT_SOURCE_DIR}/phys/noahmp/parameters/snicar_drdt_bst_fit_60_c070416.nc + ${PROJECT_SOURCE_DIR}/phys/noahmp/parameters/snicar_optics_480bnd_c012422.nc + ${PROJECT_SOURCE_DIR}/phys/noahmp/parameters/snicar_optics_5bnd_c013122.nc DEST_PATH ${CMAKE_INSTALL_PREFIX}/run/ ) diff --git a/main/depend.common b/main/depend.common index 676f0a3cf0..d663d48c2c 100644 --- a/main/depend.common +++ b/main/depend.common @@ -1174,36 +1174,1116 @@ module_sf_noah_seaice.o: \ ../share/module_model_constants.o -module_sf_noahmpdrv.o: \ - ../frame/module_comm_dm.o \ - ../frame/module_domain.o \ - module_ra_gfdleta.o \ - module_sf_noahmplsm.o \ - module_data_gocart_dust.o \ - module_sf_noahmp_glacier.o \ - module_sf_noahmp_groundwater.o \ - module_sf_gecros.o \ - ../share/module_model_constants.o \ - module_sf_urban.o \ - module_sf_bep.o \ - module_sf_bep_bem.o +module_sf_noahlsm_glacial_only.o: \ + ../share/module_model_constants.o \ + ../frame/module_wrf_error.o \ + module_sf_noahlsm.o -module_sf_noahlsm_glacial_only.o: \ - ../share/module_model_constants.o \ - ../frame/module_wrf_error.o \ - module_sf_noahlsm.o \ - module_sf_noahmplsm.o +noahmp/drivers/wrf/NoahmpWRFmainMod.o: \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/drivers/wrf/NoahmpDriverMainMod.o \ + noahmp/drivers/wrf/NoahmpIOVarInitMod.o \ + noahmp/drivers/wrf/NoahmpReadTableMod.o \ + noahmp/src/SnowInputSnicarMod.o \ + module_sf_urban.o -module_sf_noahmplsm.o: \ - ../share/module_model_constants.o \ - module_sf_gecros.o \ - module_sf_myjsfc.o +noahmp/drivers/wrf/NoahmpWRFinitMod.o: \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/drivers/wrf/NoahmpIOVarInitMod.o \ + noahmp/drivers/wrf/NoahmpReadTableMod.o \ + noahmp/drivers/wrf/NoahmpInitMainMod.o \ + noahmp/src/SnowInputSnicarMod.o + + +noahmp/drivers/wrf/NoahmpUrbanDriverMainMod.o: \ + module_sf_urban.o \ + module_sf_bep.o \ + module_sf_bep_bem.o \ + module_ra_gfdleta.o \ + ../share/module_model_constants.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o + + +noahmp/drivers/wrf/NoahmpGroundwaterInitMod.o: \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/drivers/wrf/GroundWaterMmfMod.o \ + ../frame/module_comm_dm.o \ + ../frame/module_domain.o \ + ../frame/module_dm.o + + +noahmp/drivers/wrf/NoahmpDriverMainMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConfigVarInitMod.o \ + noahmp/src/EnergyVarInitMod.o \ + noahmp/src/ForcingVarInitMod.o \ + noahmp/src/WaterVarInitMod.o \ + noahmp/src/BiochemVarInitMod.o \ + noahmp/src/NoahmpMainMod.o \ + noahmp/src/NoahmpMainGlacierMod.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/drivers/wrf/ConfigVarOutTransferMod.o \ + noahmp/drivers/wrf/EnergyVarOutTransferMod.o \ + noahmp/drivers/wrf/WaterVarOutTransferMod.o \ + noahmp/drivers/wrf/BiochemVarOutTransferMod.o \ + noahmp/drivers/wrf/ForcingVarOutTransferMod.o \ + noahmp/drivers/wrf/ConfigVarInTransferMod.o \ + noahmp/drivers/wrf/ForcingVarInTransferMod.o \ + noahmp/drivers/wrf/EnergyVarInTransferMod.o \ + noahmp/drivers/wrf/WaterVarInTransferMod.o \ + noahmp/drivers/wrf/BiochemVarInTransferMod.o \ + module_ra_gfdleta.o + + +noahmp/drivers/wrf/NoahmpIOVarType.o: \ + noahmp/utility/Machine.o + + +noahmp/drivers/wrf/NoahmpIOVarInitMod.o: \ + noahmp/utility/Machine.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o + + +noahmp/drivers/wrf/NoahmpReadTableMod.o: \ + noahmp/utility/Machine.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o + + +noahmp/drivers/wrf/PedoTransferSR2006Mod.o: \ + noahmp/utility/Machine.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/src/NoahmpVarType.o + + +noahmp/drivers/wrf/ConfigVarOutTransferMod.o: \ + noahmp/utility/Machine.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/src/NoahmpVarType.o + + +noahmp/drivers/wrf/ForcingVarOutTransferMod.o: \ + noahmp/utility/Machine.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/src/NoahmpVarType.o + + +noahmp/drivers/wrf/EnergyVarOutTransferMod.o: \ + noahmp/utility/Machine.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/src/NoahmpVarType.o + + +noahmp/drivers/wrf/WaterVarOutTransferMod.o: \ + noahmp/utility/Machine.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/src/NoahmpVarType.o + + +noahmp/drivers/wrf/BiochemVarOutTransferMod.o: \ + noahmp/utility/Machine.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/src/NoahmpVarType.o + + +noahmp/drivers/wrf/ConfigVarInTransferMod.o: \ + noahmp/utility/Machine.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/src/NoahmpVarType.o + + +noahmp/drivers/wrf/ForcingVarInTransferMod.o: \ + noahmp/utility/Machine.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/src/NoahmpVarType.o + + +noahmp/drivers/wrf/EnergyVarInTransferMod.o: \ + noahmp/utility/Machine.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/src/NoahmpVarType.o + + +noahmp/drivers/wrf/BiochemVarInTransferMod.o: \ + noahmp/utility/Machine.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/src/NoahmpVarType.o + + +noahmp/drivers/wrf/WaterVarInTransferMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/drivers/wrf/PedoTransferSR2006Mod.o + + +noahmp/drivers/wrf/NoahmpSnowInitMod.o: \ + noahmp/utility/Machine.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o + + +noahmp/drivers/wrf/NoahmpInitMainMod.o: \ + noahmp/utility/Machine.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/drivers/wrf/NoahmpSnowInitMod.o + + +noahmp/drivers/wrf/GroundWaterMmfMod.o: \ + noahmp/drivers/wrf/NoahmpIOVarType.o + + +noahmp/utility/CheckNanMod.o: \ + noahmp/utility/Machine.o + + +noahmp/utility/PiecewiseLinearInterp1dMod.o: \ + noahmp/utility/Machine.o + + +noahmp/src/ConstantDefineMod.o: \ + noahmp/utility/Machine.o + + +noahmp/src/ConfigVarType.o: \ + noahmp/utility/Machine.o + + +noahmp/src/ForcingVarType.o: \ + noahmp/utility/Machine.o + + +noahmp/src/EnergyVarType.o: \ + noahmp/utility/Machine.o + + +noahmp/src/WaterVarType.o: \ + noahmp/utility/Machine.o + + +noahmp/src/BiochemVarType.o: \ + noahmp/utility/Machine.o + + +noahmp/src/NoahmpVarType.o: \ + noahmp/src/ConfigVarType.o \ + noahmp/src/ForcingVarType.o \ + noahmp/src/EnergyVarType.o \ + noahmp/src/WaterVarType.o \ + noahmp/src/BiochemVarType.o + + +noahmp/src/ConfigVarInitMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o + + +noahmp/src/ForcingVarInitMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o + + +noahmp/src/EnergyVarInitMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o + + +noahmp/src/WaterVarInitMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o + + +noahmp/src/BiochemVarInitMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o + + +noahmp/src/CanopyHydrologyMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/GroundWaterTopModelMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/IrrigationFloodMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/IrrigationInfilPhilipMod.o + + +noahmp/src/IrrigationInfilPhilipMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SoilHydraulicPropertyMod.o + + +noahmp/src/IrrigationMicroMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/IrrigationInfilPhilipMod.o + + +noahmp/src/MatrixSolverTriDiagonalMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/RunoffSubSurfaceDrainageMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/RunoffSubSurfaceEquiWaterTableMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/WaterTableEquilibriumMod.o + + +noahmp/src/RunoffSubSurfaceGroundWaterMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/GroundWaterTopModelMod.o + + +noahmp/src/RunoffSubSurfaceShallowMmfMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/ShallowWaterTableMmfMod.o + + +noahmp/src/RunoffSurfaceBatsMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/RunoffSurfaceDynamicVicMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SoilWaterInfilPhilipMod.o \ + noahmp/src/RunoffSurfaceExcessDynamicVicMod.o \ + noahmp/src/SoilWaterInfilSmithParlangeMod.o \ + noahmp/src/SoilWaterInfilGreenAmptMod.o + + +noahmp/src/RunoffSurfaceExcessDynamicVicMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/RunoffSurfaceFreeDrainMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SoilHydraulicPropertyMod.o + + +noahmp/src/RunoffSurfaceTopModelEquiMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/RunoffSurfaceTopModelGrdMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + +noahmp/src/RunoffSurfaceTopModelMmfMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/RunoffSurfaceVicMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/RunoffSurfaceXinAnJiangMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/RunoffSurfaceWetlandMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/WetlandWaterZhang22Mod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/ShallowWaterTableMmfMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowfallBelowCanopyMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowLayerCombineMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SnowLayerWaterComboMod.o + + +noahmp/src/SnowLayerDivideMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SnowLayerWaterComboMod.o + + +noahmp/src/SnowLayerWaterComboMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowpackCompactionMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowpackCompactionAR24Mod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowpackHydrologyMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SnowLayerCombineMod.o + + +noahmp/src/SnowWaterMainMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SnowfallBelowCanopyMod.o \ + noahmp/src/SnowpackCompactionMod.o \ + noahmp/src/SnowLayerDivideMod.o \ + noahmp/src/SnowLayerCombineMod.o \ + noahmp/src/SnowpackHydrologyMod.o \ + noahmp/src/SnowpackCompactionAR24Mod.o \ + noahmp/src/SnowAerosolSnicarMod.o + + +noahmp/src/SoilHydraulicPropertyMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SoilMoistureSolverMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/MatrixSolverTriDiagonalMod.o + + +noahmp/src/SoilWaterDiffusionRichardsMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SoilHydraulicPropertyMod.o + + +noahmp/src/SoilWaterInfilGreenAmptMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SoilHydraulicPropertyMod.o + + +noahmp/src/SoilWaterInfilPhilipMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SoilHydraulicPropertyMod.o + + +noahmp/src/SoilWaterInfilSmithParlangeMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SoilHydraulicPropertyMod.o + + +noahmp/src/SoilWaterMainMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/RunoffSurfaceTopModelGrdMod.o \ + noahmp/src/RunoffSurfaceTopModelEquiMod.o \ + noahmp/src/RunoffSurfaceFreeDrainMod.o \ + noahmp/src/RunoffSurfaceBatsMod.o \ + noahmp/src/RunoffSurfaceTopModelMmfMod.o \ + noahmp/src/RunoffSurfaceVicMod.o \ + noahmp/src/RunoffSurfaceXinAnJiangMod.o \ + noahmp/src/RunoffSurfaceDynamicVicMod.o \ + noahmp/src/RunoffSubSurfaceEquiWaterTableMod.o \ + noahmp/src/RunoffSubSurfaceGroundWaterMod.o \ + noahmp/src/RunoffSubSurfaceDrainageMod.o \ + noahmp/src/RunoffSubSurfaceShallowMmfMod.o \ + noahmp/src/SoilWaterDiffusionRichardsMod.o \ + noahmp/src/SoilMoistureSolverMod.o \ + noahmp/src/TileDrainageSimpleMod.o \ + noahmp/src/TileDrainageHooghoudtMod.o \ + noahmp/src/RunoffSurfaceWetlandMod.o + + +noahmp/src/TileDrainageEquiDepthMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/TileDrainageHooghoudtMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/TileDrainageEquiDepthMod.o \ + noahmp/src/WaterTableDepthSearchMod.o \ + noahmp/src/WaterTableEquilibriumMod.o + + +noahmp/src/TileDrainageSimpleMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/WaterMainMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/CanopyHydrologyMod.o \ + noahmp/src/SnowWaterMainMod.o \ + noahmp/src/IrrigationFloodMod.o \ + noahmp/src/IrrigationMicroMod.o \ + noahmp/src/SoilWaterMainMod.o \ + noahmp/src/WetlandWaterZhang22Mod.o + + +noahmp/src/WaterTableDepthSearchMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o -module_sf_noahmp_groundwater.o: \ - module_sf_noahmplsm.o +noahmp/src/WaterTableEquilibriumMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/IrrigationTriggerMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/IrrigationSprinklerMod.o: \ + noahmp/utility/Machine.o \ + noahmp/utility/CheckNanMod.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/IrrigationInfilPhilipMod.o + + +noahmp/src/CanopyWaterInterceptMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/PrecipitationHeatAdvectMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowThermalPropertyMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SoilThermalPropertyMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/GroundThermalPropertyMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SnowThermalPropertyMod.o \ + noahmp/src/SoilThermalPropertyMod.o + + +noahmp/src/CanopyRadiationTwoStreamMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/GroundAlbedoMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowAerosolSnicarMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowAgingBatsMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowAgingSnicarMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowAlbedoBatsMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowAlbedoClassMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowAlbedoSnicarMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SnowRadiationSnicarMod.o + + +noahmp/src/SnowFreshRadiusMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowInputSnicarMod.o: \ + noahmp/utility/Machine.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o + + +noahmp/src/SnowRadiationSnicarMod.o: \ + noahmp/utility/Machine.o \ + noahmp/utility/PiecewiseLinearInterp1dMod.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SurfaceAlbedoMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SnowAgingBatsMod.o \ + noahmp/src/SnowAlbedoBatsMod.o \ + noahmp/src/SnowAlbedoClassMod.o \ + noahmp/src/SnowAlbedoSnicarMod.o \ + noahmp/src/GroundAlbedoMod.o \ + noahmp/src/CanopyRadiationTwoStreamMod.o \ + noahmp/src/SnowAgingSnicarMod.o \ + noahmp/src/SnowFreshRadiusMod.o + + +noahmp/src/SurfaceRadiationMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/EnergyMainMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/GroundThermalPropertyMod.o \ + noahmp/src/SurfaceEnergyFluxVegetatedMod.o \ + noahmp/src/SurfaceEnergyFluxBareGroundMod.o \ + noahmp/src/SoilSnowTemperatureMainMod.o \ + noahmp/src/SoilSnowWaterPhaseChangeMod.o \ + noahmp/src/SnowCoverGroundNiu07Mod.o \ + noahmp/src/SurfaceEmissivityMod.o \ + noahmp/src/GroundRoughnessPropertyMod.o \ + noahmp/src/PsychrometricVariableMod.o \ + noahmp/src/ResistanceGroundEvaporationMod.o \ + noahmp/src/SoilWaterTranspirationMod.o \ + noahmp/src/SurfaceAlbedoMod.o \ + noahmp/src/SurfaceRadiationMod.o \ + noahmp/src/SnowCoverGroundAR25Mod.o + + +noahmp/src/NoahmpMainMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/IrrigationPrepareMod.o \ + noahmp/src/IrrigationSprinklerMod.o \ + noahmp/src/CanopyWaterInterceptMod.o \ + noahmp/src/PrecipitationHeatAdvectMod.o \ + noahmp/src/EnergyMainMod.o \ + noahmp/src/WaterMainMod.o \ + noahmp/src/AtmosForcingMod.o \ + noahmp/src/BiochemCropMainMod.o \ + noahmp/src/BiochemNatureVegMainMod.o \ + noahmp/src/PhenologyMainMod.o \ + noahmp/src/BalanceErrorCheckMod.o \ + noahmp/src/GeneralInitMod.o + + +noahmp/src/HumiditySaturationMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/ResistanceAboveCanopyChen97Mod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/ResistanceAboveCanopyMostMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/ResistanceCanopyStomataBallBerryMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/ResistanceCanopyStomataJarvisMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/HumiditySaturationMod.o + + +noahmp/src/ResistanceLeafToGroundMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/VaporPressureSaturationMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SurfaceEnergyFluxVegetatedMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/VaporPressureSaturationMod.o \ + noahmp/src/ResistanceAboveCanopyMostMod.o \ + noahmp/src/ResistanceAboveCanopyChen97Mod.o \ + noahmp/src/ResistanceLeafToGroundMod.o \ + noahmp/src/ResistanceCanopyStomataBallBerryMod.o \ + noahmp/src/ResistanceCanopyStomataJarvisMod.o + + +noahmp/src/ResistanceBareGroundChen97Mod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/ResistanceBareGroundMostMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SurfaceEnergyFluxBareGroundMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/VaporPressureSaturationMod.o \ + noahmp/src/ResistanceBareGroundMostMod.o \ + noahmp/src/ResistanceBareGroundChen97Mod.o + + +noahmp/src/SoilSnowTemperatureSolverMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/MatrixSolverTriDiagonalMod.o + + +noahmp/src/SoilSnowThermalDiffusionMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SoilSnowTemperatureMainMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SoilSnowTemperatureSolverMod.o \ + noahmp/src/SoilSnowThermalDiffusionMod.o + + +noahmp/src/SoilWaterSupercoolKoren99Mod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SoilWaterSupercoolNiu06Mod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SoilSnowWaterPhaseChangeMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SoilWaterSupercoolKoren99Mod.o \ + noahmp/src/SoilWaterSupercoolNiu06Mod.o + + +noahmp/src/GroundRoughnessPropertyMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/PsychrometricVariableMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/ResistanceGroundEvaporationMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowCoverGroundNiu07Mod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowCoverGroundAR25Mod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SoilWaterTranspirationMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SurfaceEmissivityMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/AtmosForcingMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/PhenologyMainMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/CropPhotosynthesisMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/CropGrowDegreeDayMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/CarbonFluxNatureVegMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/CarbonFluxCropMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/BiochemNatureVegMainMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/CarbonFluxNatureVegMod.o + + +noahmp/src/BiochemCropMainMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/CarbonFluxCropMod.o \ + noahmp/src/CropGrowDegreeDayMod.o \ + noahmp/src/CropPhotosynthesisMod.o + + +noahmp/src/IrrigationPrepareMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/IrrigationTriggerMod.o + + +noahmp/src/BalanceErrorCheckMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/GeneralInitMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/BalanceErrorCheckGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/EnergyMainGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SnowCoverGlacierMod.o \ + noahmp/src/GroundRoughnessPropertyGlacierMod.o \ + noahmp/src/GroundThermalPropertyGlacierMod.o \ + noahmp/src/SurfaceAlbedoGlacierMod.o \ + noahmp/src/SurfaceRadiationGlacierMod.o \ + noahmp/src/SurfaceEmissivityGlacierMod.o \ + noahmp/src/ResistanceGroundEvaporationGlacierMod.o \ + noahmp/src/PsychrometricVariableGlacierMod.o \ + noahmp/src/SurfaceEnergyFluxGlacierMod.o \ + noahmp/src/GlacierTemperatureMainMod.o \ + noahmp/src/GlacierPhaseChangeMod.o + + +noahmp/src/GeneralInitGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/GlacierIceThermalPropertyMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/GlacierPhaseChangeMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/GlacierTemperatureMainMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/GlacierTemperatureSolverMod.o \ + noahmp/src/GlacierThermalDiffusionMod.o + + +noahmp/src/GlacierTemperatureSolverMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/MatrixSolverTriDiagonalMod.o + + +noahmp/src/GlacierThermalDiffusionMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/GroundAlbedoGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/GroundRoughnessPropertyGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/GroundThermalPropertyGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SnowThermalPropertyMod.o \ + noahmp/src/GlacierIceThermalPropertyMod.o + + +noahmp/src/NoahmpMainGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/AtmosForcingMod.o \ + noahmp/src/GeneralInitGlacierMod.o \ + noahmp/src/PrecipitationHeatAdvectGlacierMod.o \ + noahmp/src/EnergyMainGlacierMod.o \ + noahmp/src/WaterMainGlacierMod.o \ + noahmp/src/BalanceErrorCheckGlacierMod.o + + +noahmp/src/PrecipitationHeatAdvectGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/PsychrometricVariableGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/ResistanceGroundEvaporationGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowCoverGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SnowWaterMainGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SnowfallBelowCanopyMod.o \ + noahmp/src/SnowpackCompactionMod.o \ + noahmp/src/SnowLayerCombineMod.o \ + noahmp/src/SnowLayerDivideMod.o \ + noahmp/src/SnowpackHydrologyGlacierMod.o \ + noahmp/src/SnowpackCompactionAR24Mod.o \ + noahmp/src/SnowAerosolSnicarMod.o + + +noahmp/src/SnowpackHydrologyGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SnowLayerCombineMod.o + + +noahmp/src/SurfaceAlbedoGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SnowAgingBatsMod.o \ + noahmp/src/SnowAlbedoBatsMod.o \ + noahmp/src/SnowAlbedoClassMod.o \ + noahmp/src/GroundAlbedoGlacierMod.o \ + noahmp/src/SnowAlbedoSnicarMod.o \ + noahmp/src/SnowAgingSnicarMod.o \ + noahmp/src/SnowFreshRadiusMod.o + + +noahmp/src/SurfaceEmissivityGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/SurfaceEnergyFluxGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/VaporPressureSaturationMod.o \ + noahmp/src/ResistanceBareGroundMostMod.o + + +noahmp/src/SurfaceRadiationGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o + + +noahmp/src/WaterMainGlacierMod.o: \ + noahmp/utility/Machine.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/SnowWaterMainGlacierMod.o module_sf_bep.o: \ @@ -1335,8 +2415,6 @@ module_physics_init.o: \ module_sf_clm.o \ module_sf_ctsm.o \ module_sf_ssib.o \ - module_sf_noahmplsm.o \ - module_sf_noahmpdrv.o \ module_sf_bep.o \ module_sf_bep_bem.o \ module_sf_ruclsm.o \ @@ -1410,7 +2488,9 @@ module_physics_init.o: \ ../frame/module_wrf_error.o \ ../frame/module_dm.o \ ../share/module_llxy.o \ - ../share/module_model_constants.o + ../share/module_model_constants.o \ + noahmp/drivers/wrf/NoahmpWRFinitMod.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o module_microphysics_driver.o: \ @@ -1596,12 +2676,10 @@ module_surface_driver.o: \ module_sf_pxsfclay.o \ module_sf_gfs.o \ module_sf_noah_seaice_drv.o \ - module_sf_noahmp_groundwater.o \ module_sf_noahdrv.o \ module_sf_clm.o \ module_sf_ctsm.o \ module_sf_ssib.o \ - module_sf_noahmpdrv.o \ module_sf_ruclsm.o \ module_sf_pxlsm.o \ module_sf_mynnsfc_driver.o \ @@ -1620,7 +2698,11 @@ module_surface_driver.o: \ ../frame/module_state_description.o \ ../frame/module_configure.o \ ../frame/module_cpl.o \ - ../share/module_model_constants.o + ../share/module_model_constants.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/drivers/wrf/NoahmpWRFmainMod.o \ + noahmp/drivers/wrf/NoahmpUrbanDriverMainMod.o \ + noahmp/drivers/wrf/GroundWaterMmfMod.o module_sf_ocean_driver.o: \ @@ -3030,7 +4112,7 @@ module_first_rk_step_part1.o: \ ../phys/module_pbl_driver.o \ ../phys/module_radiation_driver.o \ ../phys/module_shallowcu_driver.o \ - ../phys/module_surface_driver.o + ../phys/module_surface_driver.o module_first_rk_step_part2.o: \ @@ -3240,10 +4322,11 @@ start_em.o : \ ../phys/module_firebrand_spotting.o \ ../phys/module_fr_fire_driver_wrf.o \ ../phys/module_lightning_driver.o \ + ../phys/noahmp/drivers/wrf/NoahmpIOVarType.o \ ../share/module_llxy.o \ ../share/module_model_constants.o \ ../phys/module_physics_init.o \ - ../phys/noahmp/drivers/wrf/module_sf_noahmpdrv.o \ + ../phys/noahmp/drivers/wrf/NoahmpGroundwaterInitMod.o \ module_stoch.o \ ../frame/module_tiles.o \ ../share/module_trajectory.o \ diff --git a/phys/CMakeLists.txt b/phys/CMakeLists.txt index b42aeb33bd..8cbd4b7f71 100644 --- a/phys/CMakeLists.txt +++ b/phys/CMakeLists.txt @@ -223,10 +223,166 @@ target_sources( module_sf_noahlsm.F module_sf_noahlsm_glacial_only.F # NoahMP Code - noahmp/drivers/wrf/module_sf_noahmpdrv.F - noahmp/src/module_sf_noahmp_glacier.F - noahmp/src/module_sf_noahmp_groundwater.F - noahmp/src/module_sf_noahmplsm.F + noahmp/drivers/wrf/NoahmpWRFinitMod.F90 + noahmp/drivers/wrf/NoahmpWRFmainMod.F90 + noahmp/drivers/wrf/NoahmpUrbanDriverMainMod.F90 + noahmp/drivers/wrf/NoahmpGroundwaterInitMod.F90 + noahmp/drivers/wrf/NoahmpSnowInitMod.F90 + noahmp/drivers/wrf/NoahmpInitMainMod.F90 + noahmp/drivers/wrf/NoahmpDriverMainMod.F90 + noahmp/drivers/wrf/NoahmpIOVarType.F90 + noahmp/drivers/wrf/NoahmpIOVarInitMod.F90 + noahmp/drivers/wrf/NoahmpReadTableMod.F90 + noahmp/drivers/wrf/ConfigVarOutTransferMod.F90 + noahmp/drivers/wrf/ForcingVarOutTransferMod.F90 + noahmp/drivers/wrf/EnergyVarOutTransferMod.F90 + noahmp/drivers/wrf/WaterVarOutTransferMod.F90 + noahmp/drivers/wrf/BiochemVarOutTransferMod.F90 + noahmp/drivers/wrf/ConfigVarInTransferMod.F90 + noahmp/drivers/wrf/ForcingVarInTransferMod.F90 + noahmp/drivers/wrf/EnergyVarInTransferMod.F90 + noahmp/drivers/wrf/WaterVarInTransferMod.F90 + noahmp/drivers/wrf/BiochemVarInTransferMod.F90 + noahmp/drivers/wrf/GroundWaterMmfMod.F90 + noahmp/drivers/wrf/PedoTransferSR2006Mod.F90 + noahmp/utility/Machine.F90 + noahmp/utility/CheckNanMod.F90 + noahmp/utility/PiecewiseLinearInterp1dMod.F90 + noahmp/src/ConstantDefineMod.F90 + noahmp/src/ConfigVarType.F90 + noahmp/src/ForcingVarType.F90 + noahmp/src/EnergyVarType.F90 + noahmp/src/WaterVarType.F90 + noahmp/src/BiochemVarType.F90 + noahmp/src/NoahmpVarType.F90 + noahmp/src/ConfigVarInitMod.F90 + noahmp/src/ForcingVarInitMod.F90 + noahmp/src/EnergyVarInitMod.F90 + noahmp/src/WaterVarInitMod.F90 + noahmp/src/BiochemVarInitMod.F90 + noahmp/src/CanopyHydrologyMod.F90 + noahmp/src/GroundWaterTopModelMod.F90 + noahmp/src/IrrigationFloodMod.F90 + noahmp/src/IrrigationInfilPhilipMod.F90 + noahmp/src/IrrigationMicroMod.F90 + noahmp/src/MatrixSolverTriDiagonalMod.F90 + noahmp/src/RunoffSubSurfaceDrainageMod.F90 + noahmp/src/RunoffSubSurfaceEquiWaterTableMod.F90 + noahmp/src/RunoffSubSurfaceGroundWaterMod.F90 + noahmp/src/RunoffSubSurfaceShallowMmfMod.F90 + noahmp/src/RunoffSurfaceBatsMod.F90 + noahmp/src/RunoffSurfaceDynamicVicMod.F90 + noahmp/src/RunoffSurfaceExcessDynamicVicMod.F90 + noahmp/src/RunoffSurfaceFreeDrainMod.F90 + noahmp/src/RunoffSurfaceTopModelEquiMod.F90 + noahmp/src/RunoffSurfaceTopModelGrdMod.F90 + noahmp/src/RunoffSurfaceTopModelMmfMod.F90 + noahmp/src/RunoffSurfaceVicMod.F90 + noahmp/src/RunoffSurfaceXinAnJiangMod.F90 + noahmp/src/RunoffSurfaceWetlandMod.F90 + noahmp/src/WetlandWaterZhang22Mod.F90 + noahmp/src/ShallowWaterTableMmfMod.F90 + noahmp/src/SnowfallBelowCanopyMod.F90 + noahmp/src/SnowLayerCombineMod.F90 + noahmp/src/SnowLayerDivideMod.F90 + noahmp/src/SnowLayerWaterComboMod.F90 + noahmp/src/SnowpackCompactionMod.F90 + noahmp/src/SnowpackCompactionAR24Mod.F90 + noahmp/src/SnowpackHydrologyMod.F90 + noahmp/src/SnowWaterMainMod.F90 + noahmp/src/SoilHydraulicPropertyMod.F90 + noahmp/src/SoilMoistureSolverMod.F90 + noahmp/src/SoilWaterDiffusionRichardsMod.F90 + noahmp/src/SoilWaterInfilGreenAmptMod.F90 + noahmp/src/SoilWaterInfilPhilipMod.F90 + noahmp/src/SoilWaterInfilSmithParlangeMod.F90 + noahmp/src/SoilWaterMainMod.F90 + noahmp/src/TileDrainageEquiDepthMod.F90 + noahmp/src/TileDrainageHooghoudtMod.F90 + noahmp/src/TileDrainageSimpleMod.F90 + noahmp/src/WaterMainMod.F90 + noahmp/src/WaterTableDepthSearchMod.F90 + noahmp/src/WaterTableEquilibriumMod.F90 + noahmp/src/IrrigationTriggerMod.F90 + noahmp/src/IrrigationSprinklerMod.F90 + noahmp/src/CanopyWaterInterceptMod.F90 + noahmp/src/PrecipitationHeatAdvectMod.F90 + noahmp/src/SnowThermalPropertyMod.F90 + noahmp/src/SoilThermalPropertyMod.F90 + noahmp/src/GroundThermalPropertyMod.F90 + noahmp/src/EnergyMainMod.F90 + noahmp/src/NoahmpMainMod.F90 + noahmp/src/SnowAerosolSnicarMod.F90 + noahmp/src/SnowAgingBatsMod.F90 + noahmp/src/SnowAgingSnicarMod.F90 + noahmp/src/SnowAlbedoBatsMod.F90 + noahmp/src/SnowAlbedoClassMod.F90 + noahmp/src/SnowAlbedoSnicarMod.F90 + noahmp/src/SnowFreshRadiusMod.F90 + noahmp/src/SnowInputSnicarMod.F90 + noahmp/src/SnowRadiationSnicarMod.F90 + noahmp/src/GroundAlbedoMod.F90 + noahmp/src/CanopyRadiationTwoStreamMod.F90 + noahmp/src/SurfaceAlbedoMod.F90 + noahmp/src/SurfaceRadiationMod.F90 + noahmp/src/HumiditySaturationMod.F90 + noahmp/src/ResistanceAboveCanopyChen97Mod.F90 + noahmp/src/ResistanceAboveCanopyMostMod.F90 + noahmp/src/ResistanceCanopyStomataBallBerryMod.F90 + noahmp/src/ResistanceCanopyStomataJarvisMod.F90 + noahmp/src/ResistanceLeafToGroundMod.F90 + noahmp/src/VaporPressureSaturationMod.F90 + noahmp/src/SurfaceEnergyFluxVegetatedMod.F90 + noahmp/src/ResistanceBareGroundChen97Mod.F90 + noahmp/src/ResistanceBareGroundMostMod.F90 + noahmp/src/SurfaceEnergyFluxBareGroundMod.F90 + noahmp/src/SoilSnowTemperatureMainMod.F90 + noahmp/src/SoilSnowTemperatureSolverMod.F90 + noahmp/src/SoilSnowThermalDiffusionMod.F90 + noahmp/src/SoilSnowWaterPhaseChangeMod.F90 + noahmp/src/SoilWaterSupercoolKoren99Mod.F90 + noahmp/src/SoilWaterSupercoolNiu06Mod.F90 + noahmp/src/SnowCoverGroundNiu07Mod.F90 + noahmp/src/SnowCoverGroundAR25Mod.F90 + noahmp/src/GroundRoughnessPropertyMod.F90 + noahmp/src/SurfaceEmissivityMod.F90 + noahmp/src/PsychrometricVariableMod.F90 + noahmp/src/ResistanceGroundEvaporationMod.F90 + noahmp/src/SoilWaterTranspirationMod.F90 + noahmp/src/AtmosForcingMod.F90 + noahmp/src/PhenologyMainMod.F90 + noahmp/src/BiochemCropMainMod.F90 + noahmp/src/BiochemNatureVegMainMod.F90 + noahmp/src/CarbonFluxCropMod.F90 + noahmp/src/CarbonFluxNatureVegMod.F90 + noahmp/src/CropGrowDegreeDayMod.F90 + noahmp/src/CropPhotosynthesisMod.F90 + noahmp/src/IrrigationPrepareMod.F90 + noahmp/src/BalanceErrorCheckMod.F90 + noahmp/src/GeneralInitMod.F90 + noahmp/src/BalanceErrorCheckGlacierMod.F90 + noahmp/src/EnergyMainGlacierMod.F90 + noahmp/src/GeneralInitGlacierMod.F90 + noahmp/src/GlacierIceThermalPropertyMod.F90 + noahmp/src/GlacierPhaseChangeMod.F90 + noahmp/src/GlacierTemperatureMainMod.F90 + noahmp/src/GlacierTemperatureSolverMod.F90 + noahmp/src/GlacierThermalDiffusionMod.F90 + noahmp/src/GroundAlbedoGlacierMod.F90 + noahmp/src/GroundRoughnessPropertyGlacierMod.F90 + noahmp/src/GroundThermalPropertyGlacierMod.F90 + noahmp/src/NoahmpMainGlacierMod.F90 + noahmp/src/PrecipitationHeatAdvectGlacierMod.F90 + noahmp/src/PsychrometricVariableGlacierMod.F90 + noahmp/src/ResistanceGroundEvaporationGlacierMod.F90 + noahmp/src/SnowCoverGlacierMod.F90 + noahmp/src/SnowWaterMainGlacierMod.F90 + noahmp/src/SnowpackHydrologyGlacierMod.F90 + noahmp/src/SurfaceAlbedoGlacierMod.F90 + noahmp/src/SurfaceEmissivityGlacierMod.F90 + noahmp/src/SurfaceEnergyFluxGlacierMod.F90 + noahmp/src/SurfaceRadiationGlacierMod.F90 + noahmp/src/WaterMainGlacierMod.F90 module_sf_ocean_driver.F module_sf_oml.F diff --git a/phys/Makefile b/phys/Makefile index 18ee831ccf..8cb481e84e 100644 --- a/phys/Makefile +++ b/phys/Makefile @@ -160,11 +160,7 @@ MODULES = \ module_sf_noah_seaice.o \ module_sf_noah_seaice_drv.o \ module_sf_noahlsm_glacial_only.o \ - module_sf_noahmp_groundwater.o \ module_sf_gecros.o \ - module_sf_noahmpdrv.o \ - module_sf_noahmplsm.o \ - module_sf_noahmp_glacier.o \ module_sf_urban.o \ module_sf_bep.o \ module_sf_bep_bem.o \ @@ -257,6 +253,168 @@ PHYSMMM_MODULES = \ physics_mmm/bl_gwdo.o \ physics_mmm/bl_ysu.o +NOAHMP_MODULES = \ + noahmp/drivers/wrf/NoahmpWRFinitMod.o \ + noahmp/drivers/wrf/NoahmpWRFmainMod.o \ + noahmp/drivers/wrf/NoahmpUrbanDriverMainMod.o \ + noahmp/drivers/wrf/NoahmpGroundwaterInitMod.o \ + noahmp/drivers/wrf/NoahmpSnowInitMod.o \ + noahmp/drivers/wrf/NoahmpInitMainMod.o \ + noahmp/drivers/wrf/NoahmpDriverMainMod.o \ + noahmp/drivers/wrf/NoahmpIOVarType.o \ + noahmp/drivers/wrf/NoahmpIOVarInitMod.o \ + noahmp/drivers/wrf/NoahmpReadTableMod.o \ + noahmp/drivers/wrf/ConfigVarOutTransferMod.o \ + noahmp/drivers/wrf/ForcingVarOutTransferMod.o \ + noahmp/drivers/wrf/EnergyVarOutTransferMod.o \ + noahmp/drivers/wrf/WaterVarOutTransferMod.o \ + noahmp/drivers/wrf/BiochemVarOutTransferMod.o \ + noahmp/drivers/wrf/ConfigVarInTransferMod.o \ + noahmp/drivers/wrf/ForcingVarInTransferMod.o \ + noahmp/drivers/wrf/EnergyVarInTransferMod.o \ + noahmp/drivers/wrf/WaterVarInTransferMod.o \ + noahmp/drivers/wrf/BiochemVarInTransferMod.o \ + noahmp/drivers/wrf/GroundWaterMmfMod.o \ + noahmp/drivers/wrf/PedoTransferSR2006Mod.o \ + noahmp/utility/Machine.o \ + noahmp/utility/CheckNanMod.o \ + noahmp/utility/PiecewiseLinearInterp1dMod.o \ + noahmp/src/ConstantDefineMod.o \ + noahmp/src/ConfigVarType.o \ + noahmp/src/ForcingVarType.o \ + noahmp/src/EnergyVarType.o \ + noahmp/src/WaterVarType.o \ + noahmp/src/BiochemVarType.o \ + noahmp/src/NoahmpVarType.o \ + noahmp/src/ConfigVarInitMod.o \ + noahmp/src/ForcingVarInitMod.o \ + noahmp/src/EnergyVarInitMod.o \ + noahmp/src/WaterVarInitMod.o \ + noahmp/src/BiochemVarInitMod.o \ + noahmp/src/CanopyHydrologyMod.o \ + noahmp/src/GroundWaterTopModelMod.o \ + noahmp/src/IrrigationFloodMod.o \ + noahmp/src/IrrigationInfilPhilipMod.o \ + noahmp/src/IrrigationMicroMod.o \ + noahmp/src/MatrixSolverTriDiagonalMod.o \ + noahmp/src/RunoffSubSurfaceDrainageMod.o \ + noahmp/src/RunoffSubSurfaceEquiWaterTableMod.o \ + noahmp/src/RunoffSubSurfaceGroundWaterMod.o \ + noahmp/src/RunoffSubSurfaceShallowMmfMod.o \ + noahmp/src/RunoffSurfaceBatsMod.o \ + noahmp/src/RunoffSurfaceDynamicVicMod.o \ + noahmp/src/RunoffSurfaceExcessDynamicVicMod.o \ + noahmp/src/RunoffSurfaceFreeDrainMod.o \ + noahmp/src/RunoffSurfaceTopModelEquiMod.o \ + noahmp/src/RunoffSurfaceTopModelGrdMod.o \ + noahmp/src/RunoffSurfaceTopModelMmfMod.o \ + noahmp/src/RunoffSurfaceVicMod.o \ + noahmp/src/RunoffSurfaceXinAnJiangMod.o \ + noahmp/src/RunoffSurfaceWetlandMod.o \ + noahmp/src/WetlandWaterZhang22Mod.o \ + noahmp/src/ShallowWaterTableMmfMod.o \ + noahmp/src/SnowfallBelowCanopyMod.o \ + noahmp/src/SnowLayerCombineMod.o \ + noahmp/src/SnowLayerDivideMod.o \ + noahmp/src/SnowLayerWaterComboMod.o \ + noahmp/src/SnowpackCompactionMod.o \ + noahmp/src/SnowpackCompactionAR24Mod.o \ + noahmp/src/SnowpackHydrologyMod.o \ + noahmp/src/SnowWaterMainMod.o \ + noahmp/src/SoilHydraulicPropertyMod.o \ + noahmp/src/SoilMoistureSolverMod.o \ + noahmp/src/SoilWaterDiffusionRichardsMod.o \ + noahmp/src/SoilWaterInfilGreenAmptMod.o \ + noahmp/src/SoilWaterInfilPhilipMod.o \ + noahmp/src/SoilWaterInfilSmithParlangeMod.o \ + noahmp/src/SoilWaterMainMod.o \ + noahmp/src/TileDrainageEquiDepthMod.o \ + noahmp/src/TileDrainageHooghoudtMod.o \ + noahmp/src/TileDrainageSimpleMod.o \ + noahmp/src/WaterMainMod.o \ + noahmp/src/WaterTableDepthSearchMod.o \ + noahmp/src/WaterTableEquilibriumMod.o \ + noahmp/src/IrrigationTriggerMod.o \ + noahmp/src/IrrigationSprinklerMod.o \ + noahmp/src/CanopyWaterInterceptMod.o \ + noahmp/src/PrecipitationHeatAdvectMod.o \ + noahmp/src/SnowThermalPropertyMod.o \ + noahmp/src/SoilThermalPropertyMod.o \ + noahmp/src/GroundThermalPropertyMod.o \ + noahmp/src/EnergyMainMod.o \ + noahmp/src/NoahmpMainMod.o \ + noahmp/src/SnowAerosolSnicarMod.o \ + noahmp/src/SnowAgingBatsMod.o \ + noahmp/src/SnowAgingSnicarMod.o \ + noahmp/src/SnowAlbedoBatsMod.o \ + noahmp/src/SnowAlbedoClassMod.o \ + noahmp/src/SnowAlbedoSnicarMod.o \ + noahmp/src/SnowFreshRadiusMod.o \ + noahmp/src/SnowInputSnicarMod.o \ + noahmp/src/SnowRadiationSnicarMod.o \ + noahmp/src/GroundAlbedoMod.o \ + noahmp/src/CanopyRadiationTwoStreamMod.o \ + noahmp/src/SurfaceAlbedoMod.o \ + noahmp/src/SurfaceRadiationMod.o \ + noahmp/src/HumiditySaturationMod.o \ + noahmp/src/ResistanceAboveCanopyChen97Mod.o \ + noahmp/src/ResistanceAboveCanopyMostMod.o \ + noahmp/src/ResistanceCanopyStomataBallBerryMod.o \ + noahmp/src/ResistanceCanopyStomataJarvisMod.o \ + noahmp/src/ResistanceLeafToGroundMod.o \ + noahmp/src/VaporPressureSaturationMod.o \ + noahmp/src/SurfaceEnergyFluxVegetatedMod.o \ + noahmp/src/ResistanceBareGroundChen97Mod.o \ + noahmp/src/ResistanceBareGroundMostMod.o \ + noahmp/src/SurfaceEnergyFluxBareGroundMod.o \ + noahmp/src/SoilSnowTemperatureMainMod.o \ + noahmp/src/SoilSnowTemperatureSolverMod.o \ + noahmp/src/SoilSnowThermalDiffusionMod.o \ + noahmp/src/SoilSnowWaterPhaseChangeMod.o \ + noahmp/src/SoilWaterSupercoolKoren99Mod.o \ + noahmp/src/SoilWaterSupercoolNiu06Mod.o \ + noahmp/src/SnowCoverGroundNiu07Mod.o \ + noahmp/src/SnowCoverGroundAR25Mod.o \ + noahmp/src/GroundRoughnessPropertyMod.o \ + noahmp/src/SurfaceEmissivityMod.o \ + noahmp/src/PsychrometricVariableMod.o \ + noahmp/src/ResistanceGroundEvaporationMod.o \ + noahmp/src/SoilWaterTranspirationMod.o \ + noahmp/src/AtmosForcingMod.o \ + noahmp/src/PhenologyMainMod.o \ + noahmp/src/BiochemCropMainMod.o \ + noahmp/src/BiochemNatureVegMainMod.o \ + noahmp/src/CarbonFluxCropMod.o \ + noahmp/src/CarbonFluxNatureVegMod.o \ + noahmp/src/CropGrowDegreeDayMod.o \ + noahmp/src/CropPhotosynthesisMod.o \ + noahmp/src/IrrigationPrepareMod.o \ + noahmp/src/BalanceErrorCheckMod.o \ + noahmp/src/GeneralInitMod.o \ + noahmp/src/BalanceErrorCheckGlacierMod.o \ + noahmp/src/EnergyMainGlacierMod.o \ + noahmp/src/GeneralInitGlacierMod.o \ + noahmp/src/GlacierIceThermalPropertyMod.o \ + noahmp/src/GlacierPhaseChangeMod.o \ + noahmp/src/GlacierTemperatureMainMod.o \ + noahmp/src/GlacierTemperatureSolverMod.o \ + noahmp/src/GlacierThermalDiffusionMod.o \ + noahmp/src/GroundAlbedoGlacierMod.o \ + noahmp/src/GroundRoughnessPropertyGlacierMod.o \ + noahmp/src/GroundThermalPropertyGlacierMod.o \ + noahmp/src/NoahmpMainGlacierMod.o \ + noahmp/src/PrecipitationHeatAdvectGlacierMod.o \ + noahmp/src/PsychrometricVariableGlacierMod.o \ + noahmp/src/ResistanceGroundEvaporationGlacierMod.o \ + noahmp/src/SnowCoverGlacierMod.o \ + noahmp/src/SnowWaterMainGlacierMod.o \ + noahmp/src/SnowpackHydrologyGlacierMod.o \ + noahmp/src/SurfaceAlbedoGlacierMod.o \ + noahmp/src/SurfaceEmissivityGlacierMod.o \ + noahmp/src/SurfaceEnergyFluxGlacierMod.o \ + noahmp/src/SurfaceRadiationGlacierMod.o \ + noahmp/src/WaterMainGlacierMod.o + OBJS = LIBTARGET = physics @@ -266,22 +424,24 @@ $(LIBTARGET) : (cd .. && ./tools/manage_externals/checkout_externals --externals ./arch/Externals.cfg) $(MAKE) $(J) non_nmm ; \ $(AR) $(ARFLAGS) ../main/$(LIBWRFLIB) $(MODULES) $(OBJS) \ - $(FIRE_MODULES) $(DIAGNOSTIC_MODULES_EM) $(PHYSMMM_MODULES) + $(FIRE_MODULES) $(DIAGNOSTIC_MODULES_EM) $(PHYSMMM_MODULES) $(NOAHMP_MODULES) include ../configure.wrf -non_nmm : $(MODULES) $(FIRE_MODULES) $(OBJS) $(DIAGNOSTIC_MODULES_EM) +non_nmm : $(MODULES) $(FIRE_MODULES) $(OBJS) $(DIAGNOSTIC_MODULES_EM) $(NOAHMP_MODULES) submodules : - @if [ \( ! -f module_sf_noahmpdrv.F \) -o \( ! -f module_sf_noahmp_glacier.F \) -o \ - \( ! -f module_sf_noahmp_groundwater.F \) -o \( ! -f module_sf_noahmplsm.F \) ] ; then \ + @if [ \( ! -f run/NoahmpTable.TBL \) -o \ + \( ! -f noahmp/drivers/wrf/NoahmpWRFmainMod.F90 \) -o \( ! -f noahmp/drivers/wrf/NoahmpWRFinitMod.F90 \) -o \ + \( ! -f noahmp/drivers/wrf/NoahmpIOVarInitMod.F90 \) -o \( ! -f noahmp/drivers/wrf/NoahmpIOVarType.F90 \) -o \ + \( ! -f noahmp/drivers/wrf/GroundWaterMmfMod.F90 \) -o \( ! -f noahmp/drivers/wrf/NoahmpUrbanDriverMainMod.F90 \) -o \ + \( ! -f noahmp/src/NoahmpMainMod.F90 \) -o \( ! -f noahmp/src/NoahmpVarType.F90 \) ] ; then \ echo Pulling in NoahMP submodule ; \ ( cd .. ; git submodule update --init --recursive ) ; \ - ln -sf noahmp/drivers/wrf/module_sf_noahmpdrv.F . ; \ - ln -sf noahmp/src/module_sf_noahmp_glacier.F . ; \ - ln -sf noahmp/src/module_sf_noahmp_groundwater.F . ; \ - ln -sf noahmp/src/module_sf_noahmplsm.F . ; \ - ( cd ../run ; ln -sf ../phys/noahmp/parameters/MPTABLE.TBL . ) ; \ + ( cd ../run ; ln -sf ../phys/noahmp/parameters/NoahmpTable.TBL . ) ; \ + ( cd ../run ; ln -sf ../phys/noahmp/parameters/snicar_drdt_bst_fit_60_c070416.nc . ) ; \ + ( cd ../run ; ln -sf ../phys/noahmp/parameters/snicar_optics_480bnd_c012422.nc . ) ; \ + ( cd ../run ; ln -sf ../phys/noahmp/parameters/snicar_optics_5bnd_c013122.nc . ) ; \ else \ echo No action required for NoahMP submodule ; \ fi diff --git a/phys/module_diag_functions.F b/phys/module_diag_functions.F index 0466dff45f..9fc9de5b3e 100644 --- a/phys/module_diag_functions.F +++ b/phys/module_diag_functions.F @@ -1166,7 +1166,7 @@ FUNCTION WetBulbTemp ( p, tK, rh) result( wbt ) ! ----------------- real :: tdK !~ Dewpoint temperature ( K ) real :: tC !~ Temperature ( C ) - real :: tdC !~ Dewpoint temperature ( K ) + real :: tdC !~ Dewpoint temperature ( C ) real :: svapr !~ Saturation vapor pressure ( Pa ) real :: vapr !~ Ambient vapor pressure ( Pa ) real :: gamma !~ Dummy term diff --git a/phys/module_diag_misc.F b/phys/module_diag_misc.F index 54ba69e42d..02ef626370 100644 --- a/phys/module_diag_misc.F +++ b/phys/module_diag_misc.F @@ -644,7 +644,7 @@ END SUBROUTINE diagnostic_output_calc !-------------------------- NOAHMP model diagnostic output subroutine noahmp_output_calc( ims,ime, jms,jme ,& i_start ,i_end ,j_start ,j_end ,num_tiles ,& - dt ,noahmp_acc_dt ,curr_secs2,opt_run ,stepwtd ,itimestep ,& + dt ,noahmp_acc_dt ,curr_secs2,opt_runsub,stepwtd ,itimestep ,& acsagv ,acsagb ,acirg ,acshg ,acevg ,acghv ,acpahg ,acirb ,& acshb ,acevb ,acghb ,acpahb ,acsav ,acirc ,acshc ,acevc ,& actr ,acpahv ,acswdnlsm,acswuplsm, & @@ -674,7 +674,7 @@ subroutine noahmp_output_calc( ims,ime, jms,jme real , intent(in) :: dt real , optional, intent(in) :: noahmp_acc_dt, curr_secs2 - integer, optional, intent(in) :: opt_run, stepwtd, itimestep + integer, optional, intent(in) :: opt_runsub, stepwtd, itimestep real, dimension( ims:ime, jms:jme ), optional, intent(inout) :: & acsagv ,acsagb ,acirg ,acshg ,acevg ,acghv ,acpahg ,acirb ,& @@ -828,7 +828,7 @@ subroutine noahmp_output_calc( ims,ime, jms,jme acponding(i,j) = acponding(i,j) + ponding(i,j) acrainlsm(i,j) = acrainlsm(i,j) + dt * rainlsm(i,j) acsnowlsm(i,j) = acsnowlsm(i,j) + dt * snowlsm(i,j) - if(opt_run == 5) then + if(opt_runsub == 5) then if(mod(itimestep,stepwtd) == 0) then acqlat(i,j) = acqlat(i,j) + qlat(i,j) * 1000.0 acqrf(i,j) = acqrf(i,j) + qrf(i,j) * 1000.0 diff --git a/phys/module_diagnostics_driver.F b/phys/module_diagnostics_driver.F index aa583b505f..37f042005c 100644 --- a/phys/module_diagnostics_driver.F +++ b/phys/module_diagnostics_driver.F @@ -1114,7 +1114,7 @@ SUBROUTINE diagnostics_driver ( grid, config_flags, & num_tiles=grid%num_tiles ,& dt=grid%dt ,& noahmp_acc_dt=config_flags%noahmp_acc_dt ,& - opt_run=config_flags%opt_run ,& + opt_runsub=config_flags%opt_runsub ,& stepwtd=grid%stepwtd ,& itimestep=grid%itimestep ,& curr_secs2=curr_secs2 ,& diff --git a/phys/module_physics_init.F b/phys/module_physics_init.F index 82f40de909..911f693234 100644 --- a/phys/module_physics_init.F +++ b/phys/module_physics_init.F @@ -139,7 +139,12 @@ SUBROUTINE phy_init ( id, config_flags, DT, restart, zfull, zhalf, & IRRSPLH, qtdrain, & gecros_state, & ! Optional gecros crop XSAIXY, LAI, & ! Optional Noah-MP - T2MVXY, T2MBXY, CHSTARXY , & ! Optional Noah-MP + T2MVXY, T2MBXY, CHSTARXY, FSATXY, WSURFXY, & ! Optional Noah-MP + snrdsxy, snfrxy, bcphixy, bcphoxy, ocphixy, ocphoxy, dust1xy, & + dust2xy, dust3xy, dust4xy, dust5xy, massconcbcphixy, massconcbcphoxy,& + massconcocphixy, massconcocphoxy, massconcdust1xy, massconcdust2xy, & + massconcdust3xy, massconcdust4xy, massconcdust5xy, & + ALBSOILDIRXY, ALBSOILDIFXY, & SMOISEQ ,SMCWTDXY ,RECHXY, DEEPRECHXY, AREAXY, & ! Optional Noah-MP WTDDT , STEPWTD ,QRFSXY ,QSPRINGSXY ,QSLATXY, & ! Optional Noah-MP FDEPTHXY, RIVERBEDXY, EQZWT, RIVERCONDXY, PEXPXY, & ! Optional Noah-MP @@ -275,7 +280,7 @@ SUBROUTINE phy_init ( id, config_flags, DT, restart, zfull, zhalf, & ,alevsiz_cu,num_months,no_src_types_cu,aeromcu,aeropcu & ! PSH/TWG 06/10/16 ,EFCG,EFCS,EFIG,EFIS,EFSG,EFSS & ! TWG #endif - ) + ,NoahmpIO ) !----------------------------------------------------------------- USE module_domain @@ -287,6 +292,8 @@ SUBROUTINE phy_init ( id, config_flags, DT, restart, zfull, zhalf, & #endif USE module_wind_fitch USE module_wind_mav ! Yulong add for WLM + USE NoahmpIOVarType, only : NoahmpIO_type + IMPLICIT NONE !----------------------------------------------------------------- TYPE (grid_config_rec_type) :: config_flags @@ -325,6 +332,7 @@ SUBROUTINE phy_init ( id, config_flags, DT, restart, zfull, zhalf, & INTENT(INOUT) :: OZMIXM REAL, DIMENSION( ims:ime, alevsiz, jms:jme, n_ozmixm-1, no_src_types ), OPTIONAL, & INTENT(INOUT) :: aerodm + type(NoahmpIO_type), OPTIONAL, intent(inout) :: NoahmpIO #if ( EM_CORE == 1 ) !PSH/TWG 06/10/16 @@ -545,6 +553,30 @@ SUBROUTINE phy_init ( id, config_flags, DT, restart, zfull, zhalf, & REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: T2MVXY REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: T2MBXY REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: CHSTARXY + REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: FSATXY + REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: WSURFXY + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: snrdsxy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: snfrxy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: bcphixy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: bcphoxy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: ocphixy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: ocphoxy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: dust1xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: dust2xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: dust3xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: dust4xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: dust5xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcbcphixy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcbcphoxy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcocphixy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcocphoxy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcdust1xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcdust2xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcdust3xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcdust4xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcdust5xy + REAL, OPTIONAL, DIMENSION(ims:ime,1:2,jms:jme) :: ALBSOILDIRXY + REAL, OPTIONAL, DIMENSION(ims:ime,1:2,jms:jme) :: ALBSOILDIFXY REAL, OPTIONAL, DIMENSION(ims:ime,1:num_soil_layers,jms:jme) :: SMOISEQ REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: SMCWTDXY REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: DEEPRECHXY @@ -873,7 +905,14 @@ SUBROUTINE phy_init ( id, config_flags, DT, restart, zfull, zhalf, & LOGICAL :: rdmaxalb INTEGER :: mfshconv INTEGER :: icloud_cu - INTEGER :: iopt_run + INTEGER :: iopt_runsub + INTEGER :: iopt_soil + INTEGER :: iopt_alb + INTEGER :: iopt_wetland + INTEGER :: SNICAR_SNOWOPTICS_OPT + INTEGER :: SNICAR_DUSTOPTICS_OPT + INTEGER :: SNICAR_SOLARSPEC_OPT + INTEGER :: SNICAR_BANDNUMBER_OPT INTEGER :: aercu_opt !PSH/TWG REAL :: aercu_fct !PSH/TWG @@ -974,10 +1013,17 @@ SUBROUTINE phy_init ( id, config_flags, DT, restart, zfull, zhalf, & LakeModel = config_flags%sf_lake_physics mfshconv=config_flags%mfshconv IF(PRESENT(SMOISEQ)) THEN - iopt_run=config_flags%opt_run + iopt_runsub=config_flags%opt_runsub ELSE - iopt_run=-1 + iopt_runsub=-1 END IF + iopt_soil = config_flags%opt_soil + iopt_alb = config_flags%opt_alb + iopt_wetland = config_flags%opt_wetland + SNICAR_SNOWOPTICS_OPT = config_flags%SNICAR_SNOWOPTICS_OPT + SNICAR_DUSTOPTICS_OPT = config_flags%SNICAR_DUSTOPTICS_OPT + SNICAR_SOLARSPEC_OPT = config_flags%SNICAR_SOLARSPEC_OPT + SNICAR_BANDNUMBER_OPT = config_flags%SNICAR_BANDNUMBER_OPT #if ( EM_CORE == 1 ) obs_twindo_cg=model_config_rec%obs_twindo(1) obs_twindo=config_flags%obs_twindo @@ -1480,8 +1526,16 @@ SUBROUTINE phy_init ( id, config_flags, DT, restart, zfull, zhalf, & FDEPTHXY, RIVERBEDXY, EQZWT, RIVERCONDXY, PEXPXY, & rechclim , & ISICE, & - T2MVXY,T2MBXY,CHSTARXY , & - allowed_to_read , iopt_run , & + T2MVXY,T2MBXY,CHSTARXY, FSATXY, WSURFXY, & + snrdsxy, snfrxy, bcphixy, bcphoxy, ocphixy, ocphoxy, dust1xy, & + dust2xy, dust3xy, dust4xy, dust5xy, massconcbcphixy, massconcbcphoxy,& + massconcocphixy, massconcocphoxy, massconcdust1xy, massconcdust2xy, & + massconcdust3xy, massconcdust4xy, massconcdust5xy, & + ALBSOILDIRXY, ALBSOILDIFXY, NoahmpIO, & + allowed_to_read , iopt_runsub, & + iopt_soil, iopt_alb, iopt_wetland, & + SNICAR_SNOWOPTICS_OPT, SNICAR_DUSTOPTICS_OPT, & ! optional SNICAR option + SNICAR_SOLARSPEC_OPT, SNICAR_BANDNUMBER_OPT, & ! optional SNICAR option start_of_simulation , & lakedepth2d, savedtke12d, snowdp2d, h2osno2d, & !lake snl2d, t_grnd2d, t_lake3d, lake_icefrac3d, & !lake @@ -2514,9 +2568,17 @@ SUBROUTINE bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, & WTDDT, STEPWTD,QRFSXY ,QSPRINGSXY ,QSLATXY, & FDEPTHXY, RIVERBEDXY, EQZWT, RIVERCONDXY, PEXPXY, & rechclim , & - ISICE, & - T2MVXY, T2MBXY ,CHSTARXY, & - allowed_to_read, iopt_run , & + ISICE, & + T2MVXY, T2MBXY ,CHSTARXY, FSATXY, WSURFXY, & + snrdsxy, snfrxy, bcphixy, bcphoxy, ocphixy, ocphoxy, dust1xy, & + dust2xy, dust3xy, dust4xy, dust5xy, massconcbcphixy, massconcbcphoxy,& + massconcocphixy, massconcocphoxy, massconcdust1xy, massconcdust2xy, & + massconcdust3xy, massconcdust4xy, massconcdust5xy, & + ALBSOILDIRXY, ALBSOILDIFXY, NoahmpIO, & + allowed_to_read, iopt_runsub, & + iopt_soil, iopt_alb, iopt_wetland, & + SNICAR_SNOWOPTICS_OPT, SNICAR_DUSTOPTICS_OPT, & ! optional SNICAR option + SNICAR_SOLARSPEC_OPT, SNICAR_BANDNUMBER_OPT, & ! optional SNICAR option start_of_simulation, & lakedepth2d, savedtke12d, snowdp2d, h2osno2d, & !lake snl2d, t_grnd2d, t_lake3d, lake_icefrac3d, & !lake @@ -2656,9 +2718,9 @@ SUBROUTINE bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, & USE module_sf_myjsfc USE module_sf_qnsesfc USE module_sf_noahdrv - USE module_sf_noahlsm, only : LCZ_1,LCZ_2,LCZ_3,LCZ_4,LCZ_5,LCZ_6,LCZ_7,LCZ_8,LCZ_9,LCZ_10,LCZ_11 - USE module_sf_noahmpdrv - USE noahmp_tables, ONLY: LCZ_1_TABLE,LCZ_2_TABLE,LCZ_3_TABLE,LCZ_4_TABLE,LCZ_5_TABLE,LCZ_6_TABLE,LCZ_7_TABLE,LCZ_8_TABLE,LCZ_9_TABLE,LCZ_10_TABLE,LCZ_11_TABLE + USE module_sf_noahlsm, only : LCZ_1,LCZ_2,LCZ_3,LCZ_4,LCZ_5,LCZ_6,LCZ_7,LCZ_8,LCZ_9,LCZ_10,LCZ_11 + USE NoahmpWRFinitMod + USE NoahmpIOVarType, only : NoahmpIO_type #ifdef WRF_USE_CLM USE module_sf_clm, only : clminit #endif @@ -2708,7 +2770,12 @@ SUBROUTINE bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, & its, ite, jts, jte, kts, kte INTEGER , INTENT(IN) :: num_soil_layers INTEGER , INTENT(IN) :: SF_URBAN_PHYSICS - INTEGER , INTENT(IN) :: IOPT_RUN + INTEGER , INTENT(IN) :: IOPT_RUNSUB + INTEGER , INTENT(IN) :: IOPT_SOIL,IOPT_ALB,IOPT_WETLAND + INTEGER , INTENT(IN), OPTIONAL :: SNICAR_SNOWOPTICS_OPT, & + SNICAR_DUSTOPTICS_OPT, & + SNICAR_SOLARSPEC_OPT, & + SNICAR_BANDNUMBER_OPT INTEGER , INTENT(IN) :: itimestep ! INTEGER , INTENT(IN) :: LakeModel @@ -2832,6 +2899,30 @@ SUBROUTINE bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, & REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: T2MVXY REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: T2MBXY REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: CHSTARXY + REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: FSATXY + REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: WSURFXY + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: snrdsxy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: snfrxy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: bcphixy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: bcphoxy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: ocphixy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: ocphoxy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: dust1xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: dust2xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: dust3xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: dust4xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: dust5xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcbcphixy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcbcphoxy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcocphixy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcocphoxy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcdust1xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcdust2xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcdust3xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcdust4xy + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme) :: massconcdust5xy + REAL, OPTIONAL, DIMENSION(ims:ime,1:2,jms:jme) :: ALBSOILDIRXY + REAL, OPTIONAL, DIMENSION(ims:ime,1:2,jms:jme) :: ALBSOILDIFXY REAL, OPTIONAL, DIMENSION(ims:ime,1:num_soil_layers,jms:jme) :: SMOISEQ REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: SMCWTDXY REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: DEEPRECHXY @@ -2868,6 +2959,8 @@ SUBROUTINE bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, & INTEGER, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: IRNUMFI ! tile drainage REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: qtdrain +! new NoahmpIO variables + type(NoahmpIO_type), OPTIONAL, intent(inout) :: NoahmpIO !URBAN ! REAL, DIMENSION(1:num_roof_layers), INTENT(INOUT) :: DZR !Optional urban @@ -3430,7 +3523,7 @@ SUBROUTINE bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, & CALL wrf_error_fatal ( 'NoahMP does not work with NLCD data. Stop.' ) ENDIF - CALL NOAHMP_INIT(MMINLU, SNOW,SNOWH,CANWAT,ISLTYP,IVGTYP,XLAT, & + CALL NoahmpWRFinit(NoahmpIO, MMINLU, SNOW,SNOWH,CANWAT,ISLTYP,IVGTYP,XLAT, & TSLB,SMOIS,SH2O,DZS, FNDSOILW, FNDSNOWH, & TSK,isnowxy ,tvxy ,tgxy ,canicexy ,TMN,XICE, & canliqxy ,eahxy ,tahxy ,cmxy ,chxy , & @@ -3442,11 +3535,19 @@ SUBROUTINE bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, & irnumsi ,irnummi ,irnumfi ,irwatsi, & irwatmi ,irwatfi ,ireloss ,irsivol, & irmivol ,irfivol ,irrsplh , & - t2mvxy ,t2mbxy ,chstarxy , & + t2mvxy, t2mbxy, chstarxy, fsatxy, wsurfxy,& + snrdsxy, snfrxy, bcphixy, bcphoxy, ocphixy, ocphoxy, dust1xy, & + dust2xy, dust3xy, dust4xy, dust5xy, massconcbcphixy, massconcbcphoxy,& + massconcocphixy, massconcocphoxy, massconcdust1xy, massconcdust2xy, & + massconcdust3xy, massconcdust4xy, massconcdust5xy, & + ALBSOILDIRXY, ALBSOILDIFXY, & num_soil_layers, restart, & - allowed_to_read, iopt_run , iopt_crop, & + allowed_to_read, iopt_runsub, iopt_crop, & iopt_irr, iopt_irrm, & - sf_urban_physics, & ! urban scheme + sf_urban_physics, iopt_soil, iopt_alb, & + iopt_wetland, & + SNICAR_SNOWOPTICS_OPT, SNICAR_DUSTOPTICS_OPT, & ! optional SNICAR option + SNICAR_SOLARSPEC_OPT, SNICAR_BANDNUMBER_OPT, & ! optional SNICAR option ids,ide, jds,jde, kds,kde, & ims,ime, jms,jme, kms,kme, & its,ite, jts,jte, kts,kte & @@ -3454,8 +3555,7 @@ SUBROUTINE bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, & ,smoiseq ,smcwtdxy ,rechxy ,deeprechxy, qtdrain, areaxy ,dx, dy, msftx, msfty,& wtddt ,stepwtd ,dt ,qrfsxy ,qspringsxy ,qslatxy, & fdepthxy ,ht ,riverbedxy ,eqzwt ,rivercondxy ,pexpxy, & - rechclim, & - gecros_state & ! Optional gecros crop + rechclim & #endif ) @@ -3466,9 +3566,12 @@ SUBROUTINE bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, & config_flags%slucm_distributed_drag) CALL urban_var_init(ISURBAN,TSK,TSLB,TMN,IVGTYP, & !urban ims,ime,jms,jme,kms,kme,num_soil_layers, & !urban - LCZ_1_TABLE,LCZ_2_TABLE,LCZ_3_TABLE,LCZ_4_TABLE, & !urban - LCZ_5_TABLE,LCZ_6_TABLE,LCZ_7_TABLE,LCZ_8_TABLE, & !urban - LCZ_9_TABLE,LCZ_10_TABLE,LCZ_11_TABLE, & !urban + NoahmpIO%LCZ_1_TABLE,NoahmpIO%LCZ_2_TABLE, & !urban + NoahmpIO%LCZ_3_TABLE,NoahmpIO%LCZ_4_TABLE, & !urban + NoahmpIO%LCZ_5_TABLE,NoahmpIO%LCZ_6_TABLE, & !urban + NoahmpIO%LCZ_7_TABLE,NoahmpIO%LCZ_8_TABLE, & !urban + NoahmpIO%LCZ_9_TABLE,NoahmpIO%LCZ_10_TABLE, & !urban + NoahmpIO%LCZ_11_TABLE, & !urban restart,sf_urban_physics, & !urban XXXR_URB2D,XXXB_URB2D,XXXG_URB2D,XXXC_URB2D, & !urban TR_URB2D,TB_URB2D,TG_URB2D,TC_URB2D,QC_URB2D, & !urban diff --git a/phys/module_sf_clm.F b/phys/module_sf_clm.F index f428430929..ca55b6c8b1 100644 --- a/phys/module_sf_clm.F +++ b/phys/module_sf_clm.F @@ -23455,7 +23455,7 @@ module SNICARMod ! ! ! !CALLED FROM: -! subroutine SurfaceAlbedo in module SurfaceAlbedoMod (CLM) +! subroutine SurfaceAlbedoClm in module SurfaceAlbedoClmMod (CLM) ! subroutine albice (CSIM) ! ! !REVISION HISTORY: @@ -27391,12 +27391,12 @@ end subroutine initAccClmtype end module accFldsMod -module SurfaceRadiationMod +module SurfaceRadiationClmMod !------------------------------------------------------------------------------ !BOP ! -! !MODULE: SurfaceRadiationMod +! !MODULE: SurfaceRadiationClmMod ! ! !DESCRIPTION: ! Calculate solar fluxes absorbed by vegetation and ground surface @@ -27411,7 +27411,7 @@ module SurfaceRadiationMod save ! ! !PUBLIC MEMBER FUNCTIONS: - public :: SurfaceRadiation ! Solar fluxes absorbed by veg and ground surface + public :: SurfaceRadiationClm ! Solar fluxes absorbed by veg and ground surface ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein @@ -27429,10 +27429,10 @@ module SurfaceRadiationMod !------------------------------------------------------------------------------ !BOP ! -! !IROUTINE: SurfaceRadiation +! !IROUTINE: SurfaceRadiationClm ! ! !INTERFACE: - subroutine SurfaceRadiation(lbp, ubp, num_nourbanp, filter_nourbanp) + subroutine SurfaceRadiationClm(lbp, ubp, num_nourbanp, filter_nourbanp) ! ! !DESCRIPTION: ! Solar fluxes absorbed by vegetation and ground surface @@ -28194,16 +28194,16 @@ subroutine SurfaceRadiation(lbp, ubp, num_nourbanp, filter_nourbanp) end if end do - end subroutine SurfaceRadiation + end subroutine SurfaceRadiationClm -end module SurfaceRadiationMod +end module SurfaceRadiationClmMod -module SurfaceAlbedoMod +module SurfaceAlbedoClmMod !----------------------------------------------------------------------- !BOP ! -! !MODULE: SurfaceAlbedoMod +! !MODULE: SurfaceAlbedoClmMod ! ! !DESCRIPTION: ! Performs surface albedo calculations @@ -28221,7 +28221,7 @@ module SurfaceAlbedoMod save ! ! !PUBLIC MEMBER FUNCTIONS: - public :: SurfaceAlbedo ! Surface albedo and two-stream fluxes + public :: SurfaceAlbedoClm ! Surface albedo and two-stream fluxes ! ! !PRIVATE MEMBER FUNCTIONS: private :: SoilAlbedo ! Determine ground surface albedo @@ -28238,10 +28238,10 @@ module SurfaceAlbedoMod !----------------------------------------------------------------------- !BOP ! -! !IROUTINE: SurfaceAlbedo +! !IROUTINE: SurfaceAlbedoClm ! ! !INTERFACE: - subroutine SurfaceAlbedo(lbg, ubg, lbc, ubc, lbp, ubp, & + subroutine SurfaceAlbedoClm(lbg, ubg, lbc, ubc, lbp, ubp, & num_nourbanc, filter_nourbanc, & num_nourbanp, filter_nourbanp, & nextsw_cday, declinp1) @@ -28835,7 +28835,7 @@ subroutine SurfaceAlbedo(lbg, ubg, lbc, ubc, lbp, ubp, & end do end do - end subroutine SurfaceAlbedo + end subroutine SurfaceAlbedoClm !----------------------------------------------------------------------- @@ -28864,7 +28864,7 @@ subroutine SoilAlbedo (lbc, ubc, num_nourbanc, filter_nourbanc, coszen, albsnd, real(r8), intent(in) :: albsni(lbc:ubc,numrad) ! snow albedo (diffuse) ! ! !CALLED FROM: -! subroutine SurfaceAlbedo in this module +! subroutine SurfaceAlbedoClm in this module ! ! !REVISION HISTORY: ! Author: Gordon Bonan @@ -28963,7 +28963,7 @@ subroutine SoilAlbedo (lbc, ubc, num_nourbanc, filter_nourbanc, coszen, albsnd, albsoi(c,ib) = albsod(c,ib) end if - ! Weighting is done in SurfaceAlbedo, after the call to SNICAR_RT + ! Weighting is done in SurfaceAlbedoClm, after the call to SNICAR_RT ! This had to be done, because SoilAlbedo is called before SNICAR_RT, so at ! this point, snow albedo is not yet known. end if @@ -29006,7 +29006,7 @@ subroutine TwoStream (lbc, ubc, lbp, ubp, filter_vegsol, num_vegsol, & real(r8), intent(in) :: tau(lbp:ubp,numrad) ! leaf/stem tran weighted by fraction LAI and SAI ! ! !CALLED FROM: -! subroutine SurfaceAlbedo in this module +! subroutine SurfaceAlbedoClm in this module ! ! !REVISION HISTORY: ! Author: Gordon Bonan @@ -29254,7 +29254,7 @@ subroutine TwoStream (lbc, ubc, lbp, ubp, filter_vegsol, num_vegsol, & end subroutine TwoStream -end module SurfaceAlbedoMod +end module SurfaceAlbedoClmMod module SoilTemperatureMod @@ -56377,7 +56377,7 @@ subroutine iniTimeVar(snlx ,snowdpx ,dzclmx ,zclmx ,& use clm_varpar , only : nlevsoi,nlevgrnd, nlevsno, nlevlak,maxpatch use clm_varcon , only : denice, denh2o, zlnd,istsoil,isturb use FracWetMod , only : FracWet - use SurfaceAlbedoMod , only : SurfaceAlbedo + use SurfaceAlbedoClmMod , only : SurfaceAlbedoClm use globals , only : month, day, calday #if (defined CN) use CNEcosystemDynMod , only : CNEcosystemDyn @@ -56655,7 +56655,7 @@ subroutine iniTimeVar(snlx ,snowdpx ,dzclmx ,zclmx ,& end if end do - call SurfaceAlbedo(begg, endg, begc, endc, begp, endp,filter%num_nourbanc, filter%nourbanc, & + call SurfaceAlbedoClm(begg, endg, begc, endc, begp, endp,filter%num_nourbanc, filter%nourbanc, & filter%num_nourbanp, filter%nourbanp, calday,declin) @@ -57992,7 +57992,7 @@ subroutine driver (doalb,ilx,jlx,nextsw_cday, declinp1, declin, & ! + DGVMEcosystemDyn DGVM ecosystem dynamics: vegetation phenology [!DGVM] ! -> EcosystemDyn "static" ecosystem dynamics: vegetation phenology ! and soil carbon [!DGVM] -! -> SurfaceAlbedo albedos for next time step +! -> SurfaceAlbedoClm albedos for next time step ! -> Biogeophysics2 soil/snow & ground temp and update surface fluxes ! -> pft2col Average from PFT level to column level ! ==== End Loop 1 over clumps ==== @@ -58047,7 +58047,7 @@ subroutine driver (doalb,ilx,jlx,nextsw_cday, declinp1, declin, & use clm_varcon , only : set_caerdep_from_file,set_dustdep_from_file,zlnd, isturb, fpftdyn, fndepdyn !move fpftdyn, fndepdyn to clm_varcon.F use DriverInitMod , only : DriverInit use BalanceCheckMod , only : BalanceCheck, BeginWaterBalance - use SurfaceRadiationMod , only : SurfaceRadiation + use SurfaceRadiationClmMod , only : SurfaceRadiationClm use Hydrology1Mod , only : Hydrology1 use Hydrology2Mod , only : Hydrology2 use HydrologyLakeMod , only : HydrologyLake @@ -58056,7 +58056,7 @@ subroutine driver (doalb,ilx,jlx,nextsw_cday, declinp1, declin, & use CanopyFluxesMod , only : CanopyFluxes use Biogeophysics2Mod , only : Biogeophysics2 use BiogeophysicsLakeMod, only : BiogeophysicsLake - use SurfaceAlbedoMod , only : SurfaceAlbedo + use SurfaceAlbedoClmMod , only : SurfaceAlbedoClm use pft2colMod , only : pft2col ! use accFldsMod , only : updateAccFlds ! use accumulMod , only : accum_dealloc @@ -58357,8 +58357,8 @@ subroutine driver (doalb,ilx,jlx,nextsw_cday, declinp1, declin, & ! Surface Radiation ! ============================================================================ - call CLMDebug('SurfaceRadiation') !checked and modified according to CLM4 - call SurfaceRadiation(begp, endp, filter%num_nourbanp, filter%nourbanp) + call CLMDebug('SurfaceRadiationClm') !checked and modified according to CLM4 + call SurfaceRadiationClm(begp, endp, filter%num_nourbanp, filter%nourbanp) !ylu add urban module from CLM4 @@ -58703,8 +58703,8 @@ subroutine driver (doalb,ilx,jlx,nextsw_cday, declinp1, declin, & if (doalb) then ! Albedos for non-urban columns - call CLMDebug('SurfaceAlbedo') !checed and modified accoring to CLM4 --ylu - call SurfaceAlbedo(begg, endg, begc, endc, begp, endp, & + call CLMDebug('SurfaceAlbedoClm') !checed and modified accoring to CLM4 --ylu + call SurfaceAlbedoClm(begg, endg, begc, endc, begp, endp, & filter%num_nourbanc, filter%nourbanc, & filter%num_nourbanp, filter%nourbanp,nextsw_cday ,declinp1) diff --git a/phys/module_surface_driver.F b/phys/module_surface_driver.F index 1eb5a95eb2..d9d5006f30 100644 --- a/phys/module_surface_driver.F +++ b/phys/module_surface_driver.F @@ -44,10 +44,11 @@ SUBROUTINE surface_driver( & & ,pxlsm_smois_init, pxlsm_soil_nudge & ! PX-LSM & ,pxlsm_modis_veg, lai_px, wwlt_px, wfc_px & ! PX-LSM & ,wsat_px, clay_px, csand_px, fmsand_px & ! PX-LSM - & ,idveg ,iopt_crs ,iopt_btr ,iopt_run ,iopt_sfc ,iopt_frz & + & ,idveg ,iopt_crs ,iopt_btr ,iopt_runsub,iopt_sfc ,iopt_frz & & ,iopt_inf ,iopt_rad ,iopt_alb ,iopt_snf ,iopt_tbot ,iopt_stc & & ,iopt_gla ,iopt_rsf ,iopt_soil ,iopt_pedo ,iopt_crop ,iopt_irr & & ,iopt_irrm,iopt_infdv,iopt_tdrn ,soiltstep & + & ,iopt_runsrf, iopt_tksno, iopt_compact, iopt_scf, iopt_wetland & & ,soilcomp , soilcl1, soilcl2, soilcl3, soilcl4 & & ,isnowxy ,tvxy ,tgxy ,canicexy ,canliqxy ,eahxy & & ,tahxy ,cmxy ,chxy ,fwetxy ,sneqvoxy ,alboldxy & @@ -73,12 +74,25 @@ SUBROUTINE surface_driver( & & ,forczlsm ,forcwlsm ,acc_ssoil,acc_qinsur,acc_qseva ,acc_etrani & & ,eflxbxy ,soilenergy,snowenergy, canhsxy & & ,ACC_DWATERXY, ACC_PRCPXY, ACC_ECANXY, ACC_ETRANXY, ACC_EDIRXY & + & ,FSATXY, WSURFXY & + ! Noah-MP SNICAR snow albedo + & ,SNICAR_BANDNUMBER_OPT, SNICAR_SOLARSPEC_OPT & + & ,SNICAR_SNOWOPTICS_OPT, SNICAR_DUSTOPTICS_OPT & + & ,SNICAR_RTSOLVER_OPT, SNICAR_SNOWSHAPE_OPT & + & ,SNICAR_USE_AEROSOL, SNICAR_SNOWBC_INTMIX & + & ,SNICAR_SNOWDUST_INTMIX, SNICAR_USE_OC & + & ,SNICAR_AEROSOL_READTABLE, SNRDSXY, SNFRXY, BCPHIXY, BCPHOXY & + & ,OCPHIXY, OCPHOXY, DUST1XY, DUST2XY, DUST3XY, DUST4XY, DUST5XY & + & ,MassConcBCPHIXY, MassConcBCPHOXY, MassConcOCPHIXY & + & ,MassConcOCPHOXY, MassConcDUST1XY, MassConcDUST2XY & + & ,MassConcDUST3XY, MassConcDUST4XY, MassConcDUST5XY & + & ,ALBSOILDIRXY, ALBSOILDIFXY & ! Noah-MP irrigation & ,IRFRACT ,SIFRACT ,MIFRACT ,FIFRACT ,IRNUMSI ,IRNUMMI & & ,IRNUMFI ,IRWATSI ,IRWATMI ,IRWATFI ,IRELOSS ,IRSIVOL & & ,IRMIVOL ,IRFIVOL ,IRRSPLH & ! Noah-MP tile drainage - & ,QTDRAIN ,TD_FRACTION & + & ,QTDRAIN ,TD_FRACTION & ! Noah-MP ground water & ,smcwtdxy ,rechxy ,deeprechxy,fdepthxy,areaxy ,rivercondxy, riverbedxy & & ,eqzwt ,pexpxy ,qrfxy ,qspringxy,qslatxy ,qrfsxy, qlatxy, qspringsxy & @@ -329,7 +343,7 @@ SUBROUTINE surface_driver( & & ,irrigation,sf_surf_irr_scheme, irr_daily_amount & !IRRIG & ,irr_start_hour,irr_num_hours,irr_start_julianday & & ,irr_end_julianday,irr_freq,irr_ph,irr_rand_field & - & ) + & ) USE module_state_description, ONLY : SFCLAYSCHEME & ,SFCLAYREVSCHEME & @@ -366,9 +380,10 @@ SUBROUTINE surface_driver( & USE module_sf_gfs USE module_sf_noahdrv ! danli mosaic, the " ,only : lsm " needs to be deleted USE module_sf_noahlsm, only : LCZ_1,LCZ_2,LCZ_3,LCZ_4,LCZ_5,LCZ_6,LCZ_7,LCZ_8,LCZ_9,LCZ_10,LCZ_11 - USE noahmp_tables, only : LCZ_1_TABLE,LCZ_2_TABLE,LCZ_3_TABLE,LCZ_4_TABLE,LCZ_5_TABLE,LCZ_6_TABLE,LCZ_7_TABLE,LCZ_8_TABLE,LCZ_9_TABLE,LCZ_10_TABLE,LCZ_11_TABLE - USE module_sf_noahmpdrv, only : noahmplsm, noahmp_urban - USE module_sf_noahmp_groundwater + USE NoahmpIOVarType, only : NoahmpIOdom + USE NoahmpWRFmainMod + USE NoahmpUrbanDriverMainMod, only : noahmp_urban + USE GroundWaterMmfMod USE module_sf_noah_seaice_drv #ifdef WRF_USE_CLM USE module_sf_clm @@ -886,10 +901,17 @@ SUBROUTINE surface_driver( & ! NoahMP specific fields - INTEGER, OPTIONAL, INTENT(IN) :: idveg, iopt_crs, iopt_btr, iopt_run, iopt_sfc , iopt_frz, & - iopt_inf, iopt_rad, iopt_alb, iopt_snf, iopt_tbot, iopt_stc, & - iopt_gla, iopt_rsf, iopt_soil,iopt_pedo,iopt_crop, iopt_irr, & - iopt_irrm,iopt_infdv,iopt_tdrn + INTEGER, OPTIONAL, INTENT(IN) :: idveg, iopt_crs, iopt_btr,iopt_runsub, iopt_sfc, iopt_frz, & + iopt_inf, iopt_rad, iopt_alb, iopt_snf, iopt_tbot, iopt_stc, & + iopt_gla, iopt_rsf, iopt_soil,iopt_pedo,iopt_crop, iopt_irr, & + iopt_irrm,iopt_infdv,iopt_tdrn, & + iopt_runsrf, iopt_tksno, iopt_compact, iopt_scf, iopt_wetland + ! SNICAR options + INTEGER, OPTIONAL, INTENT(IN) :: SNICAR_BANDNUMBER_OPT, SNICAR_SOLARSPEC_OPT, SNICAR_SNOWOPTICS_OPT, & + SNICAR_DUSTOPTICS_OPT, SNICAR_RTSOLVER_OPT, SNICAR_SNOWSHAPE_OPT + LOGICAL, OPTIONAL, INTENT(IN) :: SNICAR_USE_AEROSOL, SNICAR_SNOWBC_INTMIX, SNICAR_SNOWDUST_INTMIX, & + SNICAR_USE_OC, SNICAR_AEROSOL_READTABLE + REAL, OPTIONAL, INTENT(IN) :: soiltstep ! NoahMP soil timestep (s) REAL, OPTIONAL, DIMENSION(ims:ime ,8, jms:jme), INTENT(IN) :: SOILCOMP REAL, OPTIONAL, DIMENSION(ims:ime , jms:jme) , INTENT(IN) :: SOILCL1,SOILCL2,SOILCL3,SOILCL4 @@ -909,6 +931,18 @@ SUBROUTINE surface_driver( & REAL, OPTIONAL, DIMENSION(ims:ime , jms:jme) , INTENT(INOUT) :: acc_ssoil,acc_qinsur,acc_qseva REAL, OPTIONAL, DIMENSION(ims:ime , jms:jme) , INTENT(INOUT) :: ACC_DWATERXY, ACC_PRCPXY, & ACC_ECANXY, ACC_ETRANXY, ACC_EDIRXY + REAL, OPTIONAL, DIMENSION(ims:ime , jms:jme) , INTENT(INOUT) :: FSATXY, WSURFXY + ! SNICAR variables + REAL, OPTIONAL, DIMENSION(ims:ime,-2:0,jms:jme), INTENT(INOUT) :: SNRDSXY, SNFRXY, BCPHIXY, BCPHOXY, & + OCPHIXY, OCPHOXY, DUST1XY, DUST2XY, & + DUST3XY, DUST4XY, DUST5XY, & + MassConcBCPHIXY, MassConcBCPHOXY, & + MassConcOCPHIXY, MassConcOCPHOXY, & + MassConcDUST1XY, MassConcDUST2XY, & + MassConcDUST3XY, MassConcDUST4XY, & + MassConcDUST5XY + REAL, OPTIONAL, DIMENSION(ims:ime,1:2,jms:jme), INTENT(INOUT) :: ALBSOILDIRXY, ALBSOILDIFXY + REAL, OPTIONAL, DIMENSION(ims:ime , jms:jme) , INTENT( OUT) :: eflxbxy,soilenergy, snowenergy REAL, OPTIONAL, DIMENSION(ims:ime , 1:num_soil_layers, jms:jme), INTENT(INOUT) :: acc_etrani REAL, OPTIONAL, DIMENSION(ims:ime , jms:jme), INTENT(INOUT) :: & @@ -1263,6 +1297,7 @@ SUBROUTINE surface_driver( & REAL :: tconst,tprior,tnew,yrday,deltat REAL :: SWSAVE REAL, DIMENSION( ims:ime, jms:jme ) :: GSWSAVE + !------------------------------------------------- ! urban related variables are added to declaration !------------------------------------------------- @@ -3166,15 +3201,17 @@ SUBROUTINE surface_driver( & if(HYDRO_dt .ge. 0) HYDRO_dt = dtbl #endif CALL wrf_debug(100,'in NOAHMP DRV') - CALL noahmplsm(ITIMESTEP, YR, JULIAN_IN, COSZEN, XLAT,XLONG, & +!$omp critical (noahmp_driver) + CALL NoahmpWRFmain(NoahmpIOdom(inest),ITIMESTEP,YR,JULIAN_IN,COSZEN,XLAT,XLONG, & DZ8W, DTBL, DZS, NUM_SOIL_LAYERS, DX, & IVGTYP, ISLTYP, VEGFRA, SHDMAX, TMN, & XLAND, XICE, XICE_THRESHOLD, CROPCAT, & - PLANTING, HARVEST,SEASON_GDD, & - IDVEG, IOPT_CRS, IOPT_BTR, IOPT_RUN, IOPT_SFC, IOPT_FRZ, & + PLANTING, HARVEST,SEASON_GDD, & + IDVEG, IOPT_CRS, IOPT_BTR, IOPT_RUNSUB, IOPT_SFC, IOPT_FRZ, & IOPT_INF, IOPT_RAD, IOPT_ALB, IOPT_SNF, IOPT_TBOT, IOPT_STC, & IOPT_GLA, IOPT_RSF, IOPT_SOIL,IOPT_PEDO,IOPT_CROP, IOPT_IRR, & - IOPT_IRRM, IOPT_INFDV, IOPT_TDRN, soiltstep, & + IOPT_IRRM, IOPT_INFDV, IOPT_TDRN, soiltstep, & + IOPT_RUNSRF, IOPT_TKSNO, IOPT_COMPACT, IOPT_SCF, IOPT_WETLAND, & IZ0TLND, SF_URBAN_PHYSICS, & SOILCOMP, SOILCL1, SOILCL2, SOILCL3, SOILCL4, & T_PHY, QV_CURR, U_PHY, V_PHY, SWDOWN, SWDDIR, & @@ -3194,7 +3231,6 @@ SUBROUTINE surface_driver( & ZSNSOXY, SNICEXY, SNLIQXY, LFMASSXY, RTMASSXY, STMASSXY, & WOODXY, STBLCPXY, FASTCPXY, LAI, XSAIXY, TAUSSXY, & SMOISEQ, SMCWTDXY,DEEPRECHXY, RECHXY, GRAINXY, GDDXY,PGSXY, & ! IN/OUT Noah MP only - GECROS_STATE, & ! IN/OUT gecros model QTDRAIN, TD_FRACTION, & ! IN/OUT tile drainage T2MVXY, T2MBXY, Q2MVXY, Q2MBXY, & TRADXY, NEEXY, GPPXY, NPPXY, FVEGXY, RUNSFXY, & @@ -3212,6 +3248,18 @@ SUBROUTINE surface_driver( & fpicexy,RAINLSM,SNOWLSM,forctlsm,forcqlsm,forcplsm,forczlsm,forcwlsm,& acc_ssoil, acc_qinsur, acc_qseva, acc_etrani, eflxbxy, soilenergy, snowenergy, canhsxy,& ACC_DWATERXY, ACC_PRCPXY, ACC_ECANXY, ACC_ETRANXY, ACC_EDIRXY, & + FSATXY, WSURFXY, & + SNICAR_BANDNUMBER_OPT, SNICAR_SOLARSPEC_OPT, & ! SNICAR variable + SNICAR_SNOWOPTICS_OPT, SNICAR_DUSTOPTICS_OPT, & ! SNICAR variable + SNICAR_RTSOLVER_OPT, SNICAR_SNOWSHAPE_OPT, & ! SNICAR variable + SNICAR_USE_AEROSOL, SNICAR_SNOWBC_INTMIX, & ! SNICAR variable + SNICAR_SNOWDUST_INTMIX, SNICAR_USE_OC, & ! SNICAR variable + SNICAR_AEROSOL_READTABLE, SNRDSXY, SNFRXY, BCPHIXY, BCPHOXY, & ! SNICAR variable + OCPHIXY, OCPHOXY, DUST1XY, DUST2XY, DUST3XY, DUST4XY, DUST5XY, & ! SNICAR variable + MassConcBCPHIXY, MassConcBCPHOXY, MassConcOCPHIXY, & ! SNICAR variable + MassConcOCPHOXY, MassConcDUST1XY, MassConcDUST2XY, & ! SNICAR variable + MassConcDUST3XY, MassConcDUST4XY, MassConcDUST5XY, & ! SNICAR variable + ALBSOILDIRXY, ALBSOILDIFXY, & ! SNICAR variable #ifdef WRF_HYDRO sfcheadrt,INFXSRT,soldrain,qtiledrain,ZWATBLE2D, & !O #endif @@ -3221,10 +3269,11 @@ SUBROUTINE surface_driver( & ! variables below are optional MP_RAINC = RAINCV, MP_RAINNC = RAINNCV, MP_SHCV = RAINSHV,& MP_SNOW = SNOWNCV, MP_GRAUP = GRAUPELNCV, MP_HAIL = HAILNCV ) +!$omp end critical (noahmp_driver) IF(SF_URBAN_PHYSICS > 0 ) THEN !urban - call noahmp_urban (sf_urban_physics, NUM_SOIL_LAYERS, IVGTYP,ITIMESTEP, & ! IN : Model configuration + call noahmp_urban (NoahmpIOdom(inest), sf_urban_physics,NUM_SOIL_LAYERS,IVGTYP,ITIMESTEP, & ! IN : Model configuration DTBL, COSZEN, XLAT_URB2D, & ! IN : Time/Space-related T_PHY, QV_CURR, U_PHY, V_PHY, SWDOWN, & ! IN : Forcing SWDDIR, SWDDIF, & @@ -3283,20 +3332,20 @@ SUBROUTINE surface_driver( & ENDIF - IF ( iopt_run .EQ. 5 ) THEN - IF ( MOD(itimestep,STEPWTD) .EQ. 0 ) THEN ! STEPWTD always and only non-zero for iopt_run == 5 + IF ( iopt_runsub .EQ. 5 ) THEN + IF ( MOD(itimestep,STEPWTD) .EQ. 0 ) THEN ! STEPWTD always and only non-zero for iopt_runsub == 5 CALL wrf_debug( 100, 'calling WTABLE' ) !gmm update wtable from lateral flow and shed water to rivers - CALL WTABLE_mmf_noahmp(num_soil_layers,xland,xice, xice_threshold, isice, & - isltyp,smoiseq,dzs,wtddt, & - fdepthxy,areaxy,ht,isurban,ivgtyp, & - rivercondxy,riverbedxy,eqzwt,pexpxy, & - smois,sh2o,smcwtdxy,zwtxy,qlatxy,qrfxy,deeprechxy,qspringxy, & - qslatxy,qrfsxy,qspringsxy,rechxy, & - ids,ide, jds,jde, kds,kde, & - ims,ime, jms,jme, kms,kme, & + CALL WTABLE_mmf_noahmp(NoahmpIOdom(inest),num_soil_layers,xland,xice, xice_threshold, isice, & + isltyp,smoiseq,dzs,wtddt, & + fdepthxy,areaxy,ht,isurban,ivgtyp, & + rivercondxy,riverbedxy,eqzwt,pexpxy, & + smois,sh2o,smcwtdxy,zwtxy,qlatxy,qrfxy,deeprechxy,qspringxy,& + qslatxy,qrfsxy,qspringsxy,rechxy, & + ids,ide, jds,jde, kds,kde, & + ims,ime, jms,jme, kms,kme, & i_start(ij),i_end(ij), j_start(ij),j_end(ij), kts,kte ) END IF @@ -3398,11 +3447,13 @@ SUBROUTINE surface_driver( & ENDIF TH2(I,J) = T2(I,J)*(1.E5/PSFC(I,J))**RCP ! ELSEIF (IVGTYP(I,J) == ISURBAN .OR. IVGTYP(I,J) == ISICE .OR. FVEGXY(I,J) == 0.0 ) THEN - ELSEIF( IVGTYP(I,J) == ISURBAN .or. IVGTYP(I,J) == LCZ_1_TABLE .or. IVGTYP(I,J) == LCZ_2_TABLE .or. & - IVGTYP(I,J) == LCZ_3_TABLE .or. IVGTYP(I,J) == LCZ_4_TABLE .or. IVGTYP(I,J) == LCZ_5_TABLE .or. & - IVGTYP(I,J) == LCZ_6_TABLE .or. IVGTYP(I,J) == LCZ_7_TABLE .or. IVGTYP(I,J) == LCZ_8_TABLE .or. & - IVGTYP(I,J) == LCZ_9_TABLE .or. IVGTYP(I,J) == LCZ_10_TABLE .or. IVGTYP(I,J) == LCZ_11_TABLE .or. & - (IVGTYP(I,J) == ISICE .AND. XICE(I,J) .LT. XICE_THRESHOLD)) THEN + ELSEIF (IVGTYP(I,J) == ISURBAN .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_1_TABLE .or. & + IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_2_TABLE .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_3_TABLE .or. & + IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_4_TABLE .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_5_TABLE .or. & + IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_6_TABLE .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_7_TABLE .or. & + IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_8_TABLE .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_9_TABLE .or. & + IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_10_TABLE .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_11_TABLE .or. & + (IVGTYP(I,J) == ISICE .AND. XICE(I,J) .LT. XICE_THRESHOLD)) THEN Q2(I,J) = Q2MBXY(I,J) T2(I,J) = T2MBXY(I,J) @@ -3426,10 +3477,13 @@ SUBROUTINE surface_driver( & IF(SF_URBAN_PHYSICS.eq.1) THEN DO j=j_start(ij),j_end(ij) !urban DO i=i_start(ij),i_end(ij) !urban - IF( IVGTYP(I,J) == ISURBAN .or. IVGTYP(I,J) == LCZ_1_TABLE .or. IVGTYP(I,J) == LCZ_2_TABLE .or. & - IVGTYP(I,J) == LCZ_3_TABLE .or. IVGTYP(I,J) == LCZ_4_TABLE .or. IVGTYP(I,J) == LCZ_5_TABLE .or. & - IVGTYP(I,J) == LCZ_6_TABLE .or. IVGTYP(I,J) == LCZ_7_TABLE .or. IVGTYP(I,J) == LCZ_8_TABLE .or. & - IVGTYP(I,J) == LCZ_9_TABLE .or. IVGTYP(I,J) == LCZ_10_TABLE .or. IVGTYP(I,J) == LCZ_11_TABLE )THEN + IF (IVGTYP(I,J) == ISURBAN .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_1_TABLE .or. & + IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_2_TABLE .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_3_TABLE .or. & + IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_4_TABLE .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_5_TABLE .or. & + IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_6_TABLE .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_7_TABLE .or. & + IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_8_TABLE .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_9_TABLE .or. & + IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_10_TABLE .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_11_TABLE) THEN + Q2(I,J) = (FVEGXY(I,J)*Q2MVXY(I,J) + (1.-FVEGXY(I,J))*Q2MBXY(I,J))*(1.-FRC_URB2D(I,J)) + & Q2_URB2D(I,J)*FRC_URB2D(I,J) T2(I,J) = (FVEGXY(I,J)*T2MVXY(I,J) + (1.-FVEGXY(I,J))*T2MBXY(I,J))*(1.-FRC_URB2D(I,J)) + & @@ -3450,10 +3504,13 @@ SUBROUTINE surface_driver( & IF((SF_URBAN_PHYSICS.eq.2).OR.(SF_URBAN_PHYSICS.eq.3)) THEN DO j=j_start(ij),j_end(ij) !urban DO i=i_start(ij),i_end(ij) !urban - IF( IVGTYP(I,J) == ISURBAN .or. IVGTYP(I,J) == LCZ_1_TABLE .or. IVGTYP(I,J) == LCZ_2_TABLE .or. & - IVGTYP(I,J) == LCZ_3_TABLE .or. IVGTYP(I,J) == LCZ_4_TABLE .or. IVGTYP(I,J) == LCZ_5_TABLE .or. & - IVGTYP(I,J) == LCZ_6_TABLE .or. IVGTYP(I,J) == LCZ_7_TABLE .or. IVGTYP(I,J) == LCZ_8_TABLE .or. & - IVGTYP(I,J) == LCZ_9_TABLE .or. IVGTYP(I,J) == LCZ_10_TABLE .or. IVGTYP(I,J) == LCZ_11_TABLE )THEN + IF (IVGTYP(I,J) == ISURBAN .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_1_TABLE .or. & + IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_2_TABLE .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_3_TABLE .or. & + IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_4_TABLE .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_5_TABLE .or. & + IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_6_TABLE .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_7_TABLE .or. & + IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_8_TABLE .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_9_TABLE .or. & + IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_10_TABLE .or. IVGTYP(I,J) == NoahmpIOdom(inest)%LCZ_11_TABLE) THEN + T2(I,J) = TH_PHY(i,1,j)/((1.E5/PSFC(I,J))**RCP) !urban TH2(I,J) = TH_PHY(i,1,j) !urban Q2(I,J) = qv_curr(i,1,j) !urban @@ -3476,7 +3533,7 @@ SUBROUTINE surface_driver( & !------------------------------------------------------------------ ELSE - CALL wrf_error_fatal('Lacking arguments for NOAHMPLSM in surface driver') + CALL wrf_error_fatal('Lacking arguments for NoahmpWRFmain in surface driver') ENDIF CASE (RUCLSMSCHEME) diff --git a/phys/noahmp b/phys/noahmp index 1d4d953f56..5da0b241e4 160000 --- a/phys/noahmp +++ b/phys/noahmp @@ -1 +1 @@ -Subproject commit 1d4d953f562b149724441ce1f4479dfdbd70dd01 +Subproject commit 5da0b241e48ecfd9a2a1bd667ed554765856d589 diff --git a/run/README.namelist b/run/README.namelist index 74138252b1..d840a48575 100644 --- a/run/README.namelist +++ b/run/README.namelist @@ -1313,7 +1313,7 @@ Options for use with the Noah-MP Land Surface Model (sf_surface_physics=4): 1 = Noah 2 = CLM 3 = SSiB - opt_run = 3, ! Noah-MP Runoff and Groundwater option + opt_runsrf = 3, ! Noah-MP Surface Runoff option 1 = TOPMODEL with groundwater 2 = TOPMODEL with equilibrium water table 3 = original surface and subsurface runoff (free drainage) - default @@ -1323,6 +1323,7 @@ Options for use with the Noah-MP Land Surface Model (sf_surface_physics=4): 6 = Variable Infiltration Capacity Model surface runoff scheme (Wood et al., 1992, JGR) 7 = Xiananjiang Infiltration and surface runoff scheme ((Jayawardena and Zhou, 2000) 8 = Dynamic VIC surface runoff scheme (Liang and Xie, 2001) + opt_runsub = 3, ! Noah-MP Subsurface Runoff option (Same option set as surface runoff option) opt_infdv = 0, ! Noah-MP infiltration option in dynamic VIC runoff scheme (only works for opt_run=8) 1 = Philip scheme 2 = Green-Ampt scheme @@ -1337,9 +1338,26 @@ Options for use with the Noah-MP Land Surface Model (sf_surface_physics=4): 1 = Modified two-stream (known to cause problems when vegetation fraction is small) 2 = Two-stream applied to grid-cell 3 = Two-stream applied to vegetated fraction - opt_alb = 2, ! Noah-MP Ground Surface Albedo option + opt_alb = 1, ! Noah-MP Ground Surface Albedo option 1 = BATS 2 = CLASS + 3 = SNICAR + opt_compact = 1, ! Noah-MP snowpack compaction option + 1 = Anderson 1976 scheme + 2 = Abolafia-Rosenzweig 2024 scheme + opt_tksno = 1, ! Noah-MP snow thermal conductivity option + 1 = Stieglitz(yen,1965) scheme + 2 = Anderson, 1976 scheme + 3 = constant + 4 = Verseghy (1991) scheme + 5 = Douvill(Yen, 1981) scheme + opt_scf = 1, ! Noah-MP snow cover fraction option + 1 = Niu & Yang 2007 scheme + 2 = Abolafia-Rosenzweig 2025 scheme + opt_wetland = 0, ! Noah-MP wetland option + 0 = off + 1 = Zhang 2022 fixed parameter + 2 = Zhang 2022 read in 2D parameter (not implemented) opt_snf = 1, ! Noah-MP Precipitation Partitioning between snow and rain 1 = Jordan (1991) 2 = BATS: Snow when SFCTMP < TFRZ+2.2 @@ -1374,8 +1392,6 @@ Options for use with the Noah-MP Land Surface Model (sf_surface_physics=4): geogrid must have been run with GEOGRID.TBL.ARW.noahmp, use with caution 0 = No crop model, will run default dynamic vegetation 1 = Liu, et al. 2016 - 2 = Gecros (Genotype-by-Environment interaction on CROp growth Simulator) Yin and van Laar, 2005 - opt_irr = 0, ! options for irrigation scheme geogrid must have been run with GEOGRID.TBL.ARW.noahmp, use with caution 0 = No irrigation diff --git a/run/README.physics_files b/run/README.physics_files index 2975df0505..746ade061f 100644 --- a/run/README.physics_files +++ b/run/README.physics_files @@ -57,10 +57,10 @@ RUC (Option 3): VEGPARM.TBL NoahMP (Option 4): - LANDUSE.TBL - GENPARTM.TBL - MPTABLE.TBL - SOILPARM.TBL + NoahmpTable.TBL + snicar_drdt_bst_fit_60_c070416.nc + snicar_optics_480bnd_c012422.nc + snicar_optics_5bnd_c013122.nc CLM (Option 5): LANDUSE.TBL diff --git a/share/mediation_wrfmain.F b/share/mediation_wrfmain.F index 2f32e261ba..7e6e4d1283 100644 --- a/share/mediation_wrfmain.F +++ b/share/mediation_wrfmain.F @@ -82,7 +82,7 @@ END SUBROUTINE start_domain ENDIF !gmm add input for noamp hydro model here - IF ( config_flags%opt_run.eq.5 ) THEN + IF ( config_flags%opt_runsub.eq.5 ) THEN CALL construct_filename2a ( inpname , config_flags%auxinput7_inname & ,grid%id , 2 , timestr) diff --git a/share/output_wrf.F b/share/output_wrf.F index 69ebcf31fc..2e8c346916 100644 --- a/share/output_wrf.F +++ b/share/output_wrf.F @@ -797,7 +797,8 @@ SUBROUTINE output_wrf ( fid , grid , config_flags, switch , ierr ) CALL wrf_put_dom_ti_integer ( fid, 'DVEG', config_flags%dveg , 1 , ierr ) CALL wrf_put_dom_ti_integer ( fid, 'OPT_CRS', config_flags%opt_crs , 1 , ierr ) CALL wrf_put_dom_ti_integer ( fid, 'OPT_BTR', config_flags%opt_btr , 1 , ierr ) - CALL wrf_put_dom_ti_integer ( fid, 'OPT_RUN', config_flags%opt_run , 1 , ierr ) + CALL wrf_put_dom_ti_integer ( fid, 'OPT_RUNSUB', config_flags%opt_runsub , 1 , ierr ) + CALL wrf_put_dom_ti_integer ( fid, 'OPT_RUNSRF', config_flags%opt_runsrf , 1 , ierr ) CALL wrf_put_dom_ti_integer ( fid, 'OPT_FRZ', config_flags%opt_frz , 1 , ierr ) CALL wrf_put_dom_ti_integer ( fid, 'OPT_INF', config_flags%opt_inf , 1 , ierr ) CALL wrf_put_dom_ti_integer ( fid, 'OPT_RAD', config_flags%opt_rad , 1 , ierr ) @@ -812,6 +813,12 @@ SUBROUTINE output_wrf ( fid , grid , config_flags, switch , ierr ) CALL wrf_put_dom_ti_integer ( fid, 'OPT_CROP', config_flags%opt_crop , 1 , ierr ) CALL wrf_put_dom_ti_integer ( fid, 'OPT_IRR', config_flags%opt_irr , 1 , ierr ) CALL wrf_put_dom_ti_integer ( fid, 'OPT_IRRM', config_flags%opt_irrm , 1 , ierr ) + CALL wrf_put_dom_ti_integer ( fid, 'OPT_COMPACT', config_flags%opt_compact , 1 , ierr ) + CALL wrf_put_dom_ti_integer ( fid, 'OPT_TKSNO', config_flags%opt_tksno , 1 , ierr ) + CALL wrf_put_dom_ti_integer ( fid, 'OPT_SCF', config_flags%opt_scf , 1 , ierr ) + CALL wrf_put_dom_ti_integer ( fid, 'OPT_WETLAND', config_flags%opt_wetland , 1 , ierr ) + CALL wrf_put_dom_ti_integer ( fid, 'OPT_TDRN', config_flags%opt_tdrn , 1 , ierr ) + CALL wrf_put_dom_ti_integer ( fid, 'OPT_INFDV', config_flags%opt_infdv , 1 , ierr ) ENDIF CALL wrf_put_dom_ti_integer ( fid, 'DFI_OPT', config_flags%dfi_opt , 1 , ierr ) diff --git a/share/wrf_timeseries.F b/share/wrf_timeseries.F index 53ccb27d1f..3aa9f77317 100644 --- a/share/wrf_timeseries.F +++ b/share/wrf_timeseries.F @@ -907,7 +907,7 @@ SUBROUTINE write_ts( grid ) grid%ts_clw(n,i) ELSE !!! WRF-Solar diagnostics - WRITE(UNIT=iunit,FMT='(i2,f13.6,i5,i5,i5,1x,49(f13.5,1x))') & + WRITE(UNIT=iunit,FMT='(i2,f13.6,i5,i5,i5,1x,50(f13.5,1x))') & grid%id, grid%ts_hour(n,i), & grid%id_tsloc(i), ix, iy, & grid%ts_t(n,i), & diff --git a/test/em_real/CMakeLists.txt b/test/em_real/CMakeLists.txt index d68270361a..f11e5baefb 100644 --- a/test/em_real/CMakeLists.txt +++ b/test/em_real/CMakeLists.txt @@ -84,7 +84,10 @@ wrf_setup_files( ${PROJECT_SOURCE_DIR}/run/URBPARM.TBL ${PROJECT_SOURCE_DIR}/run/URBPARM_LCZ.TBL ${PROJECT_SOURCE_DIR}/run/VEGPARM.TBL - ${PROJECT_SOURCE_DIR}/phys/noahmp/parameters/MPTABLE.TBL + ${PROJECT_SOURCE_DIR}/phys/noahmp/parameters/NoahmpTable.TBL + ${PROJECT_SOURCE_DIR}/phys/noahmp/parameters/snicar_drdt_bst_fit_60_c070416.nc + ${PROJECT_SOURCE_DIR}/phys/noahmp/parameters/snicar_optics_480bnd_c012422.nc + ${PROJECT_SOURCE_DIR}/phys/noahmp/parameters/snicar_optics_5bnd_c013122.nc ${PROJECT_SOURCE_DIR}/run/tr49t67 ${PROJECT_SOURCE_DIR}/run/tr49t85 ${PROJECT_SOURCE_DIR}/run/tr67t85 diff --git a/test/em_real/examples.namelist b/test/em_real/examples.namelist index 9dc6b8e87d..ab473b0ee4 100755 --- a/test/em_real/examples.namelist +++ b/test/em_real/examples.namelist @@ -53,18 +53,19 @@ Note, this is not a namelist.input file. Find what interests you, and cut and pa sf_surface_physics = 4 &noah_mp - dveg = 4, - opt_crs = 1, - opt_btr = 1, - opt_run = 1, - opt_sfc = 1, - opt_frz = 1, - opt_inf = 1, - opt_rad = 3, - opt_alb = 2, - opt_snf = 1, - opt_tbot = 2, - opt_stc = 1, + dveg = 4, + opt_crs = 1, + opt_btr = 1, + opt_runsub = 1, + opt_runsrf = 1, + opt_sfc = 1, + opt_frz = 1, + opt_inf = 1, + opt_rad = 3, + opt_alb = 2, + opt_snf = 1, + opt_tbot = 2, + opt_stc = 1, / ** Using UCM urban model