Build-namelist logic to find the finidat file is fragile and needs to be redone
- Dominant language
- Fortran
- Stars
- 352
- Forks
- 361
- Avg merge
- 6d 6h
- Merged PRs (30d)
- 8
Description
In working on #2008 I'm finding that the logic to fine the finidat file is: complex, hard to understand, fragile, and will require a bunch of duplication. This is another reason for doing #585 which is the long term solution. Although there we should make sure the redesign in python has a better method of getting the finidat files.
This is similar to #549, but slightly different and focussed on just the namelist logic and the namelist default settings for: use_init_interp and init_interp_attributes. This is also related to #2149, as we need to have duplicated lnd_tuning_mode options for all the different clm physics options, as well as the cam options. Right now this is going to require a bunch of duplication.
Definition of Done:
- [x] Improve the error message so it at least gives you a clue on what's wrong...
- [ ] Add testing for finidat files to the build-namelist unit tester
- [ ] Add a python tester to validate that the namelist_defaults files synchronize: init_interp_sim_years, use_init_interp, init_interp_attributes, and finidat
- [ ] Fix case of finidat files with do_transient_pfts=.true. (example 1979 or 2000 files) so that use_init_interp doesn't need to be true
- [ ] Reduce the required attributes to specify each file (see below)
- [ ] Implement a better solution inside of the current buildnml or build-namelist?
- [ ] Long term: Reimplement build-namelist as in #585
Contributor guide
Assessment
This issue has not been assessed yet.