-
Notifications
You must be signed in to change notification settings - Fork 2
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
to get a working version of 9-layer soil NoahMP #82
Comments
I have merged the current develop branch to Rongqian's ufs-noahmp-soil-level branch. There are some conflicts and bugs. I fixed them and the branch name is nsoil9 |
@barlage Just test. Can you access this issue? |
The first complaint is from fv3atm_common_io.F90 140: At line 263 of file /scratch1/NCEPDEV/global/Helin.Wei/save/git/sync/nsoil9/ufs-weather-model/FV3/io/fv3atm_common_io.F90 I found the problem. "If" in line 1137 of fv3atm_sfc_io.F90 should change to "elseif" |
103: forrtl: severe (408): fort: (3): Subscript #1 of the array REFSMCNOAH has value 0 which is less than the lower bound of 1 The soil type is used as index for arrary REFSMCNOAH. For some reason, we did have soil type 0 cases. |
57: forrtl: error (75): floating point exception |
With some fixes the control_debug_p8 still failed. However the restart RT ran to the completion and the results were indentical except for one parameter nsoil. nsoil is 4 in the control output files while 9 in the restart outputs. |
@HelinWei-NOAA yes, I can see it. |
@RongqianYang-NOAA Some issues from init_soil_3_mp. zs is the input soil layer depth, zhave is the output soil layer depth. Both are not right from printouts. 134: num_soil_layers= 9 4 9 |
@RongqianYang-NOAA For control_p8_debug, should lsoil_lsm be set to 9? If lsoil_lsm is set to 4, the test can go through. |
Should be 9. I just checked the runs I mentioned, '4' is used, even I set to '9' in the regression RUN file. |
It appears there is a problem with the dimension of 'zhave'. Trying to figure it out now. |
@RongqianYang-NOAA zhave is the input soil layer depth. If we use 4-layer noah, it is supposed to be 4. But you allocate the max of lsoil and lsoil_lsm (here is 9) to it. So you have given the value up to 6 levels. For index 7-9, the is no value given(NaN from printout). However in the code you have used the value at the 7th level
zhave(ihave+1), so it is looking for the value zhave(num_st_levels_input +2 +1), which is undefined. That's the cause of the crash. |
The value of 'zhave' in the code is more than just 4 or only for the Noah LSM. It includes potentially 6 (the old version of cycled RUC), 9 (the recent version of RUC), and 4 (in the case of Noah) in the regional SRW IC (lsoil or lsoil_lsm values). It considers Noah and Non-Noah ICes and the potential use for restart flag. It involves "level" to "level" interpolation (e.g., RUC with different vertical levels), and "layer" to "level" (from Noah to RUC). 'zhave' needs to be flexible. 'NaN' is OK as long as you don't use it. The reason the model did not crash in non-debugging mode is because the elements of the allocated array are assigned numerically to 9999E20 (or similar) instead of "NaN". I am checking the code now to see what is going on. It is possible to have a bug when dealing with "layer" to "level"/"layer" indexing as the Noah MP has an extra layer at the bottom and we're actually doing "layer" to "layer" interpolation. Disclaimer: I did not invent the code, it is a simplified and combined version of codes in the module_soil_pre.F90 and module_sf_ruclsm.F90 (rucinit part). |
Just tested the FV3_HRRR suite (using the same control_debug_p8 conf, but running 'control_hrrr' and adding the print statement of 'zs' and 'zhave' in 'module_soil_pre.F90'), where only 'module_soil_pre.F90' and 'lsm_ruc.F90' are involved (does not have Noah MP related code and my addons). It also uses "num_st_levels_input +2" (around line 222) in "module_soil_pre.F0'. But the model can go through. Edited output looks like:540 0: RUC Land Surface Model used 1203 83: num_soil_layers= 9 4 9
|
The font does not show up correctly. My apology. |
the control_debug_p8 test failed and showed lots of complaints from the section of the soil moisture initialization code. I believe once this test passes, the restart test will pass too
The text was updated successfully, but these errors were encountered: