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

Update operational workflow to work with GSI develop branch #3068

Draft
wants to merge 29 commits into
base: release/gfs.v16.4
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 26 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
9a61cb0
Add GSI script files into workflow scripts directory
ADCollard Aug 20, 2024
b3ce334
Check out GSI develop
ADCollard Aug 20, 2024
6d1ab29
Check out GSI develop
ADCollard Aug 20, 2024
bc683d8
Add Enkf scripts and jobs
ADCollard Aug 21, 2024
0792e7b
Turn off some links
ADCollard Aug 21, 2024
dbc2d37
Add former gsi.fd scripts to ush
ADCollard Aug 22, 2024
3ddc2a7
Add external gsi_utils
ADCollard Aug 22, 2024
dde6c68
Update some links
ADCollard Aug 22, 2024
644a64f
Update gsi_utils version number and add ncdiag
ADCollard Oct 30, 2024
57a11cd
Use an earlier version of gsi_utils
ADCollard Oct 30, 2024
e07187b
Remove use_qsatensmean ref. GSI#602
ADCollard Oct 30, 2024
93abb69
Slight change to version of GSI_utils
ADCollard Oct 30, 2024
f1c5459
Another version number change
ADCollard Oct 30, 2024
38fe6cf
Fix some links
ADCollard Oct 30, 2024
e3a7817
Merge branch 'dev/gfs.v16.GSIdev' of https://github.com/ADCollard/glo…
ADCollard Oct 30, 2024
66745c4
Another link fix
ADCollard Oct 30, 2024
3a8d928
Merge tag 'gfs.v16.3.19' into dev/gfs.v16.GSIdev
ADCollard Oct 31, 2024
b7cee3b
Fix small bug in archive and change default ANAVINFO
ADCollard Oct 31, 2024
5b1297e
Turn on optconv option - see GSI #375
ADCollard Oct 31, 2024
399cac0
Restore observation monitoring capability
ADCollard Nov 1, 2024
52431ae
More radmon updates
ADCollard Nov 1, 2024
e70b340
Add monitor scripts from global-workflow #f159d39
ADCollard Nov 2, 2024
03d6877
Fix info messages
ADCollard Nov 2, 2024
11c5163
Slightly earlier tag for GSI-Monitor
ADCollard Nov 4, 2024
4a57689
Merge branch 'dev/gfs.v16.GSIdev' of https://github.com/ADCollard/glo…
ADCollard Nov 4, 2024
65cc531
Fix conflicts
ADCollard Nov 4, 2024
0cfd667
Update monitor scripts to use versions from GSI #1f6d3aa (6/1/2022)
ADCollard Nov 13, 2024
0fb138a
Update monitor scripts to use versions from GSI #1f6d3aa (6/1/2022)
ADCollard Nov 13, 2024
42957f0
Update wcoss2.ver
ADCollard Nov 15, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 0 additions & 41 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -94,59 +94,28 @@ sorc/wafs_setmissing.fd
# Ignore scripts from externals
#------------------------------
# jobs symlinks
jobs/JGDAS_ATMOS_ANALYSIS_DIAG
jobs/JGDAS_ATMOS_CHGRES_FORENKF
jobs/JGDAS_ATMOS_GLDAS
jobs/JGDAS_ATMOS_VERFOZN
jobs/JGDAS_ATMOS_VERFRAD
jobs/JGDAS_ATMOS_VMINMON
jobs/JGDAS_ENKF_DIAG
jobs/JGDAS_ENKF_ECEN
jobs/JGDAS_ENKF_FCST
jobs/JGDAS_ENKF_POST
jobs/JGDAS_ENKF_SELECT_OBS
jobs/JGDAS_ENKF_SFC
jobs/JGDAS_ENKF_UPDATE
jobs/JGFS_ATMOS_VMINMON
jobs/JGFS_ATMOS_WAFS
jobs/JGFS_ATMOS_WAFS_BLENDING
jobs/JGFS_ATMOS_WAFS_BLENDING_0P25
jobs/JGFS_ATMOS_WAFS_GCIP
jobs/JGFS_ATMOS_WAFS_GRIB2
jobs/JGFS_ATMOS_WAFS_GRIB2_0P25
jobs/JGLOBAL_ATMOS_ANALYSIS
jobs/JGLOBAL_ATMOS_ANALYSIS_CALC
jobs/JGLOBAL_ATMOS_NCEPPOST
jobs/JGLOBAL_ATMOS_POST_MANAGER
# scripts symlinks
scripts/exemcsfc_global_sfc_prep.sh
scripts/exgdas_atmos_chgres_forenkf.sh
scripts/exgdas_atmos_gldas.sh
scripts/exgdas_atmos_nceppost.sh
scripts/exgdas_atmos_verfozn.sh
scripts/exgdas_atmos_verfrad.sh
scripts/exgdas_atmos_vminmon.sh
scripts/exgdas_enkf_ecen.sh
scripts/exgdas_enkf_fcst.sh
scripts/exgdas_enkf_post.sh
scripts/exgdas_enkf_select_obs.sh
scripts/exgdas_enkf_sfc.sh
scripts/exgdas_enkf_update.sh
scripts/exgfs_atmos_nceppost.sh
scripts/exgfs_atmos_vminmon.sh
scripts/exgfs_atmos_wafs_blending.sh
scripts/exgfs_atmos_wafs_blending_0p25.sh
scripts/exgfs_atmos_wafs_gcip.sh
scripts/exgfs_atmos_wafs_grib.sh
scripts/exgfs_atmos_wafs_grib2.sh
scripts/exgfs_atmos_wafs_grib2_0p25.sh
scripts/exglobal_atmos_analysis.sh
scripts/exglobal_atmos_analysis_calc.sh
scripts/exglobal_atmos_pmgr.sh
scripts/exglobal_diag.sh
# ush symlinks
ush/calcanl_gfs.py
ush/calcinc_gfs.py
ush/emcsfc_ice_blend.sh
ush/emcsfc_snow.sh
ush/fix_precip.sh
Expand All @@ -157,7 +126,6 @@ ush/fv3gfs_dwn_nems.sh
ush/fv3gfs_filter_topo.sh
ush/fv3gfs_make_grid.sh
ush/fv3gfs_make_orog.sh
ush/getncdimlen
ush/gfs_nceppost.sh
ush/gfs_transfer.sh
ush/gldas_archive.sh
Expand All @@ -170,20 +138,11 @@ ush/global_chgres.sh
ush/global_chgres_driver.sh
ush/global_cycle.sh
ush/global_cycle_driver.sh
ush/gsi_utils.py
ush/link_crtm_fix.sh
ush/minmon_xtrct_costs.pl
ush/minmon_xtrct_gnorms.pl
ush/minmon_xtrct_reduct.pl
ush/mkwfsgbl.sh
ush/mod_icec.sh
ush/ozn_xtrct.sh
ush/radmon_ck_stdout.sh
ush/radmon_err_rpt.sh
ush/radmon_verf_angle.sh
ush/radmon_verf_bcoef.sh
ush/radmon_verf_bcor.sh
ush/radmon_verf_time.sh
ush/trim_rh.sh
ush/wafs_blending.sh
ush/wafs_grib2.regrid.sh
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ module load cray-pals/${cray_pals_ver}
module load python/${python_ver}
module load hdf5/${hdf5_ver}
module load netcdf/${netcdf_ver}
module load ncdiag/${ncdiag_ver}

