-
Notifications
You must be signed in to change notification settings - Fork 342
alpha-ctsm5.4.CMIP7.13.ctsm5.3.079: Prepare Makefile to make CTSM5.4 fsurdat/landuse datasets #3482
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
alpha-ctsm5.4.CMIP7.13.ctsm5.3.079: Prepare Makefile to make CTSM5.4 fsurdat/landuse datasets #3482
Conversation
Update the ctsm5.4 alpha branch to ctsm5.3.071 PR ESCOMP#3464
|
Notes about resolving #2337 I'm working in this directory:
|
|
Hmmm, @slevis-lmwg I'm concerned about that doing something different. I think the first line probably needs to use keyword syntax to be clear on what it's doing. That would improve the code readability anyway.
Although the above doesn't change the order that it is in PIO, so I don't see why it isn't finding the interface for it? "string" is just a character of some length and NOT an array right? The only thing happening with the top version is that it's outputting the string with the time dimension, for time slice ntim. And I'm not certain that the version you are trying will do that. There would need to be some other way to specify the time dimension. |
You're correct, my modification in (2) above did this in my 1850-1855 test:
This gives the same compile-time error as (1) above.
Correct.
If I'm interpreting correctly, maybe you mean replacing "string" with an array of all the string values? |
|
@ekluzek could this be the problem? |
@slevis-lmwg the mkpioMod code are just some wrappers around PIO code. But, they all start with mkpio_ so it can't be that. So the problem here seems to be a more fundamental problem, it might be another argument that doesn't match the expected type correctly... |
|
Ahhh, I have the interface that it should match here. Above I was using the C version and the variable names are different: https://ncar.github.io/ParallelIO/group___p_i_o__put__var.html#ga1f74a108488e4d9c411fa411b3a805ad So try it this way, without specifying the keyword for the first two arguments: rcode = pio_put_var(pioid, pio_varid, start=(/1,ntim/), count=(/len_trim(string),1/), ival=trim(string)) Or for keyword syntax, use "File=pioid" and "varid=pio_varid". But, also we might need to have pio_varid as an integer instead of as a "var_desc_t" type. Are you still struggling with this? |
slevis-lmwg
left a comment
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'm reviewing my own PR to explain my changes so far.
make allfinished successfully and the submitted jobs are pending in the queue. We will see how many work. We already know that ne3np4.pg2 will not find a mesh file.- Speaking of ne3np4.pg2, I had to make the following changes to ccs_config:
diff --git a/component_grids_nuopc.xml b/component_grids_nuopc.xml
index 879d073..5c25fa2 100644
--- a/component_grids_nuopc.xml
+++ b/component_grids_nuopc.xml
@@ -17,6 +17,11 @@
<!-- ATM/LND meshes regional and global -->
<!-- ======================================================== -->
+ <domain name="400pt_sparse">
+ <nx>13824</nx> <ny>1</ny>
+ <mesh>$DIN_LOC_ROOT/share/meshes/400pt_sparse_13824x1_mesh.nc</mesh>
+ <desc>400-point sparse grid mesh</desc>
+ </domain>
<domain name="360x720cru">
<nx>720</nx> <ny>360</ny>
<mesh>$DIN_LOC_ROOT/share/meshes/360x720_120830_ESMFmesh_c20210507.nc</mesh>
@@ -98,6 +103,11 @@
<mesh>$DIN_LOC_ROOT/share/meshes/ne3np4_ESMFmesh_c230714_cdf5.nc</mesh>
<desc>ne3np4 is Spectral Elem 10-deg grid:</desc>
</domain>
+ <domain name="ne3np4.pg2">
+ <nx>486</nx> <ny>1</ny>
+ <mesh>$DIN_LOC_ROOT/share/meshes/ne3pg2_ESMFmesh_c25xxxx_cdf5.nc</mesh>
+ <desc>ne3np4 is Spectral Elem 10-deg grid:</desc>
+ </domain>
<domain name="ne3np4.pg3">
<nx>486</nx> <ny>1</ny>
<mesh>$DIN_LOC_ROOT/share/meshes/ne3pg3_ESMFmesh_c221214_cdf5.nc</mesh>
diff --git a/modelgrid_aliases_nuopc.xml b/modelgrid_aliases_nuopc.xml
index 6b380b6..eb211a2 100644
--- a/modelgrid_aliases_nuopc.xml
+++ b/modelgrid_aliases_nuopc.xml
@@ -154,6 +154,13 @@
<mask>0.125nldas2</mask>
</model_grid>
+ <model_grid alias="400pt_sparse" not_compset="_MOM" compset="DATM.+CLM">
+ <grid name="atm">400pt_sparse</grid>
+ <grid name="lnd">400pt_sparse</grid>
+ <grid name="ocnice">400pt_sparse</grid>
+ <mask>400pt_sparse</mask>
+ </model_grid>
+
<model_grid alias="hcru_hcru_mt13" not_compset="_MOM" compset="DATM.+CLM">
<grid name="atm">360x720cru</grid>
<grid name="lnd">360x720cru</grid>400pt_sparse simulations just point to the f19_400pt_sparse mesh file and do not need their own unique fsurdat file
ekluzek
left a comment
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.
@slevis-lmwg and I went over this and this is all great. One suggestion is to add a comment somewhere about the need to break up the ne3 historical into three separate jobs, because the low number of processors makes it take a long time.
And also we realized that the 1x1_brazil grids needed some changes. This wasn't quite right in the Grids document, so we corrected it there.
The bottom line with this is that want the datasets created to match the document.
|
Ooops I got ahead of myself and put Peter's new lai and soilcolor files in this PR. |
|
I recommend separating the part that changes results for the surface datasets into a different PR. Otherwise it gets lost in the part that doesn't change answers, which is most of what this PR is about. |
|
I suggest bringing this into the alpha branch and make a tag for it. You could rerun the testing, but as it doesn't touch model code, I'd just make sure the makefile works, and create a softlink to the previous baselines. |
Update submodules to match versions in cesm3_0_alpha07e (+ CMEPS)
|
@ekluzek I updated this PR to the latest tag in the alpha branch but ALSO to the latest tag in master (LMK if this does not make sense to you). I started testing to confirm that I didn't mess anything up. This PR's tag will still be "12" since it only changes answers due to the changes in master. Again LMK if you disagree: |
|
@ekluzek
|
Yeah, this is something good to be on the same page about. Although since it's a branch it's not as important as on main branches. But, the ctsm5.4 branch is an important one, so probably good to sync up on. I prefer having the "11" updated whenever there are changes along the branch even if they don't change answers. And I prefer doing a separate PR for a merge update, and not mixing it with other changes. Basically that means a few more tags, so the steps are more clearly defined and separable. For a PR that is solely just a merge to a later ctsm tag, I'd leave the "11" alone, because it represents a change in the ctsm base version, and NOT on the branch. It's helpful to think of the "11" as the number of tags along the branch that don't change the base version, and the final ctsm tag part to be the ctsm tag it's based off of. So "11" shows there were 11 tagged sets of changes that diverge from master, and the difference in ctsm version from the last tag (ctsm5.3.075) from the first ctsm5.4 tag (ctsm5.3.40) shows the span of ctsm versions that the ctsm5.4 has gone through. We do want to be on the same page about the naming convention for alpha tags. But, I don't want to dictate too much about how people handle their PR's. So we can do things slightly differently there, IMHO. |
|
Thanks @ekluzek. Based on your post (which makes sense to me), I will add a few steps:
Notes:
|
The test seemed fixed in a short range of tags: ctsm5.3.063 to .072 and alpha-ctsm5.4.CMIP7.09.ctsm5.3.068 to .075
|
This PR spanned more than one Sprint, and the time estimate in weeks represents my time spent in the current Sprint only. |
Description of changes
Updating
tools/mksurfdata_esmf/Makefileto accommodate new fsurdat/landuse listpython/ctsm/toolchain/gen_mksurfdata_jobscript_multi.pyto accommodate new fsurdat/landuse listinput_pftdata_filenameas per Logistical improvements to fsurdat/landuse files #2337Removing checkboxes from rest of list because need to make this tag before generating new datasets:
make alldefault_data_1850.cfgwhich is used by the Makefilemake all-subsetdefault_data_2000.cfgwhich is used for making NEON/PLUMBER fsurdat filesnamelist_defaultswith the new (CTSM5.4) fsurdat/landuse filesSpecific notes
Contributors other than yourself, if any:
@ekluzek
CTSM Issues Fixed (include github issue #):
Fixes #1775
Fixes #2337
Fixes #2785
Fixes #3304
Fixes #3452
Addresses parts of #2851
Any other ctsm5.4-related or other issues?
Are answers expected to change (and if so in what way)?
Yes, because replacing fsurdat/landuse files.
Any User Interface Changes (namelist or namelist defaults changes)?
Update namelist_defaults with new fsurdat/landuse files.
Does this create a need to change or add documentation? Did you do so?
Update #3364 as needed.
Testing performed, if any:
None so far.