Skip to content

Commit

Permalink
Issue #2: add GFS DA v16.0.0 release notes
Browse files Browse the repository at this point in the history
  • Loading branch information
RussTreadon-NOAA committed Sep 10, 2020
1 parent 0bd8d69 commit e474cf0
Showing 1 changed file with 337 additions and 0 deletions.
337 changes: 337 additions & 0 deletions doc/Release_Notes.gfsda.v16.0.0.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,337 @@
GFSDA.v16.0.0 RELEASE NOTES

GIT TAG
* GFS DA v16.0.0 is in github repository NOAA-EMC/GSI. GFS DA v16 is intended to be installed
as part of the entire GFS v16 package. Please see GFS v16 release notes for the name and
location of the GFS tag in github. The GFS tag contains a script which checks out the
appropriate GFS DA v16 tag.




DOC CHANGES
* Rename Release_Notes.fv3gfs_da.v15.0.0.txt as Release_Notes.gfsda.v16.0.0 and update contents to
relect GFS DA v16 development.




CODE CHANGES
* Data assimilation changes
* Use a Local Ensemble Kalman Filter (LETKF) with model space localization and
linearized observation operator to replace the Ensemble Square Root Filter (EnSRF).
* Apply a new 4-Dimensional Incremental Analysis Update (4D-IAU) technique.
* Turn on Stochastic Kinetic Energy Backscatter (SKEB) scheme in GDAS ensemble forecasts.
* Update variational Quality Control (QC).
* Apply Hilbert curve to aircraft data.
* Update aircraft bias correction with safeguards.
* Assimilate additional COSMIC-2 GNSS-RO data (COSMIC-2 E1 and E2)
* Apply correlated observation error for CrIS over sea surfaces and IASI over sea and land.
* Assimilate AMSU-A channel 14 and ATMS channel 15 without bias correction.
* Assimilate CSR data from ABI_G16, AHI_Himawari8, and SEVIRI_M08.
* Assimilate AVHRR from NOAA-19 and Metop-B for near sea-surface temperature (NSST).
*Upgrade to Community Radiative Transfer Model (CRTM) v2.3.0.
* New GFS DA v16 codes
* calc_analysis.fd - compute analysis by combining guess and increment
* calc_increment_ens_ncio.fd - compute ensemble increment using netcdf io
* interp_inc.fd - horizontally interpolate analysis increment to specified output grid
* ncdiag.fd - concatenate netcdf diagnostic files created by GSI




JOB CHANGES
* Update jobs to run within GFS workflow
* Remove JGDAS_ENKF_INNOVATE_OBS as this job is no longer needed
* Add the following new jobs
* JGDAS_CHGRES_FORENKF - chgres deterministic forecast to EnKF resolution
* JGDAS_ENKF_SURFACE - create surface analysis files for EnKF members
* JGLOBAL_ANALCALC - create gaussian grid atmospheric and surface analysis files
* JGLOBAL_ANALDIAG - create GSI diagnostic files for deterministic analysis
* JGLOBAL_ENKF_ANALDIAG - create GSI diagnosic files for EnKF members




SCRIPT CHANGES
* Update scripts to run within GFS workflow.
* Remove ".ecf" suffix from script names
* Add the following new scripts
* exglobal_chgres_forenkf_fv3gfs.sh - chgres deterministic forecast to EnKF resolution
* exglobal_enkf_surface_fv3gfs.sh - create surface analysis files for EnKF members
* exglobal_analcalc_fv3gfs.sh - create gaussian grid atmospheric and surface analysis files
* exglobal_analdiag_fv3gfs.sh - create GSI diagnostic files




