Skip to content
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

mksurfdata_map: replace source (SRC) files of various masks with SRC files with no mask #823

Merged
merged 45 commits into from
May 25, 2021
Merged
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
6fa062b
Replace source (SRC) files of various masks with SRC files with no mask
slevis-lmwg Oct 17, 2019
46ae6a9
Now apply SRC mask in mksurfdata_map, starting with mklaiMod
slevis-lmwg Oct 21, 2019
7798006
Revisions in response to code review by @billsacks and @ekluzek
slevis-lmwg Oct 21, 2019
12506f9
Apply SRC mask in mksurfdata_map, continued: mkpftMod
slevis-lmwg Oct 22, 2019
7e3a915
Return to original tolerance tol = 1.e-12_r8 with these changes
slevis-lmwg Oct 22, 2019
84c1630
Additional changes that were required for mkpft to work
slevis-lmwg Oct 23, 2019
5f20517
Revisions in response to code review
slevis-lmwg Oct 28, 2019
d93f1d6
Revisions in response to latest review
slevis-lmwg Oct 30, 2019
163a231
Apply SRC mask in mksurfdata_map (cont'd): mkglcmecMod
slevis-lmwg Nov 2, 2019
edb5c2e
Now setting scripgriddata_lrgfile_needed for 3x3min_nomask grid
slevis-lmwg Nov 4, 2019
faf2aac
mkglcmecMod.F90 part 2
slevis-lmwg Nov 5, 2019
25e3624
File change required to eliminate large diffs + an optimization change
slevis-lmwg Nov 5, 2019
57e4b24
Apply SRC mask in remaining mksurfdata_map modules
slevis-lmwg Nov 7, 2019
7c8f3e2
Minor cleanup
slevis-lmwg Nov 7, 2019
acf99eb
Documentation in ChangeLog and updates to namelist_defaults
slevis-lmwg Nov 11, 2019
a2ba7fe
Replaced 360x720 SRC and map files with 0.5x0.5
slevis-lmwg Nov 13, 2019
0e43e79
Added 0.125x0.125_nomask SRC resolution (previously mislabeled 3x3min)
slevis-lmwg Nov 14, 2019
0673a26
Making checkmapfiles.ncl consistent with previous commit
slevis-lmwg Nov 14, 2019
9b66478
Merge tag 'ctsm1.0.dev079' into mksurfdata_maps_wo_src_masks
slevis-lmwg Nov 14, 2019
a977c8a
Adding code to handle UNSTRUCT grid files
slevis-lmwg Nov 15, 2019
01f2a56
Updated ChangeLog and reverted mods in mkmapdata.sh
slevis-lmwg Nov 18, 2019
d3ebddf
Revisions in response to code review: PART 1
slevis-lmwg Nov 20, 2019
9c3ade8
Revisions: part 2
slevis-lmwg Nov 21, 2019
da20c87
Revisions: part 3
slevis-lmwg Nov 21, 2019
33dc03b
Revisions part 3b: update namelist_defaults_ctsm_tools.xml
slevis-lmwg Nov 21, 2019
9f60042
Revisions part 1b: Organizational update of part 1
slevis-lmwg Nov 21, 2019
66f14c9
Revisions Part 4: mostly responding to @billsacks question 8
slevis-lmwg Dec 2, 2019
d976063
Revisions Part 4b: update subr. gridmap_check
slevis-lmwg Dec 2, 2019
14f2ba6
Revisions Part 4c: A better option than (4b)
slevis-lmwg Dec 6, 2019
bba7202
Revisions Part 5: in reponse to @billsacks question 9
slevis-lmwg Dec 9, 2019
f39a043
Fix CMake-based unit tests
billsacks Dec 15, 2019
4856791
Revisions Part 6: in response to latest comments
slevis-lmwg Dec 18, 2019
0a4f996
Revisions Part 7: adding comment to mkmapdata.sh
slevis-lmwg Dec 18, 2019
3e5a099
Merge tag 'ctsm1.0.dev080' into mksurfdata_maps_wo_src_masks
slevis-lmwg Dec 18, 2019
50d3085
Revisions required for expected tests in test_driver.sh to PASS
slevis-lmwg Dec 22, 2019
5700ef2
Pointing to newly created files
slevis-lmwg Feb 25, 2020
9bee59b
Changes to scripts associated with latest changes to files
slevis-lmwg Feb 25, 2020
0043191
Committing changes that lead to all but one type of test to PASS
slevis-lmwg Mar 3, 2020
5dfe8dd
Committing mods from early March to make them available
slevis-lmwg May 7, 2020
573009a
Merge tag 'ctsm5.1.dev038' into mksurfdata_maps_wo_src_masks
slevis-lmwg May 4, 2021
4235c43
Bring back 0.125x0.125_nomask SRC resolution (dropped out w the merge)
slevis-lmwg May 6, 2021
79a9219
Updated map_3x3min_nomask_to_ne120 and ne16 files
slevis-lmwg May 7, 2021
d409574
mkmapdata.sh that points to Bob Oehmke's fix
slevis-lmwg May 20, 2021
f81262c
Merge tag 'ctsm5.1.dev039' into mksurfdata_maps_wo_src_masks
slevis-lmwg May 20, 2021
0a769de
Updated ChangeLog/ChangeSum
slevis-lmwg May 20, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions bld/namelist_files/checkmapfiles.ncl
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
;

print( "Check that datm mapping files are consistent" );
resolutions = (/ "128x256", "64x128", "48x96", "32x64", "8x16", "94x192", "0.23x0.31", "0.47x0.63", "0.9x1.25", "1.9x2.5", "2.5x3.33", "4x5", "10x15", "0.125nldas2", "5x5_amazon", "1x1_camdenNJ", "1x1_vancouverCAN", "1x1_mexicocityMEX", "1x1_asphaltjungleNJ", "1x1_brazil", "1x1_urbanc_alpha", "1x1_numaIA", "1x1_smallvilleIA", "ne4np4", "ne16np4", "ne30np4", "ne60np4", "ne120np4", "ne240np4" /);
resolutions = (/ "128x256", "64x128", "48x96", "94x192", "0.23x0.31", "0.47x0.63", "0.9x1.25", "1.9x2.5", "2.5x3.33", "4x5", "10x15", "0.125nldas2", "5x5_amazon", "1x1_camdenNJ", "1x1_vancouverCAN", "1x1_mexicocityMEX", "1x1_asphaltjungleNJ", "1x1_brazil", "1x1_urbanc_alpha", "1x1_numaIA", "1x1_smallvilleIA", "ne4np4", "ne16np4", "ne30np4", "ne60np4", "ne120np4", "ne240np4" /);

space = " ";
badres = 0
Expand Down Expand Up @@ -82,7 +82,7 @@ begin
print( "query string="+querynml )


mapgrids = (/"0.5x0.5_MODIS", "0.5x0.5_AVHRR", "0.5x0.5_MODIS", "5x5min_nomask", "5x5min_IGBP-GSDP", "5x5min_ISRIC-WISE", "10x10min_nomask", "3x3min_MODIS", "3x3min_LandScan2004", "3x3min_GLOBE-Gardner", "3x3min_GLOBE-Gardner-mergeGIS", "0.9x1.25_GRDC", "360x720cru_cruncep", "1km-merge-10min_HYDRO1K-merge-nomask"/);
mapgrids = (/"0.5x0.5_nomask", "0.25x0.25_nomask", "0.125x0.125_nomask", "3x3min_nomask", "5x5min_nomask", "10x10min_nomask", "0.9x1.25_nomask", "1km-merge-10min_HYDRO1K-merge-nomask"/);
do i = 0, dimsizes(resolutions)-1
res = resolutions(i);
print( "Go through maps for Resolution: "+res );
Expand Down
1,305 changes: 337 additions & 968 deletions bld/namelist_files/namelist_defaults_ctsm.xml

Large diffs are not rendered by default.

76 changes: 35 additions & 41 deletions bld/namelist_files/namelist_defaults_ctsm_tools.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,48 +55,19 @@ attributes from the config_cache.xml file (with keys converted to upper-case).
>lnd/clm2/mappingdata/grids/SCRIPgrid_0.1x0.1_nomask_c110712.nc</scripgriddata>
<scripgriddata hgrid="0.5x0.5" lmask="nomask"
>lnd/clm2/mappingdata/grids/SCRIPgrid_0.5x0.5_nomask_c110308.nc</scripgriddata>
<scripgriddata hgrid="0.5x0.5" lmask="AVHRR"
>lnd/clm2/mappingdata/grids/SCRIPgrid_0.5x0.5_AVHRR_c110228.nc</scripgriddata>
<scripgriddata hgrid="0.5x0.5" lmask="MODIS"
>lnd/clm2/mappingdata/grids/SCRIPgrid_0.5x0.5_MODIS_c110228.nc</scripgriddata>
<scripgriddata hgrid="0.25x0.25" lmask="MODIS"
>lnd/clm2/mappingdata/grids/SCRIPgrid_0.25x0.25_MODIS_c170321.nc</scripgriddata>
<scripgriddata hgrid="0.25x0.25" lmask="nomask"
>lnd/clm2/mappingdata/grids/SCRIPgrid_0.25x0.25_nomask_c191014.nc</scripgriddata>
<scripgriddata hgrid="5x5min" lmask="nomask"
>lnd/clm2/mappingdata/grids/SCRIPgrid_5x5min_nomask_c110530.nc</scripgriddata>
<scripgriddata hgrid="5x5min" lmask="IGBP-GSDP"
>lnd/clm2/mappingdata/grids/SCRIPgrid_5x5min_IGBP-GSDP_c110228.nc</scripgriddata>
<scripgriddata hgrid="5x5min" lmask="ISRIC-WISE"
>lnd/clm2/mappingdata/grids/SCRIPgrid_5x5min_ISRIC-WISE_c111114.nc</scripgriddata>
<scripgriddata hgrid="5x5min" lmask="ORNL-Soil"
>lnd/clm2/mappingdata/grids/SCRIPgrid_5x5min_ORNL-Soil_c170630.nc</scripgriddata>
>lnd/clm2/mappingdata/grids/SCRIPgrid_5x5min_nomask_c191107.nc</scripgriddata>
<scripgriddata hgrid="10x10min" lmask="nomask"
>lnd/clm2/mappingdata/grids/SCRIPgrid_10x10min_nomask_c110228.nc</scripgriddata>
<scripgriddata hgrid="10x10min" lmask="IGBPmergeICESatGIS"
>lnd/clm2/mappingdata/grids/SCRIPgrid_10x10min_IGBPmergeICESatGIS_c110818.nc</scripgriddata>
<scripgriddata hgrid="3x3min" lmask="MODIS"
>lnd/clm2/mappingdata/grids/SCRIPgrid_3minx3min_MODIS_c110915.nc</scripgriddata>
<scripgriddata hgrid="3x3min" lmask="MODIS-wCsp"
>lnd/clm2/mappingdata/grids/SCRIPgrid_3minx3min_MODISwcspsea_c151020.nc</scripgriddata>
<scripgriddata_lrgfile_needed hgrid="3x3min" lmask="MODIS" >64bit_offset</scripgriddata_lrgfile_needed>
<scripgriddata_lrgfile_needed hgrid="3x3min" lmask="MODIS-wCsp">64bit_offset</scripgriddata_lrgfile_needed>
<scripgriddata hgrid="3x3min" lmask="USGS"
>lnd/clm2/mappingdata/grids/SCRIPgrid_3x3_USGS_c120912.nc</scripgriddata>
<scripgriddata_lrgfile_needed hgrid="3x3min" lmask="USGS">64bit_offset</scripgriddata_lrgfile_needed>
<scripgriddata hgrid="3x3min" lmask="LandScan2004"
>lnd/clm2/mappingdata/grids/SCRIPgrid_3minx3min_LandScan2004_c120517.nc</scripgriddata>
<scripgriddata_lrgfile_needed hgrid="3x3min" lmask="LandScan2004">64bit_offset</scripgriddata_lrgfile_needed>
<scripgriddata hgrid="3x3min" lmask="GLOBE-Gardner"
>lnd/clm2/mappingdata/grids/SCRIPgrid_3minx3min_GLOBE-Gardner_c120922.nc</scripgriddata>
<scripgriddata_lrgfile_needed hgrid="3x3min" lmask="GLOBE-Gardner">64bit_offset</scripgriddata_lrgfile_needed>
<scripgriddata hgrid="3x3min" lmask="GLOBE-Gardner-mergeGIS"
>lnd/clm2/mappingdata/grids/SCRIPgrid_3minx3min_GLOBE-Gardner-mergeGIS_c120922.nc</scripgriddata>
<scripgriddata_lrgfile_needed hgrid="3x3min" lmask="GLOBE-Gardner-mergeGIS">64bit_offset</scripgriddata_lrgfile_needed>
<scripgriddata hgrid="360x720cru" lmask="cruncep"
>lnd/clm2/mappingdata/grids/SCRIPgrid_360x720_cruncep_c120830.nc</scripgriddata>
<scripgriddata hgrid="3x3min" lmask="nomask"
>lnd/clm2/mappingdata/grids/SCRIPgrid_3x3min_nomask_c191102.nc</scripgriddata>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The old file was an incorrectly labeled 0.125-degree file, as first documented in this comment.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This most recent file name corresponds to the "trusted" generic 3x3min nomask file generated by mkscripgrid.ncl.

Same is true of the 5x5min file a few lines up from here.

<scripgriddata_lrgfile_needed hgrid="3x3min" lmask="nomask">64bit_offset</scripgriddata_lrgfile_needed>
<scripgriddata hgrid="360x720cru" lmask="nomask"
>lnd/clm2/mappingdata/grids/SCRIPgrid_360x720_nomask_c120830.nc</scripgriddata>
<scripgriddata hgrid="0.9x1.25" lmask="GRDC"
>lnd/clm2/mappingdata/grids/SCRIPgrid_0.9x1.25_GRDC_c130307.nc</scripgriddata>
>lnd/clm2/mappingdata/grids/SCRIPgrid_0.5x0.5_nomask_c110308.nc</scripgriddata>
<!--scripgriddata hgrid="0.9x1.25" lmask="nomask"
>lnd/clm2/mappingdata/grids/SCRIPgrid_0.9x1.25_nomask_c191014.nc</scripgriddata-->
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I commented this line out because the actual file in use is 0.9x1.25_c110307.nc


<!-- Other raw data grids -->
<!-- Note that the following is a UGRID file rather than a SCRIP grid file -->
Expand Down Expand Up @@ -126,6 +97,29 @@ attributes from the config_cache.xml file (with keys converted to upper-case).
<scripgriddata hgrid="tx1v1" lmask="tx1v1" >/glade/proj3/cseg/mapping/grids/tx1v1_090122.nc</scripgriddata>
<scripgriddata hgrid="tx0.1v2" lmask="tx0.1v2" >/glade/proj3/cseg/mapping/grids/tx0.1v2_090127.nc</scripgriddata>

<!-- UNSTRUCT grid data files -->
<!--scripgriddata frm_hgrid="0.5x0.5" lmask="nomask"
>lnd/clm2/mappingdata/grids/UNSTRUCTgrid_0.5x0.5_nomask_c110308.nc</scripgriddata>
<scripgriddata_type frm_hgrid="0.5x0.5" lmask="nomask">UNSTRUCT</scripgriddata_type>
<scripgriddata frm_hgrid="0.25x0.25" lmask="nomask"
>lnd/clm2/mappingdata/grids/UNSTRUCTgrid_0.25x0.25_nomask_c191014.nc</scripgriddata>
<scripgriddata_type frm_hgrid="0.25x0.25" lmask="nomask">UNSTRUCT</scripgriddata_type>
<scripgriddata frm_hgrid="0.125x0.125" lmask="nomask"
>lnd/clm2/mappingdata/grids/UNSTRUCTgrid_0.125x0.125_nomask_c140702.nc</scripgriddata>
<scripgriddata_type frm_hgrid="0.125x0.125" lmask="nomask">UNSTRUCT</scripgriddata_type>
<scripgriddata frm_hgrid="10x10min" lmask="nomask"
>lnd/clm2/mappingdata/grids/UNSTRUCTgrid_10x10min_nomask_c110228.nc</scripgriddata>
<scripgriddata_type frm_hgrid="10x10min" lmask="nomask">UNSTRUCT</scripgriddata_type>
<scripgriddata frm_hgrid="5x5min" lmask="nomask"
>lnd/clm2/mappingdata/grids/UNSTRUCTgrid_5x5min_nomask_c191107.nc</scripgriddata>
<scripgriddata_type frm_hgrid="5x5min" lmask="nomask">UNSTRUCT</scripgriddata_type>
<scripgriddata frm_hgrid="3x3min" lmask="nomask"
>lnd/clm2/mappingdata/grids/UNSTRUCTgrid_3x3min_nomask_c191102.nc</scripgriddata>
<scripgriddata_type frm_hgrid="3x3min" lmask="nomask">UNSTRUCT</scripgriddata_type>
<scripgriddata frm_hgrid="0.9x1.25" lmask="nomask"
>lnd/clm2/mappingdata/grids/UNSTRUCTgrid_0.9x1.25_nomask_c191014.nc</scripgriddata>
<scripgriddata_type frm_hgrid="0.9x1.25" lmask="nomask">UNSTRUCT</scripgriddata_type-->

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Place-holder for UNSTRUCT grid data files.

NB: I specify frm_hgrid instead of hgrid here to make explicit that these are SRC files only.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for the incorrect cdates. Correcting in next commit.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To avoid confusion, I want to say:
This code is still a place-holder, so the changes do not matter, yet.

<!-- land masks for different types of mksurfdata_map input files -->
<lmask type="lak" >MODIS-wCsp</lmask>
<lmask type="wet" >AVHRR</lmask>
Expand Down Expand Up @@ -260,11 +254,11 @@ attributes from the config_cache.xml file (with keys converted to upper-case).

<!-- Glacier region ID -->
<mksrf_fglacierregion hgrid="10x10min" lmask="nomask"
>lnd/clm2/rawdata/mksrf_GlacierRegion_10x10min_nomask_c170616.nc</mksrf_fglacierregion>
>lnd/clm2/rawdata/mksrf_GlacierRegion_10x10min_nomask_c191120.nc</mksrf_fglacierregion>

<!-- mksrf_furbtopo - topography for urban threshold -->
<mksrf_furbtopo hgrid="10x10min" lmask="nomask"
>lnd/clm2/rawdata/mksrf_topo.10min.c080912.nc</mksrf_furbtopo>
>lnd/clm2/rawdata/mksrf_topo.10min.c191120.nc</mksrf_furbtopo>

<!-- fire-related datasets -->
<mksrf_fgdp hgrid="0.5x0.5" lmask="AVHRR"
Expand All @@ -286,7 +280,7 @@ attributes from the config_cache.xml file (with keys converted to upper-case).
>lnd/clm2/rawdata/mksrf_vic_0.9x1.25_GRDC_simyr2000.c130307.nc</mksrf_fvic>

<mksrf_fch4 hgrid="360x720cru" lmask="cruncep"
>lnd/clm2/rawdata/mksrf_ch4inversion_360x720_cruncep_simyr2000.c130322.nc</mksrf_fch4>
>lnd/clm2/rawdata/mksrf_ch4inversion_0.5x0.5_cruncep_simyr2000.c191112.nc</mksrf_fch4>

<!-- mksrf_fvegtyp -->

Expand Down
2 changes: 1 addition & 1 deletion bld/namelist_files/namelist_definition_ctsm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1849,7 +1849,7 @@ CLM run type.
<entry id="res" type="char*30" category="default_settings"
group="default_settings"
valid_values=
"512x1024,360x720cru,128x256,64x128,48x96,32x64,8x16,94x192,0.23x0.31,0.47x0.63,0.9x1.25,1.9x2.5,2.5x3.33,4x5,10x15,0.125nldas2,5x5_amazon,1x1_camdenNJ,1x1_vancouverCAN,1x1_mexicocityMEX,1x1_asphaltjungleNJ,1x1_brazil,1x1_urbanc_alpha,1x1_numaIA,1x1_smallvilleIA,0.1x0.1,0.25x0.25,0.5x0.5,3x3min,5x5min,10x10min,0.33x0.33,0.125x0.125,ne4np4,ne16np4,ne30np4,ne60np4,ne120np4,ne240np4,1km-merge-10min">
"512x1024,360x720cru,128x256,64x128,48x96,94x192,0.23x0.31,0.47x0.63,0.9x1.25,1.9x2.5,2.5x3.33,4x5,10x15,0.125nldas2,5x5_amazon,1x1_camdenNJ,1x1_vancouverCAN,1x1_mexicocityMEX,1x1_asphaltjungleNJ,1x1_brazil,1x1_urbanc_alpha,1x1_numaIA,1x1_smallvilleIA,0.1x0.1,0.25x0.25,0.5x0.5,3x3min,5x5min,10x10min,0.33x0.33,0.125x0.125,ne4np4,ne16np4,ne30np4,ne60np4,ne120np4,ne240np4,1km-merge-10min">
Horizontal resolutions
ekluzek marked this conversation as resolved.
Show resolved Hide resolved
Note: 0.1x0.1, 0.25x0.25, 0.5x0.5, 5x5min, 10x10min, 3x3min and 0.33x0.33 are only used for CLM tools
</entry>
Expand Down
226 changes: 226 additions & 0 deletions doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,230 @@
===============================================================
Tag name: ctsm1.0.dev081
Originator(s): slevis (Samuel Levis,SLevis Consulting LLC,303-665-1310)
Date: Tue Dec 17 18:26:42 MST 2019
One-line Summary: Replace masked with "nomask" SRC files for use with mkmapdata and mksurfdata_map
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm interested in your comments regarding this documentation.
And do you think I should write documentation elsewhere in addition to this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@billsacks
also in my TODO list from our recent conversation:

  • Remake all the sfc datasets
  • Run the full test suite

I will wait for the go-ahead from you guys, since I think this will be a time consuming step. By the way, is there a shortcut for generating ALL the sfc datasets at once?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also I just reread #648 and realized that I should address it next to get past this subsetting error when using ocgis for our regridding. If so, then it prob. makes sense to wait and remake all the sfc datasets after that. Pls confirm.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@slevisconsulting there is a Makefile "Makefile.data" that we use to send simultaneous jobs to create the standard datasets needed. Using "all" makes most of the standard ones outside of some of the high resolution ones. You could also name each of those to send them to make as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This old post reminded me:

  1. I made the new sfc datasets and landuse.timeseries files by running with the "all" option,
    but they are sitting in /glade/scratch/slevis/temp_work/surfdata/branch_results. Shall I copy them to /glade/p/cesmdata/cseg/inputdata/lnd/clm2/surfdata_map and rerun the rimport command for them?
  2. When you consider this PR ready for merge, do you want me to run the full test-suites?


Purpose of changes
------------------

1) Collapse multiple source (SRC) files of a given resolution to a
single "nomask" SRC file per SRC resolution. The mask variable is now
set to 1 everywhere in all SRC files and mkmapdata.sh generates
a single map_ file (aka weight file) per destination (DST) resolution.
2) Now applying the SRC mask found in the raw datasets while
running mksurfdata_map.

