-
Notifications
You must be signed in to change notification settings - Fork 339
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Correct initialization of soil liquid water content for Noah-MP #1244
Correct initialization of soil liquid water content for Noah-MP #1244
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it would be very helpful to add some comments to the code to explain what each branch is doing. For example, which cells are affected by this condition
if(ivgtyp(i) == mpas_noahmp%isice_table .and. xice(i) .le. 0._RKIND) then
and which are affected by this condition
if(bexp.gt.0. .and. smcmax.gt.0. .and. psisat.gt.0.) then
?
It could also help to give names (and explanatory comments) for the constants used in the code (263.15
, 273.149
, 0.02
).
…ed the initialization of variable sh2o (soil liquid water) prior to calling subroutine NoahmpInitMain in subroutine noahmp_init.
e04e590
to
4ba48ba
Compare
I corrected the index n to ns in the computation of smois. I added a couple of comments to the initialization, as in the non-refactored version of Noah-MP (also refer to module_sf_noahmpdrv.F in WRF/phys). |
Hi, dear developers, I am currently testing MPAS-NoahMP and find sh2o=0 for all the land points in init.nc after running init_atmosphere. This is related to sh2o=0 for all land points, but smois field is good. See attached figures. This may be related to setting sh2o to 0 for all land points in mpas_atmphys_initialize_real.F https://github.com/ldfowler58/MPAS-Model/blob/91bc0882689b3e60803e5df90636d7713e62cc2c/src/core_atmosphere/physics/mpas_atmphys_initialize_real.F#L473 So it needs an initial value for sh2o from sw_input, similar for smois from sm_input, also similar to real in WRF: https://github.com/wrf-model/WRF/blob/d66e442fccc04111067e29274c9f9eaccc3cef28/share/module_soil_pre.F#L1689 So, if sh2o is correctly outputed to init.nc and read in mpas_atmphys_lsm_noahmpinit.F,
may not be necessary - before calling NoahmpInitMain |
I will double check this. |
Thanks for finding that "bug". I will work on it as soon as I can. We have a couple of bugs that we fixed and need to make available in the next MPAS bug fix release. |
This PR corrects the computation of the soil temperature (TSLB) in the Noah-MP land surface scheme. In this PR, we added the initialization of the soil liquid water (SH2O) in subroutine noahmp_init in module mpas_atmphys_lsm_noahmpinit.F prior to calling subroutine NoahmpInitMain.
Prior to adding the initialization of SH2O, running Noah-MP led TSLB to be set to ConstFreezePoint (273.16 K) in SoilSnowWaterPhaseChangeMod.F90 although the input TSLB was greater than ConstFreezePoint on the very first time step. This error occurred because TSLB is calculated as a function of the soil liquid (MassWatLiqTmp) and ice (MassWatIceTmp) water mass, and MassWatLiqTmp is always equal to 0 when not properly initializing SH2O.