PARM CHANGES
* Update to run within GFS workflow. Parm or configuration files for GFS components reside in
parm/config. Below are the parm (config) files used by each GFS DA v16 job
* JGDAS_CHGRES_FORENKF - config.base, config.anal, config.echgres
* JGDAS_ENKF_FCST - config.base, config.fcst, config.efcs
* JGDAS_ENKF_POST - config.base, config.epos
* JGDAS_ENKF_RECENTER - config.base, config.ecen
* JGDAS_ENKF_SURFACE - config.base, config.esfc
* JGLOBAL_ANALCALC - config.base, config.anal, config.analcalc
* JGLOBAL_ANALDIAG - config.base, config.anal, config.analdiag
* JGLOBAL_ANALYSIS - config.base, config.anal
* JGLOBAL_ENKF_ANALDIAG - config.base, config.anal, config.eobs, config.analdiag, config.ediag
* JGLOBAL_ENKF_SELECT_OBS - config.base, config.anal, config.eobs
* JGLOBAL_ENKF_UPDATE - config.base, config.anal, config.eupd
Parameters common to all jobs are in config.base. Analysis jobs share config.anal.
This avoid duplication of identical parameters across multiple parameter files.




FIX CHANGES
* Updates to run GFS DA v16
* New files and directory
* global_anavinfo.l127.txt - change vertical resolution to 127, add correlated error section
* global_hybens_info.l127.txt - GSI localization parameters for L127
* global_hybens_smoothinfo.l127.txt - smoothing parameters for L127
* Rcov_* - correlated observation error for CrIS and IASI
* vlocal_eig_l127.dat - LETKF model space localization parameters for L127
* vqctp001.dat - variational quality control parameters
* Big_Endian/global_berror.l127y770.f77 - L127 static background error file for C768
* gfsv16_historical/ - contain historical fix files
* Modify existing files
* global_convinfo.txt - updates for new variational quality control; adjust gross checks
limits for ps and sst; assimilate additional gps_bnd data
* global_ozinfo.txt - add ompslp_npp (monitor mode)
* global_satinfo.txt - assimilate the following: amsua channel 14 and atms channel 15
(without bias correction), avhrr3_n19 channels 3-5, seviri_m08
channels 5-6, ahi_himawari8 channels 8-10, abi_g16 channel 8
* prepobs_errtable.global - update observation errors for ps types 120, 180, 181, 187;
uv 245, 246, 247, 290




RESOURCE INFORMATION
* Frequency of run
* 6 hourly cycle (00, 06, 12, 18Z) - no change from current operations


* All versions of libraries, compiler, and modules used by GFS DA v16 are specified in
modulefiles/modulefile.ProdGSI.wcoss_d


* Data retention for files in $COMROOTp3 are the same as those specified for
the overall GFS v16 package


* Disk space. Please see disk usage estimates for entire GFS v16 package


* Computational resources and run times
* JGLOBAL_ANALYSIS (GFS)
* 250 nodes, 1000 tasks, ptile=4, 7 threads/task
* Runtime: 28.1 - 29.4 minutes

* JGLOBAL_ANALCALC (GFS)
* 5 nodes, 140 tasks, ptile=28, 1 thread/task
* Runtime: 2.4 - 2.7 minutes

* JGLOBAL_ANALYSIS (GDAS)
* 250 nodes, 1000 tasks, ptile=4, 7 threads/task
* Runtime: 38.2 - 39.3 minutes

* JGLOBAL_ANALCALC (GDAS)
* 5 nodes, 140 tasks, ptile=28, 1 thread/task
* Runtime: 11.6 - 12.5 minutes

* JGLOBAL_ANALDIAG (GDAS)
* 4 nodes, 112 tasks, ptile=28, 1 thread/task
* Runtime: 4.4 - 5.1 minutes

* JGLOBAL_ENKF_SELECT_OBS
* 120 nodes, 480 tasks, ptile=4, 7 threads/task
* Runtime: 4.1 - 4.8 minutes

* JGLOBAL_ENKF_ANALDIAG
* 2 nodes, 56 tasks, ptile=28, 1 thread/task
* Runtime: 3.6 - 4.0 minutes

* JGLOBAL_ENKF_UPDATE
* 240 nodes, 960 tasks, ptile=4, 7 threads/task
* Runtime: 25.6 - 26.7 minutes

* JGDAS_ENKF_RECENTER (3x)
* 120 nodes, 240 tasks, ptile=2, 14 threads/task
* Concurrently run 3 realizations of JGDAS_ENKF_RECENTER. Each job
processes an IAU analysis time. Each job uses 40 nodes, 80 tasks,
ptile=2, 14 threads/task.
* Runtime: 3.8 - 4.9 minutes