These changes simplify the introduction of new surface variables with
raw data in one of our existing SRC resolutions because we need not
create new SRC files for such variables. To introduce new surface
variables with raw data in new resolutions, the corresponding new SRC
files will have mask equal to 1 everywhere.


Bugs fixed or introduced
------------------------

Issues fixed (include CTSM Issue #): #286


Significant changes to scientifically-supported configurations
--------------------------------------------------------------

Does this tag change answers significantly for any of the following physics configurations?
(Details of any changes will be given in the "Answer changes" section below.)

[Put an [X] in the box for any configuration with significant answer changes.]

[X] clm5_0

[X] ctsm5_0-nwp

[X] clm4_5

Notes of particular relevance for users
---------------------------------------

Caveats for users (e.g., need to interpolate initial conditions):
These changes are transparent to users making surface datasets using
default SRC resolutions. Users using non-default SRC resolutions or
users introducing new surface variables with raw data in non-default
SRC resolutions, will create new SRC file(s) with mask always set to 1
everywhere.
Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables):
None.

Changes made to namelist defaults (e.g., changed parameter values):
Changed the names of most default SRC files and default map_ files to
the names of the "nomask" versions of these files.

Changes to the datasets (e.g., parameter, surface or initial files):
Replaced SRC files and map_ files with "nomask" versions. Most SRC
resolutions already had nomask files available, so I created such files
for 0.25x0.25, 0.9x1.25, 3x3min, 5x5min, and 0.125x0.125. I changed all
of the map_ files except
map_1km-merge-10min_HYDRO1K-merge-nomask SRC resolution.

