-
Notifications
You must be signed in to change notification settings - Fork 1
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
[Bug] 2-stream mpas_atmosphere warnings #17
Comments
EDIT: the relevant subroutine tree is as follows There are no logical tests that avoid the tree from being followed. Therefore |
@junmeiban Can you look into this unwanted warning issue? Ideally, it will also be cleaner if we can really use a 'static' file instead of an init file for the static stream to avoid confusion. @syha Your originally implemented this two-stream initialization. What is the reason you used an 'init' file for the static stream? Do you remember what fields are missing in the normal static file to be used in this two-stream initialization? |
Sure. I can look into it. |
From my recent regional test using the 2-stream option, I noticed that mpas-jedi seems to write out the analysis file with many variables (controlled by stream_list.atmosphere_output?). This behavior is different from earlier version of code only writing our very few analysis variables (we used ncks or overwrote the background file via yaml setting). I remember @jjguerrette or @byoung-joo changed to have a more flexible/controllable I/O with a PR in mpas-jedi. Can you point which PR it is (I had hard time to find it) or point to the code for analysis I/O in mpas-jedi? I think this WARNING issue is more likely a mpas-jedi issue, not a MPAS-Model issue, understanding current analysis I/O in MPAS-JEDI will be helpful to solve it. |
Currently, all of the
We have an issue for that, but it is not done yet: https://github.com/JCSDA-internal/mpas-jedi/issues/355 .
|
My impression is that variables to 'read' is not only controlled by the '*_output' stream, yaml setting for background state variables also matters. For example, I remember I added t2m/q2m in yaml for making rttov operator work, but seems to no need to add them in 'output' stream file. That is another confusion part to me (i.e., variables I/O vs. background/state variables in use). |
If t2m/q2m is not added to @byoung-joo It is not very clear to me from your statement: is it a problem or not if I do not add t2m/q2m in Sorry. I accidently deleted some message by using edit mode instead of Quote reply mode. |
Jake, I checked my MPAS codes w/ the 2-stream option, and found that I had defined three different stream names for the purpose of separating out the streams: "static" for static.nc, "init" for init.nc, and "da_state" for analysis variables only. I don't know how you guys adopted my codes, but I defined and used static and init streams separately. Let me attach my src/core_atmosphere/Registry.xml here. |
@syha We did the same as you, just have a slightly different set of variables for 'da_state' stream. You may check back, linking init.nc to static.nc is in your documentation on how to use this option, we just followed. I believe it will not work if we just use static.nc for static stream. My question is that what is the reason you did this way (i.e., linking init.nc to static.nc)? Any suggestions how to make this cleaner, i.e., really use static.nc file for static stream. |
Info about those fields were specifically noted in the original message in skamaroc@096b5d3 |
Jake, that document was written by Bill Skamarock. So was the cold-start part in the document. |
@syha I am confused. I thought you did this for saving disk space for your DART runs. So you never used this option for your DART runs? If you only care/use restart mode, you do not need to have this. So this option was originally designed/developed by Bill for cold-start mode? |
Just for clarification and as the record for everybody, by definition, static.nc contains horizontal fields only. In other words, no vertical info in there (e.g., config_vertical_grid = false). But for the model integration, we do need vertical mesh info such as zgrid, zz, etc. That's why, in the 2-stream version, you always need to get those variables from init.nc, which doesn't vary with time (e.g., static). |
@syha thank you for clarification. |
For the warning message,
|
The implementation for jedi application (#5) is different from the original code https://github.com/skamaroc/MPAS-Model/tree/atmosphere/split_da_restart_files |
@jamiebresch, thank you. |
@liujake, I just saw your "edit" message on @byoung-joo's post. I recommend that you add t2m/q2m to |
I see @jjguerrette . Will do in future runs. t2m/q2m should be added in streams.list file as part of standard variables. |
While that is true for RTTOV runs, they do not need to be in stream_list.atmosphere for non-RTTOV runs and would very slightly increase memory overhead. The best way to fix the issue is to define different stream_list.atmosphere files for different configurations. This is easily accomplished by having two stream_list.atmosphere.output files specified in two different versions of streams.atmosphere, then specifying two different |
Also see BJ's comment here: https://github.com/JCSDA-internal/mpas-jedi/pull/534#discussion_r600740647 In short, I was wrong about t2m and q2m. Their values are copied from the Geometry domain instance. However, it would be better to read the values from the background file, not from the Geometry. There is no guarantee that the same file is used to initialize the background and the Geometry domain instance. This is especially true in EDA, where the same netcdf file is used to fill in the field values of the Geometry domain pools for all members, but each member has its own background file. |
DESCRIPTION OF CHANGES: Remove warnings (mentioned in ISSUE JCSDA-internal#17) when using the 2-stream initial state in an mpas_atmosphere forecast. LIST OF MODIFIED FILES: M src/core_atmosphere/Registry.xml ISSUES: Closes MPAS-Dev#17 TESTS CONDUCTED: Tested on Cheyenne. No impact.
Current behavior (describe the bug)
So far only tested with a 120km domain.
When using the 2-stream (static+input) initial state in an mpas_atmosphere forecast within mpas-bundle, the following warnings are issued:
The static and and input streams are as follows in streams.atmosphere:
I am using an
x1.40962.init.DATE.nc
file linked tostatic.nc
and ada_state
(mpasout) file asmpasin.$Y-$M-$D_$h.$m.$s.nc
.Looking at
src/core_atmosphere/Registry.xml
, the static stream is supposed to includeeast
,north
,pin
, andozmixm
. However, theoutput
stream insrc/core_init_atmosphere/Registry.xml
, which is used to producex1.40962.init.DATE.nc
files, does not include any of those four variables. So either we should not useinit.nc
files asstatic
stream inputs or one of the twoRegistry.xml
variable lists needs to be modified.The source of the other warning (
meshScalingDel2
,meshScalingDel4
,meshScalingRegionalCell
, andmeshScalingRegionalEdge
) is not clear. These are only listed in therestart
stream ofsrc/core_atmosphere/Registry.xml
, but I haveconfig_do_restart = false
set innamelist.atmosphere
. Also, those appear to be dependent variables set insrc/core_atmosphere/mpas_atm_core::atm_compute_mesh_scaling
, not variables that need to be read in.To Reproduce
What computer are you running on?
Cheyenne
What compilers/modules are you using?
jedi/gnu-openmpi/9.1.0-v0.4
Steps to reproduce the behavior
Expected behavior
The warnings should not be issued, either because the fields are present in the static.nc file or because they are not needed and are removed from the requested variables.
Additional information (optional)
The text was updated successfully, but these errors were encountered: