NCAR / DART

Data Assimilation Research Testbed
https://dart.ucar.edu/
Apache License 2.0
184 stars 138 forks source link

bgrid_solo scripting and documentation update #689

Open mjs2369 opened 3 weeks ago

mjs2369 commented 3 weeks ago

Description:

Fixes issue

fixes #647

Types of changes

Documentation changes needed?

Tests

Checklist for merging

Checklist for release

Testing Datasets

nancycollins commented 3 weeks ago

i'm sorry if i missed this discussion, but we had originally not put netcdf files into the repo, partly because they're binary and can't be easily diff'd to see differences. instead we distributed the input for perfect model and filter as text .cdl files. the standard netcdf utility 'ncgen' used to be run in the workshop setup script to generate the .nc files at run time. was there a decision that this wasn't a good option?

edit to add: there is still both a perfect_input.cdl as well as a perfect_input.nc in the bgrid_solo dir. i think running filter from a single ensemble member is a smart choice - did the old filter_input.cdl have something like 20 members so it was too big?

hkershaw-brown commented 3 weeks ago

edit to add: there is still both a perfect_input.cdl as well as a perfect_input.nc in the bgrid_solo dir. i think running filter from a single ensemble member is a smart choice - did the old filter_input.cdl have something like 20 members so it was too big?

Its unclear what the decisions where:

The file in the repo appears to be a SHA (maybe for svn, doesn't seem to match DART or DART_development models/bgrid_solo/work/filter_input.cdl.REMOVED.git-id

Screenshot 2024-06-14 at 8 06 09 AM

The history is not helpful either https://github.com/NCAR/DART/commits/main/models/bgrid_solo/work/filter_input.cdl.REMOVED.git-id

and why this change was committed as part of 7aac084 - can't tell what the goal was here either.

Screenshot 2024-06-14 at 8 14 51 AM

the workshop_setup.sh{csh} hasn't worked for 7+ years. Recently someone https://github.com/NCAR/DART/issues/647 was trying to use bgrid_solo and was understandably confused what the file filter_input.cdl.REMOVED.git-id was. Time to get rid of it, and fix the workshop_setup script.

nancycollins commented 3 weeks ago

i think some of the breakage happened when quickbuild was changed (and improved). the original older quickbuild used to look for .cdl files and run ncgen on the to make a .nc file on demand. then the workshop_setup scripts didn't have to do anything and they ran. i assume the new quickbuild doesn't do that anymore. it seems the choices are to remove the .cdl files from the repo (they exist in many of the lower order models) and commit the corresponding .nc files, or see if the quickbuild could generate .nc files on demand if a .cdl file exists.

hkershaw-brown commented 3 weeks ago

i think some of the breakage happened when quickbuild was changed (and improved). the original older quickbuild used to look for .cdl files and run ncgen on the to make a .nc file on demand. then the workshop_setup scripts didn't have to do anything and they ran. i assume the new quickbuild doesn't do that anymore. it seems the choices are to remove the .cdl files from the repo (they exist in many of the lower order models) and commit the corresponding .nc files, or see if the quickbuild could generate .nc files on demand if a .cdl file exists.

the new quickbuild.sh runs ncgen. The brid_solo workshop script has not had a filter_input.cdl for 7+ years. bgrid_solo workshop_setup.csh did not work pre the new quickbuild.sh

nancycollins commented 3 weeks ago

never mind any of my previous comments. i was completely confused about things.

kdraeder commented 2 weeks ago

Is workshop_setup.sh in work because it runs quickbuild.sh? To me it seems more consistent with the directory structure and naming to put it in shell_scripts and edit it to refer to ../work/... as needed, and maybe run the OSSE in ../test.

nancycollins commented 2 weeks ago

i'm not sure about the bgrid_solo model, but workshop_setup.sh was in the work directory for some of the lorenz models because the tutorial used it to build and run pmo and filter so users could run the diagnostics right away. this whole script may have outlived its usefulness.

kdraeder commented 2 weeks ago

i'm not sure about the bgrid_solo model, but workshop_setup.sh was in the work directory for some of the lorenz models because the tutorial used it to build and run pmo and filter so users could run the diagnostics right away. this whole script may have outlived its usefulness.

Thanks for the context! I can see how it's simpler in the context of a workshop to do all the steps in one directory, since there's limited output and number of steps.
This could be an opportunity to avoid the common development path of taking whatever special purpose code exists and generalizing it just enough for the next goal, while declining to purge "baggage" code if it's not in the way. Or maybe this is too entrenched by now.

mjs2369 commented 1 week ago

i'm not sure about the bgrid_solo model, but workshop_setup.sh was in the work directory for some of the lorenz models because the tutorial used it to build and run pmo and filter so users could run the diagnostics right away. this whole script may have outlived its usefulness.

@hkershaw-brown @nancycollins @kdraeder

Are we thinking we remove workshop_setup.sh all together then and update the docs accordingly? Or should we keep it in the repo?

mjs2369 commented 6 days ago

Update: removing the workshop_setup script from the repo and updating the docs accordingly.

kdraeder commented 2 days ago

I pulled the latest version and read through the readme.rst. Here are my top items or questions. Namelist:

There's no directory INPUT or template {atmos_model,?}.res file. I see several options; 1) remove the reference to INPUT, 2) note the absence (and that it's "never" used?) 3) add an option to the 'resolution' paragraph about getting resolution from running the model from a cold start, using the resolution variables in the model's namelist, and finding atmos_model.res in directory RESTART.

INPUT/atmos_model.res is hard-wired in fms_src/atmos_solo/atmos_model.f90. I also see that bgrid_prog_var.res is hard-wired in fms_src/atmos_bgrid/tools/bgrid_prog_var.f90. Should all of the atmos_bgrid (spectral dynamical core?) be ignored because DART uses only atmos_solo?

Inconsistent formatting for programs and files; item in the main text italicized in the template file no formatting in the other namelist entries

I have not worked through the test steps (an excellent addition!), but I will if that would be helpful.

I also have a readme.rst with some typo fixes and suggested formatting. After we've answered my questions about model resolution, I could add in text about that and push my version for review.