Substantial timing or memory changes:
- We end up with fewer SRC and map_ files by replacing multiple custom
grids per SRC resolution with one nomask grid. I list here resolutions
that had multiple custom grids per resolution before the switch to
nomask:
0.5x0.5: AVHRR, MODIS, and 360x720cru_cruncep
3x3min: GLOBE-Gardner-mergeGIS, GLOBE-Gardner, LandScan2004, MODIS-wCsp
5x5min: IGBP-GSDP, ISRIC-WISE, ORNL
10x10min_IGBPmergeICESatGIS

UNSTRUCT info shown only for comparison here.
NOT switching to UNSTRUCT files at this time.

- The nomask map_ files are larger now. E.g.:
slevis ncar 2754246572 Nov 1 map_3x3min_GLOBE-Gardner_to_0.9x1.25_nomask_aave_da_c191101.nc MASKED SCRIP
slevis ncar 3051641404 Nov 9 map_3x3min_nomask_to_0.9x1.25_nomask_aave_da_c191109.nc NOMASK SCRIP
slevis ncar 2974797264 Nov 15 map_3x3min_nomask_to_0.9x1.25_nomask_aave_da_c191115.nc NOMASK UNSTRUCT

- Although the nomask SCRIP cases shown below are slower because each
individual mapping file takes longer to create, the total time to
generate mapping files is reduced, possibly significantly, due to the
need for fewer mapping files in total. Note the increase in time
savings from the 0.5x0.5 to the 10x10min resolution, which suggests
even greater time savings for the 3x3min and 5x5min that went from a
total of 7 to 2 map_ files. Sample timing data:
mkmapdata 0.5x0.5 to 0.9x1.25 MASKED (2 grids) 78.0u 1.30s 1:20.08 99.1%
mkmapdata 0.5x0.5 to 0.9x1.25 NOMASK SCRIP 51.199u 0.85s 0:52.61 98.8%
mkmapdata 0.5x0.5 to 0.9x1.25 NOMASK UNSTRUC 38.316u 0.69s 0:39.51 98.7%

