Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bring recent updates from develop to reforecast #3015

Draft
wants to merge 53 commits into
base: feature/gefs_reforecast
Choose a base branch
from

Conversation

EricSinsky-NOAA
Copy link
Contributor

Description

This PR brings the latest changes from the develop branch to the GEFS reforecast branch.

Type of change

  • Bug fix (fixes something broken)
  • New feature (adds functionality)
  • Maintenance (code refactor, clean-up, new CI test, etc.)

Change characteristics

  • Is this a breaking change (a change in existing functionality)? NO
  • Does this change require a documentation update? NO
  • Does this change require an update to any of the following submodules? NO
    • EMC verif-global
    • GDAS
    • GFS-utils
    • GSI
    • GSI-monitor
    • GSI-utils
    • UFS-utils
    • UFS-weather-model
    • wxflow

How has this been tested?

This branch is being tested on WCOSS2. When testing has succeeded, this PR will be marked as ready for review.

Checklist

  • Any dependent changes have been merged and published
  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have documented my code, including function, input, and output descriptions
  • My changes generate no new warnings
  • New and existing tests pass with my changes
  • This change is covered by an existing CI test or a new one has been added
  • I have made corresponding changes to the system documentation if necessary

weihuang-jedi and others added 30 commits August 28, 2024 16:42
Make ATM-OCN-ICE coupling model run on AWS.

This adds capability to run UFS atm-ocn-ice coupling on AWS.

Resolves NOAA-EMC#2858
This PR corrects a bug in the staging job for ocean `MOM.res_#` IC
files. The `OCNRES` value was coming in as an integer (e.g. `25`) but
the `ocean.yaml.j2` file was checking for `"025"`. Correct to now set
OCNRES to be three digits in staging script and also correct the for
loop range to include third file.

Resolves NOAA-EMC#2864
…AA-EMC#2738)

This PR adds in support for computing files needed for the aerosol
analysis **B**. This includes a new task, `aeroanlgenb`. This work was
performed by both me and @andytangborn

Resolves NOAA-EMC#2501
Resolves NOAA-EMC#2737

---------

Co-authored-by: Andrew.Tangborn <Andrew.Tangborn@noaa.gov>
Co-authored-by: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Adds files `atmi009.nc`, `atmi003.nc`, `ratmi009.nc`, and `ratmi003.nc`
to list of files to be staged for ICs, if available. These are necessary
for starting an IAU run, and are currently missing.

Resolves NOAA-EMC#2874
# Description

Support global-worflow GEFS C48 on Google Cloud.

Make env. var. and yaml file changes, so global-workflow GEFS C48 case
can run properly on Google Cloud.

Resolves NOAA-EMC#2860
Use the updated 2013 to 2024 mean MERRA2 climatology instead of 2003 to
2014 mean

Depends on NOAA-EMC#2887 
Refs: ufs-community/ufs-weather-model#2272
Refs: ufs-community/ufs-weather-model#2273
…MC#2893)

This changes the order of the cleanup job so that the working directory
is deleted at the end. It also adds the `-ignore_readdir_race` flag to
`find` to prevent errors if a file was deleted after the list of files
was collected. This can happen if two consecutive cycles run the cleanup
job at the same time.
This updates the model hash to include the UPP update needed to be able
to run the post processor on Orion, thus reenabling support on that
system.

A note on the UPP: it is using a newer version of g2tmpl that requires a
separate spack-stack 1.6.0 installation. This version of g2tmpl will be
standard in spack-stack 1.8.0, but for now requires loading separate
modules for the UPP.

A note on running analyses on Orion: due to a yet-unknown issue causing
the BUFR library to run much slower on Orion when compared with Rocky 8,
the GSI and GDASApp are expected to run significantly slower than on any
other platform (on the order of an hour longer).

Lastly, I made adjustments to the build_all.sh script to send more cores
to compiling the UFS and GDASApp. Under this configuration, the GSI,
UPP, UFS_Utils, and WW3 pre/post executables finish compiling before the
UFS when run with 20 cores.

Resolves NOAA-EMC#2694 
Resolves NOAA-EMC#2851 

---------

