-
Notifications
You must be signed in to change notification settings - Fork 27
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
major mosart refactor including addition of new halo capability #76
Conversation
Changes to remove MCT and add ESMF mapping along with other cleanup
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.
Throughout the code: hardcoded string lengths should be replaced with shr_kind parameters and use statements should have only clauses. I realize that much of this code is historic, but because the filenames were changed and the history was broken future developers may not realize that.
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.
This is an excellent refactor. Thank you so much.
@mvertens can you tell us more about the new capability that is planned to MOSART after this refactor. For CESM4 we are hoping that we can deprecate and eliminate the use of MOSART in CESM and ONLY use mizuRoute. A big limitation of MOSART is that we don't have tools to make new input datasets nor people we can rely on to make the datasets. This means MOSART can NOT be used for Paleo work for example, which kills it's usage for CESM4. At NCAR we don't have local experts for MOSART only for mizuRoute. Removing RTM and MOSART for CESM4 would allow us to only support one river model for CESM4 which would lower the projects maintenance costs. Have you looked into adding these same changes to mizuRoute instead of (or in addition to) MOSART? We should at least look into that. |
@ekluzek - the key capability that was needed is halo updates. This is currently needed by @swensosc for his work and he was targeting MOSART. I think doing this in MOSART was very easy and MOSART is the code base that will be supported in both NorESM3 and CESM3. So having a clean refactored code will be helpful to both efforts in my opinion. As for MizuRoute - I'm happy to talk about that in the future. |
I think this is a big enough of a change that we should bump the middle number in the version sequence. So this becomes mosart1.1.dev01 |
I have to say - I don't like the 'dev' part. Just make it mosart1.1.01 |
In talking about this today, there's one bit of additional functionality that will be added (having to do with gradients). This tag will be the basis for the GW branch, as well as the DOM work that is being done at NIO. We also decided that this would be done after the list of simple PR's that will be done first. |
@slevis-lmwg @ekluzek @jedwards4b - I have verified that this branch does not change answers with respect to mosart1_0_49. @mvdebolskiy also participated in updating this refactor branch to have updated internal diagnostics. This branch will be the starting point of the new glc->rof coupling that will replace glc->ocn. |
The plan right now is for @slevis-lmwg to bring this in after he has some time clear with bringing CN Matrix to CTSM. |
OK derecho test-suite |
@slevis-lmwg - there were indeed compilation problem with nag for this PR. I have fixed the problems and confirmed that mosart can now build with nag on izumi. I have pushed the changes back. |
@slevis-lmwg - I have addressed #93 and pushed the changes back. |
Awesome, thanks for working on that @mvertens and being able to get it done quickly. We opened the issue in case this was a longer term thing that didn't need to be handled now. We figured it wasn't required for the Science capability freeze timeline, so a longer term issue also made sense. But, even better that you've already resolved it. |
I reran the mosart test-suite: UPDATE: |
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.
@mvertens thanks for your work on all of this. These are great improvements. Nice, to see that all of this is bit-for-bit. I didn't go over this as extensively as @jedwards4b and we are grateful for his careful feedback here.
I looked at some big picture things that were happening here, and made issues to document what was done. In the future if you can make issues on these type of refactor type things you are doing that's helpful for us to discuss them as a group before they are finished and the code and testing completed. It also gives us pre-warning of work that is happening. It's unlikely to collide with something we are doing, but really helpful for discussion and planning.
Thanks for the work here and in the next PR
@slevis-lmwg This repository does not have automated tag creation - will you make a new tag? |
I type On github I see the same tag here: Please let me know if I'm not answering your question. |
I think that you must have made the tag shortly after I posted that message - thanks. |
Removed all references to rtm
New modularity:
New halo capability
test_halo
subroutine inmosart_control_type.F90
module.-To set the values for the exclusive region that will be used in halo operations - you need to access the pointer as is done in the test_halo routine in mosart_control_type.F90:
Issues addressed:
Fixes #93
Fixes #98
Fixes #97
Fixes #99
Testing on derecho: