Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
701 commits
Select commit Hold shift + click to select a range
40927b6
Ensure that biofuel_harvfrac is only > 0 for prognostic crops
billsacks May 20, 2020
bb3f8e8
Change issue associated with smallville test failure
billsacks May 20, 2020
633be0e
Initialize harvest variables to 0 when using all_veg
billsacks May 20, 2020
4dcc5eb
Merge tag 'ctsm1.0.dev095' into gcell_bal_checks_cn
slevis-lmwg May 21, 2020
d4cf60f
Point to new smallville year-2000 surface dataset
billsacks May 21, 2020
b270505
Merge branch 'smallville_sfcdataset_harvest' into bioenergy_ctsm1.0.d…
billsacks May 21, 2020
d112f2e
Remove the cropColdStart testmods dir
billsacks May 21, 2020
8368f22
Change smallville ERS_Lm20 test to be cold start
billsacks May 21, 2020
a83bddf
Add a test covering switchgrass & miscanthus
billsacks May 21, 2020
28dad04
Make gindex_ocn intent(inout) rather than intent(out)
billsacks Feb 20, 2020
d7dae9e
Merge branch 'master' into bioenergy_ctsm1.0.dev080
billsacks May 21, 2020
260c0f6
First draft of ChangeLog
slevis-lmwg May 21, 2020
74b5607
Second draft of ChangeLog
slevis-lmwg May 22, 2020
67285ba
Fifth round of moving parameters to param file.
olyson May 22, 2020
e39e9f3
Merge remote-tracking branch 'slevisconsulting/gcell_bal_checks_cn'
billsacks May 22, 2020
8309c21
Merge branch 'master' into bioenergy_ctsm1.0.dev080
billsacks May 22, 2020
4665c9c
SSP test: only do symlink if needed
billsacks May 24, 2020
0e3aa2b
Update ChangeLog
billsacks May 25, 2020
6ec6e0a
Merge branch 'bioenergy_ctsm1.0.dev080'
billsacks May 25, 2020
e28ea28
Gricell-level error check for methane (CH4)
slevis-lmwg May 26, 2020
8fce500
Merge tag 'ctsm1.0.dev096' into fv3port
ekluzek May 26, 2020
89ee736
Start work on build_ctsm script
billsacks May 26, 2020
0f9d2f1
Point to the SSP5-8.5 landuse timeseries file for 1850-2000 historica…
ekluzek May 26, 2020
1b13d42
Give an error message for now if try to specify --rebuild
billsacks May 26, 2020
9036d4e
Get list of tests correct
ekluzek May 26, 2020
551ba26
Make LILAC_MODE an xml variable rather than an environment variable
billsacks May 26, 2020
6c521ba
Merge tag 'ctsm1.0.dev097' into fv3port
ekluzek May 27, 2020
68a1670
Work on build script
billsacks May 27, 2020
4e584ee
Merge branch 'master' into lilac_cap
billsacks May 27, 2020
3e88721
Stop writing ctsm.mk file for now
billsacks May 27, 2020
3e03968
Build sharedlib-only
billsacks May 27, 2020
ff50e92
Replace calls to sys.exit with our own abort function
billsacks May 27, 2020
8e27e72
Catch other errors when trying to execute a subprocess
billsacks May 27, 2020
97976e7
Also print cwd if error running cmd
billsacks May 27, 2020
1eb22ad
Specify path to commands
billsacks May 28, 2020
9a90db3
Oet rid of most of the -no-crop cases
ekluzek May 28, 2020
1b82ac3
Update change files
ekluzek May 28, 2020
2a029ea
Allow use of a predefined machine
billsacks May 28, 2020
1ca7deb
Put the bld directory back under the case
billsacks May 28, 2020
82b5db0
Add a --skip-build argument
billsacks May 28, 2020
b29ab30
Make a sym link to the bld directory at the top level
billsacks May 28, 2020
99430b4
Remove the f05 files that shouldn't have been here
ekluzek May 28, 2020
cf341f7
Update change files
ekluzek May 28, 2020
e2b9745
Merge pull request #891 from jtruesdal/fv3port
ekluzek May 28, 2020
5d22d66
Use abspath for build_dir
billsacks May 28, 2020
0806364
Fixes for predefined machine
billsacks May 28, 2020
a3c4f46
Make links to .env_mach_specific files with more intuitive names
billsacks May 28, 2020
be2c78d
Rename --skip-build to --no-build
billsacks May 28, 2020
33e459b
Allow running unit & system tests separately
billsacks May 28, 2020
e123aa6
Rework writing of ctsm.mk to use information from cime
billsacks May 29, 2020
608fb5d
No longer require ESMFMKFILE when building the lilac driver
billsacks May 30, 2020
29cd896
Point to cime branch
billsacks May 30, 2020
f346b65
Put a link to ctsm.mk at the top level of the build directory
billsacks May 31, 2020
3bba38e
Point to a cime tag rather than branch
billsacks Jun 1, 2020
aec2b52
Begin lilac documentation
billsacks Jun 3, 2020
915a9e6
Fix section underline lengths
billsacks Jun 3, 2020
e4cc5a0
Set jmaxb1 to 0.17 and set paramfile with leaf changes for arctic pla…
ekluzek Jun 4, 2020
5027353
Merge tag 'ctsm1.0.dev098' into lunadaylbugs
ekluzek Jun 4, 2020
9f3bf0a
Update params file so it contains the c200519 update as well as the n…
ekluzek Jun 4, 2020
67ff176
Add new SE grids
fischer-ncar Jun 5, 2020
d7706ed
Deallocate some memory in init_interp
billsacks Jun 7, 2020
419e59a
Add explicit deallocates of allocatables
billsacks Jun 7, 2020
8f5ec00
Init interp_multilevel_container_type using subroutine, not function
billsacks Jun 7, 2020
fa8aa9b
Add a finalizer for interp_multilevel_container_type
billsacks Jun 7, 2020
266eace
Remove some duplicate compset definitions
billsacks Jun 8, 2020
c5b732d
Change izumi PEM test to use SGLC
billsacks Jun 8, 2020
fb57453
Update cime
billsacks Jun 8, 2020
ceb5623
Building energy fix (issue #803).
olyson Jun 8, 2020
bb7b68b
Update ChangeLog
billsacks Jun 8, 2020
c786571
Update ChangeLog
billsacks Jun 8, 2020
12165ea
Merge branch 'izumi_update'
billsacks Jun 8, 2020
f332faf
Merge branch 'master' into initinterp_free_memory
billsacks Jun 8, 2020
71972d9
In run_sys_tests: print more information on the current hash
billsacks Jun 8, 2020
6c350f9
Fix formatting
billsacks Jun 8, 2020
a0c5d80
Improve hash output formatting in run_sys_test output
billsacks Jun 8, 2020
1a3f432
Work on documentation of lilac build
billsacks Jun 8, 2020
8b64635
Add information on build
billsacks Jun 8, 2020
d418f96
Add to build documentation
billsacks Jun 8, 2020
3be13ef
Add var-res grids needed for CAM.
fischer-ncar Jun 9, 2020
e2dd404
Only deallocate some pointers if they are associated
billsacks Jun 9, 2020
999d08b
Change unit testing create_subgrid_info to subroutine
billsacks Jun 9, 2020
1709642
Update ChangeLog
billsacks Jun 9, 2020
cb8dbfd
Merge branch 'initinterp_free_memory'
billsacks Jun 9, 2020
6801e52
Move build_ctsm into lilac subdirectory, and tweak documentation
billsacks Jun 9, 2020
42f0494
Fix build_ctsm for new location
billsacks Jun 9, 2020
f1a2442
add a system test of build_ctsm
billsacks Jun 9, 2020
3e80857
Minor refactoring
billsacks Jun 9, 2020
76f2f95
Make unit test modules executable
billsacks Jun 9, 2020
a869cc3
Refactor
billsacks Jun 9, 2020
9b17958
Implement rebuild method
billsacks Jun 9, 2020
05c5d6a
Documentation on how to run WRF-CTSM
slevis-lmwg Jun 10, 2020
473f141
Start work on a lilac smoke test
billsacks Jun 10, 2020
b41beb2
Add --build-debug option
billsacks Jun 11, 2020
e71b8d6
Build with threading support by default, but allow turning it off
billsacks Jun 11, 2020
a7103b7
Change to wrf.rst recommended by @billsacks
slevis-lmwg Jun 11, 2020
ce5661c
Adding instructions for running WRF with CTSM up to WPS
negin513 Jun 11, 2020
caabffb
Sixth round of moving parameters to param file.
olyson Jun 11, 2020
c797df3
Minor rework of lilacsmoke test
billsacks Jun 11, 2020
5866c98
Move build templates
billsacks Jun 11, 2020
0f3b19b
Move lilac namelist files
billsacks Jun 11, 2020
3013af3
Rename aux_clm1 back to aux_clm
fischer-ncar Jun 11, 2020
8d0bf1b
Start work on staging runtime inputs
billsacks Jun 12, 2020
a28bf5e
Stage lilac_in file
billsacks Jun 12, 2020
b4a9c7d
adding more instructions for building and running WRF with CTSMM
negin513 Jun 12, 2020
1843d4a
Improve user-friendliness of ctsm.cfg
billsacks Jun 12, 2020
0ce3615
Remove a warning message
billsacks Jun 12, 2020
3deec24
Update params file with changes from Keith Oleson
ekluzek Jun 13, 2020
7cbcc90
Switch theta_cj for miscanthus and switchgrass from C3 value to C4 va…
ekluzek Jun 14, 2020
2abb3f4
Mention generation and use of alternate finidat in wrf.rst
slevis-lmwg Jun 15, 2020
78b3f58
Allow use of an existing resolution/mask in lilac's buildnml
billsacks Jun 16, 2020
ae900fa
Move readParameters from CNFireLi2016Mod into the base class so it ca…
ekluzek Jun 17, 2020
92314ec
Add mapping files for ARCTIC, ARCTICGRIS, ne30np4.pg2, ne30pg3, ne120…
fischer-ncar Jun 17, 2020
1587636
Update change files
ekluzek Jun 18, 2020
f2a5664
Update to changelog file
ekluzek Jun 18, 2020
3029203
Merge pull request #1039 from ekluzek/hardcodep
ekluzek Jun 18, 2020
1715f57
Merge tag 'ctsm1.0.dev101' into new_se_grids
ekluzek Jun 18, 2020
7219faf
Update standard list of resolutions to make
ekluzek Jun 18, 2020
f344e65
Working on the documentations and adding some corrections.
negin513 Jun 19, 2020
9143357
Adding details on completion of WPS
negin513 Jun 19, 2020
2fa8a63
Rename buildnml to make_runtime_inputs
billsacks Jun 19, 2020
5f727c4
Rename build_ctsm.py to lilac_build_ctsm.py
billsacks Jun 19, 2020
2118a7f
adding more details on *.exe logs.
negin513 Jun 20, 2020
2fab186
Move implementation of make_runtime_inputs into python directory
billsacks Jun 22, 2020
6a124a1
Add some standard things (logging, etc.) in lilac_make_runtime_inputs.py
billsacks Jun 22, 2020
cde5c25
Add unit tests of determine_bldnml_opts
billsacks Jun 23, 2020
a4733bb
Support a user_nl_ctsm file in the lilac runtime input workflow
billsacks Jun 23, 2020
f4971ed
Stage a user_nl_ctsm file as part of build_ctsm
billsacks Jun 23, 2020
83c3c4d
Fix some pylint issues
billsacks Jun 23, 2020
5e36fde
Ensure we're using a consistent cime version in make_runtime_inputs
billsacks Jun 23, 2020
78b5ae7
Remove lilac_rof_input section from lilac_in
billsacks Jun 23, 2020
1c201cc
In lilac_in: set mesh filenames to 'FILL_THIS_IN'
billsacks Jun 23, 2020
27087db
Set up default history output in user_nl_ctsm
billsacks Jun 23, 2020
fe509cc
Update cime to latest tag that has updated grid names, and uses PIO1
ekluzek Jun 23, 2020
b2ea3fe
Rename ne30pg3 to ne30np4.pg3
fischer-ncar Jun 23, 2020
b949e52
Set pio_stride intelligently
billsacks Jun 23, 2020
414de83
Merge tag 'ctsm1.0.dev101' into lunadaylbugs
ekluzek Jun 23, 2020
db9dfc2
Minor rework of lilacsmoke test
billsacks Jun 11, 2020
71b647a
Set pio_typename based on whether --no-pnetcdf is specified
billsacks Jun 23, 2020
b03da1f
Merge branch 'lilac_cap' into lilac_cap_runtime_inputs
billsacks Jun 23, 2020
d0c9588
Update documentation for recent changes
billsacks Jun 24, 2020
7325704
Print a message when it's safe to start working with runtime inputs
billsacks Jun 24, 2020
b9cd813
Start working on runtime documentation
billsacks Jun 24, 2020
1bdf47a
Update paramfile to remove allpfts dimension (fixes #1056
ekluzek Jun 24, 2020
9497f00
Update totvegcthresh from .1 to 1. fixing #738
ekluzek Jun 24, 2020
11aa406
few modifications and removing the unnecessary environments...
negin513 Jun 24, 2020
370c311
Add script to download input data for lilac
billsacks Jun 24, 2020
83c6b2a
Do xmlchange commands before case.setup
billsacks Jun 24, 2020
8f71f5d
Overall cleanup in wrf.rst
slevis-lmwg Jun 24, 2020
cab9c2e
Support an --inputdata-path argument
billsacks Jun 25, 2020
a3a113e
Fix pylint issues
billsacks Jun 25, 2020
964e05c
Merge tag 'ctsm1.0.dev101' into fixbuildenergy
ekluzek Jun 25, 2020
c34340a
Revisions addressing @billsacks review
slevis-lmwg Jun 25, 2020
2c1c99f
Merge remote-tracking branch 'olyson/fixbuildenergy' into lunadaylbugs
ekluzek Jun 25, 2020
4e54ff2
Document high-level overview of workflow for lilac runtime inputs
billsacks Jun 25, 2020
87b36b5
Minor rework of lilacsmoke test
billsacks Jun 11, 2020
dcb7387
Merge branch 'lilac_cap_runtime_inputs' into lilac_cap
billsacks Jun 25, 2020
0528b5f
Minor image tweaks
billsacks Jun 25, 2020
e825fe3
Merge tag 'ctsm1.0.dev101' into gcell_bal_checks_ch4
slevis-lmwg Jun 25, 2020
bec2729
Merge pull request #1034 from olyson/fixbuildenergy
ekluzek Jun 25, 2020
344b976
Merge branch 'master' of github.com:ESCOMP/ctsm into lunadaylbugs
ekluzek Jun 25, 2020
3b1e861
Update change files
ekluzek Jun 26, 2020
a3e738c
Merge pull request #961 from ekluzek/lunadaylbugs
ekluzek Jun 26, 2020
cf05a2c
work on documentation
billsacks Jun 26, 2020
86ebca6
Change some shebang lines to python3
billsacks Jun 26, 2020
5132998
Finish first draft of documentation on setting ctsm-lilac runtime opt…
billsacks Jun 26, 2020
0ff4da5
Clarifications and modifications in wrf.rst
slevis-lmwg Jun 26, 2020
120deab
LILAC: Change setting for pio_rearr_comm_max_pend_req_comp2io
billsacks Jun 26, 2020
b51dcd6
Loosen tolerance on lat/lon consistency check
billsacks Jun 27, 2020
c68b82f
Merge tag 'ctsm1.0.dev102' into gcell_bal_checks_ch4
slevis-lmwg Jun 28, 2020
bed6890
Updated ChangeLog and ChangeSum
slevis-lmwg Jun 29, 2020
488860d
Merge remote-tracking branch 'slevisconsulting/gcell_bal_checks_ch4'
billsacks Jun 30, 2020
19f8013
LILAC build: make default withOUT OpenMP support
billsacks Jun 30, 2020
10c6a26
Work on LILACSMOKE test
billsacks Jun 30, 2020
4ff3b99
make_runtime_inputs: Remove --existing-res and --existing-mask options
billsacks Jun 30, 2020
bfb0ec9
lilacsmoke: Make a generic function to fill in vars in file
billsacks Jun 30, 2020
ddb0a1a
lilacsmoke: fill in mesh filenames in lilac_in
billsacks Jun 30, 2020
f0c9e55
lilacsmoke: call download_input_data
billsacks Jul 1, 2020
90d45d6
lilacsmoke: generate atm_driver_in
billsacks Jul 1, 2020
aac2aa3
some revisions...and deleting a few lines...
negin513 Jul 1, 2020
26bcc39
Allow use of testmods in the lilacsmoke test
billsacks Jul 1, 2020
e5a355a
lilacsmoke: do daily lilac output
billsacks Jul 1, 2020
e1d4469
lilacsmoke: add some error checking
billsacks Jul 1, 2020
5297a11
Update to cime version with corrected mapping files for the new SE grids
ekluzek Jul 1, 2020
e4d3c1d
Add 1979 and 1982 as possible sim_year settings for finidat files, ad…
ekluzek Jul 1, 2020
e3f0d5a
Increase number of tests because of increase in number of grids
ekluzek Jul 1, 2020
8e8d557
atm_driver Makefile: add LDFLAGS
billsacks Jul 1, 2020
a5f0f1c
Add documentation on lilac restarts
billsacks Jul 1, 2020
0544917
Merge remote-tracking branch 'escomp/master' into lilac_cap
billsacks Jul 1, 2020
4cf744e
Point back to a master tag of mosart
billsacks Jul 1, 2020
a1b0386
Use a stub rof rather than mosart with lilac
billsacks Jul 2, 2020
bfbb37b
Use PIO1 with LILAC for now
billsacks Jul 2, 2020
72ac426
Get Fortran unit tests passing
billsacks Jul 2, 2020
d018f7d
Link runtime input files into lilac atm run directory
billsacks Jul 3, 2020
60cc7a4
Use a compset with SATM for testing LILAC
billsacks Jul 3, 2020
7c42be9
lilacsmoke: get the run off the ground
billsacks Jul 3, 2020
1bab80b
LILAC build_ctsm: Stop making sym link to existing inputdata directory
billsacks Jul 3, 2020
8d24182
some modifications and corrections...
negin513 Jul 3, 2020
5e2de77
Merge branch 'lilac_cap' of github.com:ESCOMP/CTSM into HEAD
negin513 Jul 3, 2020
8ce2e09
lilacsmoke: Use full paths to some scripts
billsacks Jul 3, 2020
36c7267
some clean-ups...
negin513 Jul 3, 2020
87c408d
Merge branch 'lilac_cap' of github.com:ESCOMP/CTSM into HEAD
negin513 Jul 3, 2020
2401a38
Add a comment
billsacks Jul 3, 2020
fd614ba
lilacsmoke test: get baseline generation/comparison working
billsacks Jul 3, 2020
58e2825
lilacsmoke test: get namelist comparison & generation working
billsacks Jul 3, 2020
cecc601
Add a comment
billsacks Jul 3, 2020
8edcb24
LILAC: implement alarms other than nsteps
billsacks Jul 4, 2020
e41545a
LILAC: Disable ESMF's PET files by default
billsacks Jul 5, 2020
75c1141
Remove unnecessary LND_TUNING_MODE setting
billsacks Jul 6, 2020
9c715da
Add a LILAC test to the test suite
billsacks Jul 6, 2020
cb94fb4
Update ChangeLog
billsacks Jul 6, 2020
d143fc8
Merge branch 'lilac_cap'
billsacks Jul 6, 2020
279ec1d
Remove README.lilac
billsacks Jul 6, 2020
9381a6b
Get build-namelist working when multiple finidat files could match
ekluzek Jul 9, 2020
6a2d9fa
Character comparison needed to be used rather than numeric one
ekluzek Jul 9, 2020
786792f
Get the unit tester working so that it agrees with the baseline version
ekluzek Jul 9, 2020
418e41a
Merge tag 'ctsm1.0.dev104' into new_se_grids
ekluzek Jul 10, 2020
667c0df
Add ARTICGRIS finidat file for 1982, and get it and the ARCTIC grid w…
ekluzek Jul 11, 2020
939aabd
Make sure finidat files for clm5_cam6 get matched
ekluzek Jul 12, 2020
602657a
Rename the new finidat files, and add some build-namelist tests for t…
ekluzek Jul 12, 2020
7d2ee8e
Add some tests for the new grids
ekluzek Jul 12, 2020
8c731f2
Add 2013 IC file for CONUS
ekluzek Jul 13, 2020
e732fc1
Use rcp landuse timeseries files for historical as well (for new SE g…
ekluzek Jul 13, 2020
090018c
Fix test list, remove previous new grid tests use the new ones, but a…
ekluzek Jul 13, 2020
575b496
Merge remote-tracking branch 'escomp/master' into new_se_grids
ekluzek Jul 13, 2020
74f137f
Update change files
ekluzek Jul 13, 2020
a0f1a46
Remove conus_30_x8 in light of new name ne0np4CONUS.ne30x8
ekluzek Jul 13, 2020
7493aa4
Merge branch 'new_se_grids' of github.com:fischer-ncar/CTSM into new_…
ekluzek Jul 13, 2020
88a7333
Change name for conus grid mapping files to ne0np4CONUS.ne30x8 and ad…
ekluzek Jul 13, 2020
3e4b3a9
Update on testing
ekluzek Jul 13, 2020
39a9954
Fix for #1010 #1074 and make sure use_crop is set for older datasets …
ekluzek Jul 14, 2020
6cc8d5b
Merge branch 'new_se_grids' of github.com:fischer-ncar/CTSM into new_…
ekluzek Jul 14, 2020
4e85121
Correct grid names for new tests
ekluzek Jul 15, 2020
bd9e44a
CONUS finidat file needs to be interpolated (since we are using the c…
ekluzek Jul 20, 2020
95437ab
Fix the 48x96 landuse.timeseries file fix #1074
ekluzek Jul 21, 2020
ebb841d
Do the match based on start-year rather than sim_year, so that will m…
ekluzek Jul 21, 2020
e4085c7
Add in the ne0np4CONUS.ne30x8 mapping files
ekluzek Jul 21, 2020
eec6c92
Set st_year and ic_date if not set, so it can use reasonable assumptions
ekluzek Jul 21, 2020
7c01167
Merge branch 'new_se_grids' of github.com:fischer-ncar/CTSM into new_…
ekluzek Jul 21, 2020
9336665
Get the build-namelist unit tests working correctly, namelist_default…
ekluzek Jul 22, 2020
8d8a61b
Ignore the standard run system test log file
ekluzek Jul 23, 2020
abacd3a
Revert "Ignore the standard run system test log file"
ekluzek Jul 23, 2020
6d0bcfb
Merge branch 'new_se_grids' of github.com:fischer-ncar/CTSM into new_…
ekluzek Jul 23, 2020
8f3dd97
Update ChangeLog file
ekluzek Jul 23, 2020
b75ad2a
Update externals for CMEPS to hashes from nuopc_dev branch so will ru…
ekluzek Jul 23, 2020
65b6725
Merge pull request #1038 from fischer-ncar/new_se_grids
ekluzek Jul 23, 2020
cf66419
Merge tag 'ctsm1.0.dev105' into fma-merge-ctsm1.0.dev105
glemieux Aug 28, 2020
75d2118
adding update for daily history output to FatesHydro testmod for ERS_…
glemieux Sep 24, 2020
3482a7a
Merge branch 'hydrotest-historyout' into fma-merge-ctsm1.0.dev105
glemieux Sep 24, 2020
4fec1b1
updating fates tag to latest
glemieux Oct 8, 2020
78a3ea1
Merge branch 'fates_main_api' into fma-merge-ctsm1.0.dev105
glemieux Oct 8, 2020
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
2 changes: 1 addition & 1 deletion Externals.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ required = True
local_path = cime
protocol = git
repo_url = https://github.com/ESMCI/cime
tag = branch_tags/cime5.8.23_a01
tag = cime5.8.28
externals = ../Externals_cime.cfg
required = True

Expand Down
2 changes: 1 addition & 1 deletion Externals_CLM.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
local_path = src/fates
protocol = git
repo_url = https://github.com/NGEET/fates
tag = sci.1.42.0_api.14.0.0
tag = sci.1.42.4_api.14.0.0
required = True

[PTCLM]
Expand Down
16 changes: 15 additions & 1 deletion Externals_cime.cfg
Original file line number Diff line number Diff line change
@@ -1,9 +1,23 @@
[cmeps]
hash = 386e1631a6a1e1900700c3a04d693df8692c9420
hash = 9376b87
protocol = git
repo_url = https://github.com/ESCOMP/CMEPS.git
local_path = src/drivers/nuopc/
required = True

[fox]
hash = 0ed59c1
protocol = git
repo_url = https://github.com/ESMCI/fox.git
local_path = src/externals/fox
required = True

[cdeps]
hash = 8e77759
protocol = git
repo_url = https://github.com/ESCOMP/CDEPS.git
local_path = src/components/cdeps
required = True

[externals_description]
schema_version = 1.0.0
126 changes: 64 additions & 62 deletions bld/CLMBuildNamelist.pm
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ use File::Basename qw(dirname);
use English;
use Getopt::Long;
use IO::File;
use File::Glob ':glob';
use File::Glob ':bsd_glob';

#-------------------------------------------------------------------------------
#
Expand Down Expand Up @@ -189,7 +189,6 @@ OPTIONS
form \$CASEDIR/user_nl_clm/user_nl_clm_????)
-inputdata "filepath" Writes out a list containing pathnames for required input datasets in
file specified.
-l_ncpl "LND_NCPL" Number of CLM coupling time-steps in a day.
-lnd_tuning_mode "value" Use the parameters tuned for the given configuration (CLM version and atmospheric forcing)
-mask "landmask" Type of land-mask (default, navy, gx3v5, gx1v5 etc.)
"-mask list" to list valid land masks.
Expand Down Expand Up @@ -255,7 +254,6 @@ sub process_commandline {
help => 0,
glc_nec => "default",
light_res => "default",
l_ncpl => undef,
lnd_tuning_mode => "default",
lnd_frac => undef,
dir => "$cwd",
Expand Down Expand Up @@ -307,7 +305,6 @@ sub process_commandline {
"infile=s" => \$opts{'infile'},
"lnd_frac=s" => \$opts{'lnd_frac'},
"lnd_tuning_mode=s" => \$opts{'lnd_tuning_mode'},
"l_ncpl=i" => \$opts{'l_ncpl'},
"inputdata=s" => \$opts{'inputdata'},
"mask=s" => \$opts{'mask'},
"namelist=s" => \$opts{'namelist'},
Expand Down Expand Up @@ -477,7 +474,7 @@ sub read_envxml_case_files {
my %envxml = ();
if ( defined($opts->{'envxml_dir'}) ) {
(-d $opts->{'envxml_dir'}) or $log->fatal_error( "envxml_dir is not a directory" );
my @files = glob( $opts->{'envxml_dir'}."/env_*xml" );
my @files = bsd_glob( $opts->{'envxml_dir'}."/env_*xml" );
($#files >= 0) or $log->fatal_error( "there are no env_*xml files in the envxml_dir" );
foreach my $file (@files) {
$log->verbose_message( "Open env.xml file: $file" );
Expand Down Expand Up @@ -1198,7 +1195,16 @@ sub setup_cmdl_run_type {
my $val;
my $var = "clm_start_type";
my $ic_date = $nl->get_value('start_ymd');
my $st_year = int( $ic_date / 10000);
my $st_year;
if ( defined($ic_date) ) {
$st_year = int( $ic_date / 10000);
} else {
$st_year = $nl_flags->{'sim_year'};
$ic_date = $st_year *10000 + 101;
my $date = 'start_ymd';
my $group = $definition->get_group_name($date);
$nl->set_variable_value($group, $date, $ic_date );
}
if (defined $opts->{$var}) {
if ($opts->{$var} eq "default" ) {
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var,
Expand All @@ -1214,6 +1220,7 @@ sub setup_cmdl_run_type {
'sim_year'=>$st_year );
}
$nl_flags->{'clm_start_type'} = $nl->get_value($var);
$nl_flags->{'st_year'} = $st_year;
}

#-------------------------------------------------------------------------------
Expand Down Expand Up @@ -1396,9 +1403,6 @@ sub process_namelist_commandline_clm_usr_name {
$nvars++;
}
}
if ( $nvars == 0 ) {
$log->message("setting clm_usr_name -- but did NOT find any user datasets: $opts->{'clm_usr_name'}", $opts);
}
# Go through all variables and expand any XML env settings in them
expand_xml_variables_in_namelist( $nl_usrfile, $envxml_ref );
# Merge input values into namelist. Previously specified values have higher precedence
Expand Down Expand Up @@ -1440,7 +1444,7 @@ sub process_namelist_commandline_use_case {
my $val = $uc_defaults->get_value($var, \%settings );

if ( defined($val) ) {
$log->message("CLM adding use_case $opts->{'use_case'} defaults for var '$var' with val '$val'");
$log->verbose_message("CLM adding use_case $opts->{'use_case'} defaults for var '$var' with val '$val'");

add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl_usecase, $var, 'val'=>$val);
}
Expand Down Expand Up @@ -1488,7 +1492,6 @@ sub process_namelist_inline_logic {
setup_logic_co2_type($opts, $nl_flags, $definition, $defaults, $nl);
setup_logic_irrigate($opts, $nl_flags, $definition, $defaults, $nl);
setup_logic_start_type($opts, $nl_flags, $nl);
setup_logic_delta_time($opts, $nl_flags, $definition, $defaults, $nl);
setup_logic_decomp_performance($opts, $nl_flags, $definition, $defaults, $nl);
setup_logic_snow($opts, $nl_flags, $definition, $defaults, $nl);
setup_logic_glacier($opts, $nl_flags, $definition, $defaults, $nl, $envxml_ref);
Expand Down Expand Up @@ -1864,28 +1867,6 @@ sub setup_logic_start_type {

#-------------------------------------------------------------------------------

sub setup_logic_delta_time {
my ($opts, $nl_flags, $definition, $defaults, $nl) = @_;

if ( defined($opts->{'l_ncpl'}) ) {
my $l_ncpl = $opts->{'l_ncpl'};
if ( $l_ncpl <= 0 ) {
$log->fatal_error("bad value for -l_ncpl option.");
}
my $val = ( 3600 * 24 ) / $l_ncpl;
my $dtime = $nl->get_value('dtime');
if ( ! defined($dtime) ) {
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'dtime', 'val'=>$val);
} elsif ( $dtime ne $val ) {
$log->fatal_error("can NOT set both -l_ncpl option (via LND_NCPL env variable) AND dtime namelist variable.");
}
} else {
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'dtime', 'hgrid'=>$nl_flags->{'res'});
}
}

#-------------------------------------------------------------------------------

sub setup_logic_decomp_performance {
my ($opts, $nl_flags, $definition, $defaults, $nl) = @_;

Expand Down Expand Up @@ -2246,7 +2227,7 @@ sub setup_logic_initial_conditions {

if (not defined $finidat ) {
my $ic_date = $nl->get_value('start_ymd');
my $st_year = int( $ic_date / 10000);
my $st_year = $nl_flags->{'st_year'};
my $nofail = 1;
my %settings;
$settings{'hgrid'} = $nl_flags->{'res'};
Expand Down Expand Up @@ -2304,47 +2285,67 @@ sub setup_logic_initial_conditions {
#}
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, "init_interp_sim_years" );
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, "init_interp_how_close" );
#
# Figure out which sim_year has a usable finidat file that is closest to the desired one
#
my $close = $nl->get_value("init_interp_how_close");
foreach my $sim_yr ( split( /,/, $nl->get_value("init_interp_sim_years") )) {
my $closest_sim_year = undef;
my @sim_years = split( /,/, $nl->get_value("init_interp_sim_years") );
SIMYR: foreach my $sim_yr ( @sim_years ) {
my $how_close = undef;
if ( $nl_flags->{'sim_year'} eq "PtVg" ) {
$how_close = abs(1850 - $sim_yr);
# EBK 07/20/2020 -- This makes sure the sim_year matched is based on the sim-year
# rather than the start year.
#} elsif ( $nl_flags->{'flanduse_timeseries'} eq "null" ) {
# $how_close = abs($nl_flags->{'sim_year'} - $sim_yr);
} else {
$how_close = abs($st_year - $sim_yr);
}
if ( ($how_close < $nl->get_value("init_interp_how_close")) && ($how_close < $close) ) {
$close = $how_close;
if ( ($sim_yr == $sim_years[-1]) || (($how_close < $nl->get_value("init_interp_how_close")) && ($how_close < $close)) ) {
my $group = $definition->get_group_name($useinitvar);
$settings{'sim_year'} = $sim_yr;
$settings{$useinitvar} = $defaults->get_value($useinitvar, \%settings);
if ( ! defined($settings{$useinitvar}) ) {
$settings{$useinitvar} = $use_init_interp_default;
}
if ( &value_is_true($settings{$useinitvar}) ) {

if ( ($how_close < $nl->get_value("init_interp_how_close")) && ($how_close < $close) ) {
$close = $how_close;
$closest_sim_year = $sim_yr;
}
}
}
}
} # SIMYR:
$settings{'sim_year'} = $closest_sim_year;
add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $useinitvar,
'use_cndv'=>$nl_flags->{'use_cndv'}, 'phys'=>$physv->as_string(),
'sim_year'=>$settings{'sim_year'}, 'nofail'=>1, 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'},
'use_fates'=>$nl_flags->{'use_fates'} );
'use_cndv'=>$nl_flags->{'use_cndv'}, 'phys'=>$physv->as_string(),
'sim_year'=>$settings{'sim_year'}, 'nofail'=>1, 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'},
'use_fates'=>$nl_flags->{'use_fates'} );
$settings{$useinitvar} = $nl->get_value($useinitvar);
if ( $try > 1 ) {
my $group = $definition->get_group_name($useinitvar);
$nl->set_variable_value($group, $useinitvar, $use_init_interp_default );
}
if ( &value_is_true($nl->get_value($useinitvar) ) ) {

add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, "init_interp_attributes",
'sim_year'=>$settings{'sim_year'}, 'use_cndv'=>$nl_flags->{'use_cndv'},
'glc_nec'=>$nl_flags->{'glc_nec'}, 'use_fates'=>$nl_flags->{'use_fates'},
'use_cn'=>$nl_flags->{'use_cn'}, 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'},'nofail'=>1 );
my $attributes_string = remove_leading_and_trailing_quotes($nl->get_value("init_interp_attributes"));
if ( ! &value_is_true($nl->get_value($useinitvar) ) ) {
if ( $nl_flags->{'clm_start_type'} =~ /startup/ ) {
$log->fatal_error("clm_start_type is startup so an initial conditions ($var) file is required, but can't find one without $useinitvar being set to true");
}
} else {
my $stat = add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, "init_interp_attributes",
'sim_year'=>$settings{'sim_year'}, 'use_cndv'=>$nl_flags->{'use_cndv'},
'glc_nec'=>$nl_flags->{'glc_nec'}, 'use_fates'=>$nl_flags->{'use_fates'},
'hgrid'=>$nl_flags->{'res'},
'use_cn'=>$nl_flags->{'use_cn'}, 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'}, 'nofail'=>1 );
if ( $stat ) {
$log->fatal_error("$useinitvar is NOT synchronized with init_interp_attributes");
}
my $attributes = $nl->get_value("init_interp_attributes");
my $attributes_string = remove_leading_and_trailing_quotes($attributes);
foreach my $pair ( split( /\s/, $attributes_string) ) {
if ( $pair =~ /^([a-z_]+)=([a-z._0-9]+)$/ ) {
if ( $pair =~ /^([a-z_]+)=([a-zA-Z._0-9]+)$/ ) {
$settings{$1} = $2;
} else {
$log->fatal_error("Problem interpreting init_interp_attributes");
$log->fatal_error("Problem interpreting init_interp_attributes: $pair");
}
}
} else {
if ( $nl_flags->{'clm_start_type'} =~ /startup/ ) {
$log->fatal_error("clm_start_type is startup so an initial conditions ($var) file is required, but can't find one without $useinitvar being set to true");
}
$try = $done;
}
} else {
$try = $done
Expand Down Expand Up @@ -3973,7 +3974,7 @@ sub add_default {
}
}
else {
return;
return( 1 );
}
}

Expand Down Expand Up @@ -4008,6 +4009,7 @@ sub add_default {
# set the value in the namelist
$nl->set_variable_value($group, $var, $val);
}
return( 0 );

}

Expand Down Expand Up @@ -4202,7 +4204,7 @@ sub validate_options {
# create the @expect array by listing the files in $use_case_dir
# and strip off the ".xml" part of the filename
@expect = ();
my @files = glob("$opts->{'use_case_dir'}/*.xml");
my @files = bsd_glob("$opts->{'use_case_dir'}/*.xml");
foreach my $file (@files) {
$file =~ m{.*/(.*)\.xml};
&check_use_case_name( $1 );
Expand All @@ -4216,7 +4218,7 @@ sub validate_options {
} else {
print "Use cases are:...\n\n";
my @ucases;
foreach my $file( sort( glob($opts->{'use_case_dir'}."/*.xml") ) ) {
foreach my $file( sort( bsd_glob($opts->{'use_case_dir'}."/*.xml") ) ) {
my $use_case;
if ( $file =~ /\/([^\/]+)\.xml$/ ) {
&check_use_case_name( $1 );
Expand Down
Loading