GEOS-ESM / GEOS-ESM/GEOSgcm_GridComp

Clean-up and reorganization of make_bcs (GEOSsurface_GridComp/Utils/Raster/)

Open
#615 0 comments 0 reactions 1 assignee View on GitHub

@weiyuan-jiang is already working on this.

Since Jul 28, 2022.

cleanup documentation
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):

  1. 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).
  2. Relating to 1., examine and resolve why EASEv2 M09 and M36 are treated differently from EASEv2 M03 and EASE[v1] M25.

  3. Parallelization and optimization.

  4. 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.
  5. 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, …).

  6. 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.
  7. Move IDL plotting scripts into subdirectory.

  8. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.