module list

Expand Down
156 changes: 156 additions & 0 deletions jobs/JGDAS_ATMOS_ANALYSIS_DIAG
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
#!/bin/bash
set -x

export RUN_ENVIR=${RUN_ENVIR:-"nco"}
export PS4='$SECONDS + '
date


#############################
# Source relevant config files
#############################
export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config}
configs="base anal analdiag"
config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config}
for config in $configs; do
. $config_path/config.$config
status=$?
[[ $status -ne 0 ]] && exit $status
done


##########################################
# Source machine runtime environment
##########################################
. $HOMEgfs/env/${machine}.env anal
status=$?
[[ $status -ne 0 ]] && exit $status


##############################################
# Obtain unique process id (pid) and make temp directory
##############################################
export pid=${pid:-$$}
export outid=${outid:-"LL$job"}

export DATA=${DATA:-${DATAROOT}/${jobid:?}}
mkdir -p $DATA
cd $DATA


##############################################
# Run setpdy and initialize PDY variables
##############################################
export cycle="t${cyc}z"
setpdy.sh
. ./PDY


##############################################
# Determine Job Output Name on System
##############################################
export pgmout="OUTPUT.${pid}"
export pgmerr=errfile


##############################################
# Set variables used in the script
##############################################
export CDATE=${CDATE:-${PDY}${cyc}}
export CDUMP=${CDUMP:-${RUN:-"gfs"}}
export COMPONENT=${COMPONENT:-atmos}
export DO_CALC_ANALYSIS=${DO_CALC_ANALYSIS:-"YES"}


##############################################
# Begin JOB SPECIFIC work
##############################################

GDATE=$($NDATE -$assim_freq $CDATE)
gPDY=$(echo $GDATE | cut -c1-8)
gcyc=$(echo $GDATE | cut -c9-10)
GDUMP=${GDUMP:-"gdas"}

export OPREFIX="${CDUMP}.t${cyc}z."
export GPREFIX="${GDUMP}.t${gcyc}z."
export APREFIX="${CDUMP}.t${cyc}z."
export GSUFFIX=${GSUFFIX:-$SUFFIX}
export ASUFFIX=${ASUFFIX:-$SUFFIX}


if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then
export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT}
export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT}
export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$RUN.$PDY/$cyc/$COMPONENT}
export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$GDUMP.$gPDY/$gcyc/$COMPONENT}
else
export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT"
export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc/$COMPONENT"
export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT"
fi
mkdir -m 775 -p $COMOUT
# COMIN_GES and COMIN_GES_ENS are used in script
export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT"
export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT"