mkmapdata 0.25x0.25 to 0.9x1.25 MASKED SCRI 129.288u 1.46s 2:11.38 99.5%
mkmapdata 0.25x0.25 to 0.9x1.25 NOMASK SCRI 168.443u 1.69s 2:50.77 99.6%
mkmapdata 0.25x0.25 to 0.9x1.25 NOMASK UNST 110.875u 1.46s 1:52.80 99.5%

mkmapdata 0.125x0.125 to 0.9x1.25 MASKED SC 489.651u 3.67s 8:14.58 99.7%
mkmapdata 0.125x0.125 to 0.9x1.25 NOMASK SC 646.372u 5.07s 10:54 99.5%
mkmapdata 0.125x0.125 to 0.9x1.25 NOMASK UN 388.842u 4.20s 6:33 99.7%

mkmapdata 10x10min to 0.9x1.25 MASKED (2 grids) 639.7u 4.8s 10:46 99.7%
mkmapdata 10x10min to 0.9x1.25 NOMASK SCRIP 380.3u 3.1s 6:24 99.7%
mkmapdata 10x10min to 0.9x1.25 NOMASK UNSTRUCT 264.2u 2.6s 4:27 99.6%

mksurfdata_map 0.9x1.25 MASKED SCRIP: 65.846u 18.204s 1:42.64 81.8%
mksurfdata_map 0.9x1.25 NOMASK SCRIP: 74.439u 18.502s 1:57.48 79.1%

Notes of particular relevance for developers: (including Code reviews and testing)
---------------------------------------------
NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide

Caveats for developers (e.g., code that is duplicated that requires double maintenance):
None

Changes to tests or testing:
None

Code reviewed by:
@billsacks @ekluzek

CTSM testing:

[... Remove before making master tag. Available test levels:

a) regular (must be run before handing off a tag to SEs and must be run
before committing a tag)
b) build_namelist (if namelists and/or build_system changed))
c) tools (only if tools are modified and no CTSM source is modified)
d) short (for use during development and in rare cases where only a small
change with known behavior is added ... eg. a minor bug fix)
e) doc (no source testing required)

... ]

[PASS means all tests PASS and OK means tests PASS other than expected fails.]

build-namelist tests:

cheyenne -

tools-tests (test/tools):

cheyenne -

PTCLM testing (tools/shared/PTCLM/test):

cheyenne -

python testing (see instructions in python/README.md; document testing done):

(any machine) -

regular tests (aux_clm):

cheyenne ----
izumi -------

If the tag used for baseline comparisons was NOT the previous tag, note that here:


Answer changes
--------------

Changes answers relative to baseline:

Summarize any changes to answers, i.e.,
- what code configurations: ALL
- what platforms/compilers: ALL
- nature of change: larger than roundoff/same climate

