Skip to content

Commit

Permalink
GFSv16.3.16 - add GDAS WDQMS (WIGOS Data Quality Monitoring System) j…
Browse files Browse the repository at this point in the history
…ob (#2746)

The GFSv16.3.16 operational upgrade adds a job for the GDAS WDQMS 
(WIGOS Data Quality Monitoring System) data, which provides 6-hourly
summaries of observation reports.

The GFSv16.3.16 was implemented into operations during the 12z gfs
cycle on July 2nd 2024.

Refs #2389

---------

Co-authored-by: Rahul Mahajan <[email protected]>
Co-authored-by: emilyhcliu <[email protected]>
Co-authored-by: David Huber <[email protected]>
  • Loading branch information
4 people authored Jul 3, 2024
1 parent 1a7234b commit 8768682
Show file tree
Hide file tree
Showing 56 changed files with 1,276 additions and 126 deletions.
141 changes: 141 additions & 0 deletions docs/Release_Notes.gfs.v16.3.16.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
GFS V16.3.16 RELEASE NOTES

-------
PRELUDE
-------

This upgrade adds a new GDAS job - `gdaswdqms`. It generates 6-hourly summaries of observation reports, which contain information on time, location, station ID, and quality (usage flag and innovations) from GDAS analysis. The objective of this new job is to support the WMO WDQMS (WIGOS Data Quality Monitoring System) project and ensure that WMO observational data and products are reliable and correspond to agreed-upon needs.

The 6-hourly summaries include surface (synop), upper-air, and surface marine (ship and buoy) observations.

IMPLEMENTATION INSTRUCTIONS
---------------------------

The NOAA VLab and the NOAA-EMC and NCAR organization spaces on GitHub are used to manage the GFS code. The SPA(s) handling the GFS implementation need to have permissions to clone VLab Gerrit repositories and the private NCAR UPP_GTG repository. All NOAA-EMC organization repositories are publicly readable and do not require access permissions. Please proceed with the following steps to install the package on WCOSS2:

```bash
cd $PACKAGEROOT
mkdir gfs.v16.3.16
cd gfs.v16.3.16
git clone -b EMC-v16.3.16 https://github.com/NOAA-EMC/global-workflow.git .
cd sorc
./checkout.sh -o
```

The checkout script extracts the following GFS components:

| Component | Tag | POC |
| --------- | ----------- | ----------------- |
| MODEL | GFS.v16.3.1 | [email protected] |
| GLDAS | gldas_gfsv16_release.v.2.1.0 | [email protected] |
| GSI | gfsda.v16.3.12 | [email protected] |
| UFS_UTILS | ops-gfsv16.3.0 | [email protected] |
| POST | upp_v8.3.0 | [email protected] |
| WAFS | gfs_wafs.v6.3.2 | [email protected] |

To build all the GFS components, execute:
```bash
./build_all.sh
```
The `build_all.sh` script compiles all GFS components. Runtime output from the build for each package is written to log files in directory logs. To build an individual program, for instance, gsi, use `build_gsi.sh`.

Next, link the executables, fix files, parm files, etc in their final respective locations by executing:
```bash
./link_fv3gfs.sh nco wcoss2
```

Lastly, link the ecf scripts by moving back up to the ecf folder and executing:
```bash
cd ../ecf
./setup_ecf_links.sh
```
VERSION FILE CHANGES
--------------------

* `versions/run.ver` - change `version=v16.3.16` and `gfs_ver=v16.3.16`

SORC CHANGES
------------

* No changes from GFS v16.3.15

JOBS CHANGES
------------

* Added a new `j-job` `JGDAS_ATMOS_ANALYSIS_WDQMS`

PARM/CONFIG CHANGES
-------------------

* Added a `config.wdqms` file for the new j-job added.
* Added new configuration parameter `DO_WDQMS` in the following configuration files
- `config.base.emc.dyn` (default to NO)
- `config.base.nco.static` (default to YES)
* Added resource parameters for `WDQMS` job in the following resource configuration files
- `config.resource.emc.dyn`
- `config.resource.nco.static`

SCRIPT CHANGES
--------------

* Added `exscript` `exgdas_atmos_analysis_wdqms.sh`
* Added a utility in `ush` `wdqms.py` called by the new job.
* Added `ecf` script `jgdas_atmos_analysis_wdqms.ecf` and updated the `ecflow` suite definition files.

FIX CHANGES
-----------

* No changes from GFS v16.3.15

MODULE CHANGES
--------------

* New job loads `python` module in the ecf script.

CHANGES TO FILE SIZES
---------------------

* No changes of existing file sizes from GFS v16.3.15
* The `gdaswdqms` job creates three observation quality reports in CSV format for the following data types:
- Upper air (~0.5 MB)
- Marine (-6.5 MB)
- Synop (~ 22 MB)

ENVIRONMENT AND RESOURCE CHANGES
--------------------------------

* Computing resource added for the `gdaswdqms` job for each gdas cycle: The new job `gdaswdqms` requests a single (1) core with `48GB` memory for 20 minutes

PRE-IMPLEMENTATION TESTING REQUIREMENTS
---------------------------------------

* Which production jobs should be tested as part of this implementation?
* WDQMS
* Does this change require a 30-day evaluation?
* No

DISSEMINATION INFORMATION
-------------------------

* No changes from GFS v16.3.15

HPSS ARCHIVE
------------

* No changes from GFS v16.3.15

JOB DEPENDENCIES AND FLOW DIAGRAM
---------------------------------

* Added a new job `gdaswdqms` after `gdasanaldiag` with dependency on the completion of `gdasanaldiag` job.

DOCUMENTATION
-------------

* No changes from GFS v16.3.15

PREPARED BY
-----------
[email protected]
[email protected]
[email protected]
8 changes: 8 additions & 0 deletions ecf/defs/gfs_v16_3.def
Original file line number Diff line number Diff line change
Expand Up @@ -2251,6 +2251,8 @@ suite gfs_v16_3
trigger ./jgdas_atmos_analysis == complete
task jgdas_atmos_analysis_diag
trigger ./jgdas_atmos_analysis == complete
task jgdas_atmos_analysis_wdqms
trigger ./jgdas_atmos_analysis_diag == complete
endfamily
family post
task jgdas_atmos_post_manager
Expand Down Expand Up @@ -4876,6 +4878,8 @@ suite gfs_v16_3
trigger ./jgdas_atmos_analysis == complete
task jgdas_atmos_analysis_diag
trigger ./jgdas_atmos_analysis == complete
task jgdas_atmos_analysis_wdqms
trigger ./jgdas_atmos_analysis_diag == complete
endfamily
family post
task jgdas_atmos_post_manager
Expand Down Expand Up @@ -7501,6 +7505,8 @@ suite gfs_v16_3
trigger ./jgdas_atmos_analysis == complete
task jgdas_atmos_analysis_diag
trigger ./jgdas_atmos_analysis == complete
task jgdas_atmos_analysis_wdqms
trigger ./jgdas_atmos_analysis_diag == complete
endfamily
family post
task jgdas_atmos_post_manager
Expand Down Expand Up @@ -10126,6 +10132,8 @@ suite gfs_v16_3
trigger ./jgdas_atmos_analysis == complete
task jgdas_atmos_analysis_diag
trigger ./jgdas_atmos_analysis == complete
task jgdas_atmos_analysis_wdqms
trigger ./jgdas_atmos_analysis_diag == complete
endfamily
family post
task jgdas_atmos_post_manager
Expand Down
2 changes: 1 addition & 1 deletion ecf/scripts/enkfgdas/analysis/create/jenkfgdas_diag.ecf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:06:00
#PBS -l select=1:mpiprocs=48:ompthreads=1:ncpus=48:mem=48GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

model=gfs
Expand Down
2 changes: 1 addition & 1 deletion ecf/scripts/enkfgdas/analysis/recenter/jenkfgdas_sfc.ecf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:06:00
#PBS -l select=1:mpiprocs=80:ompthreads=1:ncpus=80:mem=60GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

model=gfs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:10:00
#PBS -l select=1:mpiprocs=96:ompthreads=1:ncpus=96:mem=48GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

export model=gfs
Expand Down
61 changes: 61 additions & 0 deletions ecf/scripts/gdas/atmos/analysis/jgdas_atmos_analysis_wdqms.ecf
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#PBS -S /bin/bash
#PBS -N %RUN%_atmos_analysis_wdqms_%CYC%
#PBS -j oe
#PBS -q %QUEUE%
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:20:00
#PBS -l select=1:mpiprocs=1:ompthreads=1:ncpus=1:mem=48GB
#PBS -l place=vscatter:shared
#PBS -l debug=true

export model=gfs
%include <head.h>
%include <envir-p1.h>

set -x

export NET=%NET:gfs%
export RUN=%RUN%
export CDUMP=%RUN%

############################################################
# Load modules
############################################################
module load PrgEnv-intel/${PrgEnv_intel_ver}
module load craype/${craype_ver}
module load intel/${intel_ver}
module load cray-mpich/${cray_mpich_ver}
module load cray-pals/${cray_pals_ver}
module load python/${python_ver}
module list

#############################################################
# WCOSS environment settings
#############################################################
export cyc=%CYC%
export cycle=t%CYC%z

############################################################
# CALL executable job script here
############################################################
${HOMEgfs}/jobs/JGDAS_ATMOS_ANALYSIS_WDQMS
if [ $? -ne 0 ]; then
ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***"
ecflow_client --abort
exit
fi

%include <tail.h>
%manual
######################################################################
# Purpose: To execute the job that creates the WDQMS products
######################################################################

######################################################################
# Job specific troubleshooting instructions:
# see generic troubleshoot manual page
#
######################################################################

# include manual page below
%end
2 changes: 1 addition & 1 deletion ecf/scripts/gdas/atmos/gempak/jgdas_atmos_gempak.ecf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:15:00
#PBS -l select=1:ncpus=2:mpiprocs=2:mem=4GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

model=gfs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:30:00
#PBS -l select=1:ncpus=1:mem=1GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

model=gfs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:05:00
#PBS -l select=1:ncpus=1:mem=1GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

model=gfs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:08:00
#PBS -l select=1:ncpus=1:mem=2GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

model=gfs
Expand Down
2 changes: 1 addition & 1 deletion ecf/scripts/gdas/atmos/post/jgdas_atmos_post_manager.ecf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=01:15:00
#PBS -l select=1:ncpus=1:mem=1GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

model=gfs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:10:00
#PBS -l select=1:ncpus=3:mpiprocs=3:ompthreads=1:mem=200GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

model=gfs
Expand Down
2 changes: 1 addition & 1 deletion ecf/scripts/gdas/atmos/verf/jgdas_atmos_verfozn.ecf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:05:00
#PBS -l select=1:ncpus=1:mem=1GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

model=gfs
Expand Down
2 changes: 1 addition & 1 deletion ecf/scripts/gdas/atmos/verf/jgdas_atmos_verfrad.ecf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:20:00
#PBS -l select=1:ncpus=1:mem=5GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

model=gfs
Expand Down
2 changes: 1 addition & 1 deletion ecf/scripts/gdas/atmos/verf/jgdas_atmos_vminmon.ecf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:05:00
#PBS -l select=1:ncpus=1:mem=1GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

model=gfs
Expand Down
2 changes: 1 addition & 1 deletion ecf/scripts/gdas/wave/init/jgdas_wave_init.ecf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:10:00
#PBS -l select=1:mpiprocs=11:ompthreads=1:ncpus=11:mem=2GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

model=gfs
Expand Down
2 changes: 1 addition & 1 deletion ecf/scripts/gdas/wave/post/jgdas_wave_postpnt.ecf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:12:00
#PBS -l select=4:mpiprocs=50:ompthreads=1:ncpus=50:mem=10GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

model=gfs
Expand Down
2 changes: 1 addition & 1 deletion ecf/scripts/gdas/wave/post/jgdas_wave_postsbs.ecf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:20:00
#PBS -l select=1:mpiprocs=8:ompthreads=1:ncpus=8:mem=10GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

model=gfs
Expand Down
2 changes: 1 addition & 1 deletion ecf/scripts/gdas/wave/prep/jgdas_wave_prep.ecf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:10:00
#PBS -l select=1:mpiprocs=5:ompthreads=1:ncpus=5:mem=100GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

model=gfs
Expand Down
2 changes: 1 addition & 1 deletion ecf/scripts/gfs/atmos/gempak/jgfs_atmos_gempak.ecf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=03:00:00
#PBS -l select=1:ncpus=28:mpiprocs=28:mem=2GB
#PBS -l place=vscatter:shared
#PBS -l place=vscatter
#PBS -l debug=true

model=gfs
Expand Down
Loading

0 comments on commit 8768682

Please sign in to comment.