* JGDAS_ENKF_SURFACE
* 3 nodes, 84 tasks, ptile=28, 1 thread/task
* Runtime: 2.2 - 2.6 minutes

* JGDAS_ENKF_FCST (40x)
* 600 nodes, 16800 tasks, ptile=28, 1 thread/task
* Concurrently run 40 realizations of JGDAS_ENKF_FCST. Each job
sequentially processes 2 EnKF members. Each job uses 15 nodes,
420 tasks, ptile=28, 1 thread/task.
* Runtime: 28.5 - 31.6 minutes

* JGDAS_ENKF_POST (7x)
* 140 nodes, 560 tasks, ptile=4, 7 threads/task
* Concurrently run 7 realizations of JGDAS_ENKF_POST. Each job
prcoesses one forecast hour. Each job uses 20 nodes, 80 tasks,
ptile=4, 7 threads/task.
* Runtime: 10.6 - 11.3 minutes




PRE-IMPLEMENTATION TESTING REQUIREMENTS
* Which production jobs should be tested as part of this implementation?
* The GFS DA package needs to tested with the entire GFS v16 suite.


* Does this change require a 30-day evaluation?
* Yes, the entire GFS v16 package requires a 30-day evaluation


* Suggested evaluators
* Same as those for entire GFS v16 package



DISSEMINATION INFORMATION
* Where should this output be sent?
* same as current operations


* Who are the users?
* same as current operations


* Which output files should be transferred from PROD WCOSS to DEV WCOSS?
* Please refer to release notes for GFS v16 package


* Directory changes
* Add atmos and wave to gfs, gdas, and enkfgdas paths. GFS v16 paths are
- $COMROOTp3/gfs/prod/gfs.$PDY/$cyc/{atmos, wave}
- $COMROOTp3/gfs/prod/gdas.$PDY/$cyc/{atmos, wave}
- $COMROOTp3/gfs/prod/enkfgdas.$PDY/$cyc/atmos EnKF does not run with waves
* Write GSI subdomain specific diagnostic files to new directory, gsidiags, in
gdas.$PDY/$cyc/atmos and enkfgdas.$PDY/$cyc/atmos


* File changes. Only GFS DA v16.0.0 file changes are listed below.

* $COMROOTp3/gfs/prod/gfs.$PDY/$cyc/atmos
* Rename
* replace ".nemsio" suffix with ".nc" for atm* and sfc* files
* Add
* gfs.t${cyc}z.atmi003.nc and gfs.t${cyc}z.atmi009.nc - analysis increment files
valid at the start and end of the IAU analysis window
* gfs.t${cyc}z.loganl.txt - text file indicating creation of GFS atmanl and sfcanl files
* gfs.t${cyc}z.loginc.txt - text file indicating creation of GFS IAU increment files


* $COMROOTp3/gfs/prod/gdas.$PDY/$cyc/atmos
* Rename
* replace ".nemsio" suffix with ".nc" for atm* and sfc* files
* Add
* gdas.t${cyc}z.atma003.ensres.nc, gdas.t${cyc}z.atma009.ensres.nc - analyses valid
at the start and end of the IAU analysis window interpolated to EnKF resolution
* gdas.t${cyc}z.atmf003.ensres.nc, gdas.t${cyc}z.atmf006.ensres.nc,
gdas.t${cyc}z.atmf009.ensres.nc - 3, 6, and 9 hour forecasts interpolated to
EnKF resolution
* gdas.t${cyc}z.atmi003.nc, gdas.t${cyc}z.atmi009.nc - IAU analysis increment files
at the start and end of the IAU analysis window
* gdas.t${cyc}z.loganl.txt - text file indicating creation of GDAS atmanl and sfcanl files
* gdas.t${cyc}z.loginc.txt - text file indicating creation of GDAS IAU increment files
* gsidiags - directory containing sub-domain GDAS GSI diagnostic files