export ATMGES="$COMIN_GES/${GPREFIX}atmf006${GSUFFIX}"
if [ ! -f $ATMGES ]; then
echo "FATAL ERROR: FILE MISSING: ATMGES = $ATMGES"
exit 1
fi


if [ $DOHYBVAR = "YES" ]; then
export ATMGES_ENSMEAN="$COMIN_GES_ENS/${GPREFIX}atmf006.ensmean$GSUFFIX"
if [ ! -f $ATMGES_ENSMEAN ]; then
echo "FATAL ERROR: FILE MISSING: ATMGES_ENSMEAN = $ATMGES_ENSMEAN"
exit 2
fi
fi



# Update surface fields with global_cycle
export DOGCYCLE=${DOGCYCLE:-"YES"}


# Generate Gaussian surface analysis
export DOGAUSFCANL=${DOGAUSFCANL:-"YES"}


###############################################################
# Run relevant script
env
echo "HAS BEGUN on $(hostname)"
$LOGSCRIPT


${ANALDIAGSH:-$SCRgfs/exglobal_diag.sh}
status=$?
[[ $status -ne 0 ]] && exit $status


##############################################
# End JOB SPECIFIC work
##############################################

##############################################
# Final processing
##############################################
if [ -e "$pgmout" ] ; then
cat $pgmout
fi


echo "ENDED NORMALLY."


##########################################
# Remove the Temporary working directory
##########################################
cd $DATAROOT
[[ $KEEPDATA = "NO" ]] && rm -rf $DATA

date
exit 0
132 changes: 132 additions & 0 deletions jobs/JGDAS_ATMOS_CHGRES_FORENKF
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
#!/bin/bash
set -x

export RUN_ENVIR=${RUN_ENVIR:-"nco"}
export PS4='$SECONDS + '
date


#############################
# Source relevant config files
#############################
export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config}
configs="base anal echgres"
config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config}
for config in $configs; do
. $config_path/config.$config
status=$?
[[ $status -ne 0 ]] && exit $status
done


##########################################
# Source machine runtime environment
##########################################
. $HOMEgfs/env/${machine}.env anal
status=$?
[[ $status -ne 0 ]] && exit $status


##############################################
# Obtain unique process id (pid) and make temp directory
##############################################
export pid=${pid:-$$}
export outid=${outid:-"LL$job"}

export DATA=${DATA:-${DATAROOT}/${jobid:?}}
mkdir -p $DATA
cd $DATA


##############################################
# Run setpdy and initialize PDY variables
##############################################
export cycle="t${cyc}z"
setpdy.sh
. ./PDY


##############################################
# Determine Job Output Name on System
##############################################
export pgmout="OUTPUT.${pid}"
export pgmerr=errfile


##############################################
# Set variables used in the script
##############################################
export CDATE=${CDATE:-${PDY}${cyc}}
export CDUMP=${CDUMP:-${RUN:-"gfs"}}
export COMPONENT=${COMPONENT:-atmos}
export DO_CALC_ANALYSIS=${DO_CALC_ANALYSIS:-"YES"}


##############################################
# Begin JOB SPECIFIC work
##############################################

GDATE=$($NDATE -$assim_freq $CDATE)
gPDY=$(echo $GDATE | cut -c1-8)
gcyc=$(echo $GDATE | cut -c9-10)
GDUMP=${GDUMP:-"gdas"}

export OPREFIX="${CDUMP}.t${cyc}z."
export GPREFIX="${GDUMP}.t${gcyc}z."
export APREFIX="${CDUMP}.t${cyc}z."
export GSUFFIX=${GSUFFIX:-$SUFFIX}
export ASUFFIX=${ASUFFIX:-$SUFFIX}


if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then
export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT}
export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT}
export COMOUT_ENS=${COMOUT_ENS:-$ROTDIR/enkfgdas.$PDY/$cyc/$COMPONENT}
export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$RUN.$PDY/$cyc/$COMPONENT}
export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$GDUMP.$gPDY/$gcyc/$COMPONENT}
else
export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT"
export COMOUT_ENS="$ROTDIR/enkfgdas.$PDY/$cyc/$COMPONENT"
export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc/$COMPONENT"
export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT"
fi
mkdir -m 775 -p $COMOUT
# COMIN_GES and COMIN_GES_ENS are used in script
export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT"
export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT"

###############################################################
# Run relevant script
env
echo "HAS BEGUN on $(hostname)"
$LOGSCRIPT


${CHGRESFCSTSH:-$SCRgfs/exgdas_atmos_chgres_forenkf.sh}
status=$?
[[ $status -ne 0 ]] && exit $status


##############################################
# End JOB SPECIFIC work
##############################################

##############################################
# Final processing
##############################################
if [ -e "$pgmout" ] ; then
cat $pgmout
fi


echo "ENDED NORMALLY."


##########################################
# Remove the Temporary working directory
##########################################
cd $DATAROOT
[[ $KEEPDATA = "NO" ]] && rm -rf $DATA

date
exit 0
Loading