Skip to content

Commit

Permalink
Merge pull request NOAA-EMC#169 from RussTreadon-NOAA/master
Browse files Browse the repository at this point in the history
GitHub Issue NOAA-EMC#120. Merge GFS v16.1.1 DA changes into master
  • Loading branch information
MichaelLueken authored Jun 10, 2021
2 parents 820ee80 + d199ed5 commit 51a6564
Show file tree
Hide file tree
Showing 31 changed files with 870 additions and 541 deletions.
121 changes: 121 additions & 0 deletions doc/Release_Notes.gfsda.v16.1.0.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
GFSDA.v16.1.0 RELEASE NOTES


PRELUDE

* The tag gfsda.v16.1.0 was created in the NOAA-EMC/GSI repository to
support the GFSv16.1 implementation and is included as a part of the
NOAA-EMC/global-workflow tag EMC-v16.1.0. See release notes
docs/Release_Notes.gfs.v16.1.0.txt in the NOAA-EMC/global-workflow
tag for more details on the motivation, workflow changes, and
implementation instructions.


FIX CHANGES

* fix/
* global_convinfo.txt: Change GeoOptics (SAID=265) from -1 to 1
for active assimilation


SCRIPTS CHANGES

* scripts/
* exgdas_atmos_chgres_forenkf.sh: Addresses GFSv16 bugzilla #1198
* exgdas_enkf_ecen.sh: Addresses GFSv16 bugzilla #1198
* exgdas_enkf_fcst.sh: Addresses GFSv16 bugzilla #1198
* exgdas_enkf_post.sh: Addresses GFSv16 bugzilla #1198
* exgdas_enkf_select_obs.sh: Addresses GFSv16 bugzilla #1198
* exgdas_enkf_sfc.sh: Addresses GFSv16 bugzilla #1198
* exgdas_enkf_update.sh: Addresses GFSv16 bugzilla #1198
* exglobal_atmos_analysis.sh: Addresses GFSv16 bugzilla #1198,
adds default values for commercial RO parameters
* exglobal_atmos_analysis_calc.sh: Addresses GFSv16 bugzilla #1198
* exglobal_diag.sh: Addresses GFSv16 bugzilla #1198


SRC CHANGES

* src/
* enkf/
* gridio_gfs.f90: Changes delz calculation to negative definite

* fv3gfs_ncio/
* module_fv3gfs_ncio.f90: Addresses GFSv16 bugzilla #1196

* gsi/
* cplr_gfs_ensmod.f90: Addresses GFSv16 bugzilla #1196
* genstats_gps.f90: GPSRO bugfix
* gesinfo.F90: Addresses GFSv16 bugzilla #1196
* gsimod.F90: Add commercial RO parameters
* guess_grids.F90: Add commercial RO parameters
* ncepnems_io.f90: Changes delz calculation to negative definite
* netcdfgfs_io.f90: Addresses GFSv16 bugzilla #1196 and delz sign bugfix
* read_files.f90: Addresses GFSv16 bugzilla #1196
* read_fl_hdob.f90: Addresses GFSv16 bugzilla #1205
* setupbend.f90: New QC and error inflation for commercial RO
* setuprad.f90: Bugfix for radiance diags
* stop1.f90: Addresses GFSv16 bugzilla #1196
* write_incr.f90: Delz bugfix


USH CHANGES

* ush/
* build_all_cmake.sh: Addresses DA aspects of GFSv16 bugzillas
#216, #1218, and #1222
* prune_4nco_global.sh: New script to address DA aspects of GFSv16
bugzillas #216 and #1222


UTIL CHANGES

* util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/scripts/exgdas_atmos_verfrad.sh:
chgrp Megha-Tropiques SAPHIR radiance diagnostic file to rsptrod since
this is a restricted data type, partially address DA aspects of GFSv16
bugzilla #1221.


IMPLEMENTATION INSTRUCTIONS

* The GFS DA v16.1 tag must be installed in conjunction with the entire
GFS v16.1 package. See release notes docs/Release_Notes.gfs.v16.1.0.txt
in the NOAA-EMC/global-workflow tag EMC-v16.1.0 tag for instructions.


PRE-IMPLEMENTATION TESTING REQUIREMENTS

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

* Does this change require a 30-day evaluation?
* No.


DISSEMINATION INFORMATION

* Where should this output be sent?
* No change from GFS v16.0

* Who are the users?
* No change from GFS v16.0

* Which output files should be transferred from PROD WCOSS to DEV WCOSS?
* No change from GFS v16.0

* Directory changes
* No change from GFS v16.0

* File changes
* No change from GFS v16.0


HPSS ARCHIVE

* No change from GFS v16.0


JOB DEPENDENCIES & FLOW DIAGRAM

* No change from GFSv16.0

2 changes: 1 addition & 1 deletion fix
Submodule fix updated from daca7b to 60d1b1
10 changes: 2 additions & 8 deletions scripts/exgdas_atmos_chgres_forenkf.sh
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ export NMV=${NMV:-"/bin/mv"}
export NLN=${NLN:-"/bin/ln -sf"}
export CHGRP_CMD=${CHGRP_CMD:-"chgrp ${group_name:-rstprod}"}
export NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen}
export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'}

# IAU
DOIAU=${DOIAU:-"NO"}
Expand Down Expand Up @@ -176,10 +175,7 @@ EOF
. prep_step

$APRUN_CHGRES $CHGRESNCEXEC chgres_nc_gauss0$FHR.nml
rc=$?
export ERR=$rc
export err=$ERR
$ERRSCRIPT || exit 1
export err=$?; err_chk
fi
done

Expand All @@ -194,9 +190,7 @@ EOF
. prep_step

$APRUNCFP_CHGRES $DATA/mp_chgres.sh
export ERR=$?
export err=$ERR
$ERRSCRIPT || exit 3
export err=$?; err_chk
fi
fi

Expand Down
46 changes: 7 additions & 39 deletions scripts/exgdas_enkf_ecen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ export CASE=${CASE:-384}
ntiles=${ntiles:-6}

# Utilities
ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'}
NCP=${NCP:-"/bin/cp -p"}
NLN=${NLN:-"/bin/ln -sf"}
NEMSIOGET=${NEMSIOGET:-${NWPROD}/exec/nemsio_get}
Expand Down Expand Up @@ -164,11 +163,7 @@ if [ $DO_CALC_INCREMENT = "YES" ]; then

$NCP $GETATMENSMEANEXEC $DATA
$APRUN_ECEN ${DATA}/$(basename $GETATMENSMEANEXEC) $DATAPATH $ATMANLMEANNAME $ATMANLNAME $NMEM_ENKF
rc=$?

export ERR=$rc
export err=$ERR
$ERRSCRIPT || exit 2
export err=$?; err_chk
else
# Link ensemble mean increment
if [ $FHR -eq 6 ]; then
Expand All @@ -188,11 +183,7 @@ else

$NCP $GETATMENSMEANEXEC $DATA
$APRUN_ECEN ${DATA}/$(basename $GETATMENSMEANEXEC) $DATAPATH $ATMINCMEANNAME $ATMINCNAME $NMEM_ENKF
rc=$?

export ERR=$rc
export err=$ERR
$ERRSCRIPT || exit 2
export err=$?; err_chk

# If available, link to ensemble mean guess. Otherwise, compute ensemble mean guess
if [ -s $COMIN_GES_ENS/${GPREFIX}atmf00${FHR}.ensmean$GSUFFIX ]; then
Expand All @@ -208,11 +199,7 @@ else

$NCP $GETATMENSMEANEXEC $DATA
$APRUN_ECEN ${DATA}/$(basename $GETATMENSMEANEXEC) $DATAPATH $ATMGESMEANNAME $ATMGESNAME $NMEM_ENKF
rc=$?

export ERR=$rc
export err=$ERR
$ERRSCRIPT || exit 2
export err=$?; err_chk
fi
fi

Expand Down Expand Up @@ -284,12 +271,7 @@ if [ $RECENTER_ENKF = "YES" ]; then
EOF
cat $chgresnml
$APRUN_CHGRES ./chgres.x
rc=$?

export ERR=$rc
export err=$ERR
$ERRSCRIPT || exit 3

export err=$?; err_chk
fi

if [ $DO_CALC_INCREMENT = "YES" ]; then
Expand All @@ -307,12 +289,7 @@ EOF

$NCP $RECENATMEXEC $DATA
$APRUN_ECEN ${DATA}/$(basename $RECENATMEXEC) $FILENAMEIN $FILENAME_MEANIN $FILENAME_MEANOUT $FILENAMEOUT $NMEM_ENKF
rc=$?

export ERR=$rc
export err=$ERR
$ERRSCRIPT || exit 2

export err=$?; err_chk
else
################################################################################
# Recenter ensemble member atmospheric increments about hires analysis
Expand Down Expand Up @@ -340,12 +317,7 @@ cat recenter.nml

$NCP $RECENATMEXEC $DATA
$APRUN_ECEN ${DATA}/$(basename $RECENATMEXEC) $FILENAMEIN $FILENAME_INCMEANIN $FILENAME_GSIDET $FILENAMEOUT $NMEM_ENKF $FILENAME_GESMEANIN
rc=$?

export ERR=$rc
export err=$ERR
$ERRSCRIPT || exit 2

export err=$?; err_chk
fi
fi

Expand Down Expand Up @@ -388,11 +360,7 @@ EOF
cat calc_increment.nml

$APRUN_CALCINC ${DATA}/$(basename $CALCINCEXEC)
rc=$?

export ERR=$rc
export err=$rc
$ERRSCRIPT || exit 4
export err=$?; err_chk
fi
done # loop over analysis times in window

Expand Down
12 changes: 3 additions & 9 deletions scripts/exgdas_enkf_fcst.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@ export FIX_AM=${FIX_AM:-$FIX_DIR/fix_am}
export NCP=${NCP:-"/bin/cp -p"}
export NMV=${NMV:-"/bin/mv"}
export NLN=${NLN:-"/bin/ln -sf"}
export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'}
export NDATE=${NDATE:-/$NWPROD/util/exec/ndate}

