-
Notifications
You must be signed in to change notification settings - Fork 26
2019 meeting notes
Lots of discussion on what a stand-alone test for the interior tendency and surface flux compute()
subroutines should look like. Some decisions:
- Test will need to read in initial state and forcings, and provide output (diagnostics, tendencies, and surface fluxes)
- Extract above data from a POP run
- Test will run on multiple columns. Some possible choices:
- OMZ column (eq. Pacific)
- multiple PAR columns (Southern Ocean)
- Some functional groups = 0 (e.g. high-latitude => no diaz)
- Arctic vs Antarctic @ Jan 1 [darkness vs ice]?
- Subtropical Atlantic (high Fe)
- Ability to run with multiple instances & multiple columns per instance would be valuable for documenting the process
- Test written in Fortran to provide additional example for GCM developers
Started with a brief discussion about DOIs -- the big question is "what happens with the Zenodo DOIs if we delete code from github?" There doesn't seem to be a way to point to a different repository, and it is unclear if the zip
files available for download on Zenodo are actually stored there or if they are provided by github. Mike contacted the NCAR librarians to see if they have any guidance - perhaps NCAR has a better way of assigning DOIs to code?
Lots of talk about what the MARBL documentation should look like. Main conclusions:
- Mike will update the github.io page for the CESM 2.1 release, but the current implementation (especially including code snippets via cut & paste) should be rethought
- Creating an instructional stand-alone driver is highest priority (designed to teach others what functional GCM <-> MARBL interface looks like) * instructional driver is likely different than testing driver to avoid confusing new users (testing driver may depend on instructional code?)
- doxygenize marbl_interface.F90
- What we currently refer to as the Dev Guide and the User Guide should be combined into a single Dev Guide that clearly differentiates between "GCM Developers looking to bring MARBL into their GCM" and "BGC experts looking to bring their science into MARBL"; a new User Guide should target "scientists running a GCM that happens to include MARBL"
- The new dev guide should be entirely based on stand-alone driver; GCMs will want to base their driver off of that code
- Science guide should definitely include sections on the elemental cycles (oxygen, iron, etc) and the ecosystem (growth / loss)
CMIP is requesting some specific documentation that might be useful in the science guide. There was discussion on how to organize the science guide -- laying the document out in a manner similar to how the code is organized would be nice, but does not seem practical from an upkeep point of view.
Matt raised the point about documenting parameters. The YAML files provide a mechanism for maintaining this information, and CESM converts it to HTML, but the actual descriptions in the YAML need to be updated. For example, describing the variable agg_rate_min
as "Minimum agg rate" is not particularly useful.
The last topic covered was the diagnostics. There were some small updates that will be easy to incorporate:
- Rely on
OCNDIAG_DEPTHS
for the depth list - Use esmlab for computing RMS)
- Use land mask from dataset rather than cartopy's continents
- No need to save
Elem
, just runmarbl_diags.AnalysisElements(k, config_dict[k], var_dict).do_analysis()
and a big-picture thought: env_diags_ocn.xml
could have a single field, OCNDIAG_USE_MARBL_DIAGS
and then YAML would be used to control the marbl-diags
package itself
- Matt raises point that users that want to add new BGC diagnostic plots should not have to touch the postprocessing scripts at all - it should be contained entirely in
marbl-diags
- Mike likes the idea of hard-coding
config_dict
in python, but giving user ability to write it as a YAML file to$CASEROOT/postprocess
and then edit it as desired - Lots of possibilities for what this looks like, but we need to make more progress on the short-term task list before deciding how this will be implemented