Skip to content

Integration of UFS Case Studies ICs into UFS-WM #2309

Closed
@ulmononian

Description

Description

As a step toward an HTF/HSD framework for the UFS-WM, enabling the WM to run using GFS ICs from the UFS Case Studies page was identified as a desirable feature. This issue discusses a possible approach toward the development of this capability.

Solution

To achieve this, ICs corresponding to the initialization date/time of a particular case need to be generated. One way to do this is with chgres_cube, which can be built as part of UFS_UTILS. The conversion can be done automatically via the gdas_init utility, also available in UFS_UTILS. gdas_init can be configured to pull raw GFS data from HPSS onto a local machine (Hera or Jet) and convert the raw data (via chgres_cube) into the cold start format (including desired vertical level # and resolution) required by the ATM component of the UFS-WM. The converted cold start ICs can then be used as input data for certain UFS-WM RTs of corresponding model resolution and configuration, wherein the user need only replace the sfc*.nc and gfs*.nc files in the INPUT directory of the RT run directory and adjust the model start time in the model_configure file. Note that the develop version (as of 6/4/24) of UFS_UTILS generates the so-called v2 sfc files via gdas_init and chgres_cube, so at this time, successful integration of the converted cold start files has only been achieved using the somewhat recently added *v2.sfc WM RTs (e.g., https://github.com/ufs-community/ufs-weather-model/blob/develop/tests/tests/control_c48.v2.sfc; see #2005 and #1977). Since the v2 surface files are significantly different from the v1 surface file format, v2 files do not seem to work with non-v2.sfc RTs.

To generate cold start ICs via UFS_UTILS/gdas_init/chgres_cube on an RDHPC with HPSS access (Hera or Jet), the user should do the following:

git clone https://github.com/ufs-community/UFS_UTILS.git
cd UFS_UTILS
cd fix
./link_fixdirs.sh emc <Hera or Jet>
cd ..
./build_all.sh
cd util
cd gdas_init
#edit the `config` file to set paths for data extraction and converted files (`EXTRACT_DIR` and `OUTDIR`, respectively); set  yy/mm/dd/hh to desired forecast start time +6 hours); set CDUMP to `gfs`  to generate GFS ICs; for the UFS-WM, set `LEVS` to 128; set `EXTRACT_DATA` to `yes`(unless data is already staged in `EXTRACT_DIR`); set `CRES_HIRES` to desired resolution for cold start files (e.g., C48)
# edit `PROJECT_CODE` in the machine-specific driver (e.g., `driver.jet.sh`) to an account user can use for submitting batch jobs; 
# run the driver script
./driver.<machine.sh

These steps will (1) pull raw GFS data from HPSS into EXTRACT_DIR and then (2) convert the raw data to cold start ICs (placed in OUTDIR, appended by gfs.YYYYMMDD/HH/model_data/atmos/input). To use the converted cold start files with the UFS-WM, copy the gfs*.nc and sfc*.nc files from the OUTDIR/gfs.YYYYMMDD/HH/model_data/atmos/input directory into the UFS-WM RT run directory's INPUT directory. Note that the resolution of the converted cold start GFS data must match the ATM resolution of the UFS-WM RT (e.g., use C48 GFS cold start data in the control_c48.v2.sfc RT). Then, edit the model start year/month/day/hour in the RT model_configure. The user can then re-run the fv3.exe via sbatch job_card. The case should now run at the new model start time with the cold start ICs.

An example can be found in /lfs4/HFIP/hfv3gfs/Cameron.Book/RT_RUNDIRS/Cameron.Book/FV3_RT/rt_1826477/control_c48.v2.sfc_intel, which used cold start ICs generated through gdas_init/chgres_cube for the 2020 CAPE case (see /lfs4/HFIP/hfv3gfs/Cameron.Book/chgres_data/converted/gfs.20200723/00/model_data/atmos/input) from the UFS Case Studies page.

Note that, in order to generate all necessary configuration/data/input/fix files to run in this method, the user first needs to run the base RT using `./rt.sh -n ' to set-up the run directory (if working from ufs-wm/tests). The test cases will be integrated with the YAML-based testing feature as detailed in WM issue #2182 and PR #2278 (@jkbk2004).

If working in ufs-wm/tests-dev, the run directories will be setup when the user runs ufs_test.sh -a <account> -s (if first time running) -n <test_name compiler> / -l <test YAML>. -n should be used for a single test, while -l should be used if a user wishes to run from a YAML containing a list of tests.

Alternatives

Related to

Issue #2182 and PR #2278

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions