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

Organize COM and refactor path definitions #761

Closed
WalterKolczynski-NOAA opened this issue Apr 26, 2022 · 8 comments · Fixed by #1421
Closed

Organize COM and refactor path definitions #761

WalterKolczynski-NOAA opened this issue Apr 26, 2022 · 8 comments · Fixed by #1421
Assignees
Labels
maintenance Regular updates and maintenance work
Milestone

Comments

@WalterKolczynski-NOAA
Copy link
Contributor

WalterKolczynski-NOAA commented Apr 26, 2022

Description
The COM directory, particularly atmos, is currently very flat, with most files at the same level. This is already a bit unwieldy, a situation that would become much worse if ensembles were implemented without additional organization.

Original proposed organization: (Please see PR #1421 for up-to-date reorg trees)

$mem
|- atmos
  |- model_data
    |- analysis
    |- history
      |- (NetCDFs produced by model)
    |- input
    |- master
      |- (master files)
      |- (sfluxgrb files).
    |- restart
  |- products
    |- 0p25
    |- 1p00
    |- bufr [prod]
    |- gempak [prod]
    |- genesis_vital_$year [dev]
      |- all.vitals.gfs.gfso.$year
      |- genesis.vitals.gfso.$year
    |- goes_sim [prod]
      |- *.goessimpgrb2.*
    |- imagery [prod]
      |- *.gif
    |- minmon [prod]
    |- tracks [dev]
      |- storms.*
      |- trak.*
    |- wafs [prod]
      |- blended
      |- no_us
      |- unblended
    |- wmo [prod]
|- chem
  |- model_data
    |- history
|- ice
  |- model_data
    |- input
    |- history
    |- restart
  |- products
|- ocean
  |- model_data
    |- analysis
    |- history
    |- input
    |- restart
  |- products
    |- 0p25
    |- 0p50
|- wave
  |- model_data
    |- history
    |- prep
    |- restart
  |- products
    |- gridded
    |- station

Requirements
A sensible organization of output files into different directories, with each directory containing a reasonable number of files.

Ideally, this would be done using configurable filename templates to allow for easy changes in the future, assuming it can be done in bash in a sensible manner. Otherwise, it will have to wait until a possible future conversion to python.

Acceptance Criteria (Definition of Done)
End-to-end completion of workflow using the new COM structure.

Dependencies
Issues #679, #746, #769
With the understanding that any solution implemented now is only an interim solution until an agreement is reached with NCO on a final configuration.

Issue #1298

@WalterKolczynski-NOAA WalterKolczynski-NOAA added the maintenance Regular updates and maintenance work label Apr 26, 2022
@WalterKolczynski-NOAA WalterKolczynski-NOAA self-assigned this Apr 26, 2022
@WalterKolczynski-NOAA
Copy link
Contributor Author

After discussion with the global-workflow team, we've decided on a tentative structure overall and for atmos. Modifications to other component directories may be added as we go. I will keep the first post updated with the current proposed structure.

@aerorahul @KateFriedman-NOAA I've added a bunch more trying to accommodate all the additional files created in production. There may be a few stragglers I need help categorizing.

Can we move the files from genesis_vital_$year to the new tracks directory?

@JessicaMeixner-NOAA I'll also take a crack at organizing the files in ocean and updating the filenames to the standard format. What's your opinion on moving the ice files in under ocean?

@JessicaMeixner-NOAA
Copy link
Contributor

@WalterKolczynski-NOAA how about putting the ocean and ice grib files together under ocean (similarly to the way that land is still under atm) but we could still have the ice restart and model output in it's own directory. Let me know if you'd like help with organizing ocean/ice. I think it's mostly model output or run data, restarts, and then the grib.

@CoryMartin-NOAA
Copy link
Contributor

Two comments/suggestions here:

  1. What about DA? (tagging @CatherineThomas-NOAA ) Propose 'analysis' inline with INPUT/ RESTART/ for atmanl.nc, atminc.nc, and abias, etc. files
  2. nc should be changed to history. RESTART also contains netCDF files produced by the model.

@WalterKolczynski-NOAA
Copy link
Contributor Author

Two comments/suggestions here:

  1. What about DA? (tagging @CatherineThomas-NOAA ) Propose 'analysis' inline with INPUT/ RESTART/ for atmanl.nc, atminc.nc, and abias, etc. files

I was probably going to put them in the nc directory, but this is probably a better option.

  1. nc should be changed to history. RESTART also contains netCDF files produced by the model.

Good suggestion

WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Jun 13, 2022
Updates the version of components except UFS and verify to the current tip
of their repsective develop branches.

Verify is not yet updated because we are currently on a branch that hasn't
been merged to develop yet in order to use the module/py environment fix.

GSI will still need to be updated further before use after the resolution
of NOAA-EMC/GSI/issues/348 and NOAA-EMC/GSI/issues/408

Refs: NOAA-EMC#761
WalterKolczynski-NOAA added a commit that referenced this issue Jun 27, 2022
Updates the version of components except UFS and verify to the current tip of their respective develop branches.
    
Verify is not yet updated because we are currently on a branch that hasn't been merged to develop yet in order to use the module/py environment fix.
    
GSI will still need to be updated further before use after the resolution of NOAA-EMC/GSI/issues/348

Also updated the GSI and UPP build scripts to take in debug (`-d`), operations (`-o`), and verbose (`-v`) options and apply them as appropriate to the component build scripts. The ops flag for GSI still needs work, as I encountered issues using the [build_4nco_global.sh](https://github.com/NOAA-EMC/GSI/blob/develop/ush/build_4nco_global.sh) or [prune_4nco_global.sh](https://github.com/NOAA-EMC/GSI/blob/develop/ush/prune_4nco_global.sh) scripts.

Also fixes a typo in the `parm/post` file list.

Updates are in preparation for the [COM reorg](#761)
jkhender added a commit to jkhender/global-workflow that referenced this issue Nov 18, 2022
commit 71a16e84a4ce59869879dd6c20007d0271521e7b
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Fri Nov 18 01:46:14 2022 +0000

    Squashed commit of the following:

    commit a658e75e579ebc4f454377e5a9cf4c1fc54e4e3d
    Author: Jessica Meixner <jessica.meixner@noaa.gov>
    Date:   Wed Aug 3 18:34:34 2022 +0000

        Updates for P8  (#946)

        These are the final updates for Prototype 8.  These changes include:
        * Updating to the latest ufs-weather-model hash (in progress, waiting for PR) which will update the calculation of 2m T
        * A small update to the organic carbon coefficients for p8, raises them from 0.3 -> 0.4 for oc1 and oc2
        * Uses 10km input files for aerosols
        * Sets do_gsl_drag_tofd=false by default, which helps with stability of the model

        Closes #937

    commit b2155ad3dc999a2f41aeace58f3b199a8ddde65c
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Wed Aug 3 10:04:06 2022 -0400

        Fix GLDAS j-job link (#954)

        The cd was misplaced when checking for the existence of gldas.fd to
        create the link for the j-job, so the directory was never found and
        the job never linked.

    commit 395720cef000ef221c49c93d4f68417b7fda64b6
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Mon Aug 1 17:38:50 2022 -0400

        Add ocean post to archive dependencies (#949)

        The archive job was not waiting for ocean post to complete because
        there was no dependency.

        Fixes #948

    commit 145b67f70f44abbb713e19073016bacfbfcb8184
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Fri Jul 29 13:42:38 2022 -0400

        Initial commit of directory comparison tools (#934)

        Adds a new `test/` directory to the top level. Inside are miscellaneous scripts I have used to test bitwise identicality of experiments.

        Main scripts:
        - `diff_ROTDIR.sh`: Compares two output directories
        - `diff_UFS_rundir.sh`: Compares two UFS run directories

        Other scripts and file are helpers to these two main scripts.

        May eventually form starting point of a global workflow regression test (#267)

        Refs #267

    commit e480093446797e556bc1371f9f80610a7c9a6d4b
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Fri Jul 29 13:42:02 2022 -0400

        Add preamble, convert to bash, and remove env (#929)

        This is the first in a wave of commits to improve and standardize the scripts within global workflow. In this commit, all scripts run during execution are converted to bash and a preamble is added to every script that is not sourced by another script.

        Every script executed during a forecast cycle is converted to bash. This was mostly straightforward, though there were a couple Korne-shell conventions (primarily using `typeset` to format strings) that had to be replaced with bash-compatable alternatives like `printf`. This in turn required a few modification to prevent zero-padded numbers from being treated as octals (other may have been pre-existing bugs).

        The preamble contains a number of feature to standardize code and improve script flow and debugging.

        - First, it uses two variables, `$STRICT` and `$TRACE` to control the behavior of `set`. When `$STRICT` is `"YES"`, error on undefined variables (`set -u`) and exit on non-zero return (`set -e`) are turned on. When `$TRACE` is `"YES"`, command trace (`set -x`) is turned on and a useful string is set to `$PS4` that gives the name and line number of the script. Both `$STRICT` and `$TRACE` default to `"YES"`. They also set up commands, `$ERR_EXIT_ON` and `$TRACE_ON`, that will restore the setting of each in the event a script needs to temporarily turn them off.

        - Second, the preamble sets up primative timing of scripts using Posix `date`.

        - Third, it echos the script is beginning and at what time.

        - Finally, it also establishes a postamble function and sets it to run as a trap of EXIT. The postamble will use the end time to calculate the run time of the script, then print that the script has ended at what time, how long has elapsed, and the exit code. By setting this up as a trap instead of just calling it at the end of the script, it ensures the postamble is called even if the script exits early because there is an error.

        - In response to this standardization, parts of scripts that performed these preamble functions (announcing start/end, `set -x`, etc) have been deleted. For some scripts where temporarily turning off `-x` or `-e` is needed, they now use `$ERR_EXIT_ON` and `$TRACE_ON` to return to the correct state afterwards, instead of blindly turning the setting back on.

        - Additionally, some modifications were needed to comply with `set -eu`. Mostly taking care of undefined variables, but also a couple instances where a non-zero return code had to be dealt with.

        If users wish to use their own preamble script instead, the default script can be overridden by setting `$PREAMBLE_SCRIPT` before the run begins.

        Instance where scripts would print the full list of environment variables have been removed. These can be spot added back in to debug as necessary. Alternatively, a future PR will add them back in in a standardized way.

        `rstprod.sh` is added to the link list from gsi_monitor.fd, as it is needed for the radmon scripts.

        The placeholders for AWIPS and GEMPAK in the Hera and Orion environment scripts were replaced with the correct definitions. There were also other modifications to AWIPS and GEMPAK scripts to get it working for development (AWIPS still isn't and will be fixed in the future).

        GSI scripts that were brought in recently had all of their backticks replaced with `$(  )` as was done with all other script previously.

        Refs: #397

    commit 949513642d33cb3976d0f8e7dd273aedec505a17
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Thu Jul 28 18:36:58 2022 -0400

        minimal intervention to create a data-atmosphere xml (#936)

    commit e4b01b99f50c674635477ff3e2e962b9d5ed54aa
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Thu Jul 28 18:28:28 2022 -0400

        Remove Cray, Dell, WCOSS1 from module-setup.sh.inc (#943)

        This file was missed in the initial cleanup.

    commit 1ed89c7d202974bd4ccd2b048fedc56382edc9ec
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Thu Jul 28 15:35:37 2022 -0400

        bring GDASApp jjobs and exscripts to global-workflow (#941)

    commit f04f3ba4dfd5b358aea425f65f82d40917597776
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Tue Jul 26 22:07:42 2022 -0400

        change gdasechgres dependency to just gdasefcs01 instead of gdasefmn (#933)

        Replaces the dependency of `gdasechgres` on `gdasefmn` with `gdasefcs01`.

        Presently, `gdasechgres` has 2 dependencies:
        - `gdasfcst` - deterministic forecast
        - `gdasefmn` - ensemble forecasts (all of them).

        The work done in `gdasechgres` actually depends only on the `mem001/atmos/gdas.tHHz.atmf006.nc`.
        This file is used as a template as well as obtaining `hgtsfc`.
        As such, there is no reason to depend on the entire ensemble of forecasts to be complete before `gdasechgres` can start.

    commit 490de7bae1322cbaa8ee3d52406034c8edf62dd3
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Tue Jul 26 22:05:59 2022 -0400

        Remove obsolete platforms (WCOSS1, Dell, Cray, Theia) references. (#922)

        Removes code related to decommissioned HPC platforms WCOSS 1 (Dell & Cray) and Theia. Some references remain in scripts outside the global-workflow repo that are cloned as part of `checkout.sh`. Scripts from the `driver` directory that were hard-wired for one of the WCOSS1 platforms are also removed.

        Additionally, this commit also switches to using serial netCDF for resolutions C48. C96, C192.  Running with parallel netCDF (on Hera) gave errors when testing at C96 for the deterministic forecast.  If someone gives a very compelling reason to use parallel netCDF at these resolutions as default, I would be very interested in what they have to say.

        Closes #680

    commit 4eb296f7e82459b1d8188636ca3db60b5fa10091
    Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com>
    Date:   Tue Jul 26 14:50:30 2022 -0400

        Optimize DA clone, build, and link (#931)

        The PR contains changes to optimize the DA clone, build, and link.   Changes are made to `checkout.sh`, `build_all.sh`, and `link_workflow.sh` in the g-w `sorc/` directory.  These changes are in g-w branch `feature/clone`

        Two arguments are added to `checkout.sh` to allow the user to specify which DA package to build the global workflow with.  These options are
        - `-g`: clone from the [GSI](https://github.com/NOAA-EMC/GSI) repo and build the g-w for GSI-based DA
        - `-u`:  clone from the [GDASApp](https://github.com/NOAA-EMC/GDASApp) repo and build the g-w for UFS-based DA

        If no option is specified, `checkout.sh` does not clone any DA and DA related repos.  This is the default behavior of `checkout.sh`.   (_DA related_ repos include [GLDAS](https://github.com/NOAA-EMC/GLDAS), [GSI-utils](https://github.com/NOAA-EMC/GSI-utils), and [GSI-Monitor](https://github.com/NOAA-EMC/GSI-Monitor).)

        `build_all.sh` is modified to detect which repos and have been cloned and to build accordingly.   `link_workflow.sh` is modified to detect which directories are present and link/copy accordingly.

        Closes #930

    commit 2cad536551180d25bfcfc2b5d35fe1089de7f3c3
    Author: Kate Friedman <kate.friedman@noaa.gov>
    Date:   Tue Jul 26 13:25:37 2022 -0400

        WCOSS2 gempak ush scripts updates and cleanup of old release notes (#920)

        * WCOSS2 updates to gempak ush scripts

        - Add /gempak subfolder where needed in gempak ush scripts.
        - Remove unneeded commented out path settings from older iterations.

        * Removing older release notes

        - Cleaning out older GFS version release notes; includes current GFSv16.2.1 release notes, will commit GFSv16.3
        release notes with implementation this fall.
        - Will then keep only the latest release notes moving forward.

        Refs: #419

    commit ffcd5bbde7947902a73eebff7dfe04c2ab045b0a
    Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com>
    Date:   Fri Jul 22 16:00:51 2022 -0400

        Add GDASapp (first wave of JEDI changes) (#871)

        Merge changes associated with g-w issue #521 from g-w branch feature/ufsda_gdasapp into develop. feature/ufsda_gdasapp contains g-w extensions for JEDI based atmospheric DA.

        Specifically, this PR adds the option to add JEDI based variational and/or ensemble DA jobs to replace GSI based DA jobs.   The toggling on/off of JEDI_VAR and JEDI_ENS jobs is controlled via two new variables added to `config.base.emc.dyn` and `config.base.nco.static`
        ```
        # DA engine
        export DO_JEDIVAR="NO"
        export DO_JEDIENS="NO"
        ```
        When both variables are `NO`, the global workflow uses GSI based DA jobs.   Thus, the PR does not alter the default behavior of the develop global workflow.

        When `DO_JEDIVAR=YES`, GSI jobs `anal` and `analdiag` are replaced by JEDI_VAR jobs `atmanalprep`, `atmanalrun`, and `atmanalpost`.  When `DO_JEDIENS=YES`, GSI jobs `eobs`, `ediag`, and `eupd` are replaced by JEDI_ENS jobs `atmensanalprep`, `atmensanalrun`, and `atmensanalpost`.

        `checkout.sh`, `build_all.sh`, and `link_workflow.sh` are updated to clone, build, and install the GDASapp in the global workflow.
          Local directory `sorc/gdas.cd` contains the GDASApp superstructure plus the relevant components of JEDI needed to run GDASApp.

        Closes #521

    commit 98f4d16e9bba86d2c433aa0521d960b566062a1f
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Thu Jul 21 16:02:31 2022 -0400

        Add postsnd job when bufrsnd it on (#926)

        In the workflow refactoring, the addition of postsnd to the task list when
        bufrsnd is true was inadvertently left out. It is now added back in.

    commit e2869a1247ad2ba72c1bfe82f7682323d5128f4c
    Author: Kate Friedman <kate.friedman@noaa.gov>
    Date:   Tue Jul 19 16:16:20 2022 -0400

        Updated GFS transfer*list files from operations (develop) (#918)

        Updated transfer list files from WCOSS2 ops.

        - In move to WCOSS2 the transfer*list files were moved into a new
        transfer folder under the upper-level parm folder.
        - The transfer*list files were updated to clean out unneeded paths
        and the beginning of the paths were updated from:
          `com/gfs/_ENVIR_`
        to:
          `_COMROOT_/gfs/_SHORTVER_`

        Refs: #419

    commit 1651014250a748c8c2e2878663c3e8376639044a
    Author: ChunxiZhang-NOAA <49283036+ChunxiZhang-NOAA@users.noreply.github.com>
    Date:   Tue Jul 19 11:18:33 2022 -0400

        Fix history type of cldfra in the diag_tables  (#915)

        The history type of the new cloud fraction field (cldfra) is changed so it is written to the correct output file.

        Fixes #914

    commit 5c9639dba419ef51608aa8962b54ae69c8ad8c60
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Tue Jul 19 11:11:38 2022 -0400

        Combine ecflow and rocoto workflow generation (#916)

        Consolidates the workflow generation systems for ecflow and rocoto.  Further unification will be made to make a choice to use one or the other.  At this time, they are separate and need separate input criteria.

        Moves `ush/rocoto` to `workflow/` at the top level.  Further refining will be performed as needed based on use and need.

    commit b690ed6c7c1a250171484aba267d0724d8c12d11
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Mon Jul 18 19:33:36 2022 -0400

        Remove new GSI scripts from gitignore (#917)

        When the scripts were moved over from GSI into global workflow, they
        were never removed from the .gitignore. This has now been addressed.

        Follow-up to PR #904

    commit aa2542eb4c95827bc1fc7a4a76d4d0f5bc701f74
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Mon Jul 18 13:49:09 2022 -0400

        Add ecFlow generator to `develop` (#912)

        * merge workflow_generator from dev_v16 at 7b7947e2 and move workflow_generator to ush/ecflow

    commit 5a58fa8a2f75590a671b45bf75a431f2acf2340b
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Mon Jul 18 13:02:59 2022 -0400

        Update gsi-utils hash to include bugfix in handling 3D sfc files (#913)

        Update GSI-Utils hash to include bugfix that processed 3D fields in surface netCDF files.

        Fixes #909

    commit e8361cc343743bb5087e75f89406c1265404e359
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Mon Jul 18 12:44:25 2022 -0400

        Combine setup_workflows scripts (#859)

        `setup_workflow.py` and `setup_workflow_fcstonly.py` are used for setting up the XML for cycled and forecast only configurations.
        They share large parts of the tasks and dependencies.

        This PR unifies the ones listed above and makes room for extending for incoming applications.
        The above two scripts are being replaced by `setup_xml.py`.
        The usage is:

        ```
        $> setup_xml.py /path/to/experiment_directory
        ```

        This PR also removes the handicap of defining hundreds of entities for task resources.  Instead the task resources are placed with the task itself.

        This PR also does the following:
        - moves the declaration of `DOBNDPNT_WAVE="NO"` from `config.wave` to `config.base`
        - reduces timestep at `C48` from `1200s` to `450s` in `config.fv3`.  Several ensemble members failed.  Inspecting `config.fv3.nco.static`, the value there is `450s`
        - `eobs` job times out with a wallclock time of `15m`.  It is increased to `45m` to play it safe.

    commit 13385d9c9018def1fbce6772e53665ccb90b2a2a
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Fri Jul 15 14:02:12 2022 -0400

        Load `ncdiag` module instead of building it in the GSI, use UFSWM build system, pull sfcanl out from anal. (#905)

        `ncdiag` is no longer being built within the GSI.  It is available as a module on all systems; Hera, Orion and WCOSS2.

        This PR:
        - loads ncdiag module
        - finds the `ncdiag_cat_serial.x` executable from that module (once loaded)
        - updates hashes for GSI, GSI-utils and GSI-monitor.  No code changes were made in these repos.  Only location of `ncdiag` changed.

        In addition, this PR:
        - Uses the ufs-weather-model compilation script.  The global workflow is duplicating and missing configuration options set in the ufs-weather-model.  This also enables a "debug" mode of compiling the model (#300).
        - Fixes #906
        - Fixes an improper link to `fix_gsi`.  It was being linked to a non-existing directory.
        - separates out the creation of Gaussian surface analysis from the GSI atmospheric analysis.  This capability is pulled from PR #871.  It was necessary to pull these changes from PR #871 since the `j-jobs`, `ex-scripts` from the GSI have been brought to global-workflow and the companion PR for PR #871 in the [GSI PR 415](https://github.com/NOAA-EMC/GSI/pull/415) were already merged prior to the updates needed for `ncio` and `ncdiag`.

        I realize all these changes could have been streamlined into smaller atomic PR's.

        **Note:**  This PR also requires a documentation update as a new job `sfcanl` has been added to the workflow.

    commit b61c2375a05daff20805d0216ade8201192c0199
    Author: Fanglin Yang <fanglin.yang@noaa.gov>
    Date:   Thu Jul 14 20:07:54 2022 -0400

        Update ice climo, fix option for non-fractional grid, and add cloud fraction for Thompson (#902)

        Updates the ice climatology from CFSR to IMS_NIC blended.

        Fixes issue in the diag table where the cloud fraction entry for Thompson was not included.

        Adds new coupled mode setting for when fractional grid is not used.

        Fixes #886

        Co-authored-by: Chunxi.Zhang-NOAA <Chunxi.Zhang@noaa.gov>

    commit 680270975e2eb2f09c58a6112a87c0ecaec9e2a5
    Author: Barry Baker <bbakernoaa@users.noreply.github.com>
    Date:   Thu Jul 14 17:03:34 2022 -0400

        Update aerosol variable names and dust alpha (#888)

        The names of some aerosol fields have changed and needed to be updated.

        The dust alpha parameter is updated to improve model performance.

        A typo in the scavenging parameter definition where a string was terminated with a 'smart-quote' instead of a standard one is corrected.

    commit 06b25267b7839808508eed9e91dcd2b76a33c3ca
    Author: Jessica Meixner <jessica.meixner@noaa.gov>
    Date:   Thu Jul 14 18:52:56 2022 +0000

        Allow for wave mesh to be different than the ocean/ice mesh (#897)

        This PR updates the configuration to allow for the wave mesh to be different from the ocean/ice mesh. This PR also changes the default wave grid back to gwes_30m and updates the load-balancing for this change. The ufs-weather-model is updated to use the code that allows for the wave mesh to be different from the ocean/ice mesh.

    commit 4f3e14b59ff6c83fbaaf6888c3a3068eae3d77d7
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Wed Jul 13 15:53:18 2022 -0400

        Migrate `jobs/`, `scripts/` and `ush/` from GSI to global-workflow (#904)

        This PR moves the `jobs/`, `scripts/` and `ush/` from NOAA-EMC/GSI into the global-workflow.
        History is preserved.

        Corresponding GSI PR https://github.com/NOAA-EMC/GSI/pull/436

    commit 46f7589807bcb070c8f86601b74f1a84701b669a
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Wed Jul 13 15:51:56 2022 -0400

        build GSI utilities from GSI-utils repo (#889)

        **Description**
        The GSI Utilities have been moved to https://github.com/NOAA-EMC/GSI-utils

        This PR:
        - checks out GSI utilities from the above repo
        - builds the utilities from the above repo
        - does not build the utilities from the GSI repo.  In a subsequent PR when the GSI removes the utilities, that option will become redundant.
        - updates gsi-monitor hash and uses `build.sh` from that repository
        - creates links appropriately.

    commit aac2f3a6980cb61a0dbe272b667f602e3051cb16
    Author: Jessica Meixner <jessica.meixner@noaa.gov>
    Date:   Mon Jul 11 06:57:25 2022 +0000

        Replace print_esmf with esmf_logkind (#898)

        Removes print_esmf as it no longer a variable and add the esmf_logkind variable to config.fcst instead which is the equivalent new variable. The change has already been made in nems_configure.sh, so the setting only needed to be changed in the config file.

    commit 4448dd48b2aeebdf4257a2ab08bd147fcb511f92
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Fri Jul 8 13:03:29 2022 -0400

        Restore cycling capability (#895)

        Restores the ability to run in cycled mode. This requires GSI to be built with ncio/1.1.2, so the build script now sets 1.1.2 as the ncio version until either the GSI default version is updated or module version files are added to global-workflow (Issue #671).

        Two new variables, COMIN_OBS and COMIN_GES_OBS, had to be added to the config file in the wake of GSI updates for WCOSS2 to ensure the correct paths are used instead of trying to use the non-functional compath.py.

        Note that, for now, in order to use cycling, the microphysics setting (imp_physics) must be changed in config.base from Thompson (8) back to GFDL (11), along with a corresponding CCPP suite (like FV3_GFS_v16).

        Fixes #711

    commit a39bd6364971894eee4349b028ebf54ab496dee0
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Tue Jul 5 16:10:46 2022 -0400

        Merge `ecf` changes from `WCOSS2` into `develop` (#885)

        * moved ecflow/ecf to ecf and with updates from feature/ops-wcoss2

    commit 3076e13ca5976206f1cdab58cca1b6f80fbb7716
    Author: Fanglin Yang <fanglin.yang@noaa.gov>
    Date:   Fri Jul 1 10:33:39 2022 -0400

        Fix settings of dt_inner and lheatstrg (#883)

        For Thompson microphysics, currently dt_inner is set to half of physics timestep. It should be set to the same as the physics timestep if semi-Lag sedimentation is applied to rain and graupel.

        Canopy heat storage is incorrectly turned off for NOAH LSM, and on for NOAH-MP LSM. This setting needs to be reversed.

        Fixes #884

    commit 3b9636c4eadc8c31548e170baeefd358483ec71c
    Author: Ali.Abdolali <37336972+aliabdolali@users.noreply.github.com>
    Date:   Wed Jun 29 18:22:06 2022 +0000

        Update buoy locations (#881)

        Updates buoy locations for those that were incorrect or have been moved.

    commit f0f1025d07a1af216e2125111ae7bd9ac43213c2
    Author: Barry Baker <bbakernoaa@users.noreply.github.com>
    Date:   Tue Jun 28 12:05:31 2022 -0400

        Update dust input files to not include _FillValue = NaN (#873)

        There is an issue with the FENGSHA dust inputs and having the netcdf attribute _FillValue == NaN. This is in relation to ufs-community/ufs-weather-model#1259, ufs-community/ufs-weather-model#1192 and #872

        Some dust emissions files have also been updated. File changes only include the netcdf attribute _FillValue changing from NaN -> something appropriate for each variable.

        Fixes #873

    commit 4c8b388ae4fd1fb618021b5c11d5e9c82c2ee2f7
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Mon Jun 27 18:14:39 2022 -0400

        Replace --aerosols with new apps (#854)

        Removes the --aerosols option for setup_expt and replaces it with new apps for aerosols to match the idiom for other components. Currently, ATMA and S2SWA are supported.

    commit 65cdcce2f841f5e3e4926d4dab73fd5a8a97bd84
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Mon Jun 27 17:47:46 2022 -0400

        Update component versions (#851)

        Updates the version of components except UFS and verify to the current tip of their respective develop branches.

        Verify is not yet updated because we are currently on a branch that hasn't been merged to develop yet in order to use the module/py environment fix.

        GSI will still need to be updated further before use after the resolution of NOAA-EMC/GSI/issues/348

        Also updated the GSI and UPP build scripts to take in debug (`-d`), operations (`-o`), and verbose (`-v`) options and apply them as appropriate to the component build scripts. The ops flag for GSI still needs work, as I encountered issues using the [build_4nco_global.sh](https://github.com/NOAA-EMC/GSI/blob/develop/ush/build_4nco_global.sh) or [prune_4nco_global.sh](https://github.com/NOAA-EMC/GSI/blob/develop/ush/prune_4nco_global.sh) scripts.

        Also fixes a typo in the `parm/post` file list.

        Updates are in preparation for the [COM reorg](https://github.com/NOAA-EMC/global-workflow/issues/761)

    commit 2dc2af0e84f52864a719d71d3dbf14f6368f4c0f
    Author: Jessica Meixner <jessica.meixner@noaa.gov>
    Date:   Fri Jun 24 18:49:39 2022 +0000

        Update caculation of restart based on if a wave IC exists (#875)

        Inspect and assert wave initial conditions exist during a RERUN.  Take appropriate action.

    commit b41a36a10b2f949b0c005e48b978261b3d66eb12
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Thu Jun 16 22:38:28 2022 -0400

        update from dev_v16 utils.f90.  See issue #713 (#868)

    commit a2b9f483c4aaad37e5d26362186b28a782c0541f
    Author: Barry Baker <bbakernoaa@users.noreply.github.com>
    Date:   Tue Jun 14 23:51:47 2022 -0400

        Update GOCART settings for p8/p81 (#818)

        Wet scavenging coefficients for GOCART are updated.

        Fixes a bug where when running atm-aerosol, aerosol settings were not properly read.

        Changes the location of aerosol emissions data on Hera now that Raffaele has moved to a new position.

        Dust inputs for the fengsha dust emission scheme are updated. These updates include a newer soil database (SOILGRIDSv2) and updates for the drag partition and threshold velocity. It also appropriately scales the emissions by modifying the alpha value found in the dust component configuration file.

        Fixes #814
        Fixes #815
        Fixes #816
        Fixes #816

    commit 027eab90e2cb94a1055f9bc54245e7d5979aca3b
    Author: Kate Friedman <kate.friedman@noaa.gov>
    Date:   Fri Jun 10 09:10:24 2022 -0400

        Retire VSDB (#848)

        Remove VSDB variables, script blocks, and scripts from global-workflow develop.

        Refs: #844

    commit d6705e2564a698eeddf2424bd580482546658788
    Author: Kate Friedman <kate.friedman@noaa.gov>
    Date:   Fri Jun 10 09:05:36 2022 -0400

        Add "atmos" COMPONENT subfolder to DMPDIR paths (develop) (#847)

        - add atmos to WAVICEFILE DMPDIR path in JGLOBAL_WAVE_PREP
        - add COMPONENT to all DMPDIR paths (COMPONENT=atmos already set)
        - add "atmos" to all DMPDIR paths in config.anal
        - add COMPONENT to COMIN_OBS default that uses DMPDIR in drive_makeprepbufr.sh
        - add COMPONENT to SOURCE_DIR default that uses DMPDIR in getdump.sh
        - add "atmos" to prep job dependency on updated.status.tm00.bufr_d in setup_workflow.py

        Refs: #802

    commit 59604d60a787fc758380a1ef513601d6ffa97566
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Fri Jun 10 03:29:16 2022 -0400

        Move remaining global post scripts over from UPP (#771)

        Several scripts currently located under NOAA-EMC/UPP are only used for global, so they have been moved within global-workflow so they can be managed by the global-workflow team. Scripts are just copied from the current tip of UPP develop, other than some changes to standardize style and indentation.

        Also coming over are four parm files that are used to produce GFS products. As a result, we are no longer linking the entire upp parm directory; instead we are creating individual links for the files we use that still reside in upp.

        Fixes #630
        Fixes #769

    commit d78c942a271e669b1fd5adf4f99af108c9f884fe
    Author: Jessica Meixner <jessica.meixner@noaa.gov>
    Date:   Tue Jun 7 14:56:26 2022 +0000

        update readme for new linking procedure (#843)

    commit 3194f52d1625379e067fd16e84016d45ba5560fc
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Tue Jun 7 01:35:15 2022 -0400

        Consolidate post scripts to eliminate coupled mode of link script (#766)

        The two scripts that had modified versions for the coupled model have been joined with changes to the original scripts, eliminating the need for a special coupled mode for the link script. As part of this, those two scripts are no longer copied from UPP and are now part of the global-workflow repository.

        Fixes: #679
        Fixes: #746
        Refs: #270

    commit d1d2606406aa2deb8d95f348b471770f4388777c
    Author: Jessica Meixner <jessica.meixner@noaa.gov>
    Date:   Mon Jun 6 04:49:38 2022 +0000

        Updates for wave mesh cap (#831)

        Updates to work with the new WW3 mesh cap, including pointing to the new ufs-weather-model tag for p8c slong with associated namelist changes. There is a new setting in config.ww3, `waveMULTIGRID`, that controls whether WW3 uses generic shell (shel) or multigrid.

        The build script for WW3 pre/post has been updated to use the app to determine whether the regular switch file (for ATMW) or the meshcap version (other) is used. In light of this, `build_all.sh` now passes the app to WW3 pre/post as it does with the UFS build.

        A large section of the wave prep script that was a hold-over from running WW3 offline from the atmosphere dealing with pre-processing winds was removed. Another large section was moved out of prep and into a new `parsing_namelists_WW3.sh` script that is called during the forecast job (similar to those for some other components).

        The ability to set `esmf_logkind` for the UFS model is restored (defaults to ESMF_LOGKIND_MULTI).

        The jlog files were removed for the non-pdgen wave script and ush files.

        Resources for the coupled model are rebalanced.

        Fixes #736

    commit 7173fa58f0da831ad181a3afdaf3c861afa49e49
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Wed Jun 1 17:05:21 2022 -0400

        Extend `rocoto.py` for handling offsets in data dependencies. (#835)

        Extend rocoto.py data_dep to handle offset to cyclestr in any number of instances.  Remove hack in aerosol_init dependency generation.

    commit a9998af41cb8c2825f34745091a41ea400815d8d
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Wed Jun 1 14:11:49 2022 -0400

        Refactor checkout script (#809)

        The checkout script is refactored. First, the repetitive checkout code is abstracted into a function that is called for each component. Second, if the clone already exists, checkout will still checkout the requested commit. Third, a new option (-c) is added that will delete any existing clones a create a fresh clone. These last two options allow updating of versions without needing to manually delete directories (and remembering which are created by checkout)

        Additionally, a usage statement and code documentation are added.

        There is no change to the existing command-line options, only new options. No change is necessary by users (although the checkout order and print messages have changed). The new syntax is as follows:
        ```
        checkout.sh [-c][-h][-m ufs_hash][-o]
          -c:
              Create a fresh clone (delete existing directories)
          -h:
              Print this help message and exit
          -m ufs_hash:
              Check out this UFS hash instead of the default
          -o:
              Check out operational-only code (GTG and WAFS). Only authorized users can check out GTG.
        ```

        Fixes #808

    commit 85bca2479420927d29a1a9db41b542568d527c13
    Author: Jessica Meixner <jessica.meixner@noaa.gov>
    Date:   Wed Jun 1 15:05:07 2022 +0000

        Update IC location for hera because climate moved from (#829)

        The location of the coupled ICs on Hera is changing, so need to update the path in the config.

    commit dbd9fa93ced07f39accf7ff4eec2859f0ed5d35f
    Author: ChunxiZhang-NOAA <49283036+ChunxiZhang-NOAA@users.noreply.github.com>
    Date:   Mon May 30 21:50:56 2022 -0400

        Updated SDFs and namelist settings for P8c (#795)

        Updates the model version in preparation for prototype 8c, along with commensurate setting updates. Some CCPP suites are removed from the UFS build as they are no longer available.

        Also updates the coupled initial conditions, and there is a simultaneous update to fixed orography files.

        Refs: #736

    commit 05accc1c72b1311ae9689bef5e7a1291dc12a96a
    Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com>
    Date:   Mon May 23 17:36:51 2022 -0400

        Correct incorrect increment prefix variable (#805)

        One instance of the increment prefix variable in `ush/forecast_postdet.sh` used `PREFIX_INC` instead of the `PREFIX_ATMINC` used elsewhere.

        Fixes #804

    commit ac7cb1000d5c1d31babd36f4c3e17f643f30fd4d
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Sun May 22 16:50:30 2022 -0400

        Remove separate UPP clone (#803)

        Now that UPP is cloned within UFS, there is no need to create an independent clone in global-workflow. Scripts are updated to use the UPP within UFS. In addition to removing redundancy, this will avoid version mismatch issues when UFS and global-workflow checkout different versions. The upp directory is now linked from within UFS to sorc as upp.fd (instead of the gfs_post.fd the clone was placed in). Additionally, the build script is renamed to build_upp.sh.

        Fixes #770
        Moots #797

    commit 58728fb2c689c11335f4bf8ac371e18070c6fbd2
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Fri May 20 10:14:58 2022 -0400

        Fix build script options (#801)

        There was an issue where if build_all.sh was called with only options that are not used by partial_build.sh, partial_build.sh would see those options because $@ was not overwritten. The script have been updated to consume those options so they are no longer present if $@ isn't overwritten in the new script call.

        Also fixed the getopts statement in partial_build.sh so we handle errors instead of bash (bash would report the wrong script if the script is sourced)

        Fixes #800

    commit fa12db279cf829b861d08c06e3e3534a335e9fd7
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Wed May 18 01:04:32 2022 -0400

        Refactor some build scripts (#794)

        Refactors the build_ufs script to allow the build of any UFS app to support future expansion of global-workflow capability. The default should be sufficient for most users, as S2SWA can be used for ATM, ATMA, S2S, and S2SW as well. The new format of the command is now:
        ```
        build_ufs.sh [-a UFS_app][-v]
          -a UFS_app:
            Specify the UFS application to build. The default if none is provided is S2SWA
          -v:
            Turn on verbose mode (BUILD_VERBOSE)
        ```

        build_all.sh is similarly refactored to include the same options. Also, a new `-c build_config` option is added to specify an alternative list of programs to build.
        ```
        build_all.sh [-a UFS_app][-c build_config][-h][-v]
          -a UFS_app:
            Build a specific UFS app instead of the default
          -c build_config:
            Selectively build based on the provided config instead of the default config
          -h:
            Print usage message and exit
          -v:
            Run all scripts in verbose mode
        ```

        partial_build.sh is also updated to take the new `-c` option to specify a build config.
        ```
        partial_build.sh [-c config_file][-h][-v]
          -c config_file:
            Selectively build based on the provided config. The default if none is specified is gfs_build.cfg
          -h:
            Print usage message and exit
          -v:
            Run in verbose mode
        ```

        In addition to the above, build_all and partial_build had their indentation redone and their usage/help statement updated/added. Also, the build configuration file was renamed to from fv3gfs_build.cfg to gfs_build.cfg.

        Fixes #745
        Fixes #751

    commit 2abee02765a3bae48f2b4e6a900400d6731eda06
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Wed May 18 01:02:57 2022 -0400

        Add continuous aerosols support (#693)

        Adds support for continuous aerosols when running with GOCART (using the forecast aerosol tracers from the previous cycle as initial tracer fields). This adds a new task to the workflow mesh in forecast-only mode. The new task does not run in the first cycle, though it will appear in rocotostat/rocotoviewer. In subsequent cycles, the task will launch as soon as the needed restart files from the previous cycle are available and gfs_init has completed. There is currently no mechanism to have aerosol_init run for the first cycle (for instance, continuing from a previous experiment); users would have to run the scripts off-line to add aerosols to the initial conditions.

        To support the introduction of the necessary python scripts, a new python environment is added to provide necessary libraries. This virtual environment is temporarily being housed in personal space, but an issue has been opened with hpc-stack to add it to the standard stack installations. The introduction of miniconda also caused the conversion of all of the rocoto entry scripts (the ones rocoto calls to run the job) to bash. Most of them had been in korne.

        To make sure the needed restart files are produced, config.fcst now makes sure the forecast cadence is included in the list of restart times. This may need more testing to ensure it works properly with other restart lists. As part of this, STEP_GFS was updated to properly determine the step from gfs_cyc instead of being a set value.

        Closes #366
        Fixes #516
        Fixes #630

    commit 69b39ee5af8cfbb5cbf5cf62c92d01958b697652
    Author: Kate Friedman <kate.friedman@noaa.gov>
    Date:   Thu May 12 12:18:50 2022 -0400

        Add --init to GSI submodule command (#781)

        Needed to obtain libsrc submodule during checkout and allows the GSI to build correctly since this GSI hash still needs the libsrc submodule during build.

        Refs: #780

    commit b09f92c21028ea37e4663ce4c304935a2dc45b33
    Author: lgannoaa <37596169+lgannoaa@users.noreply.github.com>
    Date:   Thu May 12 08:20:16 2022 -0400

        Update field_table to be consistent with UFS (#778)

        Changes the fixed surface value of hydrometeor number concentrations and sub-grid TKE to 0. Also renames the field table. Both changes are consistent with changes made in UFS.

        Fixes #676

    commit d72a62d6c0ab2e9f53ca3e6133148f29982f9d32
    Author: lgannoaa <37596169+lgannoaa@users.noreply.github.com>
    Date:   Thu May 12 08:15:23 2022 -0400

        Remove special MOD_PATH from build scripts (#775)

        We always use pre-installed libraries and special MOD_PATHs are no longer necessary, so these are removed from build scripts. MOD_PATH. This also moots MOD_PATHs that were hard-coded to Hera locations in some scripts. The MOD_PATH in build_ufs.sh remains as it is still needed and is a relative path into the UFS repo.

        Fixes #298

    commit 2adf123814a2f29e9cca54a11fbb2807b3f6cf1b
    Author: Kate Friedman <kate.friedman@noaa.gov>
    Date:   Wed May 4 12:31:20 2022 -0400

        Revert g2tmpl back to 1.10.0 (#773)

        Resolves bug with mismatch between hpc-ips and g2tmpl versions on the WCOSS-Dells. Also revert back to 1.10.0 on Hera and Orion to be consistent.

        Refs: #772

    commit b90f4e99bc42f9a8afbeaa9479e674fb75e096ea
    Author: lgannoaa <37596169+lgannoaa@users.noreply.github.com>
    Date:   Tue May 3 09:45:19 2022 -0400

        Remove git submodule update for upp checkout (#768)

        UPP no longer has a CMakeModules submodule, so the submodule update
        is removed from the checkout script.

        Fixes: #767

    commit ad2b14d9b1ed0fe89fe59bfb96cc03630e8457de
    Author: lgannoaa <37596169+lgannoaa@users.noreply.github.com>
    Date:   Tue May 3 09:44:57 2022 -0400

        Remove duplicate file linking for Thompson MP (#765)

        Files for Thompson MP were being copied twice by the link script: once by checking imp_physics, then again checking the CCPP Suite. This is now reduced to one check.

        Fixes: #675

    commit a9fc0033b908aefb42d5b2d191c65af5cb7660c4
    Author: Kate Friedman <kate.friedman@noaa.gov>
    Date:   Thu Apr 28 15:17:22 2022 -0400

        Remove unneeded/outdated modulefiles (#762)

        Remove unneeded modulefiles for WCOSS-Cray and GSI monitoring.

    commit 3333dee304b6b53d3d716c60d0c87ad06d629c1c
    Author: lgannoaa <37596169+lgannoaa@users.noreply.github.com>
    Date:   Thu Apr 28 14:35:57 2022 -0400

        Remove prepbufr_pre-qc from archive lists (#753)

        The prepbuft_pre-qc file does not need to be archived, so it no longer is.

        Fixes #361

    commit 88b1b1591d3201709f5f981908aaf7890d3021bd
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Tue Apr 26 20:40:41 2022 -0400

        Convert module files from Tcl to Lua (#756)

        Converts all module files from Tcl format to Lua. As a side effect, this change enforces using the files as modules rather than improperly sourcing them instead of loading.

        Fixes #670

    commit ca80aeb86cb221263611605ba23858448bce0bad
    Author: lgannoaa <37596169+lgannoaa@users.noreply.github.com>
    Date:   Mon Apr 25 06:23:06 2022 -0400

        Ensure hourly files when GLDAS is on (#740)

        GLDAS requires hourly output, so make sure FHOUT is 1 when GLDAS is on.

        Fixes #695

    commit 9d00239088651b73a9667b70bd6247b34e35046f
    Author: lgannoaa <37596169+lgannoaa@users.noreply.github.com>
    Date:   Tue Apr 19 21:22:22 2022 -0400

        Update cyclone tracker to handle return code correctly #642

        Updates the cyclone tracker call to correctly exit with an error code if the tracker script reports one.

        Fixes #507

    commit 33d3dd14d6df8109274dde4606bb7a50e4638fa2
    Author: Jessica Meixner <jessica.meixner@noaa.gov>
    Date:   Tue Apr 19 21:18:56 2022 -0400

        Update ww3 pre and post exe build to use cmake (#731)

        Updates the WW3 pre/post build system to use cmake.

        Fixes #688

    commit 39facec1e03a404f84fd05b8739cd8e4010a0779
    Author: Kate Friedman <kate.friedman@noaa.gov>
    Date:   Tue Apr 12 11:36:30 2022 -0400

        Add WCOSS2 GFSv16.2 operational def files into develop (#717)

        Add WCOSS2 operational GFS def files.

        Refs: #399

    commit 0a85223e48a1a8dcced163791d8e7ae5a42a4fab
    Author: Xianwu Xue - NOAA <48287866+XianwuXue-NOAA@users.noreply.github.com>
    Date:   Tue Apr 12 11:34:17 2022 -0400

        Initialize "err" to avoid potential task fail (#715)

        If not initialize err, and change "set -x" to "set -xue", then the waveinit task will fail with error message:
            "line 234: err: unbound variable"

         On branch bugfix/issue_714
         Changes to be committed:
        	modified:   scripts/exgfs_wave_init.sh

        Refs: #714

    commit fc6e1c3316397432d2da218b3c4fc0ea1fe70644
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Tue Apr 5 11:07:21 2022 -0400

        config.base should not exist in the repository unless it is in ops.  template only exists in the repo, the experiment directory should not contain the templated config.base.emc.dyn (#707)

    commit cabf437044cb937caf7a7830068fd9e413c5921f
    Author: Jessica Meixner <jessica.meixner@noaa.gov>
    Date:   Wed Mar 30 21:28:50 2022 -0400

        Update model and settings for Prototype P8b (#681)

        Updates model and setting defaults for prototype 8b.

        The UFS version is updated to a recent version of UFS (tag Prototype-P8b). As part of this, the print_esmf option is removed from the model configure file and replaced with a new setting in nems.configure. We have not made this option user-configurable at this point, but that may come in the future.

        The default CCPP suites have been updated for all modes to either FV3_GFS_v17_p8 or FV3_GFS_v17_coupled_p8. This involves changing the microphysics to Thompson and changes the gravity wave drag version (knob_ugwp_version) to 0. This change breaks cycled mode for the time being. A future PR will revert the defaults to ones that allow cycled to run along with a more robust system for changing settings.

        Tiled fix files are now used for all modes instead of just coupled.

        Cellular automata now defaults on ON.

        There are also other miscellaneous settings that have had their defaults changed.

        Fixes #641, #687

    commit e3f707cb9c05b45e9d4019679e406f54008279a5
    Author: XuLi-NOAA <55100838+XuLi-NOAA@users.noreply.github.com>
    Date:   Thu Mar 24 05:43:31 2022 -0400

        Modify eobs for EnKF thinning

        In the Hybrid EnKF GSI, the thinning box size, dmesh, is different for the full resolution analysis and EnKF respectively. There are set in GSI scripts for the full resolution analysis, and reset in global workflow in config.eobs.
        Only two thinning box sizes, dmesh(1) & dmesh(2), are defined in GSI scripts before, recently, two more, dmesh(3) & dmesh(4) are added. Accordingly, these two need to be added in config.eobs as well.

        Specifically, add dmesh(3)=225.0,demsh(4)=100.0 to config.eobs.

        Fixes #595

    commit c32eea459af3177cee28e151b43fe5e12bdfc412
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Tue Mar 22 11:18:10 2022 -0400

        Update ocean resolution for C48 (#651)

        The ocean resolution for C48 was set as 1-deg, but the fractional
        grid fix files available at C48 are for a 4-deg ocean grid. The
        ocean resolution is now set to this value when FV3 is C48.

        Also commented out a currently redundant block setting OCNRES in
        config.ocn. The one in ecfs has to stay as it recalculates the
        ocean resolution based on the EnKF resolution.

        Fixes #650

    commit d758e8b227fca7b5a3320adc43c29ba492c3bfe9
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Thu Mar 10 05:54:49 2022 -0500

        Add single forecast GOCART support (#659)

        Adds support for running single coupled free forecasts with GOCART aerosols. Support for continuous aerosol fields from cycle to cycle will be added in a future PR.

        To turn on aerosols, there is a new --aerosols option for setup_expt.py. The option takes no arguments. When it is used, aerosols will be turned on by setting DO_AERO="YES" in config.base.

        GOCART output files are placed in the chem directory in COM.

        There is a new tarball archived, chem.tar, that contains the GOCART output.

        Partially addresses #516
        Fixes #403

    commit a0e23e254c7c881b20d66c1c53cd36de509e6d69
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Tue Mar 1 10:50:39 2022 -0500

        Specify memory for init job (#669)

        The init job has been failing on HPC using slurm due to out-of-memory errors. Now the init job specifies the amount of memory needed.

        Fixes #631

    commit 6874e8939211fdc07143450bfd1b6a2863172e10
    Author: arun chawla <49994787+arunchawla-NOAA@users.noreply.github.com>
    Date:   Fri Feb 25 16:39:45 2022 -0500

        Cleanup of utils directory (#660)

        Removes all of the old, unused GSM scripts and code from the utils directory. Those codes that might still be used have been moved to a new GSM-utils repo.

        Fixes #618

    commit e3d64abc9c02aecb9d5d38755f6524bf9e277e66
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Thu Feb 24 22:49:45 2022 -0500

        Fix bug with partition_batch on WCOSS (#668)

        partition_batch was not being defined for WCOSS machines, but was
        being used in a substitution for config.base.

        Fixes #667

    commit 9d75d8d78037c7a74d1a9c61a88d9d6a7e9b3be9
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Mon Feb 21 02:10:00 2022 -0500

        Split output filetype variable into atm and sfc (#602)

        The determination of the FV3 output filetype was a bit unwieldy as it
        contained two different settings (one for the atmosphere and one for
        the surface) that were not necessarily changed at the same time. They
        were also being determined in a different location than other settings
        based on the model resolution.

        Now the old OUTPUT_FILETYPES variable has been split into two different
        variables, OUTPUT_FILETYPES_ATM and OUTPUT_FILETYPES_SFC. The determi-
        nation was also moved into the config.fv3 file, where other resolution-
        dependent computational settings are set.

        This has resulted in some functional change on WCOSS Dell, as the EnKF
        was using different chunking settings and never used parallel output
        for the surface likely because wasn't being run at a low enough resolu-
        tion to consider it. However, there is no reason to believe the two
        forecast modes should have different chunk or output settings. So, I've
        used the EnKF chunking settings and the free forecast switchover point
        for the surface output mode.

        The new filetype settings are now also divorced from the OUTPUT_FILE
        setting. However, that setting will soon be unnecessary as nemsio
        is removed from the code as an option (see Issue #601).

        Fixes #600
        Refs #601

    commit cb8b5adf16200e7b01b8236a960efce5b6d8ce5d
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Thu Feb 17 15:55:24 2022 -0500

        Correct MODE comparisons for forecast only (#658)

        When the setup_expt scripts were combined, the forecast mode became a mandatory
        argument. The value of this option is then directly used for the MODE variable,
        but the argument name (forecast-only) does not match what was previously used
        for MODE in the forecast-only script (free) and some scripts were still testing
        against the old value instead of the new one. Those comparisons have now been
        updated to use the new MODE name.

        Fixes #657

    commit f8867d3f0b1f3b5d238dced412996c56e30d31a1
    Author: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com>
    Date:   Thu Feb 10 20:23:54 2022 -0500

        Add LOCALARCH option (#628)

        Adds the option to archive output locally during archive jobs. This is intended for systems that do not have access to HPSS (e.g. Orion and soon S4), but can be used on any machine. To enable, the LOCALARCH setting in config.base should be set to "YES" (HPSSARCH must be "NO"). When enabled, the tarballs normally created on HPSS will instead be created in the local directory specified by $ATARDIR.

        Defaults have been added to setup_expt.py to point to a local ATARDIR and LOCALARCH (currently =NO).

        Fixes #624.

    commit 2950c7b97f99341caa738526138022987f665627
    Author: Jessica Meixner <jessica.meixner@noaa.gov>
    Date:   Thu Feb 10 18:07:43 2022 -0500

        Turn on fractional grid by default for uncoupled forecasts (#638)

        Updates input.nml so that there is more consistency between the cpl and standalone atm input.nml. In particular this addresses the fact that frac_grid was only being set if cpl was true.

        Fixes #571

    commit 64b1c1e5ce37fba48dd717bd11356a6f57d9def4
    Author: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com>
    Date:   Wed Feb 9 17:02:39 2022 -0500

        Specify warm start as .true. or .false. (#644)

        Corrects the assignment of EXP_WARM_START to either .true. or .false. depending on the value passed to setup_expt.py via `--start`.

        Fixes #643

    commit e537f0cecabc8e16e26b14e606558de906b19e3f
    Author: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com>
    Date:   Tue Feb 8 23:33:21 2022 -0500

        Archive TC tracking logs if produced (#627)

        The archive job was failing if there were no tropical cyclone files (such as when there are no cyclones). This adds a check for the TC tracking logs in case they are not produced to prevent the gfsarch job from failing on cycles when there were no TCs to track.

        Fixes #625.

    commit 32f93becde5ffa07c162252b95417845f2ab5159
    Author: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com>
    Date:   Tue Feb 8 20:59:37 2022 -0500

        Fix separate threading for GFS and GDAS forecasts. (#621)

        Fix separate threading options for GDAS and GFS forecasts (#610). This is performed by keeping nth_fcst_gfs separate from nth_fcst and declaring the new variable npe_node_fcst_gfs.

        Fixes #610

    commit 9bb09a92c55d4534feca5d521fbbd1c664730317
    Author: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com>
    Date:   Tue Feb 8 20:58:05 2022 -0500

        Updated the RadMon and OznMon links. #596 (#597)

    commit 97ebc4d4e6483b135468d85cd9ed974f88955914
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Thu Feb 3 02:56:34 2022 -0500

        Unify `setup_expt.py` and `setup_expt_fcstonly.py` (#537)

        `setup_expt.py` and `setup_expt_fcstonly.py` are unified under the former name.

        The user is now required to provide a `mode` as the first positional argument to `setup.py`.  Valid options are `cycled` and `forecast-only`.

        ```
        ❯ python3 setup_expt.py -h
        usage: setup_expt.py [-h] {cycled,forecast-only} ...

        Setup files and directories to start a GFS parallel. Create EXPDIR, copy config files. Create COMROT experiment directory structure, link
        initial condition files from $ICSDIR to $COMROT

        positional arguments:
          {cycled,forecast-only}
            cycled              arguments for cycled mode
            forecast-only       arguments for forecast-only mode

        optional arguments:
          -h, --help            show this help message and exit
        ```

        Upon choosing one of these modes, options specific to the mode can be realized as follows for the `forecast-only` and `cycled` modes respectively.

        ```
        ❯ python3 setup_expt.py forecast-only -h                                                                  feature/unify-setups
        usage: setup_expt.py forecast-only [-h] [--pslot PSLOT] [--resdet RESDET] [--comrot COMROT] [--expdir EXPDIR] --idate IDATE --edate EDATE
                                           [--icsdir ICSDIR] [--configdir CONFIGDIR] [--cdump CDUMP] [--gfs_cyc {0,1,2,4}] [--start {warm,cold}]
                                           [--app {ATM,ATMW,S2S,S2SW}]

        optional arguments:
          -h, --help            show this help message and exit
          --pslot PSLOT         parallel experiment name
          --resdet RESDET       resolution of the deterministic model forecast
          --comrot COMROT       full path to COMROT
          --expdir EXPDIR       full path to EXPDIR
          --idate IDATE         starting date of experiment, initial conditions must exist!
          --edate EDATE         end date experiment
          --icsdir ICSDIR       full path to initial condition directory
          --configdir CONFIGDIR
                                full path to directory containing the config files
          --cdump CDUMP         CDUMP to start the experiment
          --gfs_cyc {0,1,2,4}   GFS cycles to run
          --start {warm,cold}   restart mode: warm or cold
          --app {ATM,ATMW,S2S,S2SW}
                                UFS application
        ```

        ```
        ❯ python3 setup_expt.py cycled -h                                                                         feature/unify-setups
        usage: setup_expt.py cycled [-h] [--pslot PSLOT] [--resdet RESDET] [--comrot COMROT] [--expdir EXPDIR] --idate IDATE --edate EDATE
                                    [--icsdir ICSDIR] [--configdir CONFIGDIR] [--cdump CDUMP] [--gfs_cyc {0,1,2,4}] [--start {warm,cold}]
                                    [--resens RESENS] [--nens NENS] [--app {ATM,ATMW}]

        optional arguments:
          -h, --help            show this help message and exit
          --pslot PSLOT         parallel experiment name
          --resdet RESDET       resolution of the deterministic model forecast
          --comrot COMROT       full path to COMROT
          --expdir EXPDIR       full path to EXPDIR
          --idate IDATE         starting date of experiment, initial conditions must exist!
          --edate EDATE         end date experiment
          --icsdir ICSDIR       full path to initial condition directory
          --configdir CONFIGDIR
                                full path to directory containing the config files
          --cdump CDUMP         CDUMP to start the experiment
          --gfs_cyc {0,1,2,4}   GFS cycles to run
          --start {warm,cold}   restart mode: warm or cold
          --resens RESENS       resolution of the ensemble model forecast
          --nens NENS           number of ensemble members
          --app {ATM,ATMW}      UFS application
        ```

        Note, `cycled` mode presents some extra options e.g. `nens` as well as a reduced list of the UFS weather model applications.

        The functionality of `--icsdir` had been broken for cycled and was hard-coded in free forecast. The functionality has now been repaired for cycled. If you provide one, $COMROT will be populated with appropriate links. If none is specified, no links will be created in $COMROT. In coupled mode free-forecast, ICs are copied *to* icsdir from the central maintained prototype location. Coupled users will now need to set this explicitly. For non-coupled forecast-only, this setting currently does nothing.

        The default value for `--configdir` has been updated to the appropriate location in the workflow. Most users will no longer need to set it unless they want to point to a different config source.

        The default values for `--comrot` and `--expdir` are updated from None to $HOME to facilitate offline testing of workflow creation.

        There are some irrelevant sections such as `gfs_cyc` in forecast-only that is still preserved in this PR.   It will be cleaned up in subsequent PR's.

        Another unnecessary complication is the argument of `--start`.  The logic presented here would ideally be selected at runtime based on the type of IC's populated in comrot.  It is left unchanged.

    commit d7319f19aceca6ae6d7ce9b06c6eb731832d1de1
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Wed Feb 2 11:19:43 2022 -0500

        Stop archiving gfsarch.log as it is being written (#581)

        The gfs archive job was failing because it was attempting to archive its own log file into gfsa.tar while it was being written. To exclude that file pattern, bash extended globbing is turned on, which allows the use of a negating group.

        Fixes: #558

    commit 1b300dbf98eccdf03117b3795a2d8da3310a6126
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Wed Feb 2 11:18:55 2022 -0500

        Fix build on non-WCOSS2 machines (#612)

        The UFS_UTILS and GLDAS versions are updated to correct build problems on development machines. Each had been using a beta version of ESMF that was removed from the hpc-stack installation without warning. Additionally, GLDAS had introduced bugs into their build scripts during the WCOSS2 port. These issues are now all corrected in the new versions.

        Also updates the UFS_UTILS repository to its new location under UFS instead of EMC.

        Fixes #476, #561

    commit d3028b9d8268028226f9c27800fcd6655e9e4bb8
    Author: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com>
    Date:   Wed Jan 19 14:29:51 2022 -0500

        Fix setting of OUTPUT_FILETYPES (#589)

        The setting of OUTPUT_FILETYPES was being overwritten by the FV3 model configure parsing script, so the settings determined in the config.fcst file was being ignored. Now that block is removed and config.fcst is updated to make sure it is set for any machine.

        Fixes #588

    commit 13421b01a07e5d1cca32ee7579a4094d8209b072
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Wed Jan 19 12:16:29 2022 -0500

        Update PR template

    commit 322a61a61238e8486cb42d7d26282b2728d0c32f
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Wed Jan 19 12:13:33 2022 -0500

        Move PR template MD file. Update issue templates

    commit 7a52fc8d8bbfc5896b7d03004d5189b2a6b24013
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Wed Jan 19 11:32:51 2022 -0500

        rename pull_request_template.md

    commit 88ec66eb834e9a78c94feae4f37f774c7807aa3c
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Wed Jan 19 10:34:54 2022 -0500

        make changes to the templates

    commit 66d84e21ad7ae3fafb4ad5097faf86dfa1b99b60
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Wed Jan 19 10:08:45 2022 -0500

        Fix lfrac entry in diag table (#570)

        Land fraction was listed in the wrong module, keeping it from being
        written to output.

        Refs: #562

    commit e2657adbdadaac7089591390428324c6aec260a9
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Tue Jan 18 17:04:04 2022 -0500

        Update NCO_bug_report.md

    commit a9d6851a0c3b6051cb1c7c7ec482fc50d762bef4
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Tue Jan 18 16:59:18 2022 -0500

        Update bug report issue template

    commit 2fab8b4213645b79b3fea8127e7d4ab21044188e
    Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
    Date:   Tue Jan 18 15:13:53 2022 -0500

        Add templates for Github (#560)

        Adds GitHub templates for new issues and PRs to standardize and make sure all the needed information is included.

    commit 03be05309b184421c473f1b43082b766b114fd46
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Tue Jan 18 10:02:02 2022 -0500

        Fix toggle for building workflow_utils (#580)

        The fv3gfs_build.cfg did not have a space between the periods and
        the setting for workflow_utils, which means the setting was ignored
        and the default of yes was always used.

        Fixes: #577

    commit aadd3bae3d4fdc7827a93ab51b336a7f6b2fdb02
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Tue Jan 18 10:01:24 2022 -0500

        Remove redundant toggle for gldas build (#579)

        The build cfg files controlling which components are built and the
        partial_build.sh script all have two instances trying to set the
        value for gldas. This means one of the settings did nothing when
        changed.

        Fixes: #578

    commit 86d4b305a070c080dcfd44a3f9a31ca2280759fa
    Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
    Date:   Fri Jan 14 01:05:59 2022 -0500

        Update config missed in last GSI update (#569)

        When the GSI version was updated in PR #530, updates to the config.anal file were mistakenly omitted. That file is now updated following ops (PR #451, #489).

        Refs: PR #530

    commit 33308ea3b477db17a5db455a4c4887e3d5cbc711
    Author: Jessica Meixner <jessica.meixner@noaa.gov>
    Date:   Thu Jan 6 00:44:43 2022 -0500

        Updates for P8a (#538)

        Updates ufs-weather-model to the 2021 Dec 23 commit and the matching UPP hash. Coupled settings are updated to run the P8a mini prototype.

        Updates include:

  …
@aerorahul aerorahul added this to the GW February 2023 milestone Jan 31, 2023
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Jan 31, 2023
THIS COMMIT BREAKS THE ENTIRE WORKFLOW. Functionality will be returned
in subsequent commits for this project.

Removes the old `COMIN` variables from `config.base` and adds a new
`config.com`. This new configuration is currently sourced by
`config.base` and contains a series of path templates. These templates
are substituted at runtime to produce the appropriate paths. Templates
must use SINGLE quotation marks to prevent substituting variables when
sourced.

The substitutions can be made one of two ways. First, the `config.com`
script also defines a function `generate_com`, which takes in a list of
variable names and automatically parses the associated template into
the each variable. The function also takes a list of options that
mirrors those of the `declare` (aka `typeset`) built-in, which is what
the function uses under the hood. For this method, the template must be
defined to the variable `${VARIABLE_NAME}_TMPL`.

Assign COM_OBS from COM_OBS_TMPL template and mark it for export and
 read-only
```
generate_com -rx COM_OBS
```

The second method is to do the substitution directly using `envsubst`.
If you need to override variables in the template without changing the
actual variables (for instance, to generate the path for a previous
cycle), or assign to a different variable name than the template,
you'll need to use this method. To use this method, use a subshell to
echo the template and pipe it through `envsubst` to substitute in
variables from the environment:

This is the equivilent of the generate_com example above
```
COM_OBS=$(echo "${COM_OBS_TMPL}" | envsubst) declare -rx COM_OBS
```

As mentioned, you can also locally override variables if needed:
```
COM_ATMOS_RESTART_PREV=$({
  RUN="${rCDUMP}"
  PDY="${PDY_PREV}"
  cyc="${cyc_PREV}"
  echo "${COM_ATMOS_RESTART_TMPL}" | envsubst
})
declare -rx COM_ATMOS_RESTART_PREV ```
```

Refs: NOAA-EMC#761
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Jan 31, 2023
Updates the forecast and enkf jobs to use the new COM templates.

Refs: NOAA-EMC#761
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Jan 31, 2023
Updates gdas post and ensemble post jobs to use new COM templates.

Refs: NOAA-EMC#761
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Jan 31, 2023
Updates the TC tracker job to use the new COM templates.

Refs: NOAA-EMC#761
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Jan 31, 2023
Updates the ensemble change resolution job to use the new COM
templates.

Refs: NOAA-EMC#761
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Feb 1, 2023
Updates the prep job to use the new COM templates. These changes
require an update to the prepobs script `ush/getges_driver.sh`.
For the time being, this is being done using minimal modifications
in a private copy of prepobs. A more thorough review and update of
prepobs (and obsproc) will be required before this branch is merged
into develop, which may also result in changes to workflow scripts
as well.

Refs: NOAA-EMC#761
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Feb 7, 2023
Updates `$RUN` and `$CDUMP` for ensemble jobs to include `enkf`.

Previously, the `$RUN` for EnKF jobs had been set to `gdas` or `gfs`.
However, this violates NCO policy and was also complicating Issue NOAA-EMC#761.
Now the `$RUN` for EnKF jobs is either `enkfgdas` or `enkfgfs`.

Theoeretically, `$CDUMP` shouldn't need to change. However, `$CDUMP`
and `$RUN` are used interchangably throughout much of the workflow
(Issue NOAA-EMC#1299), so for now the `$CDUMP` is kept identical to `$RUN`.

Refs: NOAA-EMC#1298
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Feb 7, 2023
Updates `$RUN` and `$CDUMP` for ensemble jobs to include `enkf`.

Previously, the `$RUN` for EnKF jobs had been set to `gdas` or `gfs`.
However, this violates NCO policy and was also complicating Issue NOAA-EMC#761.
Now the `$RUN` for EnKF jobs is either `enkfgdas` or `enkfgfs`.

Theoeretically, `$CDUMP` shouldn't need to change. However, `$CDUMP`
and `$RUN` are used interchangably throughout much of the workflow
(Issue NOAA-EMC#1299), so for now the `$CDUMP` is kept identical to `$RUN`.

Refs: NOAA-EMC#1298
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Feb 13, 2023
Updates `$RUN` and `$CDUMP` for ensemble jobs to include `enkf`.

Previously, the `$RUN` for EnKF jobs had been set to `gdas` or `gfs`.
However, this violates NCO policy and was also complicating Issue NOAA-EMC#761.
Now the `$RUN` for EnKF jobs is either `enkfgdas` or `enkfgfs`.

Theoeretically, `$CDUMP` shouldn't need to change. However, `$CDUMP`
and `$RUN` are used interchangably throughout much of the workflow
(Issue NOAA-EMC#1299), so for now the `$CDUMP` is kept identical to `$RUN`.

Refs: NOAA-EMC#1298
@WalterKolczynski-NOAA WalterKolczynski-NOAA changed the title Organize COM Organize COM and refactor paths Feb 13, 2023
@WalterKolczynski-NOAA WalterKolczynski-NOAA changed the title Organize COM and refactor paths Organize COM and refactor path definitions Feb 13, 2023
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Feb 15, 2023
Updates `$RUN` and `$CDUMP` for ensemble jobs to include `enkf`.

Previously, the `$RUN` for EnKF jobs had been set to `gdas` or `gfs`.
However, this violates NCO policy and was also complicating Issue NOAA-EMC#761.
Now the `$RUN` for EnKF jobs is either `enkfgdas` or `enkfgfs`.

Theoeretically, `$CDUMP` shouldn't need to change. However, `$CDUMP`
and `$RUN` are used interchangably throughout much of the workflow
(Issue NOAA-EMC#1299), so for now the `$CDUMP` is kept identical to `$RUN`.

Refs: NOAA-EMC#1298
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 11, 2023
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 11, 2023
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 11, 2023
A pull failed to remove a couple lines from the enkf fcst ex-script
that were deleted in develop.

Refs NOAA-EMC#761
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 11, 2023
The memchar variable does not need to be renamed in the enkf fcst job.

Refs: NOAA-EMC#761
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 11, 2023
The filepath in the DBN alert in enkf fcst had not been updated to
use `$RUN` instead of `$CDUMP`.

Refs: NOAA-EMC#761
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 11, 2023
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 11, 2023
The path that determines whether the source directory is in the old
flat structure or the new hierarchical strucutre was inadvertently not
updated after the component and data type levels were reversed.

Refs: NOAA-EMC#761
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 11, 2023
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 13, 2023
`input.nml` was formerlly being placed in the `COM_ATMOS_INPUT` directory.
However, this directory is only present for cold-starts. This led to the
file being linked as the directory name because the filename wasn't included
being used for the link target. While we could create an input directory to
hold just the one file, that is unnecessary and is likely not the best
location for the file anyway. Now it is placed in the history directory.

Refs: NOAA-EMC#761
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 13, 2023
The path to the temporary location for obsproc, prepobs, etc (`$BASE_GIT`)
was incorrect.

Refs: NOAA-EMC#761
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 14, 2023
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 14, 2023
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 15, 2023
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 15, 2023
The enkf sfc job needs to use the member restarts from the `$GDUMP_enkf`
(usually 'enkfgdas'), not the current `$RUN`.

Refs: NOAA-EMC#761
KateFriedman-NOAA added a commit to KateFriedman-NOAA/global-workflow that referenced this issue Apr 17, 2023
KateFriedman-NOAA added a commit to KateFriedman-NOAA/global-workflow that referenced this issue Apr 17, 2023
- Will update in a follow-up PR to use newly installed tag/version.

Refs NOAA-EMC#761
KateFriedman-NOAA added a commit to KateFriedman-NOAA/global-workflow that referenced this issue Apr 17, 2023
KateFriedman-NOAA added a commit to KateFriedman-NOAA/global-workflow that referenced this issue Apr 17, 2023
- Make sure this isn't wiped out by Jet port PR going in.

Refs NOAA-EMC#761
KateFriedman-NOAA added a commit to KateFriedman-NOAA/global-workflow that referenced this issue Apr 17, 2023
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 18, 2023
The ESMF timing summary had been put in `$COM_TOP`, but that doesn't
work with ensemble members, as they would overwrite each other. The
file is moved to the atmos history directory for want of a better
space, since atmos always runs and I'm unwilling to make a new directory
for a single diagnostic file that isn't always generated.

Refs: NOAA-EMC#761
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 18, 2023
This file should've been deleted during the develop merger that
handled the buoys files.

Refs: NOAA-EMC#761
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 18, 2023
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 23, 2023
Adds a grid directory level for atmos gempak to organize different
output grids. The grib variable is also changed from `RES` to `GRID`
for consistency.

Additionally, `SENDCOM` now defaults to on so gempak output gets written
(see NOAA-EMC#1501).

Refs: NOAA-EMC#761, NOAA-EMC#1501
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 24, 2023
Directory name that holds grib files updated to be 'grib2', since
that is the actual filetype.

Refs: NOAA-EMC#761
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Apr 24, 2023
WalterKolczynski-NOAA added a commit that referenced this issue Apr 24, 2023
Reorganizes the entire COM directory into a more hierarchical structure and uses centrally-defined templates to define COM paths.

## Hierarchical Structure
To organize output a lot better and not have 30000+ files in a single directory, all of the component COM directories are divided into a number of subdirectories for each type of output.

Sample directory trees

### Cycled atmosphere only
```
gdas.20211222/00
├── analysis
│   └── atmos
│       └── gsidiags
│           ├── dir.0000
│           ├── dir.0001
│           ├── (Additional dir.* directories omitted for brevity)
│           └── dir.0083
├── model_data
│   └── atmos
│       ├── history
│       ├── master
│       └── restart
├── obs
└── products
    └── atmos
        ├── cyclone
        │   └── tracks
        └── grib2
            ├── 0p25
            ├── 0p50
            └── 1p00

101 directories
```
```
enkfgdas.20211222/00
├── earc00
├── ensstat
│   ├── analysis
│   │   └── atmos
│   │       └── gsidiags
│   │           ├── dir.0000
│   │           ├── dir.0001
│   │           ├── (Additional dir.* omitted for brevity)
│   │           └── dir.0039
│   └── model_data
│       └── atmos
│           └── history
├── mem001
│   ├── analysis
│   │   └── atmos
│   └── model_data
│       └── atmos
│           ├── history
│           ├── master
│           └── restart
└── mem002
    ├── analysis
    │   └── atmos
    └── model_data
        └── atmos
            ├── history
            ├── master
            └── restart

64 directories
```
```
gfs.20211222/00
├── analysis
│   └── atmos
├── model_data
│   └── atmos
│       ├── history
│       ├── master
│       └── restart
├── obs
└── products
    └── atmos
        ├── bufr
        ├── cyclone
        │   ├── genesis_vital
        │   └── tracks
        ├── gempak
        │   ├── 0p25
        │   ├── 0p50
        │   ├── 1p00
        │   ├── 35km_atl
        │   ├── 35km_pac
        │   └── 40km
        ├── grib2
        │   ├── 0p25
        │   ├── 0p50
        │   └── 1p00
        └── wmo

26 directories
```
```
enkfgfs.20211222/00
├── earc00
├── ensstat
│   ├── analysis
│   │   └── atmos
│   │       └── gsidiags
│   │           ├── dir.0000
│   │           ├── dir.0001
│   │           ├── (Additional dir.* directories removed for brevity)
│   │           └── dir.0039
│   └── model_data
│       └── atmos
│           └── history
├── mem001
│   ├── analysis
│   │   └── atmos
│   └── model_data
│       └── atmos
│           ├── history
│           ├── master
│           └── restart
└── mem002
    ├── analysis
    │   └── atmos
    └── model_data
        └── atmos
            ├── history
            ├── master
            └── restart

64 directories
```

### S2SWA coupled
prototype (forecast-only):
```
gfs.20130401/00/
├── model_data
│   ├── atmos
│   │   ├── history
│   │   ├── input
│   │   ├── master
│   │   └── restart
│   ├── chem
│   │   └── history
│   ├── ice
│   │   ├── history
│   │   ├── input
│   │   └── restart
│   ├── med
│   │   └── restart
│   ├── ocean
│   │   ├── history
│   │   ├── input
│   │   └── restart
│   └── wave
│       ├── history
│       ├── prep
│       └── restart
└── products
    ├── atmos
    │   ├── cyclone
    │   │   ├── genesis_vital
    │   │   └── tracks
    │   ├── gempak
    │   │   ├── 0p25
    │   │   ├── 0p50
    │   │   ├── 1p00
    │   │   ├── 35km_atl
    │   │   ├── 35km_pac
    │   │   └── 40km
    │   ├── grib2
    │   │   ├── 0p25
    │   │   ├── 0p50
    │   │   └── 1p00
    │   └── wmo
    ├── ocean
    │   ├── 2D
    │   ├── 3D
    │   ├── grib
    │   │   ├── 0p25
    │   │   └── 0p50
    │   └── xsect
    └── wave
        ├── gempak
        ├── gridded
        ├── station
        └── wmo

51 directories
```

### Trees with files
gdas: https://gist.github.com/WalterKolczynski-NOAA/f1de04901e2703fd24d38146d2669789
gfs: https://gist.github.com/WalterKolczynski-NOAA/5d1b7c0a0f4b8cfff0be1ae54082316a
enkfgdas: https://gist.github.com/WalterKolczynski-NOAA/860aaa804e3e70e191e7cae2ebb1055b
enkfgfs: https://gist.github.com/WalterKolczynski-NOAA/130bfff4650ed8b07cf395079b65d318
S2SWA P8: https://gist.github.com/WalterKolczynski-NOAA/6ae90c6eafb573878f60682ce47179db

## Templating
All of the COM paths have been replaced with new variables that are derived from a set of templates centrally defined in `config.com`. Variables in the templates are then substituted at runtime to generate the COM paths via the use of `envsubst`. To facilitate this, there is a new function, `generate_com` (see below), provided to automatically generate the COM paths.

Where possible, COM paths are defined at the j-job level and made read-only. However, many of the EnKF scripts loop over the ensemble members, forcing the definitions to be made at the exscript level instead (and be mutable).

The arguments to `generate_com()` are the list of COM variables to generate, optionally accompanied by a template to use using a colon to separate them. When no template is specified, the variable will be generated using the ${varname}_TMPL template. Two options are accepted, `-r` and `-x`, which will mark the variable as read-only and for export, respectively (the same as with the `declare` builtin). It is best practice to define any additional variables needed by the template on the same line to avoid adding them to the calling script’s scope. Here are some examples used in the code:

Generate the path to the atmos analysis directory for the current cycle and `$RUN` (implicitly from the `$COM_ATMOS_ANALYSIS_TMPL` template) and mark as read-only and export:
```
YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_ANALYSIS
```

Generate the path to the atmos history directory for the previous cycle's gdas from the `$COM_ATMOS_HISTORY_TMPL` template and mark as read-only and export:
```
RUN=${GDUMP} YMD=${gPDY} HH=${gcyc} generate_com -rx \
    COM_ATMOS_HISTORY_PREV:COM_ATMOS_HISTORY_TMPL
```

Generate the path to the first ensemble member's history directory of the current cycle and `$RUN` and mark for export:
```
MEMDIR=’mem001’ YMD=${PDY} HH=${cyc} generate_com -x COM_ATMOS_HISTORY
```

## Additional information
The staging of initial conditions in `setup_expy.py` has been updated to stage in the new locations. The source of the initial conditions can **either** be in the new hierarchical structure or in the old flat structure and the script will stage the files in the new structure. The destination paths are hard-coded here, so if any changes are made to the analysis, input, or restart templates, they will need to be mirrored in `setup_expy.py`.

### Stipulations
All changes in this PR are subject to approval by several stakeholders, including NCO. Sample COM trees above are subject to revision based on feedback (for instance, file X isn't really an obs file).

File name updates are not included in this PR. File names (primarily for coupled components) will be updated to comply with NCO standards in a future PR.

AWIPS jobs are now almost working (they do not in current develop), but one last program is still ending with an error.

Work on fit2obs is deferred, so that portion of the verify job does not work.

WAFS scripts are all external and have not yet been updated. WAFS is expected to be packaged separately going forward, so will need to be updated like any other downstream package.

Some scripts that are not part of our normal development workflow have not yet been updated. I may be able to knock a few more off this list, but some just aren’t available in development mode currently:
- All UFSDA app jobs (to be handled separately)
- With associated dev jobs (may still modify and test)
  - JGDAS_ATMOS_GLDAS
  - ~~JGLOBAL_WAVE_GEMPAK~~
  - ~~JGLOBAL_WAVE_POST_BNDPNT~~
  - ~~JGLOBAL_WAVE_POST_BNDPNTBLL~~
  - ~~JGLOBAL_WAVE_PRDGEN_BULLS~~
  - ~~JGLOBAL_WAVE_PRDGEN_GRIDDED~~
  - ~~JGLOBAL_WAVE_PREP~~
- With no associated dev job
  - JGDAS_ATMOS_GEMPAK_META_NCDCJGFS_ATMOS_FBWIND
  - JGFS_ATMOS_FSU_GENESIS
  - JGFS_ATMOS_GEMPAK_META
  - JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF
  - JGLOBAL_ATMOS_EMCSFC_SFC_PREP
  - JGLOBAL_ATMOS_POST_MANAGER
  - JGLOBAL_ATMOS_TROPCY_QC_RELOC
+ All downstream scripts for the above

There are also a few scripts that are not available to the development workflow that I have already made a good-faith effort at updating:
- JGDAS_ATMOS_GEMPAK
- JGFS_ATMOS_PGRB2_SPEC_NPOESS

## Related Issues
Closes #761
Fixes #978
Fixes #999
Fixes #1207
Partially addresses #198
Partially addresses #289
Partially addresses #293
Partially addresses #1299
Partially addresses #1326
jkhender added a commit to jkhender/global-workflow that referenced this issue May 18, 2023
Squashed commit of the following:

commit 608ff650fbc902114203a8d03893e3d26fa05d70
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Mon May 1 22:19:39 2023 -0400

    Remove gdas bump fix files (#1553)

    * Remove bump_ver from versions/fix.ver
    - No longer need a bump version variable in fix.ver.
    Refs #1552

commit 810071bff4878b16e5b70113fff990a1b1e80a4f
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Mon May 1 22:18:31 2023 -0400

    Remove remnant WAVE_RUN from archive (#1556)

    `$WAVE_RUN` is no longer used in workflow, but one reference remained
    in the archive job, which would cause failures. The conditional did
    not need to be replaced by `$RUN` since `$RUN` has already been checked
    at that point.

    Fixes #1548

commit f2ea92bf7345be1669677affab401bf25dd917ff
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Mon May 1 17:08:30 2023 -0400

    Update UFS to develop as of 2023 Apr 17 (#1509)

    Updates the UFS model hash to the version as of 2023 Apr 17.

    Some associated changes accompany this update
    - Restart filenames for MOM6 (ufs-community/ufs-weather-model#1599)
    - Remove store coriolis setting from MOM6 namelist (ufs-community/ufs-weather-model#1599)
    - Change in atm 'log' file names (ufs-community/ufs-weather-model#1704)
    - Additions to diag_table for frozen species (ufs-community/ufs-weather-model#1529)
    - Restart quilting (ufs-community/ufs-weather-model#1633)
    - Update to post itag (ufs-community/ufs-weather-model#1690)

    The switch to restart quilting adds an additional constraint on the size of write groups to be divisible by the number of tiles, so all were increased to the next multiple of 6.

    In the process of updating the diag tables, unused tables were removed.

    Closes #1279 as moot
    Closes #1445
    Closes #1499
    Partially addresses #1277

commit 6d3ed8ac4b71759fbace38f3dd544f7ee018b821
Author: Guillaume Vernieres <guillaume.vernieres@noaa.gov>
Date:   Mon May 1 14:36:01 2023 -0400

    Adapt the marine DA to the new COM structure (#1554)

commit 6c48e94b4f3c7cf180cd443a13b957c8ab87ab4c
Author: Cory Martin <cory.r.martin@noaa.gov>
Date:   Mon May 1 02:02:37 2023 -0400

    Update aerosol DA to use new COM structure (#1551)

    This PR updates the j-jobs and python classes for aerosol DA to use the new COM directory structure.
    This PR also includes removing of the chem history staging for the ICSDIR in setup_expt.py. The aerosol fields are treated as FV3 tracers, so they are either available (warm start) with the fv_tracer files or start at 0 (cold start) and must be spun up from emissions.

    Fixes #1516

commit ec2dd3ab8fb78c4e0aff7d81cb64095fe6130ad6
Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com>
Date:   Fri Apr 28 14:45:09 2023 -0400

    Update UFSDA ATM ens for new COM directory structure (#1538)

    g-w PR #1421 changed the GFS COM directory structure. This PR updates UFSDA ATM ensemble analysis jobs and python script to work with the updated GFS COM directory structure.

    Fixes #1518

commit 406d6900963ca9c5152ef4b84de0d2840b0c2fd3
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Fri Apr 28 12:55:05 2023 -0400

    Run an ensemble forecast of the coupled model (#1545)

commit ff37168eddd52e00b288cde4bdbdb1927369abe6
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Fri Apr 28 12:53:59 2023 -0400

    Fix ocean anl path in staging (#1544)

    The path for ocean analysis files was not properly updated after
    analysis was moved out of model_data into its own directory.

commit 8506ec6977c53018a100fd4881c296016a7df630
Author: Cory Martin <cory.r.martin@noaa.gov>
Date:   Thu Apr 27 15:48:47 2023 -0400

    Two minor bugfixes (#1542)

    Found some odd bugs in the aerosol DA changes that need to be fixed to work properly.
    Not sure how they worked before with testing (by luck?) but these are straightforward fixes
    to implement.

    one has a missing / in a path for FileHandler
    and the other has a missing .nc causing files to not be found

commit 5f66da919c2525e189a169bad1f3fcbab3a64739
Author: AndrewEichmann-NOAA <58948505+AndrewEichmann-NOAA@users.noreply.github.com>
Date:   Thu Apr 27 14:04:55 2023 -0400

    Move guts of ocean analysis post out of j-job (#1539)

    Removes most of content of JGDAS_GLOBAL_OCEAN_ANALYSIS_POST to scripts/exgdas_global_marine_analysis_post.py in GDASApp, now just calls that script.

    Addresses first bullet of #1480

commit 3dd6bbe7a77145ab31d00bd4c23af7649353cbd9
Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com>
Date:   Wed Apr 26 17:02:05 2023 -0400

    Update UFSDA ATM anl for new COM directory structure (#1537)

    g-w PR #1421 changed the GFS COM directory structure. This PR updates UFSDA ATM variational analysis jobs and python scripts to work with the updated GFS COM directory structure.

    Fixes #1517

commit b5d173f6a95ccc5df55aecb9dc490fffb79b26ca
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Wed Apr 26 13:39:45 2023 -0400

    Fix incorrect ocean history tmpl during workflow generation (#1533)

    The trailing '_TMPL' was accidentally ommited from the ocean history
    template used during workflow generation.

    Refs: #1532

commit 789ae97a1210117b9b629c4a47d6cfa999b551ab
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Wed Apr 26 13:39:31 2023 -0400

    Fix ocean stating from flat structure (#1531)

    A typo led to the same variable being defined twice instead of the
    variable that was supposed to be defined.

    Fixes #1530

commit 1e4a24c35088a3db6348156c15bbc81b6f814e40
Author: Guillaume Vernieres <guillaume.vernieres@noaa.gov>
Date:   Wed Apr 26 00:17:56 2023 -0400

    Fix warm-start IC staging (#1529)

    The incorrect path was used for staging coupled components during the COM refactor update (#1421). These are now corrected.

    Fixes #1528

commit 7421d805e6f50a59cd0be611d3ad7568ae603985
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Tue Apr 25 15:37:04 2023 -0400

    Quiet generate_com (#1526)

    Turns off trace for the duration of the generate_com function unless
    DEBUG_WORKFLOW is not set to "NO" (the default). In its place, the
    function will now echo the assignment.

    Closes #1524

commit 23e6cc22a456c4a4294216037673473db0a144af
Author: Guillaume Vernieres <guillaume.vernieres@noaa.gov>
Date:   Tue Apr 25 11:45:16 2023 -0400

    Add ocnanlvrfy job and bugfixes. (#1514)

commit efa5180462f71ec476aeb6c5de4ba074a9d38a29
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Mon Apr 24 15:37:52 2023 -0400

    Reorganize COM and refactor to use templates (#1421)

    Reorganizes the entire COM directory into a more hierarchical structure and uses centrally-defined templates to define COM paths.

    ## Hierarchical Structure
    To organize output a lot better and not have 30000+ files in a single directory, all of the component COM directories are divided into a number of subdirectories for each type of output.

    Sample directory trees

    ### Cycled atmosphere only
    ```
    gdas.20211222/00
    ├── analysis
    │   └── atmos
    │       └── gsidiags
    │           ├── dir.0000
    │           ├── dir.0001
    │           ├── (Additional dir.* directories omitted for brevity)
    │           └── dir.0083
    ├── model_data
    │   └── atmos
    │       ├── history
    │       ├── master
    │       └── restart
    ├── obs
    └── products
        └── atmos
            ├── cyclone
            │   └── tracks
            └── grib2
                ├── 0p25
                ├── 0p50
                └── 1p00

    101 directories
    ```
    ```
    enkfgdas.20211222/00
    ├── earc00
    ├── ensstat
    │   ├── analysis
    │   │   └── atmos
    │   │       └── gsidiags
    │   │           ├── dir.0000
    │   │           ├── dir.0001
    │   │           ├── (Additional dir.* omitted for brevity)
    │   │           └── dir.0039
    │   └── model_data
    │       └── atmos
    │           └── history
    ├── mem001
    │   ├── analysis
    │   │   └── atmos
    │   └── model_data
    │       └── atmos
    │           ├── history
    │           ├── master
    │           └── restart
    └── mem002
        ├── analysis
        │   └── atmos
        └── model_data
            └── atmos
                ├── history
                ├── master
                └── restart

    64 directories
    ```
    ```
    gfs.20211222/00
    ├── analysis
    │   └── atmos
    ├── model_data
    │   └── atmos
    │       ├── history
    │       ├── master
    │       └── restart
    ├── obs
    └── products
        └── atmos
            ├── bufr
            ├── cyclone
            │   ├── genesis_vital
            │   └── tracks
            ├── gempak
            │   ├── 0p25
            │   ├── 0p50
            │   ├── 1p00
            │   ├── 35km_atl
            │   ├── 35km_pac
            │   └── 40km
            ├── grib2
            │   ├── 0p25
            │   ├── 0p50
            │   └── 1p00
            └── wmo

    26 directories
    ```
    ```
    enkfgfs.20211222/00
    ├── earc00
    ├── ensstat
    │   ├── analysis
    │   │   └── atmos
    │   │       └── gsidiags
    │   │           ├── dir.0000
    │   │           ├── dir.0001
    │   │           ├── (Additional dir.* directories removed for brevity)
    │   │           └── dir.0039
    │   └── model_data
    │       └── atmos
    │           └── history
    ├── mem001
    │   ├── analysis
    │   │   └── atmos
    │   └── model_data
    │       └── atmos
    │           ├── history
    │           ├── master
    │           └── restart
    └── mem002
        ├── analysis
        │   └── atmos
        └── model_data
            └── atmos
                ├── history
                ├── master
                └── restart

    64 directories
    ```

    ### S2SWA coupled
    prototype (forecast-only):
    ```
    gfs.20130401/00/
    ├── model_data
    │   ├── atmos
    │   │   ├── history
    │   │   ├── input
    │   │   ├── master
    │   │   └── restart
    │   ├── chem
    │   │   └── history
    │   ├── ice
    │   │   ├── history
    │   │   ├── input
    │   │   └── restart
    │   ├── med
    │   │   └── restart
    │   ├── ocean
    │   │   ├── history
    │   │   ├── input
    │   │   └── restart
    │   └── wave
    │       ├── history
    │       ├── prep
    │       └── restart
    └── products
        ├── atmos
        │   ├── cyclone
        │   │   ├── genesis_vital
        │   │   └── tracks
        │   ├── gempak
        │   │   ├── 0p25
        │   │   ├── 0p50
        │   │   ├── 1p00
        │   │   ├── 35km_atl
        │   │   ├── 35km_pac
        │   │   └── 40km
        │   ├── grib2
        │   │   ├── 0p25
        │   │   ├── 0p50
        │   │   └── 1p00
        │   └── wmo
        ├── ocean
        │   ├── 2D
        │   ├── 3D
        │   ├── grib
        │   │   ├── 0p25
        │   │   └── 0p50
        │   └── xsect
        └── wave
            ├── gempak
            ├── gridded
            ├── station
            └── wmo

    51 directories
    ```

    ### Trees with files
    gdas: https://gist.github.com/WalterKolczynski-NOAA/f1de04901e2703fd24d38146d2669789
    gfs: https://gist.github.com/WalterKolczynski-NOAA/5d1b7c0a0f4b8cfff0be1ae54082316a
    enkfgdas: https://gist.github.com/WalterKolczynski-NOAA/860aaa804e3e70e191e7cae2ebb1055b
    enkfgfs: https://gist.github.com/WalterKolczynski-NOAA/130bfff4650ed8b07cf395079b65d318
    S2SWA P8: https://gist.github.com/WalterKolczynski-NOAA/6ae90c6eafb573878f60682ce47179db

    ## Templating
    All of the COM paths have been replaced with new variables that are derived from a set of templates centrally defined in `config.com`. Variables in the templates are then substituted at runtime to generate the COM paths via the use of `envsubst`. To facilitate this, there is a new function, `generate_com` (see below), provided to automatically generate the COM paths.

    Where possible, COM paths are defined at the j-job level and made read-only. However, many of the EnKF scripts loop over the ensemble members, forcing the definitions to be made at the exscript level instead (and be mutable).

    The arguments to `generate_com()` are the list of COM variables to generate, optionally accompanied by a template to use using a colon to separate them. When no template is specified, the variable will be generated using the ${varname}_TMPL template. Two options are accepted, `-r` and `-x`, which will mark the variable as read-only and for export, respectively (the same as with the `declare` builtin). It is best practice to define any additional variables needed by the template on the same line to avoid adding them to the calling script’s scope. Here are some examples used in the code:

    Generate the path to the atmos analysis directory for the current cycle and `$RUN` (implicitly from the `$COM_ATMOS_ANALYSIS_TMPL` template) and mark as read-only and export:
    ```
    YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_ANALYSIS
    ```

    Generate the path to the atmos history directory for the previous cycle's gdas from the `$COM_ATMOS_HISTORY_TMPL` template and mark as read-only and export:
    ```
    RUN=${GDUMP} YMD=${gPDY} HH=${gcyc} generate_com -rx \
        COM_ATMOS_HISTORY_PREV:COM_ATMOS_HISTORY_TMPL
    ```

    Generate the path to the first ensemble member's history directory of the current cycle and `$RUN` and mark for export:
    ```
    MEMDIR=’mem001’ YMD=${PDY} HH=${cyc} generate_com -x COM_ATMOS_HISTORY
    ```

    ## Additional information
    The staging of initial conditions in `setup_expy.py` has been updated to stage in the new locations. The source of the initial conditions can **either** be in the new hierarchical structure or in the old flat structure and the script will stage the files in the new structure. The destination paths are hard-coded here, so if any changes are made to the analysis, input, or restart templates, they will need to be mirrored in `setup_expy.py`.

    ### Stipulations
    All changes in this PR are subject to approval by several stakeholders, including NCO. Sample COM trees above are subject to revision based on feedback (for instance, file X isn't really an obs file).

    File name updates are not included in this PR. File names (primarily for coupled components) will be updated to comply with NCO standards in a future PR.

    AWIPS jobs are now almost working (they do not in current develop), but one last program is still ending with an error.

    Work on fit2obs is deferred, so that portion of the verify job does not work.

    WAFS scripts are all external and have not yet been updated. WAFS is expected to be packaged separately going forward, so will need to be updated like any other downstream package.

    Some scripts that are not part of our normal development workflow have not yet been updated. I may be able to knock a few more off this list, but some just aren’t available in development mode currently:
    - All UFSDA app jobs (to be handled separately)
    - With associated dev jobs (may still modify and test)
      - JGDAS_ATMOS_GLDAS
      - ~~JGLOBAL_WAVE_GEMPAK~~
      - ~~JGLOBAL_WAVE_POST_BNDPNT~~
      - ~~JGLOBAL_WAVE_POST_BNDPNTBLL~~
      - ~~JGLOBAL_WAVE_PRDGEN_BULLS~~
      - ~~JGLOBAL_WAVE_PRDGEN_GRIDDED~~
      - ~~JGLOBAL_WAVE_PREP~~
    - With no associated dev job
      - JGDAS_ATMOS_GEMPAK_META_NCDCJGFS_ATMOS_FBWIND
      - JGFS_ATMOS_FSU_GENESIS
      - JGFS_ATMOS_GEMPAK_META
      - JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF
      - JGLOBAL_ATMOS_EMCSFC_SFC_PREP
      - JGLOBAL_ATMOS_POST_MANAGER
      - JGLOBAL_ATMOS_TROPCY_QC_RELOC
    + All downstream scripts for the above

    There are also a few scripts that are not available to the development workflow that I have already made a good-faith effort at updating:
    - JGDAS_ATMOS_GEMPAK
    - JGFS_ATMOS_PGRB2_SPEC_NPOESS

    ## Related Issues
    Closes #761
    Fixes #978
    Fixes #999
    Fixes #1207
    Partially addresses #198
    Partially addresses #289
    Partially addresses #293
    Partially addresses #1299
    Partially addresses #1326

commit 408ef65a8e2318125ad61478746024b2d0ef463d
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Mon Apr 24 15:26:58 2023 -0400

    Move GDASApp hash to stable version (#1508)

    Changes the GDASApp hash to a more stable version than the tip of
    develop.
    See post-merge converastion in #1506

commit 699a759f80352aaade4203425c5df24842fcefa3
Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com>
Date:   Mon Apr 24 13:37:04 2023 -0400

    update GDASApp hash to d34f616 (#1505) (#1506)

commit 44f5c28518a7d4b9e06658c6c21b9b1ee1d0918e
Author: AndrewEichmann-NOAA <58948505+AndrewEichmann-NOAA@users.noreply.github.com>
Date:   Mon Apr 24 12:26:14 2023 -0400

    ignore archiving sfluxgrbf00[124578] files when they are not present (#1498)

    * ignore archiving certain sfluxgrbf??? files when they are not present.
    Co-authored-by: Rahul Mahajan <aerorahul@users.noreply.github.com>

commit 2e88dbfc5ff7a0bb2c6c1630b0c2783d76049d21
Author: Jiarui Dong <Jiarui.Dong@noaa.gov>
Date:   Mon Apr 24 09:17:48 2023 -0400

    Add initial land DA cycling scripts (#1351)

    This PR adds rocoto jobs, jjobs, config files and updates to the machine.env to enable land-da  cycling capability.

commit f159d39a3b28dfcc120cdcdf87d11a611c75061f
Author: TerrenceMcGuinness-NOAA <terrence.mcguinness@cox.net>
Date:   Fri Apr 21 15:46:35 2023 -0400

    Add CI cron jobs (#1476)

    As a maintainer of the CI framework, I need a set of cron jobs that will fully automate the CI pipeline so that whenever the appropriate label on GitHub is created the PR gets cloned and built followed by a set of functional experiments that are executed and reported on.

commit 587e469a1be5e278326fc0cbceefedc90caf75bf
Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com>
Date:   Fri Apr 21 13:28:11 2023 -0400

    Refactor UFS-DA ATM ens component to use python g-w (#1373)

    This PR contains UFS-DA ATM ens changes originally in PR #1354.

    Below is a list of changes in this PR
    - rename UFS-DA ATM ens jobs atmensanalprep, atmensanalrun, and atmensanalpost as atmensanlinit, atmensanlrun, and atmensanlfinal, respectively
    - replace UFS-DA ATM ens shell scripts with python scripts
    - rename UFS-DA ATM ens j-jobs consistent with initialize, run, and finalize functions. Update j-jobs to execute python scripts instead of shell scripts
    - rename UFS-DA ATM ens rocoto jobs to be consistent with initialize, run, and finalize functions. Update jobs to set python paths and execute renamed j-jobs
    - update rocoto workflow generation to new names for UFS-DA ATM ens jobs
    - update UFS-DA ATM ens job names in machine dependent env files to new job names
    - rename UFS-DA ATM ens configuration files consistent with change in job names
    - add python class for UFS-DA ATM ens analysis
    - unify JEDIEXE link for UFS-DA Aerosol, ATM, and ENS
    - properly set `cycledefs` for `gfsatmanlinit`
    - remove unused `FV3JEDI_FIX` from atmanl and atmensanl config

    The above changes are part of a larger g-w effort to transition from shell scripts to python. UFS-DA Aerosol was the first GDASApp system to be converted. PR #1372 converted UFS-DA atmospheric variational DA to the python based approach.  This PR converts converts UFS-DA atmospheric local ensemble DA to the python based approach.

    Fixes #1313
    Depends (in part) on #1370 and #1372 and NOAA-EMC/GDASApp#388

commit 7db70496063fe32928cacb9790e45a1e987a3510
Author: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com>
Date:   Fri Apr 21 12:42:00 2023 -0400

    Added Fit2Obs to S4. #1489 (#1497)

    Adds Fit2Obs support for S4 by adding the module use/load commands to the module_base.s4.lua modulefile.

    Fixes #1489.

commit fb236523140b09686a4c2961e0552e7bd5dbf04f
Author: Guillaume Vernieres <guillaume.vernieres@noaa.gov>
Date:   Fri Apr 21 12:40:11 2023 -0400

    Add new task to post-process marine DA (#1485)

    The work in this PR is only meant to bring us closer to a viable WCDA system. The refactoring of the marine DA to the new standard introduced by @aerorahul and used by @RussTreadon-NOAA and @CoryMartin-NOAA will be addressed after this [Epic](https://github.com/noaa-emc/gdasapp/issues/416) is resolved.

    ### Motivation and context
    This work adds a separate j-job ```JGDAS_GLOBAL_OCEAN_ANALYSIS_CHKPT ``` that calls a script that will be in the GDASApp for the time being (PR to come once this is merged) and does the following:
    - prepares the `SOCA` increment for `MOM6` IAU
    - recursively apply the `SOCA2CICE` change of variable. A mapping from the 2D seaice analysis variable to the CICE6 dynamical and thermodynamic variables.
    - merge the `Tref` increment from the `NSST` analysis with the `SOCA` increment

    ### Summary of the change
    - HPC environment: the new j-job runs a `JEDI` executable twice and one python script. All are serial jobs but the JEDI exec need to be called as an MPI job with 1 pe.
    - `jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_CHKPT`, that script point to a ex-script that is not in the GDASApp develop yet.
    - addition of the option to merge the Tref NSST increment with the MOM6 increment. This is triggered with the `DO_MERGENSST` switch
    - The new j-job dependency was added, with the option to wait for the surface analysis file `sfcanl.nc` if `do_mergensst` is true.

    Refs: #1480.
    Fixes NOAA-EMC/GDASApp/#418

commit 740daba8d6d34a327199701c1df7d6e10da73ec5
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Fri Apr 21 03:11:51 2023 -0400

    Create fix file issue template (#1495)

    Create fix_file.md template file for new fix file request issue. This should help formalize the process and document updates.

    New issue will auto-assign to @KateFriedman-NOAA and @WalterKolczynski-NOAA (the developers with access to make fix files changes).

    Fixes #1492

commit 35942896ca4eeef243fe35d47416be64fe0058ff
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Thu Apr 20 10:00:23 2023 -0400

    Update TC_tracker version to v1.1.15.6

    New ens_tracker.v1.1.15.6 tag installed on supported platforms. Adds Jet support and moves package to use new EPIC-installed hpc-stacks on R&Ds.

    Refs #1463

commit 86c3923bf60b1ce39165070bf2e5c3d60193d6dd
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Thu Apr 20 09:39:56 2023 -0400

    Update GSI-Monitor hash to reflect recent assimilation changes.

    New GSI-Monitor hash to 45783e3 to update two fix files.

    Refs #1483

commit 2f347f6ddc770f2524394af25561a8da0d8dfb50
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Wed Apr 19 15:54:19 2023 -0400

    Fit2Obs updates for package reorganization and invocation via module (#1484)

    The Fit2Obs repo has been reorganized to meet a few NCO standards and to add a module for invoking it from other packages.

    Refs #1472

commit b2ed8648f80946de85983a51664b120540854cc9
Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com>
Date:   Tue Apr 18 16:21:14 2023 -0400

    Refactor UFS-DA ATM var component to use python g-w (#1372)

    This PR contains UFS-DA ATM var changes in PR https://github.com/NOAA-EMC/global-workflow/pull/1354.

    Below is a list of changes in this PR
    - rename UFS-DA ATM var jobs `atmanalprep`, `atmanalrun`, and `atmanalpost` as `atmanlinit`, `atmanlrun`, and `atmanlfinal`, respectively
    - replace UFS-DA ATM var shell scripts with python scripts
    - rename UFS-DA ATM var j-jobs consistent with initialize, run, and finalize functions.  Update j-jobs to execute python scripts instead of shell scripts
    - rename UFS-DA ATM var rocoto jobs to be consistent with initialize, run, and finalize functions.  Update jobs to set python paths and execute renamed j-jobs
    - update rocoto workflow generation to new names for UFS-DA ATM var jobs
    - update UFS-DA ATM var job names in machine dependent `env` files to new job names
    - rename UFS-DA ATM var configuration files consistent with change in job names
    - add UFS-DA ATM yaml files for UFS-DA fix files, crtm files, and increments
    - add python class for UFS-DA ATM var analysis
    - link UFS-DA python increment conversion script from GDASApp to g-w `ush` directory

    The above changes are part of a larger g-w effort to transition from shell scripts to python.  UFS-DA Aerosol was the first GDASApp system to be converted.   This PR represents the second GDASApp system, UFS-DA atmospheric variational DA, to be converted.  PR #1373 contains changes to convert the UFS-DA ensemble DA to a python based approach.

    Fixes (in part) #1313
    Depends (in part) on PR #1370 and [GDASApp #388](https://github.com/NOAA-EMC/GDASApp/pull/388)

commit 70a7d99bb65fd7661d7d2bac10633c0dda5d39fd
Author: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com>
Date:   Tue Apr 18 10:26:00 2023 -0400

    Port the global workflow to Jet (#1301)

    Provides initial cycled and free-forecast support for the global workflow on Jet.  References #357.  Not included in this port is support for GLDAS, verif-global, and TC_tracker.

    Jet will eventually support the following, with the currently tested options bolded, on xjet and kjet partitions
    - uncoupled, cycled and free-forecast experiments at C48, C96, C192, C384, and C768 resolutions
    - coupled, free-forecast experiments (ATMA, ATMW, S2S, and S2SW) at C384
    ~Note that currently coupled ICs are not available on Jet, so only ATM-only experiments can performed.~

    Fixes #357

commit d2b268ab3d965c9a2cf998dd048ac7a3ee7dc36b
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Mon Apr 17 21:15:04 2023 -0400

    Consolidate wave parm files (#1477)

    When the new wave parm directory was created, the existing parm files
    were not moved into the new directory. These files were used for AWIPS,
    so not generally tested.

commit 8dcfaa6fbc5e0a94d44952f710f77c3b18ffa50d
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Mon Apr 17 13:37:26 2023 -0400

    Split MPMD stdout into tasks on slurm (#1469)

    It can be difficult to debug MPMD jobs because their logs are all written concurrently to a single file. While the use of tags to designate which task via the preamble and PS4 can help identify which line is from which task, it is still difficult to follow a single task through the log, particularly for larger MPMD jobs with dozens of tasks.

    Individual stdout files are now created by using the `srun` `--output` option. These files are written to the working directory (in `$DATA`).

    Fixes: #1468

commit 6e7e4f1db78bbb67d94d54bdcb0a021a626b01f1
Author: Henry R. Winterbottom <49202169+HenryWinterbottom-NOAA@users.noreply.github.com>
Date:   Mon Apr 17 09:59:01 2023 -0600

    GFS fixed-file YAMLs. (#1471)

    Add a few fixed-file YAMLs used in the GFS.

commit 2ec4125f67e6b6c1d8dee6f6fcf1d0798f587a31
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Fri Apr 14 20:55:57 2023 -0400

    Initial blocks in place for forecast refactor work (#1466)

    This PR is a first in a series of PR for transforming the forecast job.
    This PR does not affect current function of the forecast job.
    This PR:
    - adds initial blocks to separate task specific and model configuration for the task blocks

commit d47f33f142824c0d2111f7e2f08c43f99b33bff4
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Fri Apr 14 15:51:14 2023 -0400

    Update buoys file and fix boundary point jobs (#1465)

    The buoy file used by the wave jobs ([wave_gfs.buoys](https://github.com/NOAA-EMC/global-workflow/blob/develop/parm/wave/wave_gfs.buoys)) was just a copy of [wave_gfs.buoys.dat](https://github.com/NOAA-EMC/global-workflow/blob/develop/parm/wave/wave_gfs.buoys.dat). In addition to being a duplicate, the file was a truncated version without any boundary points, causing boundary point jobs to fail.

    The duplicate file has been removed and replaced by a symlink to the full buoy list [wave_gfs.buoys.full](https://github.com/NOAA-EMC/global-workflow/blob/develop/parm/wave/wave_gfs.buoys.full). This maintains the provenance of the file and prevents the former duplicate from becoming out-of-sync. Users who still want to use the truncated buoy can change the target of the symlink to wave_gfs.buoys.dat.

    There are also a few minor bugs fixes that were necessary to get boundary point jobs to run:
    - `FHMAX_WAV_IBP` had been set in the bndpnt config file but not used in the j-job. This was invisible unless a user changed the value, since the config and j-job used the same default.
    - Checks against `FHMAX_WAV` would set the unused `FHMAX_WAV_IBP` to the max value instead of the `FHMAX_WAV_PNT` used for the loop. This is a problem when running for less than 180 h (the default value).
    - The boundary point bulletin job was not in the env job list for Orion (other machines have it).

    Now the boundary point jobs set `FHMAX_WAV_PNT` to `$FHMAX_WAV_IBP`. `FHMAX_WAV_IBP` was moved from the bndpnt config to config.wave so it is visible to bndpntbll as well.

    Fixes #1464

commit e496e393b16565207c227f4b69a5691d97098624
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Wed Apr 12 15:59:00 2023 -0400

    Move Fit2Obs to stand-alone job (#1456)

    This PR moves the Fit2Obs invocation out of the vrfy job and into its own dedicated `fit2obs` job in the gdas suite. This new dedicated job uses the latest Fit2Obs tag `wflow.1.0`.

    The Fit2Obs requires a type of spin-up. The job looks back `VBACKUP_FITS` hrs and needs available inputs for that lookback cycle in the `ROTDIR`. The `jobs/JGDAS_FIT2OBS` script will first check that `xdate` (`CDATE` - `VBACKUP_FITS`) > `SDATE` and then if met, will check that the needed inputs exist.
    - If `xdate>SDATE` is not yet satisfied, the job will exit 0 with "Too early for FIT2OBS to run. Exiting.". The conditional is greater-than and not greater-than-or-equal since the first half cycle generally does not have some of the needed inputs (e.g. prepbufr). Thus the first half cycle is not included in the valid lookback cycles. This avoids erroneous job failures for the first cycle to run the Fit2Obs package. Additional logic could be introduced to include the half cycle if all available inputs are available.
    - If any of the needed inputs are missing the job will abort with "FATAL ERROR: FILE MISSING: ${file}".

    This spin-up means that the first cycles will run the job but exit 0 immediately. The 6th cycle (if `VBACKUP_FITS=24`) will be the first cycle to run the Fit2Obs package and produce output in the online archive.

    Changes:

    1. Remove fit2obs variables and settings from `config.vrfy` and into newly created `config.fit2obs` for `fit2obs` job.
    2. Remove fit2obs submission/invocation from `jobs/rocoto/vrfy.sh`.
    3. Create new `fit2obs` job scripts: `jobs/rocoto/fit2obs.sh` and `jobs/JGDAS_FIT2OBS`
    4. Add new `fit2obs` job to setup scripts: `workflow/applications.py` and `workflow/rocoto/workflow_tasks.py`
    5. Add new `fit2obs` job to all env files.
    6. Add new `fit2obs` job into `config.resources` (use 1 node on WCOSS2 and 3 nodes elsewhere).
    7. Add `export DO_FIT2OBS="YES"` to `config.base.emc.dyn`.

    Resolves #1405
    Resolves #1232

commit 363a2b47de11ab327408d2df20a3718f25062fa5
Author: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com>
Date:   Wed Apr 12 14:42:50 2023 -0400

    Rework arch job dependencies (#1455)

    This reworks the dependencies for arch tasks so that if there are no verification tasks selected and it is an uncoupled experiment, a dependency for the cycle's post jobs is added. It also fixes the dependency checks in rocoto.py to check for an empty list or string instead of checking the first element of a list, which may not exist if no dependencies are given. Lastly, it issues a warning to the user if there are no dependencies for any job.

    Fixes #1451

commit 7e661f4cd00cf99b12e55574318bbd0eb1a5eaa0
Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com>
Date:   Wed Apr 12 10:36:58 2023 -0400

    Stage bias files for UFSDA aerosols (#1370)

    Updates UFSDA aerosols to stage bias files. Also adds in the threads and aprun commands for the run portion of the UFDA aero jobs.

    Fixes (in part) #1313.

commit d5ae3328fa4041b177357b1133f6b92e81c859d7
Author: Henry R. Winterbottom <49202169+HenryWinterbottom-NOAA@users.noreply.github.com>
Date:   Tue Apr 4 03:34:48 2023 -0600

    Add logging level to logger (#1442)

    This PR provides task-level support for the respective pygfs applications. As an example, logging-level may be defined within jobs/JGLOBAL_FORECAST as follows.

    ```
    #! /usr/bin/env bash

    source "${HOMEgfs}/ush/preamble.sh"
    source "${HOMEgfs}/ush/jjob_header.sh" -e "fcst" -c "base fcst"

    export LOGGING_LEVEL="DEBUG"
    ```

    This feature allows a user to change the logging level from the run-time environment rather than requiring modification of the respective pygfs module or task.

    Fixes #1438

commit de81c5911c308679366b97fda19f015b1388d9dc
Author: TerrenceMcGuinness-NOAA <terrence.mcguinness@cox.net>
Date:   Mon Apr 3 17:53:12 2023 -0400

    Update hash for GDASApp to db2f998 (#1443)

    When an update described below made a change to the HASH in the `${HOMEgfs}/sorc/checkout.sh` script for the corresponding GDASApp it was entered in error:

    _3e73038c - Use V2 version of fix files needed for Thompson MP (#1422) (7 days ago) <Rahul Mahajan>_

    Examining the GDASApp repo it should be confirmed that the correct HASH should be **db2f998**

    Fixes #1441

commit 0d1e993b2b5db6160c4a6b88b67899dc8e9754f8
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Fri Mar 31 09:58:22 2023 -0400

    Remove para module paths for ncdiag on WCOSS2 (#1437)

    The ncdiag/1.0.0 module moved from para to prod on WCOSS2 on March 27th (RFC 10769).

    * Remove para module paths for ncdiag on WCOSS2 in global-workflow module_base.wcoss2.lua
    * Update GSI-EnKF hash to update ncio and ncdiag
    * Update GSI-Monitor hash to update ncdiag

    Refs #1426

commit 88e091a8e92cbc813830b21562fa392f8dd2d3d9
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Fri Mar 31 02:50:53 2023 -0400

    Use P8 settings for C384 atm by default (#1440)

    Switches the default C383 FV3 timestep to 300s and reduces the decomposition for gfs CDUMP to 8×8 with 48 write tasks per group. These are the settings used by P8. MDAB has advised these settings can be used for non-P8 runs.

    Fixes #1439

commit 3cfdbe04e864847a3f89b6f8b89799b18b7e1f5e
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Wed Mar 29 10:46:35 2023 -0400

    Enforce rstprod on relevant tarballs (#1436)

    Ensures that tarballs that contain restricted data are properly restricted to the rstprod group.

    Fixes #1433

commit 809b33bf50193a083c7ffdbd87bb83e0c78b2a9c
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Tue Mar 28 09:44:37 2023 -0400

    GFSv16.3.5[6] GSI updates (#1404)

    * Update GSI hash to 31b8b29
    * Remove temporary hack that forced GSI to build with crtm/2.4.0
    * Remove G18 ABI from exglobal_atmos_analysis.sh
    * Remove GMI from processing in the GSI

    Refs #1322, #1321

commit 222f055e1e082faf7f9e489297e5c46ccc582a20
Author: Cory Martin <cory.r.martin@noaa.gov>
Date:   Mon Mar 27 17:48:39 2023 -0400

    Have aerostat tar file extract to basename only (#1424)

    This bugfix makes it so that when the aerosol diags are extracted, they are extracted to the directory directly and not a full directory tree to where the runtime directory was located.

    Closes #1423

commit c549acb914c7ae479740c8f1007f5f3f36b91db5
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Mon Mar 27 10:00:18 2023 -0400

    Updates in the aerosol tasks (#1420)

    -removes the definition of environment variables in the shell script j-jobs
    -eliminates the use of !ENV in the yaml files for aerosol jobs.
    -eliminates use of CDATE in the python tasks. Use current_cycle and previous_cycle
    -uses jinja templates where appropriate.
    -uses the Executable class to run the variational analysis executable
    -adds verbose logging to the actions in the aerosol analysis task
    -uses string templates instead of string replace where looping over tiles is required.
    -links aerosol ICs when cycling with the ATMA app. ICs courtesy of @CoryMartin-NOAA

    Co-authored-by: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>

commit 3e73038c12f8261543c874cfffed11f8ce496399
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Fri Mar 24 12:40:17 2023 -0400

    Use V2 version of fix files needed for Thompson MP (#1422)

    It has been noted by some developers who look at the run log in realtime that the model takes a while during the calculation of Thompson tables.
    Specifically see this part of the output from the forecast log:

    ```
       0: Calculating Thompson tables part 1 took      0.334 seconds.
       0: Calling radar_init took      0.000 seconds.
       0:    creating rain collecting graupel table
       0:  ThompMP: computing qr_acr_qg
       0:  Writing qr_acr_qgV2.dat in Thompson MP init
       0: Computing rain collecting graupel table took    203.539 seconds.
       0:    creating rain collecting snow table
       0:  ThompMP: computing qr_acr_qs
       0:  Writing qr_acr_qsV2.dat in Thompson MP init
       0: Computing rain collecting snow table took     36.694 seconds.
       0:    creating freezing of water drops table
       0: Computing freezing of water drops table took      2.084 seconds.
       0: Calculating Thompson tables part 2 took      2.084 seconds.
       0:   ... DONE microphysical lookup tables
    ```
    These tables are already available in the `fix` space and are being used in the ufs-weather-model regression tests.

    Fixes #1411

commit 4ff622a36e3f9aa2f39e847a7b9e2b536ebcdc0a
Author: TerrenceMcGuinness-NOAA <terrence.mcguinness@cox.net>
Date:   Thu Mar 23 01:55:42 2023 -0400

    Add experiment creation for CI (#1388)

    Adds a new python script to create an experiment on the fly for CI.

    Also adds detect_machine.sh.

    Closes #1375

commit 6bb2d64fa171604b9d5e8f58e4edf8bf946840e7
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Wed Mar 22 15:44:00 2023 -0400

    Update state of operations in RTD to GFSv16.3.7 (#1417)

    Update the "State of operations" blurb in index.rst to note the updated GFSv16.3.7 operational version.

    Refs #1368

commit ea15b26585c0c804f44776cabb6ae3d08b76234f
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Wed Mar 22 14:07:06 2023 -0400

    Fix typo in wave awips gridded task def (#1412)

    The task name was misspelled in the task definition for gridded wave
    awips.

commit 74b344ddb28fb40b8a65479f1584cf7daa376dfe
Author: Henry R. Winterbottom <49202169+HenryWinterbottom-NOAA@users.noreply.github.com>
Date:   Wed Mar 22 09:05:42 2023 -0600

    Make new methods in yaml_file be public.

commit 478f48ede4ee28e8193ff02befb0a954bd7eca61
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Tue Mar 21 17:18:46 2023 -0400

    Fix groupsize for early cycle EnKF rocoto task (#1408)

    When generating the rocoto tasks for enkfgfs, the different groupsize
    for gfs would not be picked up because the cdump comparison was not
    properly updated when the cdump/run was updated to include 'enkf'.

commit 49b96ed037c6919c651c6b7dd2b6c9fbe9866904
Author: ChunxiZhang-NOAA <49283036+ChunxiZhang-NOAA@users.noreply.github.com>
Date:   Mon Mar 20 15:35:19 2023 -0400

    Use fracoro data for all new UFS applications  (#1242)

    The new fracoro data should be used for all new UFS applications no matter if it uses frac_grid or not.

    Most problems in Issue[#863](https://github.com/NOAA-EMC/global-workflow/issues/863) have been resolved. However, one problem remains, e.g., the latest fix, mask and oro datasets (fracoro) created by Shan/Mike/Helin should work for both fractional and non-fractional grid.

    Note that it also requires the changes in UFS_UTILS. An corresponding PR[#741](https://github.com/ufs-community/UFS_UTILS/pull/741) in UFS_UTILS has been created.

    Fixes: #863

    Dependency: UFS_UTILS [PR#741](https://github.com/ufs-community/UFS_UTILS/pull/741)

commit e5af1b45f5aaa3acfe8e6ee37e690edff9aa608e
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Fri Mar 17 13:02:54 2023 -0400

    Updates to python tools for use in DA tasks (#1400)

    Adds significant updates to pygw tools that expand the use of templated yaml files to make their use in the tasks clear and easier to use.
    All changes come with associated tests.
    New tests are added for timetools.py and jinja.py.
    New methods to parse a "simple" $( ... ) templated as well as jinja2 {{ ... }} templated yaml files are added along with their tests.

commit 3fe3592338598ef6b957d29e809dc70df1f82cec
Author: Guillaume Vernieres <guillaume.vernieres@noaa.gov>
Date:   Wed Mar 15 01:48:46 2023 -0400

    Marine DA prep j-job needs more memory (#1393)

    The concatenation step runs out of memory in the marine-gdas prep step. This is not optimized and probably overkill, but 24GB should cover all cases.

    Fixes #1389

commit 6cf486190c83f64370f1c2dccabd85700fbc0a3a
Author: TerrenceMcGuinness-NOAA <terrence.mcguinness@cox.net>
Date:   Tue Mar 14 15:50:18 2023 -0400

    Update rocoto_viewer to replace deprecated getiterator call (#1397)

    Rocoto viewer was using a deprecated function `getiterator` that caused it to fail on python 3.8+. The replacement method `iter` is now used.

    Fixes #522

commit 2929430369b0e6b4e6d42b45637f552f8cb7e59e
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Mon Mar 13 16:29:51 2023 -0400

    Reset modules properly at beginning of forecast job (#1394)

    Following the PR last week that enabled ESMF threading, we had to replace `load_fv3gfs_modules.sh` with loading ufs-weather-model specific modules for the `fcst` and `efcs` jobs.

    `module-setup.sh` is needed after `detect_machine.sh`.  Previously, both these functions were performed in `load_fv3gfs_modules.sh`.

commit 995e2b0c819d2bf45e9cde7b3fb4dd638034f91d
Author: Henry R. Winterbottom <49202169+HenryWinterbottom-NOAA@users.noreply.github.com>
Date:   Fri Mar 10 18:34:28 2023 -0700

    Add base workflow exception class (#1392)

    Adds a new WorkflowException that can serve as a base class for any new exceptions we wish to create to cover errors not well represented by the native python exceptions.

    Also adds a test exception.

    Closes #1391.

commit aa8175dc39bd64e895d2362dc0ec37ed76ababef
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Fri Mar 10 19:50:28 2023 -0500

    Enable ESMF threading in the ufs-weather-model forecast (#1371)

    Transitions the workflow to use ESMF-managed threading for UFS. This allows for per-component specification of threads rather than a single value for all components.

    The resource calculation is updated to handle the different thread counts for each component. The variable `NTHREADS_FV3` (which set the global thread count) is removed. Now each component has a `${COMPONENT}THREADS` variable.

    In order to run properly, the launcher commands for each machine had to be modified so the number of processes is the number of CPUs on all nodes.

    Also, the forecast job now uses the UFS modulefile rather than the typical workflow runtime module. `prod_util` is then loaded manually as it is needed to run the workflow. Additionally, on WCOSS2 `cray-pals` is also loaded manually as it is necessary. This arrangement is temporary until a more permanent solution is implemented.

    Notes:
    1. As a result of threading, the `WRTTASKS_PER_GROUP` in the `model_configure` will end up to be a multiple of the number of threads used in quilting.  At present, they are assumed to be the same as the threads for FV3.
    2. The `WCOSS2.env` file needs a look at as the sections for steps `fcst` and `efcs` are different and very different when compared to the [job card](https://github.com/ufs-community/ufs-weather-model/blob/develop/tests/fv3_conf/fv3_qsub.IN_wcoss2) in the ufs-weather-model for WCOSS2.

    Closes #1042

commit 8a2d5061da3c3067291e51680408339ec2efec5c
Author: AndrewEichmann-NOAA <58948505+AndrewEichmann-NOAA@users.noreply.github.com>
Date:   Thu Mar 9 16:11:22 2023 -0500

    Cleanup ocean, ice, and med directories when CDUMP=gdas (#1387)

commit 780a511e51c83b339b02709a782c123a16c5788d
Author: AndrewEichmann-NOAA <58948505+AndrewEichmann-NOAA@users.noreply.github.com>
Date:   Thu Mar 9 15:59:40 2023 -0500

    Archive ocean and ice files when CDUMP=gdas (#1384)

commit d8fdd29ab236798937fbd1c5e1aa9266db98dcc0
Author: Guillaume Vernieres <guillaume.vernieres@noaa.gov>
Date:   Wed Mar 8 16:38:06 2023 -0500

    Updated diag_table_da to allow output of ocean fields for SOCA at various resolutions (#1382)

commit 815823997e7886dd4c054fa2bf573dabd5d6047c
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Wed Mar 8 09:38:11 2023 -0500

    Add mechanism to detect machine and clean module env. (#1381)

commit 4437181a72629e6f6f7214de749dc890e32a4994
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Tue Mar 7 08:57:10 2023 -0500

    Update initial condition documentation and Orion BASE_CPLIC path (#1376)

    * The initial conditions section of the Read-The-Docs documentation is updated to add information about staged initial conditions that were pulled into global account space on supported platforms. Some reformatting of the section is also done.
    * The Orion BASE_CPLIC path is also updated after prototype ICs were copied from @WalterKolczynski-NOAA's personal area on Orion to the "glopara" area maintained by @KateFriedman-NOAA.

    Refs #1345

commit 1a48aca822b1caf9325b37e9819243f91454f4e6
Author: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com>
Date:   Tue Mar 7 07:56:59 2023 -0500

    Add a missing dollar sign in the earc script (#1378)

commit 33e8a8ea56920bca4e31bf961647ec989f24582b
Author: TerrenceMcGuinness-NOAA <terrence.mcguinness@cox.net>
Date:   Mon Mar 6 22:52:33 2023 -0500

    Add BASH scripts for initial CI testing system using GitHub Labels (#1362)

    This PR is a set of high-level BASH scripts for creating a basis of a CI System using GitHub labels.
    These scripts will first poll the **global-workflow** GitHub repo for open PR's with the label **${hostname}-CI**.  The label is the designated RDHPCS system the CI functional tests will run.  A second script will then clone and build from the designated PRs on the specified RDHPC.

    Closes #1374

commit 47afc78568563bc4c55208e567bfb967684eae0a
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Fri Mar 3 10:43:54 2023 -0500

    Consolidate ocean, ice and wave task info into config.ufs (#1334)

    config.fv3 is now renamed as config.ufs and contains ocean, ice, and wave task information

    * config.fv3 is used to record FV3 and write grid component task decomposition based on resolution.
    * Ocean (MOM6) and Ice (CICE6) decomposition, tasks and timesteps are added to config.ufs.
    * Updates are made to config.fcst and config.efcs to source config.ufs based on the configuration of the (coupled) model.
    * Several configurations were made deep in parsing_namelists_MOM.sh, which have now been elevated to config.ocn
    * Some improvements are made to limit the export of variables from functions in nems_configure.sh.
    * This will help with the ESMF threading work as it breaks down the work into multiple steps.

commit 0c523d9b75a6a5d24a55fcc3f56ed505dedac086
Author: Jessica Meixner <jessica.meixner@noaa.gov>
Date:   Thu Mar 2 16:27:53 2023 -0500

    Update to HR1 (#1197)

    Updates settings for the HR1 prototype

    Compilation is switched to "mixed-mode", with a 32-bit atmosphere and 64-bit for other components.

    Atmosphere physics options are updated.

    Changing the wave model to run on the outer loop and the resolution to ¼-deg.

    The model version was already updated previously, but this commit updates some of the associated input files.

commit 5d6c71ab34667ef0dac777a89a19a37edd2652fc
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Thu Mar 2 11:53:10 2023 -0500

    Add options while setting up Rocoto XML that are useful for CI (#1365)

    Adds options for maximum tries (default is 2), cyclethrottle (default is 3), taskthrottle (default is 25) and verbosity (default is 10)

commit 6024e68d8f519d4d1de224de0d7d6799e02f2e07
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Thu Mar 2 11:06:17 2023 -0500

    Revert "Add options while setting up Rocoto XML that are useful for CI (#1363)" (#1364)

    This reverts commit c318cbdefc80b390a6bf897229fd2e206eb6873c.

commit 53952153eea6a9afc83512f84d860823b300bc97
Author: Guillaume Vernieres <guillaume.vernieres@noaa.gov>
Date:   Thu Mar 2 10:02:14 2023 -0500

    MOM6 backgrounds in cycled DA mode were hardcoded for IAU  (#1355)

    * fixed mom6 bkg output
    Co-authored-by: Rahul Mahajan <aerorahul@users.noreply.github.com>

commit c318cbdefc80b390a6bf897229fd2e206eb6873c
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Thu Mar 2 09:50:09 2023 -0500

    Add options while setting up Rocoto XML that are useful for CI (#1363)

    maxtries, cyclethrottle, taskthrottle and verbosity are command-line options to setup_xml.py

commit 0e1c753e7bd4d4e98b40372168578198c4300124
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Thu Mar 2 09:48:51 2023 -0500

    Run executables or scripts from within python. (#1341)

    - adds the ability of running executable (binary or shell scripts) via the subprocess.Popen call
    - allows setting env. variables for the subprocess without having to modify the calling environment.
    - allows passing custom arguments to the executable
    - allows capturing stdout and stderr as well as pass stdin

commit 2e92b7c582f116434ca49af7f7e6b5ec48842f48
Author: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com>
Date:   Wed Mar 1 16:21:13 2023 -0500

    Remove extra 'enkf' from folder/file names in archive scripts (#1360)

    The archiving scripts have had preceding `enkf`s removed and `$CDUMP` has been replaced with `$RUN` throughout the scripts.  This fixes #1353 and partially addresses #1299.

    Fixes #1353
    Refs #1299

commit 0a18568a58d4c33e63d728424223900e98ee0350
Author: Xianwu Xue - NOAA <48287866+XianwuXue-NOAA@users.noreply.github.com>
Date:   Wed Mar 1 16:12:06 2023 -0500

    Fix bugs to create analysis files for early cycle (#1343)

    The cycled early enkf should generate analysis files, however, the CDUMP was changed from "gfs" to "enkfgfs" for enkfgfs* jobs, some of the scripts should do the corresponding changes. This PR is to fix this bug.

commit edbf8d955e04b54909c20379d4f674d0a9f3e1f7
Author: Cory Martin <cory.r.martin@noaa.gov>
Date:   Wed Mar 1 16:10:59 2023 -0500

    Make necessary bugfixes to get aerosol cycling going (#1349)

    Makes a number of bugfixes that were overlooked in #1106 that now allow for 3DVar aerosol DA cycling on Hera/Orion.

    Also updates the GDASApp hash to the most recent commit in develop.

commit c4d05e57d5e7192ac3b8a93e6880efe5bbad2e65
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Tue Feb 28 16:27:46 2023 -0500

    Create production_update.md (#1348)

    New template for operational production updates. Includes checklist for workflow side.

commit 8134f975d51905789f7a59b07d713306a91ba10b
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Mon Feb 27 14:36:03 2023 -0500

    Update feature_request.md

commit a243b5c1c2bb21a47bcc9dee260ab5b90bb06843
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Mon Feb 27 12:21:27 2023 -0500

    Create a template for requesting new features in the global workflow to separate from general issues (#1336)

commit 0c621d0b9ead8d46fb287d4eb547386b3335f9f8
Author: AndrewEichmann-NOAA <58948505+AndrewEichmann-NOAA@users.noreply.github.com>
Date:   Fri Feb 24 19:30:00 2023 -0500

    allow script to access eva yaml generators (#1331)

commit f69d3e54d92b257bf1102c13eb1197a967288c39
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Fri Feb 24 12:06:46 2023 -0500

    Add license and status badges for the CI (#1332)

commit ea414291341e77eb6eee64241a702141152efcfd
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Wed Feb 22 17:02:15 2023 -0500

    Update ufs_utils hash that supports global_cycle with NoahMP. (#1315)

    - Updates ufs_utils hash that contains upgrades to `global_cycle` that  updates only the greenness fraction.  This update expects a pre-existing surface restart file to be updated.
    - Corressponding updates to scripts that call `global_cycle` to stage the surface restart file to update.
    - Updates to `checkout.sh` and `Externals.cfg`.  Temporary pointers to [this](https://github.com/GeorgeGayno-NOAA/UFS_UTILS/tree/feature/cycle_noahmp) branch until `develop` in `ufs_utils` is updated.
    - Updates to `setup_expt.py` to force using the same `CCPP_SUITE` and `IMP_PHYSICS` for cycled and forecast-only modes and all apps.
    - Only builds utilities from ufs_utils that are used in the GFS application.

    @GeorgeGayno-NOAA still needs to work with the land team to determine which fields (other than greenness fraction) need to be updated through `global_cycle`.

    Depends on https://github.com/ufs-community/UFS_UTILS/pull/774
    Fixes #1314

    Updating the UFS_utils hash will also resolve #1275
    Fixes #1275

commit 6addad94b510b08a83e43236b9d8c430b8aeddce
Author: AndrewEichmann-NOAA <58948505+AndrewEichmann-NOAA@users.noreply.github.com>
Date:   Wed Feb 22 15:02:07 2023 -0500

    Save yaml for ocn analysis post and fix bug to save logs (#1318)

    Temporarily saves var.yaml to comrot in ocean analysis post and fixes a bug that caused log files to not be saved. Necessary for https://github.com/NOAA-EMC/GDASApp/issues/202. This is temporary pending an evaluation of what needs to be saved and the appropriate place.

    Refs https://github.com/NOAA-EMC/GDASApp/issues/202

commit dbbd8b19ce847136dbb6457a082e58ab17f5678f
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Wed Feb 22 14:53:29 2023 -0500

    Update crtm to v2.4.0 (#1319)

    * Update module_base modulefiles to use crtm/2.4.0.
    * Remove line in module_base modulefiles to set CRTM_FIX; this variable is now set in the crtm module as of v2.4.0.
    * Update ufs-weather-model hash to c22aaad
    * Temporarily set crtm_ver in GSI build script to force GSI to build with crtm/2.4.0

    Refs #1233

commit adae24cf6c08ca327f74c8bcd3aa9c89cbb28724
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Wed Feb 22 14:45:49 2023 -0500

    Fix python style errors (#1330)

    Some python style errors crept in to develop because we ignored pynorm failures during the PR process. These errors are now corrected.

commit e18a79036f16f60e7560771d17ab89d10ea39a96
Author: Xianwu Xue - NOAA <48287866+XianwuXue-NOAA@users.noreply.github.com>
Date:   Wed Feb 22 13:17:37 2023 -0500

    Fix workflow generation post times for early cycle (#1329)

    In PR #1309 a setting was overlooked that controls what hours have post tasks created for the early cycle.

    Fixes #1328

commit 07fedaa649e4576a2bd3d2fca32bb6c144fa2a85
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Fri Feb 17 16:43:16 2023 -0500

    Change RUN and CDUMP for ensemble jobs (#1309)

    Updates `$RUN` and `$CDUMP` for ensemble jobs to include `enkf`.

    Previously, the `$RUN` for EnKF jobs had been set to `gdas` or `gfs`. However, this violates NCO policy and was also complicating Issue #761 . Now the `$RUN` for EnKF jobs is either `enkfgdas` or `enkfgfs`.

    Theoretically, `$CDUMP` shouldn't need to change. However, `$CDUMP` and `$RUN` are used interchangeably throughout much of the workflow (Issue #1299), so for now the `$CDUMP` is kept identical to `$RUN`. This will be corrected in a future PR.

    This change **changes the name** of enkf output files. Files now begin `enkfgdas` (or `enkfgfs`) rather than `gdas`.

    Closes #1298

commit 383c8c3a25dbeedb3a4892d22d2531286e87389f
Author: Guillaume Vernieres <guillaume.vernieres@noaa.gov>
Date:   Thu Feb 16 11:10:50 2023 -0500

    Provide default for DEBUG_WORKFLOW in load_ufsda_modules.sh

commit 3bfcb8975acab6a14634d95189b6b10379e37afc
Author: Guillaume Vernieres <guillaume.vernieres@noaa.gov>
Date:   Wed Feb 15 11:10:34 2023 -0500

    Allow increments to be added for ocean and ice cycling. (#1308)

    Removed forgotten commented out call to the B-mat j-job in jobs/rocoto/ocnanalbmat.sh ... oops
    Provide ocean increments via `mom6_increment.nc`
    Link to the JEDI/SOCA increment in ush/forecast_postdet.sh
    Fixed a dependency bug in workflow/rocoto/workflow_tasks.py
    MOM6 Increment is required in ROTDIR for the first 1/2 cycle, changes reflected in workflow/setup_expt.py
    Co-authored-by: Rahul Mahajan <aerorahul@users.noreply.github.com>

commit a1968e6cd7546151e670c5a0d6f1dd4b5d859c10
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Tue Feb 14 12:51:33 2023 -0500

    Module base file reorder and reduction (#1306)

    * Adjust the order of module loads in module_base modulefiles to conform with desired order: compilers, mpi, 3rd party, hdf5, netcdf, nceplibs.
    * Remove modules that aren't needed for runtime.
    * Checked dependencies of remaining modules to make sure prereqs are loaded beforehand as needed.
    * Correct bug with hpss module in module_base.jet.lua

    Refs #479

commit 5ac68361917e81555b13e0a2b160f2f7546b8fb4
Author: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com>
Date:   Tue Feb 14 12:00:43 2023 -0500

    Update S4 environment and module files (#1303)

    Updates the S4 module file and environment file to keep up to date with the current develop branch. Fixes #1297. Addresses one bug in #1195.
    This also increases the memory request for the ediag job. During testing, that job initially failed. For the 5 cycles run between 2022051500 - 2022051600, the largest memory footprint was ~26.5GB.

commit 1040216d8a4efb9955efecebf59775e91d8845e2
Author: Cory Martin <cory.r.martin@noaa.gov>
Date:   Fri Feb 10 17:16:44 2023 -0500

    Add in initial 3DVar aerosol DA cycling capability (#1106)

    This PR adds an initial 3DVar aerosol DA cycling capability to support scientific development and testing towards an operationally viable candidate system for aerosol DA for GFSv17/GEFSv13.

    This PR includes the following:
    - Three new j-jobs and ex-scripts for aeroanlinit, aeroanlrun, and aeroanlfinal
    - modifies the rocoto scripts that call the above j-jobs to actually call them
    - makes modification to the config.resources and config.aeroanl files
    - Introduces an object-oriented python structure to initialize/finalize the aerosol analysis with the intention of eventually using the top-level classes for other analysis jobs (soca, atm, land)

    Closes #982

commit cc54b8cdab3b83b20c866bbaa5dba0004dae5425
Author: Neil Barton <103681022+NeilBarton-NOAA@users.noreply.github.com>
Date:   Fri Feb 10 17:15:16 2023 -0500

    Fix name of MOM6 n restarts for future cycle points (#1307)

    Script fix for C384 O0.25 3DVAR cycling. Original scripts had wrong naming structure for MOM *res${n}.nc restart files.

    Refs: #947, #1289

commit d8c1bd5dfb6b2654b5b8c5121af68f7473fac26e
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Fri Feb 10 12:26:30 2023 -0500

    Update RTD GFS operational version to v16.3.6 (#1305)

    Update the status of operations to the newly implemented v16.3.6 version on the read-the-docs main page.

    Refs #1278

commit 9d11e1e871639523813fcc606aab40f1a6a8103f
Author: Guillaume Vernieres <guillaume.vernieres@noaa.gov>
Date:   Tue Feb 7 21:58:29 2023 -0500

    Stop wiping data at beginning of bmat vrfy j-job (#1302)

    The ocean b-matrix verification job relies on data from the b-matrix job still residing in $DATA, but that directory was being wiped when this job began. Now setting WIPE_DATA to NO to prevent the deletion.

    Closes GDASApp/issues/318

commit ae9d140273df9f78b4ae7d64e441e31f7b0d9e10
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Tue Feb 7 14:56:25 2023 -0500

    Add back in module load block in coupled_ic.sh (#1300)

    - Resolve bug introduced from removal of module load script block in coupled_ic.sh.
    - Add block back in for now and then address errors produced by it more appropriately.

commit 2615fff62853769f1cc5beb5da49a70cb0ad267d
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Mon Feb 6 15:24:32 2023 -0500

    Turn off differential pylint (#1296)

    Turns off the differential pylint test until it can be evaluated further.
    The YAML block is left in commented form in case we wish to turn it back
    on later.

commit bdb0db77fdb3cc93a2eae981843499cd38724ba5
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Fri Feb 3 11:13:18 2023 -0500

    Purge ICSDIR (#1295)

    This PR:
    - updates `coupled_ic.sh` job to copy initial conditions from `BASE_CPLIC` directly to `ROTDIR` in the names that the workflow expects and conforms to the naming convention within the workflow
    - obsoletes the need and use of `ICSDIR` in forecast-only experiments which served as a intermediate space for staging initial conditions.
    - updates the documentation section for `forecast-only`

    This is a non-breaking change.

    A change in documentation is required as the instructions for setting up the coupled forecast-only experiment no longer needs to pass the argument `--icsdir` to `setup_expt.py`.

    Fixes #1276

commit 1b0905c4f25e793a5a210ee0bfdb737bb5136c04
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Thu Feb 2 14:42:18 2023 -0500

    Deprecate `FDATE` (#1294)

    There used to be a fringe functionality where the `gdas.tHHz.radstat` could be ignored in the first full cycle `gdasanal` task.
    All cycled experiments that start with a cold-start or warm-start must have initial bias correction coefficients (the so called `gdas.tHHz.abias` files) and the `gdas.tHHz.radstat` file.

    Experts may customize their configurations if they choose to setup without a `gdas.tHHz.radstat` file thereby initializing the radiance diagnostics.  They would anyways know what they are doing.

    There are no updates in documentation as this was never an advertised mode of starting an experiment.

    Closes #1005

commit 219c23b182ef1aee845faad19f4b6c1c0fe817be
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Wed Feb 1 10:36:25 2023 -0500

    Atmosphere cycling with a Coupled model (#1274)

    This PR enables:
    - cycling the atmosphere with GSI using the coupled model (S2S) intended for WCDA development
    - allows staging of cycled IC's for coupled/atm-only model (in warm start and cold start)
    - updates dependencies in the XML to account for coupled model tasks (currently disable in cycled mode due to inadequacies in `ocnpost` jobs)

    This PR also:
    - disables `GLDAS` by default as it is expected to be deprecated.  Enthusiastic developers may turn it `ON`
    - allows a tiny flexibility for DA developers to turn ON 3Dvar automatically if `nens = 0`.

    Also in this PR:
    - `diag_table_da` was updated to include instantaneous ocean fields.  When running the model in `APP=ATM`, these entries from the `diag_table_da` are ignored.
    - `diag_table` was also updated to include coupled fields from `diag_table_cpl`.  This is a step towards unifying the `diag_table`.  There will be more work done in this area in the near future.
    - `MOM_input_template_500` is added for the 5 degree ocean configuration.

    This PR was built on initial work from @guillaumevernieres and @NeilBarton-NOAA
    @guillaumevernieres provided initial conditions
    @NeilBarton-NOAA and @guillaumevernieres both provided updates to the scripts that were used in the creation of this PR.
    The following commands are used to setup and configure the cycled experiment with S2S model configuration.
    @guillaumevernieres @NeilBarton-NOAA @DeniseWorthen and @junwang-noaa provided valuable assistance in debugging the coupled model failures.

    To setup and run a coupled model, cycled with atmosphere test at C48 atmosphere 5 degree ocean/ice resolution:
    ```
    # Setup experiment and COMROT directories.  Copy initial conditions to COMROT.
    ./setup_expt.py cycled --expdir <path_to_expdir> --comrot <path_to_comrot> --idate 202103231…
jkhender added a commit to jkhender/global-workflow that referenced this issue Jul 28, 2023
…nch used for HFIP2023

Squashed commit of the following:

commit daf395d6f1b3a5dac9f44be29f90deb788481a4d
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Fri Jul 14 21:01:46 2023 +0000

     Updated GSL template for jet XML files

     Create hera and jet specific config.base.emc.dyn files

commit 108db520c8ab70799e603c0038af8c5fdb44dc91
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Thu Jul 13 04:42:38 2023 +0000

     Remove extra 'else' line in config.fcst

commit 1dfa79017f236dac89f83d39f499864d1b64dd99
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Thu Jul 13 02:38:27 2023 +0000

     Correct paths in build script for Joe's fork

commit 62a375a153a2d02a9c8a1bef01b2adf046aaf1ff
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Wed Jul 12 23:28:29 2023 +0000

     Add scripts to check out Joe's HFIP2023 branch from Joe's fork and compile it

commit 3761ac9003c55a2e74c98d4e848ddb3a75a11a47
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Wed Jul 12 23:25:06 2023 +0000

     Turn off creation of flux and pgrb2b grib2 files in config.post

commit 6057da21ab39086711e902c02b0ebea54a69320b
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Wed Jul 12 23:21:35 2023 +0000

     Use aerosol-aware Thompson for MYNN runs
       - add lcnorm=.true. for MYNN in config.fcst

     Change namelist settings in config.fcst to those suggested by Fanglin
       tau=0.0
       rf_cutoff=10
       fast_tau_w_sec=0.2
       n_split=4

     Remove older CCPP suites from config.fcst

     Add fast_tau_w_sec and lcnorm to ush/parsing_namelists_FV3.sh

commit 288e147cf70fcc284ecf9c60ab16b97c2c573a8b
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Mon Jul 10 06:31:20 2023 +0000

     Remove ufs_model_haiqin.x from config.fcst since we can use the same executable to
       run all 3 experiments once we updated to 26jun23 UFS
     Add v17p8_c3 SDF to build_ufs.sh

commit 0f100fd506effebe85e253e94b31010970fe0d2d
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Mon Jul 10 06:28:40 2023 +0000

     Add getic and init tasks to workflow for creating initial conditions in realtime

     Update ufs_utils.fd_gsl directory

commit 3aad7afc322658e0927a28e31f16ca15bcb5a4c8
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Mon Jul 10 05:26:01 2023 +0000

     Set COMINsyn in workflow/hosts/jet.yaml instead of changing conifg.vrfy

commit ba17b77a0ac9708c111d9303fd07f8f3561f142f
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Thu Jun 29 19:42:43 2023 +0000

     Update config.post files in experiment directories
       * Set default value for npe_dwn

commit 60a1d8d9cebb84edc554c7f75b91e8cab24481c5
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Thu Jun 29 19:37:15 2023 +0000

     Update UFS version to 26Jun23, ed7fc88, in checkout scripts

commit e1761702693f3fe4190c5d44d8cc0733775b4fc1
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Thu Jun 29 17:21:41 2023 +0000

     Update hera experiment directory, v17_p8_12x12_2wg_12wt, for running 2019 storms

commit 587bcb349bc2df5b67ccae0c7d03a25a1af245d8
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Tue Jun 27 22:13:55 2023 +0000

     Correct path for DATAROOT and change machine name to upper-case in config.ufs

commit 1c16a443c8582a296a50724e0d78e0e4ccdfa100
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Tue Jun 27 22:09:04 2023 +0000

     Update paths for DATAROOT in GSL template XML files

commit c36cbac40c3528150631cf72c6ab6b432418b423
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Tue Jun 27 15:58:26 2023 +0000

     Correct if machine statement in config.ufs

     Add/update experiment directories for 1wg/14wt on hera:  v17_p8_c3_12x12_1wg_14wt, v17_p8_thompson_12x12_1wg_14wt, v17_p8_mynn_12x12_1wg_14wt

commit 3481ea68587ebfbe8cd556ecc249611e33cc7ba3
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Tue Jun 27 00:21:02 2023 +0000

     Set npe_dwn in config.post if running on hera

     Update DATAROOT to be generic in GSL XML file templates

commit 5e071d38e502c469daae407e9b2dce1711fc6da4
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Thu Jun 22 23:41:16 2023 +0000

     Add c3 experiment directory on hera:  v17_p8_c3_12x12_2wg_12wt

commit ad8d8af2b91ded431d9b8e919b76bcd616a6fc1c
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Thu Jun 22 18:06:54 2023 +0000

     Add experiment directories for Thompson on jet:  v17_p8_thompson_12x12_vjet_2wg_12wt, v17_p8_thompson_12x12_xjet_2wg_12wt

commit 65e0d92e4dafbbfa216028f19172772186ec0b9a
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Thu Jun 22 17:47:59 2023 +0000

     Add jet XML template for GSL

     Add experiment directory for c3:  v17_p8_c3_12x12_xjet_1wg_14wt

     Add xml files to test running post on sjet with v17_p8_mynn_12x12_vjet_2wg_12wt experiment

commit d3ce3ef0ba48996d023136634184f4e915272f78
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Thu Jun 22 17:42:29 2023 +0000

     Add updated config.fcst file to experiment directories, test_hera and test_jet

commit e7137777ead823e860ff2e4bd38bb9f9cc2a53f5
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Thu Jun 22 01:03:32 2023 +0000

     Remove post database files and obsolete xml file from v17_p8_mynn_12x12_xjet_2wg_12wt experiment

commit 0b87272872a5370697bfa29ec11b27a7b8ceea5b
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Thu Jun 22 00:58:41 2023 +0000

     Commit correct version of config.post file

     Add updated config.post and config.resources file to experiment directories

commit eec5ae5282173b30e8f1cc045f7e435b1d5a7918
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Thu Jun 22 00:52:04 2023 +0000

     Delete database files and log file from v17_p8_mynn_12x12_xjet_2wg_12wt experiment

commit 6862a2285d274ed24bb63c1d3c94e7e1a04e78c1
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Thu Jun 22 00:02:25 2023 +0000

     Add PARTITION_POST_BATCH to run post jobs with different partition (default=sjet)

     Add "" to variables in if statements to make consistent in config.resources and config.post

commit 027ec8a13c5fecc7e37bae3078d11ed047ad254e
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Wed Jun 21 20:44:04 2023 +0000

     Delete obsolete files from v17_p8_mynn_12x12_xjet_2wg_12wt experiment

commit 3226494ba6b382b51ad1011b28fc4512390f7261
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Wed Jun 21 20:16:37 2023 +0000

     Correct link for vrfy.sh under jobs/rocoto

commit b7d32263e5b802eea2d67076ac8358abebff4eee
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Wed Jun 21 18:20:47 2023 +0000

     Update v17_p8_mynn_12x12_vjet_2wg_12wt and v17_p8_mynn_12x12_xjet_2wg_12wt experiments

commit 10eed6eb2f3b8394181583018800d56e7d30876c
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Wed Jun 21 18:19:31 2023 +0000

     Move additional experiments with older workflow files to testing directory

commit 4cdd857c1040b7cfb5c8502a7277a1d36a2c7fca
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Wed Jun 21 17:48:15 2023 +0000

     Move experiments with older workflow files to testing directory

commit e67b4bf5010404592f37736acaf3f402628d7f86
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Tue Jun 20 23:53:09 2023 +0000

     Changes for tracker for GSL
        syndat file:  /lfs4/HFIP/hwrf-data/hwrf-input/SYNDAT-PLUS
        only VRFYTRAK is set to "YES" in config.vrfy
        rename track file using ATCFNAME variable

commit 45a636ce9e647cee7861d64e747b1e771434511e
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Tue Jun 20 18:27:17 2023 +0000

     Update config.post for different jet partitions

     Update compile parameters for Haiqin's fork

     Update Jet yaml file with GSL paths

commit f1851a02bf426b443c87fd1c8797e0ff3efeb62f
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Thu Jun 15 19:05:18 2023 +0000

     Set WRTTASK_PER_GROUP_PER_THREAD_PER_TILE_GFS values based on machine for C768 in config.ufs

     Create GSL-specific versions of workflow python scripts
       * Add NATIVE_STR to xml files

     Make shell scripts executable

     Add template XML file for GSL jobs on hera

commit 812ee9ba4803f308f9e8bae27bbe1f063e5c2e9c
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Wed Jun 14 23:33:31 2023 +0000

     Update config.resources and XML files for experiment directories on hera

commit 81aa8e36a1c6d65a66d66a7dbd3cf56651cf9fb9
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Wed Jun 14 22:19:15 2023 +0000

      Change post to run on 1 node
      Make walltimes smaller for gfsfcst and gfspost tasks

commit 0cc889e8994ea28a0c160d773ed65e92eae841ba
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Wed Jun 14 22:06:12 2023 +0000

     Adding experiment directories for hera
        v17_p8_12x12_2wg_12wt
        v17_p8_c3_12x12_2wg_12wt
        v17_p8_mynn_12x12_1wg_14wt
        v17_p8_thompson_12x12_2wg_12wt

commit b7340601b600f8553268141d750b653bfa1bec93
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Tue Jun 13 23:58:27 2023 +0000

      Add memory report to srun command in env/HERA.env
      Add script to create links for initial conditions
      Remove if statements for GSL suites and v16 suites from config.fcst
      Update to UFS 12jun23 version
        - Add RT_COMPILER to compilation parameters in build_ufs.sh (changed in 31May23 commit)
        - Change default version in checkout.sh and checkout_ufs.sh
        - Add script to build 12Jun23 UFS
        - Update ufs_model.fd_gsl directories
           * delete mynnedmf_wrapper.F90
           * delete v17p8_gf_mynn suite definition file
      Remove checkout_jun08.sh script
      Check for existence of directory in rsync_gsl.sh
      Add test-mynn.sh experiment setup script

commit ca2025372cf529714e4f192b1b2ffc2deeb0ea6f
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Tue Jun 13 12:29:28 2023 +0000

     Add experiment directories
        vjet: 12 write tasks, 2 write groups
        vjet: 14 write tasks, 1 write group
        xjet: 14 write tasks, 1 and 2 write groups

commit fb0ce2fb4d6269f672271cd62b537de51102ae4b
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Mon Jun 12 13:32:45 2023 +0000

     Update test_hera experiment directory to run out to 120h
       - change walltime to 2h10m
       - modify FHMAX to 120 in config.base

commit 59acf1ecb11800ecd02e214c9a7ded16a6c87b97
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Sun Jun 11 11:42:23 2023 +0000

     Update STMP/PTMP path in config.base for test_hera

commit 655b16ba0a6cf37b0fd083a07a767016348a2401
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Sun Jun 11 11:20:15 2023 +0000

     Modify hera settings due to out of memory issues
      - Change to 12 write tasks for C768 in config.ufs
      - Change FHOUT_GFS to 6 in config.base

commit b8a5f750bcfc5ba11ca962d077a24db01b16ab2c
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Sat Jun 10 13:59:12 2023 +0000

     Update test_hera_12x12.xml file
     Delete FV3GFSwfm/test experiment directory

commit 5b5ef140f9e53dabbf907f794ac08af9888f0f0c
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Sat Jun 10 13:41:37 2023 +0000

     Modify scripts for building XML on hera
     Add experiment directory, FV3GFSwfm/test_hera for 12x12 layout
     Change defaults to 12x12 layout, 2 write groups for C768 in config.ufs
     Change FHOUT_GFS to 6, FHMAX to 120 in config.base

commit 2f4eb26117cc5fc39900f78fbfdd7015696e4741
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Fri Jun 9 13:03:26 2023 +0000

     Add scripts to checkout Haiqin's fork, checkout 08Jun23 UFS, sync GSL-specific directories
     Add v17p8_thompson SDF to ufs_model.fd_gsl  (copy of v17p8)

commit 0f2461255fd4488809ba2c2deb15da1660f54180
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Fri Jun 9 08:56:30 2023 +0000

     Update config.fcst to set progsigma=.false. for v17p8_c3

commit b114eb453c4dcf7ff238118bb0d2bcf32ef7f009
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Tue Jun 6 01:26:50 2023 +0000

     Remove database and log files from experiment directories

commit 53d72734b3a79d1577f8370ce17f3a3ab055cac4
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Tue Jun 6 01:24:29 2023 +0000

     Add experiment directories for HFIP application

commit f0d86c477daf41e97e34ba7ed94bd56d6248b25f
Author: Judy.K.Henderson <Judy.K.Henderson@noaa.gov>
Date:   Tue Jun 6 01:20:23 2023 +0000

     Create branch from NOAA-EMC:global-workflow 19May23 develop branch

     Add initial changes needed for GSL

commit 0fae23fa0012ef52b37ad70ab7c3eeb8a8c6b1bd
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Fri May 19 14:01:30 2023 -0400

    Cast dict as an AttDict to handle nested dicts properly in update_configs (#1630)

    Some of the keys in the `defaults` were not being updated in `update_configs()` because it was
    using a regular `**dict` that would only update keys at the top-level.  These dictionaries are
    nested and deep. This fixes the bug by replacing `**dict` with the `update` method from `AttrDict`.

commit b29c95b83d217a57422f7fc4c480af728fdc6452
Author: AndrewEichmann-NOAA <58948505+AndrewEichmann-NOAA@users.noreply.github.com>
Date:   Fri May 19 11:42:21 2023 -0400

    Adding path to atmosphere analysis in ocean verification job (#1632)

commit 5e687f098b179d2f995bad831f34016152006535
Author: AndrewEichmann-NOAA <58948505+AndrewEichmann-NOAA@users.noreply.github.com>
Date:   Fri May 19 09:48:16 2023 -0400

    fixes use of wrong directory variables (#1631)

commit 10a6776351b1d1a62ff761016c0207913698aeda
Author: Jessica Meixner <jessica.meixner@noaa.gov>
Date:   Thu May 18 16:59:53 2023 -0400

    Add GEFS wave grid to scripts and ensure post runs (#1608)

    This is an expansion of @NeilBarton-NOAA 's work in PR #1488

    * Adds new glo_025 grid to workflow which will be used by GEFSv13  (fixes #1434)
    * Ensures post works
    * Creates a section in config.wave for various wave grids so that it's easier to switch between grids
    * Adds documentation for adding a wave grid so that it will hopefully be easier the next time
    * Initial condition was added to hera for 2013010100 for this new grid so that C384/ P8 like tests can be made.  (Needs to be synced to other platforms if desired).

    This work expands on the work in PR #1605

    Fixes #1434
    Fixes #1604

commit 4bebafd61d5a0fc2f52910294204af5f1f51cb21
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Thu May 18 13:30:56 2023 -0400

    Fixes for enkf archival bugs in ush/hpssarch_gen.sh (#1626)

    Fixes for enkf archival bugs

    Refs #1622 and #1623

commit 481b65903f9f4f55039ed68e24c929378dee3cca
Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com>
Date:   Thu May 18 11:37:09 2023 -0400

    Bugfix in atm_analysis.py and setup_expt.py.

    resens was mischaracterized as ensres.
    CASE_ANL is not used in atmens_analysis.py
    set CASE_ANL=CASE in config.atmanl

commit 26ea93396ca6dad7ae9d86ec2890fc69725fa122
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Wed May 17 17:32:08 2023 -0400

    Allow use of nested yamls during setup_expt.py (#1624)

    This PR:
    - allows a user to define their own configuration via a yaml during `setup_expt.py`, while retaining the `defaults.yaml` which is a must when templates are being set
    - updates to `setup_expt.py` to allow the above.
    - adds a `test_ci.yaml` as a demonstration for use in CI

    This PR will facilitate deprecating `config.defaults.s2s` as well as allowing users to make their own configurations.

commit 580f09ac1f169e2b9bb5986d55cee5fd0a05acfe
Author: TerrenceMcGuinness-NOAA <terrence.mcguinness@cox.net>
Date:   Wed May 17 14:21:41 2023 -0400

    Add throttling to CI (#1568)

    Adds the ability to throttle the number of PRs and cases being run concurrently.

commit 53ba0753b962fbcbbccfcba74b645a1a07a99689
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Tue May 16 19:43:17 2023 -0400

    Fix type of donst for sfcanl namelist (#1620)

    The variable type expected by gaussian_sfcanl for donst was recently
    changed from YES/NO to a boolean (.true./.false.)

    Fixes #1619

commit 472cf8d0116ffab79f9bfdc4055d9eeb8cd199ed
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Tue May 16 17:26:32 2023 -0400

    Prepare snow depth observations for JEDI-based Land DA. (#1609)

    This PR:
    - adds a job to prepare IMS snow depth observations as a task in the workflow.  This task depends on the `prep.sh` job to bring IMS data.  To test this type of data `DMPDIR` in `config.base` needed to be pointed to `"/scratch1/NCEPDEV/global/Jiarui.Dong/JEDI/GlobalWorkflow/para_gfs/glopara_dump"`
    - `land_analysis.py` introduces a method `prepare_IMS` for this type of data.
    - Updates are necessary in the `GDASApp` repo.  See companion PR https://github.com/NOAA-EMC/GDASApp/pull/472

    This job only runs at the `18z` cycle in the workflow.  This is controlled in the XML and not in the script.
    Consequently, updates are in the `workflow/` scripts to make this happen.

    Other updates included:
    - Adds a method (and associated test) to provide a datetime in the form of Julian day of the year.  The method is `to_julian` in `timetools.py`
    - `executable.py` was updated to accept a `list` of arguments (in addition to `str`).

    **Note:**
    - `calcfIMS.exe` is a serial executable and yet requires to be run with `srun`.  I recommend compiling this executable without MPI. @jiaruidong2017 @CoryMartin-NOAA
    - There are several deprecation warnings from the python IODA converter that will need to be addressed.  I recommend creating an issue to be resolved later. @jiaruidong2017 @CoryMartin-NOAA

    Part of Land DA work for snow depth assimilation, for which there is no issue open.

commit c005fbcdfef7803b8bde1b6138183ccb62db4d01
Author: Jessica Meixner <jessica.meixner@noaa.gov>
Date:   Mon May 15 17:15:31 2023 -0400

    Code Updates for New Wave Fix Files  (#1605)

    Updates the code to point to correct fix files with name changes.

    Fixes #1493

commit 255d99b7f2151682699f181197529c0ac0f7050e
Author: Cory Martin <cory.r.martin@noaa.gov>
Date:   Fri May 12 09:20:00 2023 -0400

    Make JEDI cycling toggle switches YAML configurable and their names more explicit  (#1607)

    * make some JEDI cycling options configurable through YAML

commit a8edbc7b429a740f444b42b5708ca70d59e7e5e8
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Thu May 11 15:02:18 2023 -0400

    Update gfs-utils hash to 8965258 (#1586)

    New gfs-utils hash includes gfs_bufr code fix to resolve bugzilla #1208
    Other commits included in new hash are:
    - Partial removal of deprecated utilities and code
    - Updated Jet's module to point to the EPIC hpc-stack

    Refs #1245

commit f7e60f9a4e4e45428b0e9fecc4f6ec445e21c9a2
Author: Cory Martin <cory.r.martin@noaa.gov>
Date:   Thu May 11 14:03:44 2023 -0400

    Allow YAML input to override config.base and make HPSS_PROJECT configurable (#1603)

commit 8544015c668d0d2196fab5e0eb3d0f55b7df0d18
Author: Walter.Kolczynski <Walter.Kolczynski@noaa.gov>
Date:   Wed May 10 12:39:32 2023 -0500

    Fix RTD python requirements path

    Refs: #1595

commit c7cc877ca675db8731e7276c4280dbd66aa8dd65
Author: Walter.Kolczynski <Walter.Kolczynski@noaa.gov>
Date:   Wed May 10 12:37:11 2023 -0500

    Clean up RTD python install settings

    Refs: #1595

commit 2392a413bb704be4b0b90d4c357fba0c6552161a
Author: Walter.Kolczynski <Walter.Kolczynski@noaa.gov>
Date:   Wed May 10 12:30:47 2023 -0500

    Use RTD python system packages

    Still trying to resolve issues with RTD build.

    Refs: #1595

commit 805f203a8f95cf62ee92149ad14386b429148642
Author: Walter.Kolczynski <Walter.Kolczynski@noaa.gov>
Date:   Wed May 10 12:22:38 2023 -0500

    Fix python RTD parameter name

    Refs: #1595

commit c4a090c19b7343be1f68b3506cd979cb34b5f5c1
Author: Walter.Kolczynski <Walter.Kolczynski@noaa.gov>
Date:   Wed May 10 12:19:08 2023 -0500

    Update RTD python install

    Refs: #1595

commit 7fa59a1302ba947917d774da04f7fdc7a0742f25
Author: Walter.Kolczynski <Walter.Kolczynski@noaa.gov>
Date:   Wed May 10 11:58:05 2023 -0500

    Restore RTD python version and add requirements

    Restored the python version to 3.11 after degrading it to 3.7 did not
    solve the bibtex issue. Instead, specify the requirements file in the
    config (the file already existed).

    Refs: #1595

commit 98bd25c465cae6fb6293a686a70d050ef770e76f
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Wed May 10 12:03:16 2023 -0400

    Revert python version for RTD (#1598)

    Reverts the python version for RTD back to 3.7 to see if that solves
    the missing bibtex import issue.

    Fixes #1595

commit 9f837d008cee71a0bceadc86cd576075086d3846
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Wed May 10 11:45:02 2023 -0400

    Move RTD config to root of repo (#1597)

    Read-the-docs config file was in the wrong location.

    Fixes #1595

commit c24b9ade80106808d72b96d499b1ad26f672192e
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Wed May 10 11:32:36 2023 -0400

    Add RTD config (#1596)

    Adds a read the docs config to get around docker image/library
    mismatch.

    Fixes #1595

commit e55f090208de1ce52ddde51732cbaf26e2323480
Author: Henry R. Winterbottom <49202169+HenryWinterbottom-NOAA@users.noreply.github.com>
Date:   Wed May 10 08:24:05 2023 -0600

    Add `schema` library to manage schema for variety of input configurations. (#1567)

    Adds schema.py from https://github.com/keleshev/schema
    Adds a test harness and additional functions to setup the Schema object.

    Co-authored-by: Rahul Mahajan <aerorahul@users.noreply.github.com>

commit 6b0172ba1543ce682c6f28a826002788f298ed11
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Tue May 9 23:16:24 2023 -0400

    Add S2SA to the allowed app list in setup expt (#1591)

    Adds S2SA to the list of allowed apps for all experiment types. The
    workflow config files already supported this option, but it was not
    on the allowed list.

    Refs: #1589

commit bd8585b7289c675df76fb5b53792fc27a8f08934
Author: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com>
Date:   Tue May 9 22:36:25 2023 -0400

    Avoid parsing group name when checking RadMon diagnostic files (#1559)

    This changes the way the RadMon diagnostic file checker determines if a diagnostic
    file is 0-sized.  Instead of attempting to parse the output of `tar -tv`, the script now
    extracts the `radstat` file and runs `du -b` on each gzipped diagnostic file.  On S4, the
    primary group is `domain users`, which, containing a space, caused issues with the
    previous method.

    Fixes #1515

commit 106e74726a82573c09c5196a3866770968bfda34
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Tue May 9 22:33:35 2023 -0400

    Remove gldas from global-workflow (#1590)

    Removes all instances of GLDAS from the global-workflow `develop` as it will not
     be used in GFS v17. Also updates the documentation to reflect this change.

    Fixes #1512

commit da2da72ded007386bfdd2f5c7b3c62b135ac66f5
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Tue May 9 18:46:34 2023 -0400

    Add GEFS capability to setup_expt (#1582)

    Allows GEFS experiment directories to be set up using `setup_expt.py`. This
    only creates the experiment directory; workflow generation will be added
    in a follow-up PR.

    To facilitate this, a new positional argument is added in the first position to
    specify which system to set up: `gfs` or `gefs`. If gfs is chosen, the second
    positional argument is to choose the mode, and allows the same values as
    before: `cycled` and `forecast-only`. If gefs is chosen, forecast-only is
    assumed and no second positional argument is required.

    To allow both gfs and gefs configure files to exist in workflow concurrently,
    the `parm/config` directory contains two new directories: gfs and gefs. All
    of the old config files have been moved into the gfs directory. A few select
    config files have also been copied to the gefs directory. As yet, they are un-
    modified (except the changes noted below). These config files will be
    updated in a future PR so the modifications for GEFS are not hidden in the
    new file creation. The `yaml/defaults` is also copied over, but the contents
    were removed since GEFS will not be running its own analyses.

    A couple variables have been renamed to be more appropriate for use in
    both systems: `NMEM_ENKF`, `NMEM_EFCS`, and `CASE_ENKF` are now
    `NMEM_ENS`, `NMEM_ENS_GFS`, and `CASE_ENS` respectively. Further,
    `HOMEfv3gfs` were removed as unused.

    Finally, resolution validation was extended to the ensemble resolution as well.

    Fixes: #1576

commit 2fd43d134f9d8479eb37c3800f6bcb715ceb7c3f
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Mon May 8 16:53:21 2023 -0400

    Redo v16.3 GSI script updates to scripts/exglobal_atmos_analysis.sh (#1535)

    Updates to scripts/exglobal_atmos_analysis.sh are being put in again
    after a CRTM issue was resolved. These updates are needed to resolve
    an issue with the GSI assimilating too low of a number of observations.

    Also update gsi_ver to 20230112 in fix.ver

    Refs #1494 #1550

commit 6838c0ba5a1dc9033c2e7488ab1a970f70fea506
Author: Guillaume Vernieres <guillaume.vernieres@noaa.gov>
Date:   Fri May 5 16:41:36 2023 -0400

    Fix bugs in the COM refactor of marine DA (#1566)

    Fixes a couple bugs and does a little cleanup of the COM refactor for marine DA. COM variable definitions are also updated to match the style used in other scripts.

commit dd19f05afa8b80e207de215c3d5f447107924f13
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Fri May 5 16:36:34 2023 -0400

    Retire `getic.sh` and `init.sh` jobs from global-workflow (#1578)

    This PR removes:
    - `getic.sh` - job used to get initial conditions from HPSS from a past experiment/ops
    - `init.sh` - job used to create experiment resolution specific initial conditions from the ones fetched by `getic.sh`.

    Both these jobs were primarily used by the atmosphere model component developers in the past.
    They have since been staging pre-generated ICs making these jobs obsolete.

    Documentation will point to ufs-utils to generate the initial conditions.  The utilities from ufs-utils were used to identify the appropriate HPSS tarball as well as performing interpolation for the atmospheric model component.
    There is no such utility available for the other model components making these scripts only partially useful.

    In a future PR, an update to the definition of `BASE_CPLIC` and `coupled_ic` jobs will be made to make use of `--icsdir` to point to pre-staged locations of initial conditions.

    Fixes #1569

commit 63d5522e98fa65ce62d7ff681ed8923f48f0517e
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Fri May 5 16:35:24 2023 -0400

    New UFS_UTILS hash for gdas_init COM reorg updates (#1581)

    This PR updates the UFS_UTILS hash to get `gdas_init` updates for the recent COM reorg.

    A few additional UFS_UTILS commits are also included but aren't significant changes, as noted by @GeorgeGayno-NOAA: "Updates since that hash have been mostly small things like bug fixes. However, the w3nco library was replaced by the w3emc library at https://github.com/ufs-community/UFS_UTILS/commit/7efbe0fd2dd373ae54d6c2954ebd484e0a3aab48". Updates to improve repo build are also included with this hash (https://github.com/ufs-community/UFS_UTILS/commit/b4900c483bd9cdb274aae6f75c0815a5f86bdaae).

    New hash from completion of https://github.com/ufs-community/UFS_UTILS/pull/820

    Resolves #1527

commit cf064a5c043106ea5ea6c2ce27e036e6d40babf5
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Fri May 5 16:32:31 2023 -0400

    Update documentation for PR standards (#1573)

    The section on commit message standards is updated to be for pull
    requests instead. Additional messaging about using the provided
    template is added, and bullets not relevant to PRs (line-wrapping
    and leaving a space between subject and body) are removed.

commit 8ff4c380d59ffa12f74dcef2cfa0e112b44b97c2
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Thu May 4 16:43:54 2023 -0400

    Update prepobs install copy for atm log filename fix (#1571)

    Begin using feature-GFSv17_com_reorg_log_update install which updated
    the atm logf filename checked for by prepobs getges_nc.sh.

    Refs #1570

commit 3768c11e564ff82bfd2766a54513b49b4853e44c
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Wed May 3 11:40:25 2023 -0400

    Update LandDA related job post COM refactor plus other minor fixes (#1564)

    This PR:
    - updates the j-jobs to accommodate post COM refactor upgrades.
    - minor updates to config.resources for land DA tasks
    - add task dependencies in the rocoto workflow
    - when doing LandDA, use sfc_data.tile{{ t }}.nc created by Land DA is used as input of global_cycle for the deterministic and case w/ DOIAU=NO.

commit a4177bb97722a6e90487af2b9744f3cbc960fb6b
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Wed May 3 02:52:38 2023 -0400

    Replace `CDATE` with `PDYcyc` combo (#1561)

    Replaces `${CDATE}` with `${PDY}${cyc}` in all `config.*` files. Also fixes permissions on some of the config files that were turned to be executable in some of the JEDI PRs.

    Fixes #1560
    Partially fixes #198

commit 1242952faa4ce95d9a1fe2ce3e4ea20425d440d0
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Tue May 2 16:23:18 2023 -0400

    Update init.rst cycled coupled IC info (#1562)

    * Update init.rst cycled coupled IC info
    * The cycled ATM w/ coupled (S2S) model ICs were updated
    and the folder was renamed from "C48mx500" to "C48C48mx500"
    * Added note to mention that the EnKF member ICs are
    currently just dummy duplicates of the deterministic.

commit 2e2357bc067390d51d1320d982abdce23b67d4ed
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Tue May 2 11:06:52 2023 -0400

    Use correct number of tasks in CICE when using threads (#1558)

    When the workflow was updated to use ESMF threading, the CICE namelist
    was not updated to use the new ntasks_cic6 variable instead of ICEPETS.
    This caused the incorrect number to be used when using multiple threads.

    Fixes #1549

commit 608ff650fbc902114203a8d03893e3d26fa05d70
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Mon May 1 22:19:39 2023 -0400

    Remove gdas bump fix files (#1553)

    * Remove bump_ver from versions/fix.ver
    - No longer need a bump version variable in fix.ver.
    Refs #1552

commit 810071bff4878b16e5b70113fff990a1b1e80a4f
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Mon May 1 22:18:31 2023 -0400

    Remove remnant WAVE_RUN from archive (#1556)

    `$WAVE_RUN` is no longer used in workflow, but one reference remained
    in the archive job, which would cause failures. The conditional did
    not need to be replaced by `$RUN` since `$RUN` has already been checked
    at that point.

    Fixes #1548

commit f2ea92bf7345be1669677affab401bf25dd917ff
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Mon May 1 17:08:30 2023 -0400

    Update UFS to develop as of 2023 Apr 17 (#1509)

    Updates the UFS model hash to the version as of 2023 Apr 17.

    Some associated changes accompany this update
    - Restart filenames for MOM6 (ufs-community/ufs-weather-model#1599)
    - Remove store coriolis setting from MOM6 namelist (ufs-community/ufs-weather-model#1599)
    - Change in atm 'log' file names (ufs-community/ufs-weather-model#1704)
    - Additions to diag_table for frozen species (ufs-community/ufs-weather-model#1529)
    - Restart quilting (ufs-community/ufs-weather-model#1633)
    - Update to post itag (ufs-community/ufs-weather-model#1690)

    The switch to restart quilting adds an additional constraint on the size of write groups to be divisible by the number of tiles, so all were increased to the next multiple of 6.

    In the process of updating the diag tables, unused tables were removed.

    Closes #1279 as moot
    Closes #1445
    Closes #1499
    Partially addresses #1277

commit 6d3ed8ac4b71759fbace38f3dd544f7ee018b821
Author: Guillaume Vernieres <guillaume.vernieres@noaa.gov>
Date:   Mon May 1 14:36:01 2023 -0400

    Adapt the marine DA to the new COM structure (#1554)

commit 6c48e94b4f3c7cf180cd443a13b957c8ab87ab4c
Author: Cory Martin <cory.r.martin@noaa.gov>
Date:   Mon May 1 02:02:37 2023 -0400

    Update aerosol DA to use new COM structure (#1551)

    This PR updates the j-jobs and python classes for aerosol DA to use the new COM directory structure.
    This PR also includes removing of the chem history staging for the ICSDIR in setup_expt.py. The aerosol fields are treated as FV3 tracers, so they are either available (warm start) with the fv_tracer files or start at 0 (cold start) and must be spun up from emissions.

    Fixes #1516

commit ec2dd3ab8fb78c4e0aff7d81cb64095fe6130ad6
Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com>
Date:   Fri Apr 28 14:45:09 2023 -0400

    Update UFSDA ATM ens for new COM directory structure (#1538)

    g-w PR #1421 changed the GFS COM directory structure. This PR updates UFSDA ATM ensemble analysis jobs and python script to work with the updated GFS COM directory structure.

    Fixes #1518

commit 406d6900963ca9c5152ef4b84de0d2840b0c2fd3
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Fri Apr 28 12:55:05 2023 -0400

    Run an ensemble forecast of the coupled model (#1545)

commit ff37168eddd52e00b288cde4bdbdb1927369abe6
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Fri Apr 28 12:53:59 2023 -0400

    Fix ocean anl path in staging (#1544)

    The path for ocean analysis files was not properly updated after
    analysis was moved out of model_data into its own directory.

commit 8506ec6977c53018a100fd4881c296016a7df630
Author: Cory Martin <cory.r.martin@noaa.gov>
Date:   Thu Apr 27 15:48:47 2023 -0400

    Two minor bugfixes (#1542)

    Found some odd bugs in the aerosol DA changes that need to be fixed to work properly.
    Not sure how they worked before with testing (by luck?) but these are straightforward fixes
    to implement.

    one has a missing / in a path for FileHandler
    and the other has a missing .nc causing files to not be found

commit 5f66da919c2525e189a169bad1f3fcbab3a64739
Author: AndrewEichmann-NOAA <58948505+AndrewEichmann-NOAA@users.noreply.github.com>
Date:   Thu Apr 27 14:04:55 2023 -0400

    Move guts of ocean analysis post out of j-job (#1539)

    Removes most of content of JGDAS_GLOBAL_OCEAN_ANALYSIS_POST to scripts/exgdas_global_marine_analysis_post.py in GDASApp, now just calls that script.

    Addresses first bullet of #1480

commit 3dd6bbe7a77145ab31d00bd4c23af7649353cbd9
Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com>
Date:   Wed Apr 26 17:02:05 2023 -0400

    Update UFSDA ATM anl for new COM directory structure (#1537)

    g-w PR #1421 changed the GFS COM directory structure. This PR updates UFSDA ATM variational analysis jobs and python scripts to work with the updated GFS COM directory structure.

    Fixes #1517

commit b5d173f6a95ccc5df55aecb9dc490fffb79b26ca
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Wed Apr 26 13:39:45 2023 -0400

    Fix incorrect ocean history tmpl during workflow generation (#1533)

    The trailing '_TMPL' was accidentally ommited from the ocean history
    template used during workflow generation.

    Refs: #1532

commit 789ae97a1210117b9b629c4a47d6cfa999b551ab
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Wed Apr 26 13:39:31 2023 -0400

    Fix ocean stating from flat structure (#1531)

    A typo led to the same variable being defined twice instead of the
    variable that was supposed to be defined.

    Fixes #1530

commit 1e4a24c35088a3db6348156c15bbc81b6f814e40
Author: Guillaume Vernieres <guillaume.vernieres@noaa.gov>
Date:   Wed Apr 26 00:17:56 2023 -0400

    Fix warm-start IC staging (#1529)

    The incorrect path was used for staging coupled components during the COM refactor update (#1421). These are now corrected.

    Fixes #1528

commit 7421d805e6f50a59cd0be611d3ad7568ae603985
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Tue Apr 25 15:37:04 2023 -0400

    Quiet generate_com (#1526)

    Turns off trace for the duration of the generate_com function unless
    DEBUG_WORKFLOW is not set to "NO" (the default). In its place, the
    function will now echo the assignment.

    Closes #1524

commit 23e6cc22a456c4a4294216037673473db0a144af
Author: Guillaume Vernieres <guillaume.vernieres@noaa.gov>
Date:   Tue Apr 25 11:45:16 2023 -0400

    Add ocnanlvrfy job and bugfixes. (#1514)

commit efa5180462f71ec476aeb6c5de4ba074a9d38a29
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Mon Apr 24 15:37:52 2023 -0400

    Reorganize COM and refactor to use templates (#1421)

    Reorganizes the entire COM directory into a more hierarchical structure and uses centrally-defined templates to define COM paths.

    ## Hierarchical Structure
    To organize output a lot better and not have 30000+ files in a single directory, all of the component COM directories are divided into a number of subdirectories for each type of output.

    Sample directory trees

    ### Cycled atmosphere only
    ```
    gdas.20211222/00
    ├── analysis
    │   └── atmos
    │       └── gsidiags
    │           ├── dir.0000
    │           ├── dir.0001
    │           ├── (Additional dir.* directories omitted for brevity)
    │           └── dir.0083
    ├── model_data
    │   └── atmos
    │       ├── history
    │       ├── master
    │       └── restart
    ├── obs
    └── products
        └── atmos
            ├── cyclone
            │   └── tracks
            └── grib2
                ├── 0p25
                ├── 0p50
                └── 1p00

    101 directories
    ```
    ```
    enkfgdas.20211222/00
    ├── earc00
    ├── ensstat
    │   ├── analysis
    │   │   └── atmos
    │   │       └── gsidiags
    │   │           ├── dir.0000
    │   │           ├── dir.0001
    │   │           ├── (Additional dir.* omitted for brevity)
    │   │           └── dir.0039
    │   └── model_data
    │       └── atmos
    │           └── history
    ├── mem001
    │   ├── analysis
    │   │   └── atmos
    │   └── model_data
    │       └── atmos
    │           ├── history
    │           ├── master
    │           └── restart
    └── mem002
        ├── analysis
        │   └── atmos
        └── model_data
            └── atmos
                ├── history
                ├── master
                └── restart

    64 directories
    ```
    ```
    gfs.20211222/00
    ├── analysis
    │   └── atmos
    ├── model_data
    │   └── atmos
    │       ├── history
    │       ├── master
    │       └── restart
    ├── obs
    └── products
        └── atmos
            ├── bufr
            ├── cyclone
            │   ├── genesis_vital
            │   └── tracks
            ├── gempak
            │   ├── 0p25
            │   ├── 0p50
            │   ├── 1p00
            │   ├── 35km_atl
            │   ├── 35km_pac
            │   └── 40km
            ├── grib2
            │   ├── 0p25
            │   ├── 0p50
            │   └── 1p00
            └── wmo

    26 directories
    ```
    ```
    enkfgfs.20211222/00
    ├── earc00
    ├── ensstat
    │   ├── analysis
    │   │   └── atmos
    │   │       └── gsidiags
    │   │           ├── dir.0000
    │   │           ├── dir.0001
    │   │           ├── (Additional dir.* directories removed for brevity)
    │   │           └── dir.0039
    │   └── model_data
    │       └── atmos
    │           └── history
    ├── mem001
    │   ├── analysis
    │   │   └── atmos
    │   └── model_data
    │       └── atmos
    │           ├── history
    │           ├── master
    │           └── restart
    └── mem002
        ├── analysis
        │   └── atmos
        └── model_data
            └── atmos
                ├── history
                ├── master
                └── restart

    64 directories
    ```

    ### S2SWA coupled
    prototype (forecast-only):
    ```
    gfs.20130401/00/
    ├── model_data
    │   ├── atmos
    │   │   ├── history
    │   │   ├── input
    │   │   ├── master
    │   │   └── restart
    │   ├── chem
    │   │   └── history
    │   ├── ice
    │   │   ├── history
    │   │   ├── input
    │   │   └── restart
    │   ├── med
    │   │   └── restart
    │   ├── ocean
    │   │   ├── history
    │   │   ├── input
    │   │   └── restart
    │   └── wave
    │       ├── history
    │       ├── prep
    │       └── restart
    └── products
        ├── atmos
        │   ├── cyclone
        │   │   ├── genesis_vital
        │   │   └── tracks
        │   ├── gempak
        │   │   ├── 0p25
        │   │   ├── 0p50
        │   │   ├── 1p00
        │   │   ├── 35km_atl
        │   │   ├── 35km_pac
        │   │   └── 40km
        │   ├── grib2
        │   │   ├── 0p25
        │   │   ├── 0p50
        │   │   └── 1p00
        │   └── wmo
        ├── ocean
        │   ├── 2D
        │   ├── 3D
        │   ├── grib
        │   │   ├── 0p25
        │   │   └── 0p50
        │   └── xsect
        └── wave
            ├── gempak
            ├── gridded
            ├── station
            └── wmo

    51 directories
    ```

    ### Trees with files
    gdas: https://gist.github.com/WalterKolczynski-NOAA/f1de04901e2703fd24d38146d2669789
    gfs: https://gist.github.com/WalterKolczynski-NOAA/5d1b7c0a0f4b8cfff0be1ae54082316a
    enkfgdas: https://gist.github.com/WalterKolczynski-NOAA/860aaa804e3e70e191e7cae2ebb1055b
    enkfgfs: https://gist.github.com/WalterKolczynski-NOAA/130bfff4650ed8b07cf395079b65d318
    S2SWA P8: https://gist.github.com/WalterKolczynski-NOAA/6ae90c6eafb573878f60682ce47179db

    ## Templating
    All of the COM paths have been replaced with new variables that are derived from a set of templates centrally defined in `config.com`. Variables in the templates are then substituted at runtime to generate the COM paths via the use of `envsubst`. To facilitate this, there is a new function, `generate_com` (see below), provided to automatically generate the COM paths.

    Where possible, COM paths are defined at the j-job level and made read-only. However, many of the EnKF scripts loop over the ensemble members, forcing the definitions to be made at the exscript level instead (and be mutable).

    The arguments to `generate_com()` are the list of COM variables to generate, optionally accompanied by a template to use using a colon to separate them. When no template is specified, the variable will be generated using the ${varname}_TMPL template. Two options are accepted, `-r` and `-x`, which will mark the variable as read-only and for export, respectively (the same as with the `declare` builtin). It is best practice to define any additional variables needed by the template on the same line to avoid adding them to the calling script’s scope. Here are some examples used in the code:

    Generate the path to the atmos analysis directory for the current cycle and `$RUN` (implicitly from the `$COM_ATMOS_ANALYSIS_TMPL` template) and mark as read-only and export:
    ```
    YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_ANALYSIS
    ```

    Generate the path to the atmos history directory for the previous cycle's gdas from the `$COM_ATMOS_HISTORY_TMPL` template and mark as read-only and export:
    ```
    RUN=${GDUMP} YMD=${gPDY} HH=${gcyc} generate_com -rx \
        COM_ATMOS_HISTORY_PREV:COM_ATMOS_HISTORY_TMPL
    ```

    Generate the path to the first ensemble member's history directory of the current cycle and `$RUN` and mark for export:
    ```
    MEMDIR=’mem001’ YMD=${PDY} HH=${cyc} generate_com -x COM_ATMOS_HISTORY
    ```

    ## Additional information
    The staging of initial conditions in `setup_expy.py` has been updated to stage in the new locations. The source of the initial conditions can **either** be in the new hierarchical structure or in the old flat structure and the script will stage the files in the new structure. The destination paths are hard-coded here, so if any changes are made to the analysis, input, or restart templates, they will need to be mirrored in `setup_expy.py`.

    ### Stipulations
    All changes in this PR are subject to approval by several stakeholders, including NCO. Sample COM trees above are subject to revision based on feedback (for instance, file X isn't really an obs file).

    File name updates are not included in this PR. File names (primarily for coupled components) will be updated to comply with NCO standards in a future PR.

    AWIPS jobs are now almost working (they do not in current develop), but one last program is still ending with an error.

    Work on fit2obs is deferred, so that portion of the verify job does not work.

    WAFS scripts are all external and have not yet been updated. WAFS is expected to be packaged separately going forward, so will need to be updated like any other downstream package.

    Some scripts that are not part of our normal development workflow have not yet been updated. I may be able to knock a few more off this list, but some just aren’t available in development mode currently:
    - All UFSDA app jobs (to be handled separately)
    - With associated dev jobs (may still modify and test)
      - JGDAS_ATMOS_GLDAS
      - ~~JGLOBAL_WAVE_GEMPAK~~
      - ~~JGLOBAL_WAVE_POST_BNDPNT~~
      - ~~JGLOBAL_WAVE_POST_BNDPNTBLL~~
      - ~~JGLOBAL_WAVE_PRDGEN_BULLS~~
      - ~~JGLOBAL_WAVE_PRDGEN_GRIDDED~~
      - ~~JGLOBAL_WAVE_PREP~~
    - With no associated dev job
      - JGDAS_ATMOS_GEMPAK_META_NCDCJGFS_ATMOS_FBWIND
      - JGFS_ATMOS_FSU_GENESIS
      - JGFS_ATMOS_GEMPAK_META
      - JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF
      - JGLOBAL_ATMOS_EMCSFC_SFC_PREP
      - JGLOBAL_ATMOS_POST_MANAGER
      - JGLOBAL_ATMOS_TROPCY_QC_RELOC
    + All downstream scripts for the above

    There are also a few scripts that are not available to the development workflow that I have already made a good-faith effort at updating:
    - JGDAS_ATMOS_GEMPAK
    - JGFS_ATMOS_PGRB2_SPEC_NPOESS

    ## Related Issues
    Closes #761
    Fixes #978
    Fixes #999
    Fixes #1207
    Partially addresses #198
    Partially addresses #289
    Partially addresses #293
    Partially addresses #1299
    Partially addresses #1326

commit 408ef65a8e2318125ad61478746024b2d0ef463d
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Mon Apr 24 15:26:58 2023 -0400

    Move GDASApp hash to stable version (#1508)

    Changes the GDASApp hash to a more stable version than the tip of
    develop.
    See post-merge converastion in #1506

commit 699a759f80352aaade4203425c5df24842fcefa3
Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com>
Date:   Mon Apr 24 13:37:04 2023 -0400

    update GDASApp hash to d34f616 (#1505) (#1506)

commit 44f5c28518a7d4b9e06658c6c21b9b1ee1d0918e
Author: AndrewEichmann-NOAA <58948505+AndrewEichmann-NOAA@users.noreply.github.com>
Date:   Mon Apr 24 12:26:14 2023 -0400

    ignore archiving sfluxgrbf00[124578] files when they are not present (#1498)

    * ignore archiving certain sfluxgrbf??? files when they are not present.
    Co-authored-by: Rahul Mahajan <aerorahul@users.noreply.github.com>

commit 2e88dbfc5ff7a0bb2c6c1630b0c2783d76049d21
Author: Jiarui Dong <Jiarui.Dong@noaa.gov>
Date:   Mon Apr 24 09:17:48 2023 -0400

    Add initial land DA cycling scripts (#1351)

    This PR adds rocoto jobs, jjobs, config files and updates to the machine.env to enable land-da  cycling capability.

commit f159d39a3b28dfcc120cdcdf87d11a611c75061f
Author: TerrenceMcGuinness-NOAA <terrence.mcguinness@cox.net>
Date:   Fri Apr 21 15:46:35 2023 -0400

    Add CI cron jobs (#1476)

    As a maintainer of the CI framework, I need a set of cron jobs that will fully automate the CI pipeline so that whenever the appropriate label on GitHub is created the PR gets cloned and built followed by a set of functional experiments that are executed and reported on.

commit 587e469a1be5e278326fc0cbceefedc90caf75bf
Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com>
Date:   Fri Apr 21 13:28:11 2023 -0400

    Refactor UFS-DA ATM ens component to use python g-w (#1373)

    This PR contains UFS-DA ATM ens changes originally in PR #1354.

    Below is a list of changes in this PR
    - rename UFS-DA ATM ens jobs atmensanalprep, atmensanalrun, and atmensanalpost as atmensanlinit, atmensanlrun, and atmensanlfinal, respectively
    - replace UFS-DA ATM ens shell scripts with python scripts
    - rename UFS-DA ATM ens j-jobs consistent with initialize, run, and finalize functions. Update j-jobs to execute python scripts instead of shell scripts
    - rename UFS-DA ATM ens rocoto jobs to be consistent with initialize, run, and finalize functions. Update jobs to set python paths and execute renamed j-jobs
    - update rocoto workflow generation to new names for UFS-DA ATM ens jobs
    - update UFS-DA ATM ens job names in machine dependent env files to new job names
    - rename UFS-DA ATM ens configuration files consistent with change in job names
    - add python class for UFS-DA ATM ens analysis
    - unify JEDIEXE link for UFS-DA Aerosol, ATM, and ENS
    - properly set `cycledefs` for `gfsatmanlinit`
    - remove unused `FV3JEDI_FIX` from atmanl and atmensanl config

    The above changes are part of a larger g-w effort to transition from shell scripts to python. UFS-DA Aerosol was the first GDASApp system to be converted. PR #1372 converted UFS-DA atmospheric variational DA to the python based approach.  This PR converts converts UFS-DA atmospheric local ensemble DA to the python based approach.

    Fixes #1313
    Depends (in part) on #1370 and #1372 and NOAA-EMC/GDASApp#388

commit 7db70496063fe32928cacb9790e45a1e987a3510
Author: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com>
Date:   Fri Apr 21 12:42:00 2023 -0400

    Added Fit2Obs to S4. #1489 (#1497)

    Adds Fit2Obs support for S4 by adding the module use/load commands to the module_base.s4.lua modulefile.

    Fixes #1489.

commit fb236523140b09686a4c2961e0552e7bd5dbf04f
Author: Guillaume Vernieres <guillaume.vernieres@noaa.gov>
Date:   Fri Apr 21 12:40:11 2023 -0400

    Add new task to post-process marine DA (#1485)

    The work in this PR is only meant to bring us closer to a viable WCDA system. The refactoring of the marine DA to the new standard introduced by @aerorahul and used by @RussTreadon-NOAA and @CoryMartin-NOAA will be addressed after this [Epic](https://github.com/noaa-emc/gdasapp/issues/416) is resolved.

    ### Motivation and context
    This work adds a separate j-job ```JGDAS_GLOBAL_OCEAN_ANALYSIS_CHKPT ``` that calls a script that will be in the GDASApp for the time being (PR to come once this is merged) and does the following:
    - prepares the `SOCA` increment for `MOM6` IAU
    - recursively apply the `SOCA2CICE` change of variable. A mapping from the 2D seaice analysis variable to the CICE6 dynamical and thermodynamic variables.
    - merge the `Tref` increment from the `NSST` analysis with the `SOCA` increment

    ### Summary of the change
    - HPC environment: the new j-job runs a `JEDI` executable twice and one python script. All are serial jobs but the JEDI exec need to be called as an MPI job with 1 pe.
    - `jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_CHKPT`, that script point to a ex-script that is not in the GDASApp develop yet.
    - addition of the option to merge the Tref NSST increment with the MOM6 increment. This is triggered with the `DO_MERGENSST` switch
    - The new j-job dependency was added, with the option to wait for the surface analysis file `sfcanl.nc` if `do_mergensst` is true.

    Refs: #1480.
    Fixes NOAA-EMC/GDASApp/#418

commit 740daba8d6d34a327199701c1df7d6e10da73ec5
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Fri Apr 21 03:11:51 2023 -0400

    Create fix file issue template (#1495)

    Create fix_file.md template file for new fix file request issue. This should help formalize the process and document updates.

    New issue will auto-assign to @KateFriedman-NOAA and @WalterKolczynski-NOAA (the developers with access to make fix files changes).

    Fixes #1492

commit 35942896ca4eeef243fe35d47416be64fe0058ff
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Thu Apr 20 10:00:23 2023 -0400

    Update TC_tracker version to v1.1.15.6

    New ens_tracker.v1.1.15.6 tag installed on supported platforms. Adds Jet support and moves package to use new EPIC-installed hpc-stacks on R&Ds.

    Refs #1463

commit 86c3923bf60b1ce39165070bf2e5c3d60193d6dd
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Thu Apr 20 09:39:56 2023 -0400

    Update GSI-Monitor hash to reflect recent assimilation changes.

    New GSI-Monitor hash to 45783e3 to update two fix files.

    Refs #1483

commit 2f347f6ddc770f2524394af25561a8da0d8dfb50
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Wed Apr 19 15:54:19 2023 -0400

    Fit2Obs updates for package reorganization and invocation via module (#1484)

    The Fit2Obs repo has been reorganized to meet a few NCO standards and to add a module for invoking it from other packages.

    Refs #1472

commit b2ed8648f80946de85983a51664b120540854cc9
Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com>
Date:   Tue Apr 18 16:21:14 2023 -0400

    Refactor UFS-DA ATM var component to use python g-w (#1372)

    This PR contains UFS-DA ATM var changes in PR https://github.com/NOAA-EMC/global-workflow/pull/1354.

    Below is a list of changes in this PR
    - rename UFS-DA ATM var jobs `atmanalprep`, `atmanalrun`, and `atmanalpost` as `atmanlinit`, `atmanlrun`, and `atmanlfinal`, respectively
    - replace UFS-DA ATM var shell scripts with python scripts
    - rename UFS-DA ATM var j-jobs consistent with initialize, run, and finalize functions.  Update j-jobs to execute python scripts instead of shell scripts
    - rename UFS-DA ATM var rocoto jobs to be consistent with initialize, run, and finalize functions.  Update jobs to set python paths and execute renamed j-jobs
    - update rocoto workflow generation to new names for UFS-DA ATM var jobs
    - update UFS-DA ATM var job names in machine dependent `env` files to new job names
    - rename UFS-DA ATM var configuration files consistent with change in job names
    - add UFS-DA ATM yaml files for UFS-DA fix files, crtm files, and increments
    - add python class for UFS-DA ATM var analysis
    - link UFS-DA python increment conversion script from GDASApp to g-w `ush` directory

    The above changes are part of a larger g-w effort to transition from shell scripts to python.  UFS-DA Aerosol was the first GDASApp system to be converted.   This PR represents the second GDASApp system, UFS-DA atmospheric variational DA, to be converted.  PR #1373 contains changes to convert the UFS-DA ensemble DA to a python based approach.

    Fixes (in part) #1313
    Depends (in part) on PR #1370 and [GDASApp #388](https://github.com/NOAA-EMC/GDASApp/pull/388)

commit 70a7d99bb65fd7661d7d2bac10633c0dda5d39fd
Author: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com>
Date:   Tue Apr 18 10:26:00 2023 -0400

    Port the global workflow to Jet (#1301)

    Provides initial cycled and free-forecast support for the global workflow on Jet.  References #357.  Not included in this port is support for GLDAS, verif-global, and TC_tracker.

    Jet will eventually support the following, with the currently tested options bolded, on xjet and kjet partitions
    - uncoupled, cycled and free-forecast experiments at C48, C96, C192, C384, and C768 resolutions
    - coupled, free-forecast experiments (ATMA, ATMW, S2S, and S2SW) at C384
    ~Note that currently coupled ICs are not available on Jet, so only ATM-only experiments can performed.~

    Fixes #357

commit d2b268ab3d965c9a2cf998dd048ac7a3ee7dc36b
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Mon Apr 17 21:15:04 2023 -0400

    Consolidate wave parm files (#1477)

    When the new wave parm directory was created, the existing parm files
    were not moved into the new directory. These files were used for AWIPS,
    so not generally tested.

commit 8dcfaa6fbc5e0a94d44952f710f77c3b18ffa50d
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Mon Apr 17 13:37:26 2023 -0400

    Split MPMD stdout into tasks on slurm (#1469)

    It can be difficult to debug MPMD jobs because their logs are all written concurrently to a single file. While the use of tags to designate which task via the preamble and PS4 can help identify which line is from which task, it is still difficult to follow a single task through the log, particularly for larger MPMD jobs with dozens of tasks.

    Individual stdout files are now created by using the `srun` `--output` option. These files are written to the working directory (in `$DATA`).

    Fixes: #1468

commit 6e7e4f1db78bbb67d94d54bdcb0a021a626b01f1
Author: Henry R. Winterbottom <49202169+HenryWinterbottom-NOAA@users.noreply.github.com>
Date:   Mon Apr 17 09:59:01 2023 -0600

    GFS fixed-file YAMLs. (#1471)

    Add a few fixed-file YAMLs used in the GFS.

commit 2ec4125f67e6b6c1d8dee6f6fcf1d0798f587a31
Author: Rahul Mahajan <aerorahul@users.noreply.github.com>
Date:   Fri Apr 14 20:55:57 2023 -0400

    Initial blocks in place for forecast refactor work (#1466)

    This PR is a first in a series of PR for transforming the forecast job.
    This PR does not affect current function of the forecast job.
    This PR:
    - adds initial blocks to separate task specific and model configuration for the task blocks

commit d47f33f142824c0d2111f7e2f08c43f99b33bff4
Author: Walter Kolczynski - NOAA <Walter.Kolczynski@noaa.gov>
Date:   Fri Apr 14 15:51:14 2023 -0400

    Update buoys file and fix boundary point jobs (#1465)

    The buoy file used by the wave jobs ([wave_gfs.buoys](https://github.com/NOAA-EMC/global-workflow/blob/develop/parm/wave/wave_gfs.buoys)) was just a copy of [wave_gfs.buoys.dat](https://github.com/NOAA-EMC/global-workflow/blob/develop/parm/wave/wave_gfs.buoys.dat). In addition to being a duplicate, the file was a truncated version without any boundary points, causing boundary point jobs to fail.

    The duplicate file has been removed and replaced by a symlink to the full buoy list [wave_gfs.buoys.full](https://github.com/NOAA-EMC/global-workflow/blob/develop/parm/wave/wave_gfs.buoys.full). This maintains the provenance of the file and prevents the former duplicate from becoming out-of-sync. Users who still want to use the truncated buoy can change the target of the symlink to wave_gfs.buoys.dat.

    There are also a few minor bugs fixes that were necessary to get boundary point jobs to run:
    - `FHMAX_WAV_IBP` had been set in the bndpnt config file but not used in the j-job. This was invisible unless a user changed the value, since the config and j-job used the same default.
    - Checks against `FHMAX_WAV` would set the unused `FHMAX_WAV_IBP` to the max value instead of the `FHMAX_WAV_PNT` used for the loop. This is a problem when running for less than 180 h (the default value).
    - The boundary point bulletin job was not in the env job list for Orion (other machines have it).

    Now the boundary point jobs set `FHMAX_WAV_PNT` to `$FHMAX_WAV_IBP`. `FHMAX_WAV_IBP` was moved from the bndpnt config to config.wave so it is visible to bndpntbll as well.

    Fixes #1464

commit e496e393b16565207c227f4b69a5691d97098624
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Wed Apr 12 15:59:00 2023 -0400

    Move Fit2Obs to stand-alone job (#1456)

    This PR moves the Fit2Obs invocation out of the vrfy job and into its own dedicated `fit2obs` job in the gdas suite. This new dedicated job uses the latest Fit2Obs tag `wflow.1.0`.

    The Fit2Obs requires a type of spin-up. The job looks back `VBACKUP_FITS` hrs and needs available inputs for that lookback cycle in the `ROTDIR`. The `jobs/JGDAS_FIT2OBS` script will first check that `xdate` (`CDATE` - `VBACKUP_FITS`) > `SDATE` and then if met, will check that the needed inputs exist.
    - If `xdate>SDATE` is not yet satisfied, the job will exit 0 with "Too early for FIT2OBS to run. Exiting.". The conditional is greater-than and not greater-than-or-equal since the first half cycle generally does not have some of the needed inputs (e.g. prepbufr). Thus the first half cycle is not included in the valid lookback cycles. This avoids erroneous job failures for the first cycle to run the Fit2Obs package. Additional logic could be introduced to include the half cycle if all available inputs are available.
    - If any of the needed inputs are missing the job will abort with "FATAL ERROR: FILE MISSING: ${file}".

    This spin-up means that the first cycles will run the job but exit 0 immediately. The 6th cycle (if `VBACKUP_FITS=24`) will be the first cycle to run the Fit2Obs package and produce output in the online archive.

    Changes:

    1. Remove fit2obs variables and settings from `config.vrfy` and into newly created `config.fit2obs` for `fit2obs` job.
    2. Remove fit2obs submission/invocation from `jobs/rocoto/vrfy.sh`.
    3. Create new `fit2obs` job scripts: `jobs/rocoto/fit2obs.sh` and `jobs/JGDAS_FIT2OBS`
    4. Add new `fit2obs` job to setup scripts: `workflow/applications.py` and `workflow/rocoto/workflow_tasks.py`
    5. Add new `fit2obs` job to all env files.
    6. Add new `fit2obs` job into `config.resources` (use 1 node on WCOSS2 and 3 nodes elsewhere).
    7. Add `export DO_FIT2OBS="YES"` to `config.base.emc.dyn`.

    Resolves #1405
    Resolves #1232

commit 363a2b47de11ab327408d2df20a3718f25062fa5
Author: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com>
Date:   Wed Apr 12 14:42:50 2023 -0400

    Rework arch job dependencies (#1455)

    This reworks the dependencies for arch tasks so that if there are no verification tasks selected and it is an uncoupled experiment, a dependency for the cycle's post jobs is added. It also fixes the dependency checks in rocoto.py to check for an empty list or string instead of checking the first element of a list, which may not exist if no dependencies are given. Lastly, it issues a warning to the user if there are no dependencies for any job.

    Fixes #1451

commit 7e661f4cd00cf99b12e55574318bbd0eb1a5eaa0
Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com>
Date:   Wed Apr 12 10:36:58 2023 -0400

    Stage bias files for UFSDA aerosols (#1370)

    Updates UFSDA aerosols to stage bias files. Also adds in the threads and aprun commands for the run portion of the UFDA aero jobs.

    Fixes (in part) #1313.

commit d5ae3328fa4041b177357b1133f6b92e81c859d7
Author: Henry R. Winterbottom <49202169+HenryWinterbottom-NOAA@users.noreply.github.com>
Date:   Tue Apr 4 03:34:48 2023 -0600

    Add logging level to logger (#1442)

    This PR provides task-level support for the respective pygfs applications. As an example, logging-level may be defined within jobs/JGLOBAL_FORECAST as follows.

    ```
    #! /usr/bin/env bash

    source "${HOMEgfs}/ush/preamble.sh"
    source "${HOMEgfs}/ush/jjob_header.sh" -e "fcst" -c "base fcst"

    export LOGGING_LEVEL="DEBUG"
    ```

    This feature allows a user to change the logging level from the run-time environment rather than requiring modification of the respective pygfs module or task.

    Fixes #1438

commit de81c5911c308679366b97fda19f015b1388d9dc
Author: TerrenceMcGuinness-NOAA <terrence.mcguinness@cox.net>
Date:   Mon Apr 3 17:53:12 2023 -0400

    Update hash for GDASApp to db2f998 (#1443)

    When an update described below made a change to the HASH in the `${HOMEgfs}/sorc/checkout.sh` script for the corresponding GDASApp it was entered in error:

    _3e73038c - Use V2 version of fix files needed for Thompson MP (#1422) (7 days ago) <Rahul Mahajan>_

    Examining the GDASApp repo it should be confirmed that the correct HASH should be **db2f998**

    Fixes #1441

commit 0d1e993b2b5db6160c4a6b88b67899dc8e9754f8
Author: Kate Friedman <kate.friedman@noaa.gov>
Date:   Fri Mar 31 09:58:22 2023 -0400

    Remove para module paths for ncdiag on WCOSS2 (#1437)

    The ncdiag/1.0.0 module moved from para to prod on WCOSS2 on March 27th (RFC 10769).

    * Remove para m…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintenance Regular updates and maintenance work
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants