NOAA-EMC / fv3atm

Other
29 stars 154 forks source link

Update fv3atm_sfc_io.F90 to read new surface coldstart files #670

Closed GeorgeGayno-NOAA closed 5 months ago

GeorgeGayno-NOAA commented 1 year ago

Description

The introduction of fractional grids required new surface-specific variables for roughness length, snow depth/liquid equivalent, column temperature, and skin temperature. For example, roughness length is stored in three separate variables: zorll (land), zorlw (open water) and zorli (ice). There is also a 'composite' or 'merged' roughness record, zorl.

The i/o module (fv3atm_sfc_io.F90) will read in a composite field (mandatory) from the coldstart file and optionally the surface-specific fields. If the surface-specific fields are not in the file, the module will populate them from the composite value. This allows for cold starting with files from the current version of chgres_cube.

Solution

The chgres_cube program has been updated to recognize fractional grids. As part of this update, it will always output the surface-specific records. Update the model i/o module to read them, then, compute the composite field (some composite fields are used by the physics).

Testing:

So far, tested on Hera with the following configurations:

Dependent issues:

https://github.com/ufs-community/UFS_UTILS/issues/123

GeorgeGayno-NOAA commented 10 months ago

It was decided to make the read routine backwards compatible, i.e., it should work with coldstart files created from the current or the future (fractional grid) versions of chgres_cube. A global attribute was added to the coldstart files to indicate which version of chgres created it (see https://github.com/GeorgeGayno-NOAA/UFS_UTILS/commit/24fe48a9cb1919e4527221f177d35765049e85d6)

The read routine was updated at aba1b3c to read either version. It was tested on the "control_c48_intel" regression test. Both versions of the coldstart files were tested. In both cases the model ran to completion with no problems.