* $COMROOTp3/gfs/prod/enkfgdas.$PDY/$cyc/atmos
* Rename
* replace ".nemsio" suffix with ".nc" for atm* and sfc* files
* replace ".nc4" suffix with ".nc" for ensmean and ensspread files
* Add
* efcs.grpXX for XX=21 to 40 - efcs txt files for EnKF forecast groups 21 to 40
* gdas.t${cyc}z.atmi003.ensmean.nc - ensemble mean analysis increment valid at start of IAU window
* gdas.t${cyc}z.atminc.ensmean.nc - ensemble mean analysis increment valid at center of IAU window
* gdas.t${cyc}z.atmi009.ensmean.nc - ensemble mean analysis increment valid at end of IAU window
* gdas.t${cyc}z.loginc.txt - text file indicating creation of EnKF IAU increment files
* gsidiags - directory containing sub-domain EnKF GSI diagnostic files
* memXXX/gdas.t${cyc}z.ratmi003.nc - recentered analysis increment valid at start of IAU window
for EnKF member memXXX
* memXXX/gdas.t${cyc}z.ratminc.nc - recentered analysis increment valid at center of IAU window
for EnKF member memXXX
* memXXX/gdas.t${cyc}z.ratmi009.nc - recentered analysis increment valid at end of IAU window
for EnKF member memXXX
* Remove
* remove eomg.grpXX - job creating these files is not run in GFS v16
* gdas.t00z.atmanl.ensmean.nemsio
* memXXX/gdas.t${cyc}z.abias, abias_air, abias_pc, atmanl, cnvstat, gsistat, oznstat, ratmanl,
radstat - these files are not created in GFS v16




HPSS ARCHIVE
* Retention length?
* Please refer to release notes for GFS v16 package


* List which output files should be archived
* Please refer to release notes for GFS v16 package




IMPLEMENTATION INSTRUCTIONS
* Please note that the GFS DA v16 components must be installed in conjunction with the entire GFS v16 package.
Thus, the implementation instructions below extract the entire GFS v16 package. The GFS package is
tagged in github as tag gfs.v16.0.0. Implementation instructions for this tag follow:

1) cd $NWROOTp3

2) mkdir $NWROOTp3/gfs.v16.0.0

3) cd $NWROOTp3/gfs.v16.0.0

4) git clone https://github.com/NOAA-EMC/global-workflow.git .
* Notes:
* The "." after global-workflow.git is important. It tells git to clone the repository
fv3gfs into the local working directory, $NWROOTp3/gfs.v16.0.0.
* The SPA(s) handling the GFS v16 implementation may encounter "permission denied" messages when
attempting to clone github repositories. Code managers need to grant access the SPA(s). Please
contact Kate.Friedman@noaa.gov for assistance.

5) git checkout gfs.v16.0.0

6) cd sorc

7) ./checkout.sh
* This script extracts the GFS v16 components from github

8) ./build_all.sh
* Script build_all.sh compiles GFS v16 components. Runtime output from the build for each
package is written to log files in directory logs. Specifically, GFS DA v16 build information
is written to logs/build_gsi.log. Script build_gsi.sh invokes gsi.fd/ush/build_all_cmke.sh.
This script uses cmake to build GFS DA v16 executables. Script build_all_cmake.sh accepts two
command line options: build type and directory path to package. Two build types are
supported - PRODUCTION (default) and DEBUG.

9) ./link_fv3gfs.sh nco dell



JOB DEPENDENCIES & FLOW DIAGRAM
* GFS DA v16 adds several DA jobs to the GFS. It also alters dependencies for some
existing jobs. Job dependencies are provided below
* JGLOBAL_ANALCALC - trigger upon completion of JGLOBAL_ANALYSIS
* JGLOBAL_ANALDIAG - trigger upon completion of JGLOBAL_ANALYSIS
* JGDAS_VERFOZN - trigger upon completion of JGLOBAL_ANALDIAG
* JGDAS_VERFRAD - trigger upon completion of JGLOBAL_ANALDIAG
* JGLOBAL_ENKF_ANALDIAG - trigger upon completion of JGLOBAL_ENKF_SELECT_OBS
* JGLOBAL_ENKF_UPDATE - trigger upon completion of JGLOBAL_ENKF_ANALDIAG
* JGDAS_ENKF_SURFACE - trigger upon completion of JGLOBAL_ENKF_UPDATE
* JGDAS_CHGRES_FORENKF -trigger upon completion of GDAS JGLOBAL_FORECAST and all JGDAS_ENKF_FCST

0 comments on commit e474cf0

Please sign in to comment.