GEOS-ESM / GEOS-ESM/GEOSgcm_GridComp
Clean-up and reorganization of make_bcs (GEOSsurface_GridComp/Utils/Raster/)
@weiyuan-jiang is already working on this.
Since Jul 28, 2022.
- Dominant language
- Fortran
- Stars
- 10
- Forks
- 13
- Avg merge
- 17h 35m
- Merged PRs (30d)
- 14
Description
This issue addresses updates to the "make_bcs" software package that generates the GEOS “boundary conditions”.
The main entry point to the package is the script “make_bcs”. Running “make_bcs” generates a resolution- and version-specific README file for the outputs through the “create_README.csh” script.
Broadly speaking, there are three main concerns:
- Clean up existing scripts and programs.
- Generate self-describing output files.
- Capture scripts and programs needed to create the ancillary (input) files needed by make_bcs.
More specifically, we identified the following tasks (non-exhaustive and in no particular order):
-
Unify mkSMAPTilesPara.F90 and mkSMAPTilesPara_v2.F90. The two programs are mostly identical, with the former using the original EASE grid and the latter using v2 of the EASE grid.
- The unified program should take advantage of an existing EASE grid module (LDAS_EASE_conv.F90 in GEOSldas), which may need to be moved to a different repo.
- Examine and resolve differences, if any, in how the two mkSMAPTilesPara programs operate (besides the obvious differences in EASE grid version).
-
Relating to 1., examine and resolve why EASEv2 M09 and M36 are treated differently from EASEv2 M03 and EASE[v1] M25.
-
Parallelization and optimization.
-
The package uses some OpenMP, but the highest resolutions (e.g., EASEv2 M01) don’t run because of memory or CPU limitations. Add parallelization that resolves this limitation.
- Currently, the job scripts use NCPUS=20, independent of node type. Determine the optimal NCPUS, which may depend on node type.
-
A number of very large ASCII files are generated by make_bcs, including the tile (*.til) file and Catchment model parameters. Convert all ASCII files to nc4 and change downstream software as needed (mk_restarts, GEOSldas, …).
-
Identify ancillary input files to make_bcs that require preprocessing, e.g., the Richards’ equation solver that generates Catchment model soil hydraulic parameters as a function of soil class (loss_during_day.f90 may be part of this). I think PEATCLSM_fitting_CLSM_params.R is used to generate a handful of scalar constants for the PEATCLSM soil hydrology module for peatlands.
- If such code is present, move into separate subdirectory “inputs” or into a new repo, otherwise track down the code and add into repo.
- Establish that we can regenerate all ancillary inputs to make_bcs, which is important for future science development of the model.
-
Move IDL plotting scripts into subdirectory.
-
Identify and resolve duplication of modules. E.g., date_time_util.F90 can probably be replaced with LDAS_DateTimeMod.F90 in GEOSldas (may need to be moved into a different repo).
Work on this issue should be coordinated with other work on make_bcs:
- PR #601.
- Planned PR to replace path names in make_bcs with new values pointing to new shared project space for bcs input files.
- Planned PR to add snow albedo to the list of time-invariant fields in the bcs.
- Additional bcs processing needed for the coupled atmosphere-ocean model (Yury, Santha).
- Be aware that Ben has software that generates topography inputs for the atmospheric model, presumably from the same ancillary SRTM files, see #523.
cc: @tclune @weiyuan-jiang @rdkoster @biljanaorescanin
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.