Co-authored-by: Rahul Mahajan <aerorahul@users.noreply.github.com>
Co-authored-by: Walter.Kolczynski <Walter.Kolczynski@noaa.gov>
…#2816)

- This task is an extension of the empty arch job previously merged. 
- This feature adds an archive task to GEFS system to archive files
locally.
- This feature archives files in ensstat directory. 

Resolves NOAA-EMC#2698
Refs NOAA-EMC#832 NOAA-EMC#2772
The current operational BUFR job begins concurrently with the GFS model
run. This PR updates the script and ush to process all forecast hour
data simultaneously, then combines the temporary outputs to create BUFR
sounding products for each station. The updated job will now start
processing data only after the GFS model completes its 180-hour run,
handling all forecast files from 000hr to 180hr at a time. The new
version job running will need 7 nodes instead of the current operational
4 nodes.

This PR depends on the GFS bufr code update NOAA-EMC/gfs-utils#75

With the updates of bufr codes and scripts, there is no need to add
restart capability to GFS post-process job JGFS_ATMOS_POSTSND.

This PR includes the other changes:

Rename the following table files:

parm/product/bufr_ij13km.txt to parm/product/bufr_ij_gfs_C768.txt
parm/product/bufr_ij9km.txt to parm/product/bufr_ij_gfs_C1152.txt

Add a new table file: parm/product/bufr_ij_gfs_C96.txt for GFSv17 C96
testing.

Added a new capability to the BUFR package. The job priority is to read
bufr_ij_gfs_${CASE}.txt. If the table file is not available, the code
will automatically find the nearest neighbor grid point (i, j).

Refs NOAA-EMC#1257
Refs NOAA-EMC/gfs-utils#75
This PR creates a PyGFS class called JEDI, which is to be instantiated
everytime a JEDI application is run. The AtmAnalysis and AtmEnsAnalysis
classes are no longer children of the Analysis class, but rather direct
children of the Task class. They each have a JEDI object as an
attribute, which is used to run either the variational/ensemble DA JEDI
applications or the FV3 increment converter JEDI application, depending
on which job they are created for (e.g. atmanlvar vs. atmanlfv3inc). The
intention is that a later PR will apply this framework to all analysis
task, and the PyGFS Analysis class will be removed.
This PR:
- Creates a standalone page for FAQ and Common issues
- Adds a block of caution on using variables in a users' `bashrc`

Fixes: NOAA-EMC#2850
This modifies the way the `config` dictionary is constructed and
referenced. Rather than updating a single configuration dictionary with
each `RUN`, a `RUN`-based dictionary of `config` dictionaries is created
and referenced by the appropriate `RUN` when calculating resources.

This also makes the methods that were hidden before NOAA-EMC#2727 hidden again.

Resolves NOAA-EMC#2783
This replaces `APRUN` with `APRUN_default` in all of the `.env` files.

Resolves NOAA-EMC#2870
This adds 3 missing links from the UPP into parm/ufs to .gitignore.