I performed testing at the 0.9x1.25 degree resolution.

Code changes were tested by comparing baseline files (a)
surfdata_0.9x1.25_hist_78pfts_CMIP6_simyr2000_c191101.nc
surfdata_0.9x1.25_hist_78pfts_CMIP6_simyr2000_c191101.log
generated by running baseline code pointing to masked map_ files
to (b)
surfdata_0.9x1.25_new_hist_78pfts_CMIP6_simyr2000_c191101.nc
surfdata_0.9x1.25_new_hist_78pfts_CMIP6_simyr2000_c191101.log
generated by running the new code still pointing to masked map_ files
and then comparing to (c)
surfdata_0.9x1.25_nomask_78pfts_CMIP6_simyr2000_c191101.nc
surfdata_0.9x1.25_nomask_78pfts_CMIP6_simyr2000_c191101.log
generated by running the new code pointing to nomask map_ files.

We set an expectation of max abs relative differences of less than
roughly 1e-13. I got an actual max abs relative difference of 7e-12 in
PCT_NAT_PFT for (a) vs (b) and (a) vs (c). I refer to these here as
small diffs.

All other variables gave smaller diffs except the four VIC variables
binfil, Ws, Ds, Dsmax between (b) and (c). These diffs appear in 5 grid
cells (along two meridians that got shifted in longitude by less than
1e-13 degrees) that vic considers land in the baseline and
ocean in the nomask case. Vic provides valid generic data for ocean
grid cells and, therefore, also where the discrepancies occur. This
means that if the land model treats these grid cells as land, the
model will work.

I had to generate new masked map_ files for (a) and (b) because
changes in ESMF codes over the years were leading to large differences
between all three (a) vs (b) vs (c). Generating new masked map_ files
brought the diffs back to small.

For the 3x3min and 5x5min SRC resolutions, I made six temporary
nomask SRC files, one per surface variable pointing to 3x3min
map_ files and one per surface variable pointing to 5x5min map_ files.
I did this to get small differences relative to the baseline. I created
the temporary files by making copies of the correspoding masked SRC
files and changing mask to 1 everywhere. The temporary files had diffs
less than roughly 1e-5 from generic nomask files generated by running
mkscripgrid.ncl for 3x3min and 5x5min. Ultimately we are replacing the
temporary files with the generic nomask files, which leads to larger
diffs in the surface datasets.


Detailed list of changes
------------------------

Pull Requests that document the changes (include PR ids):
https://github.com/ESCOMP/CTSM/pull/823

===============================================================
===============================================================
Tag name: ctsm1.0.dev080
Originator(s): sacks (Bill Sacks)
Date: Mon Dec 2 12:23:22 MST 2019
Expand Down
Loading