# Scripts.
FORECASTSH=${FORECASTSH:-$HOMEgfs/scripts/exglobal_forecast.sh}
Expand Down Expand Up @@ -170,15 +168,13 @@ for imem in $(seq $ENSBEG $ENSEND); do
export MEMBER=$imem
export DATA=$DATATOP/$memchar
if [ -d $DATA ]; then rm -rf $DATA; fi
mkdir -p $DATA
$FORECASTSH
ra=$?

# Notify a member forecast failed and abort
if [ $ra -ne 0 ]; then
msg="FATAL ERROR: forecast of member $cmem FAILED. Aborting job"
print $msg
export err=$ra
$ERRSCRIPT || exit 2
err_exit "FATAL ERROR: forecast of member $cmem FAILED. Aborting job"
fi

((rc+=ra))
Expand Down Expand Up @@ -226,9 +222,7 @@ cat $EFCSGRP

################################################################################
# If any members failed, error out
export ERR=$rc
export err=$ERR
$ERRSCRIPT || exit 2
export err=$rc; err_chk

################################################################################
# Postprocessing
Expand Down
6 changes: 1 addition & 5 deletions scripts/exgdas_enkf_post.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ fi
pwd=$(pwd)

# Utilities
ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'}
NCP=${NCP:-"/bin/cp"}
NLN=${NLN:-"/bin/ln -sf"}

Expand Down Expand Up @@ -127,10 +126,7 @@ for fhr in $(seq $FHMIN $FHOUT $FHMAX); do
ra=$?
((rc+=ra))
done

export ERR=$rc
export err=$ERR
$ERRSCRIPT || exit 2
export err=$rc; err_chk

################################################################################
# If smoothing on but no smoothing output, copy smoothed ensemble atmospheric files
Expand Down
6 changes: 1 addition & 5 deletions scripts/exgdas_enkf_select_obs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ pwd=$(pwd)

# Utilities
export NLN=${NLN:-"/bin/ln -sf"}
export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'}

# Scripts.
ANALYSISSH=${ANALYSISSH:-$HOMEgfs/scripts/exglobal_atmos_analysis.sh}
Expand Down Expand Up @@ -115,10 +114,7 @@ export CHEM="$CHEM_INVOBS"
# Execute GSI as a forward operator

$ANALYSISSH

export ERR=$?
export err=$ERR
$ERRSCRIPT || exit 2
export err=$?; err_chk

################################################################################
# Postprocessing
Expand Down
11 changes: 2 additions & 9 deletions scripts/exgdas_enkf_sfc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ export CASE=${CASE:-384}
ntiles=${ntiles:-6}

# Utilities
ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'}
NCP=${NCP:-"/bin/cp -p"}
NLN=${NLN:-"/bin/ln -sf"}
NEMSIOGET=${NEMSIOGET:-${NWPROD}/exec/nemsio_get}
Expand Down Expand Up @@ -163,10 +162,7 @@ if [ $DOIAU = "YES" ]; then
done

$CYCLESH
rc=$?
export ERR=$rc
export err=$ERR
$ERRSCRIPT || exit 11
export err=$?; err_chk

done

Expand All @@ -192,10 +188,7 @@ if [ $DOSFCANL_ENKF = "YES" ]; then
done

$CYCLESH
rc=$?
export ERR=$rc
export err=$ERR
$ERRSCRIPT || exit 11
export err=$?; err_chk

done
fi
Expand Down
11 changes: 2 additions & 9 deletions scripts/exgdas_enkf_update.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ pwd=$(pwd)
# Utilities
NCP=${NCP:-"/bin/cp -p"}
NLN=${NLN:-"/bin/ln -sf"}
ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'}
NEMSIOGET=${NEMSIOGET:-$NWPROD/utils/exec/nemsio_get}
NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen}
USE_CFP=${USE_CFP:-"NO"}
Expand Down Expand Up @@ -245,9 +244,7 @@ if [ $USE_CFP = "YES" ]; then
ncmd_max=$((ncmd < npe_node_max ? ncmd : npe_node_max))
APRUNCFP=$(eval echo $APRUNCFP)
$APRUNCFP $DATA/mp_untar.sh
export ERR=$?
export err=$ERR
$ERRSCRIPT || exit 3
export err=$?; err_chk
fi
fi

Expand Down Expand Up @@ -378,11 +375,7 @@ export pgm=$ENKFEXEC

$NCP $ENKFEXEC $DATA
$APRUN_ENKF ${DATA}/$(basename $ENKFEXEC) 1>stdout 2>stderr
rc=$?

export ERR=$rc
export err=$ERR
$ERRSCRIPT || exit 2
export err=$?; err_chk

# Cat runtime output files.
cat stdout stderr > $COMOUT_ANL_ENS/$ENKFSTAT
Expand Down
Loading

0 comments on commit 51a6564

Please sign in to comment.