Resolves NOAA-EMC#2901
…ression options (NOAA-EMC#2914)

- enables writing native grid model output when doing JEDI-atm DA
- updates compression settings for C384 model output

Fixes NOAA-EMC#2891
Support global-worflow GEFS C48 on Azure

Make env. var. and yaml file changes, so global-workflow GEFS C48 case
can run properly on Google Cloud.

Resolves NOAA-EMC#2882
…C#2922)

Adds 1 deg ocean, ice information to config.resources so 1 deg ocean
jobs can run
In preparation for GDASApp CI tests, add GDASApp build capability to
global-workflow and remove memory specifications for Gaea-C5 xml setup
(in Ref to NOAA-EMC#2727)
  Resolves NOAA-EMC#2535 
  Resolves NOAA-EMC#2910 
  Resolves NOAA-EMC#2911
As forecast ensemble jobs are added to the global workflow, this PR
ensures the output is being cleaned up properly once it is no longer
needed.
  Resolves NOAA-EMC#833
This PR updates the parm/config/gfs/config.resources and env/WCOSS2.env
files for the BUFR sounding job "postsnd." It includes adjustments to
resource settings such as tasks per node and memory allocations for
various GFS resolutions, including C768, C1152, and others.

Here are the proposed changes:

C768: 7 nodes, 21 tasks per node
C1152: 16 nodes, 9 tasks per node
NCO has requested that each COM variable specify whether it is an input
or an output. This completes that process for the global-workflow
Unified Post Processor (UPP) task.
Refs: NOAA-EMC#2451
This PR updates the `develop` branch to use the newer operational
`obsproc/v1.2.0` and `prepobs/v1.1.0`. The obsproc/prepobs installs in
glopara space on supported platforms use tags cut from the `dev/gfsv17`
branches in the respective repos. The installation of `prepobs/v1.1.0`
on WCOSS2 is called "gfsv17_v1.1.0" to help avoid GFSv16 users using it
instead of the operational module.

Also, the `HOMEobsproc` path is updated to set an empty default for
`obsproc_run_ver`. This both removes the need to set a default (and
constantly update it, which is duplication) and avoid the unset variable
error when the fcst jobs use their own load module script that does not
know `obsproc_run_ver`:
```
export HOMEobsproc="${BASE_GIT:-}/obsproc/v${obsproc_run_ver:-}"
```

This PR also reverts the prepobs and fit2obs installs on MSU back to the
glopara space from the temporary `/work/noaa/global/kfriedma/glopara`
space installs.

Lastly, this PR also includes updates to complete issue NOAA-EMC#2844 (merge
`build.spack.ver` and `run.spack.ver`).

Resolves NOAA-EMC#2291
Resolves NOAA-EMC#2840
Resolves NOAA-EMC#2844
This PR removed the GTS BUFR2IODA part of the snow obs prep job, and
replaced it with a direct read from BUFR snow data at runtime by the
JEDI executable.

Depends on NOAA-EMC/GDASApp#1276
---------

Co-authored-by: Cory Martin <cory.r.martin@noaa.gov>
This modifies the resources for gdasfcst (everywhere) and enkfgdaseupd
(Hera only). For the fcst job, the number of write tasks is increased to
prevent out of memory errors from the inline post. For the eupd, the
number of tasks is decreased to prevent out of memory errors. The
runtime for the eupd job was just over 10 minutes.

Resolves NOAA-EMC#2506 
Resolves NOAA-EMC#2498
Resolves NOAA-EMC#2916 

---------

Co-authored-by: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
…A-EMC#2939)

NCO has requested that each COM variable specify whether it is an input
or an output. This completes that process for the global minimization
monitor job.

Refs NOAA-EMC#2451
# Description
The main purpose of this PR is to remove the need for an ice_prod
dependency check script `ush/check_ice_netcdf.sh`. The original purpose
of the ice_prod dependency check script is to check for special case
dependencies where `( cyc + FHMIN ) % FHOUT_ICE )) =! 0` (more details
on this issue can be found in issue NOAA-EMC#2674 ). A bugfix for these special
cases is expected to come from a PR in the ufs-weather-model.

Resolves NOAA-EMC#2721 
Refs NOAA-EMC#2721, NOAA-EMC#2674
Refines the issue and PR templates to cover some shortcomings and
pitfalls we have identified.

The fix file issue template is expanded to cover other data sets managed
under "glopara".

Resolves NOAA-EMC#2589
…#2895)

- This task is an extension of the arch job previously merged that
archives files in ROTDIR (NOAA-EMC#2816
AntonMFernando-NOAA@2816c3b)
- This feature adds an archive task to GEFS system to archive files in
HPSSARCH and LOCALARCH.
  Resolves NOAA-EMC#2698  
  Refs NOAA-EMC#2816 NOAA-EMC#2772 NOAA-EMC#832 
---------

Co-authored-by: David Huber <david.huber@noaa.gov>
This PR "moves and refactors" the variational DA `exscripts` that were
in the `GDASapp` to this repository. The ens. var. feature will be
replicated/moved in a subsequent PR.

Issues have been opened to address reviewer comments at a later time in separate PRs
---------

Co-authored-by: Kate.Friedman <Kate.Friedman@noaa.gov>
Co-authored-by: Rahul Mahajan <aerorahul@users.noreply.github.com>
…job (NOAA-EMC#2907)

This brings in a change to EMC_verif-global that offsets the start time
of parallel instances when running metp jobs. This prevents Python from
attempting to create the same directory in multiple instances.
Simultaneously, this also fixes an issue with the `gfscleanup` job
potentially running before the `metp` jobs.
Resolves NOAA-EMC#2906
Resolves NOAA-EMC#2899
Add a new issue template for GDA requests
…AA-EMC#2875)

This PR updates g-w components which handle JEDI radiance bias
correction files. Currently, JEDI radiance bias correction files are
processed at the _satellite_sensor_. This PR replaces these multiple
files with a single radiance bias correction tarball.

Resolves NOAA-EMC#2862
Migrates Global Workflow to use contrib installation of spack-stack on
Jet.
Following the failure of the storage /lfs4 on Jet, the installation of
spack spack moved to /contrib.
All softwares relying on spack-stack on Jet needs update.

Resolves NOAA-EMC#2841 
Refs NOAA-EMC/gfs-utils#78
Refs NOAA-EMC/GSI#786
Refs NOAA-EMC/GSI-Monitor#143
Refs NOAA-EMC/GSI-utils#51
Refs ufs-community/UFS_UTILS#977
# Description
Corrections were made to the GEFS variable names in the parm files so
that they can be successfully extracted from the atmos master files in
the atmos_prod task.

Resolves NOAA-EMC#2967
)

This PR adds a CI testing using C96mx100 resolution and the S2SWA app. 2
perturb members are included with the control member.

---------

Co-authored-by: Eric.Sinsky <eric.sinsky@noaa.gov>
Co-authored-by: Eric Sinsky - NOAA <48259628+EricSinsky-NOAA@users.noreply.github.com>
Co-authored-by: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
# Description
Updates the GEFS task names to include the `$RUN` so they are consistent
with the task names in the GFS system. This is one step towards
abstracting out common elements.

Also adds an underscore between the RUN and task name for *all* tasks to
make them more readable.

# Type of change
- [x] Maintenance (code refactor, clean-up, new CI test, etc.)

# Change characteristics
- Is this a breaking change (a change in existing functionality)? NO
- Does this change require a documentation update? NO
- Does this change require an update to any of the following submodules?
NO

# How has this been tested?
- CI tests on Hera, Hercules, and WCOSS2

# Checklist
- [x] Any dependent changes have been merged and published
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have documented my code, including function, input, and output
descriptions
- [x] My changes generate no new warnings
- [x] New and existing tests pass with my changes
- [x] This change is covered by an existing CI test or a new one has
been added
- [x] I have made corresponding changes to the system documentation if
necessary
…3003)

# Description

This PR corrects the memory settings for the BUFR sounding job postsnd.
The "memory" specified in the config.resources file represents the total
memory required for the entire job, not for a single processor. The
updated config.resources file removes the "memory" entries for C1152 and
C768 for the postsnd job.

# Type of change
- [x] Bug fix (fixes something broken)
 
# Change characteristics
- Is this a breaking change (a change in existing functionality)? NO
- Does this change require a documentation update? NO
- Does this change require an update to any of the following submodules?
NO

# How has this been tested?
- Cycled test on WCOSS2 
 
# Checklist
- [ ] Any dependent changes have been merged and published
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have documented my code, including function, input, and output
descriptions
- [ ] My changes generate no new warnings
- [ ] New and existing tests pass with my changes
- [ ] This change is covered by an existing CI test or a new one has
been added
- [ ] I have made corresponding changes to the system documentation if
necessary

---------

Co-authored-by: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
The task name for repair_replay has been updated to gefs_repair_replay. This change is consistent with the name changes of other tasks.
Groupled atmos/ocn/ice/ensstat post jobs have been returned for GEFS.
ush/forecast_predet.sh Fixed Show fixed Hide fixed
ush/forecast_predet.sh Fixed Show fixed Hide fixed
ush/forecast_predet.sh Fixed Show fixed Hide fixed
ush/forecast_predet.sh Fixed Show fixed Hide fixed
ush/forecast_predet.sh Fixed Show fixed Hide fixed
ush/forecast_predet.sh Fixed Show fixed Hide fixed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.