-
Notifications
You must be signed in to change notification settings - Fork 38
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
Add ability to modify individual streams.xml settings with something like user_nl_datm or xmlchange #76
Comments
although directly related to cdeps, i believe that the changes will be in cime. |
@erik - can you please give an example of what you would want to modify in the stream file that you are not able to modify via the current xmlchange command. That would really help us to understand what we are missing. Just to clarify - in the mct data models, you still have to edit the stream txt file - but its only for a target stream. My recollection is that you found that editing this for all streams was confusing. |
Yes. We need to be able to use xmlchange to change the settings in the datm.streams.xml file. So for example I want to change "yearFirst" in the following stream labeled "CLM_USRDAT.1x1pt_US-UMB". Here's what the xml stream file looks like... <stream_info name="CLM_USRDAT.1x1pt_US-UMB">
<taxmode>cycle</taxmode>
<tInterpAlgo>linear</tInterpAlgo>
<readMode>single</readMode>
<mapalgo>none</mapalgo>
<dtlimit>1.5</dtlimit>
<yearFirst>1999</yearFirst>
<yearLast>2006</yearLast>
<yearAlign>1999</yearAlign> So I want to be able to do something like this...
Another alternative would be in a user_nl_datm file for something like... yearFirst.CLM_USRDAT.1x1pt_US-UMB = 1999 Basically these are providing a mechanism to override the settings in components/cdeps/datm/cime_config/stream_definition_datm.xml with specific changes (just to specific settings) that the user wants to override for the case. Note, that in the example of MCT I can change yearFirst for any stream by making changes to user_nl_datm. And yes the other advantage that MCT has (right now) is that if I want to change one of the streams -- I can change JUST that one stream rather than having to care around a file that contains information on all streams and not just the limited set of changes that I want to make. If something like the above system can be implemented NUOPC becomes a much more flexible, understandable and robust system than current MCT. |
In order to implement it I picture you'll likely have to add a XML file for streams that appears in each case. Normally it would be nearly empty, but users can add specific settings to it (with xmlchange) that will override the settings in datm.streams.xml. So the case would read in the base xml file under cdeps and then modify it by any settings provided in the override file for the specific case. That's at least one way I see to do this.... |
Just talked to @mvertens and @jedwards4b about this. I'd like to see the ability to modify individual settings in datm.streams.xml with something like user_nl_datm or a xmlchange (or a new streamchange command). Whichever makes the most sense. This way the user can easily change just a few settings for an individual case without having to copy the entire streams file for just a few small changes. This makes those changes portable to other cases with different versions of the models. By encapsulating the changes into a small file only those specific settings get changed. If the entire streams file is copied to a different case with a different model version it will overwrite changes in defaults that were changed because of the model difference.
I say for datm.streams.xml because that's what I care about, but if added as a general capability this should be added for other data components that use streams.
This likely needs to be addressed both here in CDEPS and in cime. So I'll create an issue there as well.
The text was updated successfully, but these errors were encountered: