Skip to content

Commit

Permalink
Merge pull request #1208 from KateFriedman-NOAA/dev/gfs.v16
Browse files Browse the repository at this point in the history
Fix bugs in forecast-only mode (GFSv16)
  • Loading branch information
KateFriedman-NOAA committed Jan 5, 2023
2 parents 8f924a5 + f372b5e commit c8e45f9
Show file tree
Hide file tree
Showing 5 changed files with 102 additions and 60 deletions.
50 changes: 27 additions & 23 deletions jobs/rocoto/arch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ if [ $CDUMP = "gfs" ]; then
mkdir -p ${ARCDIR}/tracker.$CDATE/$CDUMP
blist="epac natl"
for basin in $blist; do
cp -rp $basin ${ARCDIR}/tracker.$CDATE/$CDUMP
cp -rp $basin ${ARCDIR}/tracker.$CDATE/$CDUMP
done
fi

Expand All @@ -118,12 +118,12 @@ if [ $CDUMP = "gfs" -a $FITSARC = "YES" ]; then
fhmax=${FHMAX_FITS:-$FHMAX_GFS}
fhr=0
while [[ $fhr -le $fhmax ]]; do
fhr3=$(printf %03i $fhr)
sfcfile=${prefix}.sfcf${fhr3}${ASUFFIX}
sigfile=${prefix}.atmf${fhr3}${ASUFFIX}
$NCP $sfcfile $VFYARC/${CDUMP}.$PDY/$cyc/
$NCP $sigfile $VFYARC/${CDUMP}.$PDY/$cyc/
(( fhr = $fhr + 6 ))
fhr3=$(printf %03i $fhr)
sfcfile=${prefix}.sfcf${fhr3}${ASUFFIX}
sigfile=${prefix}.atmf${fhr3}${ASUFFIX}
$NCP $sfcfile $VFYARC/${CDUMP}.$PDY/$cyc/
$NCP $sigfile $VFYARC/${CDUMP}.$PDY/$cyc/
(( fhr = $fhr + 6 ))
done
fi

Expand Down Expand Up @@ -182,7 +182,11 @@ if [ $CDUMP = "gfs" ]; then

#for targrp in gfs_flux gfs_netcdf/nemsio gfs_pgrb2b; do
if [ ${SAVEFCSTNEMSIO:-"YES"} = "YES" ]; then
for targrp in gfs_flux gfs_${format}a gfs_${format}b gfs_pgrb2b; do
targrp_list="gfs_flux gfs_${format}b gfs_pgrb2b"
if [ $MODE = "cycled" ] ; then
targrp_list="${targrp_list} gfs_${format}a"
fi
for targrp in $targrp_list; do
htar -P -cvf $ATARDIR/$CDATE/${targrp}.tar `cat $ARCH_LIST/${targrp}.txt`
status=$?
if [ $status -ne 0 -a $CDATE -ge $firstday ]; then
Expand Down Expand Up @@ -325,36 +329,36 @@ while [ $GDATE -le $GDATEEND ]; do
COMINrtofs="$ROTDIR/rtofs.$gPDY"
if [ -d $COMIN ]; then
rocotolog="$EXPDIR/logs/${GDATE}.log"
if [ -f $rocotolog ]; then
if [ -f $rocotolog ]; then
testend=$(tail -n 1 $rocotolog | grep "This cycle is complete: Success")
rc=$?
if [ $rc -eq 0 ]; then
if [ -d $COMINwave ]; then rm -rf $COMINwave ; fi
if [ -d $COMINrtofs -a $GDATE -lt $RTOFS_DATE ]; then rm -rf $COMINrtofs ; fi
if [ $CDUMP != "gdas" -o $DO_GLDAS = "NO" -o $GDATE -lt $GLDAS_DATE ]; then
if [ $CDUMP = "gdas" ]; then
if [ $CDUMP = "gdas" ]; then
for file in `ls $COMIN |grep -v prepbufr |grep -v cnvstat |grep -v atmanl.nc`; do
rm -rf $COMIN/$file
done
else
rm -rf $COMIN
fi
else
rm -rf $COMIN
fi
else
if [ $DO_GLDAS = "YES" ]; then
for file in `ls $COMIN |grep -v sflux |grep -v RESTART |grep -v prepbufr |grep -v cnvstat |grep -v atmanl.nc`; do
if [ $DO_GLDAS = "YES" ]; then
for file in `ls $COMIN |grep -v sflux |grep -v RESTART |grep -v prepbufr |grep -v cnvstat |grep -v atmanl.nc`; do
rm -rf $COMIN/$file
done
for file in `ls $COMIN/RESTART |grep -v sfcanl `; do
done
for file in `ls $COMIN/RESTART |grep -v sfcanl `; do
rm -rf $COMIN/RESTART/$file
done
else
done
else
for file in `ls $COMIN |grep -v prepbufr |grep -v cnvstat |grep -v atmanl.nc`; do
rm -rf $COMIN/$file
done
fi
fi
fi
fi
fi
fi
fi

# Remove any empty directories
Expand All @@ -368,8 +372,8 @@ while [ $GDATE -le $GDATEEND ]; do

# Remove mdl gfsmos directory
if [ $CDUMP = "gfs" ]; then
COMIN="$ROTDIR/gfsmos.$gPDY"
if [ -d $COMIN -a $GDATE -lt $CDATE_MOS ]; then rm -rf $COMIN ; fi
COMIN="$ROTDIR/gfsmos.$gPDY"
if [ -d $COMIN -a $GDATE -lt $CDATE_MOS ]; then rm -rf $COMIN ; fi
fi

GDATE=$($NDATE +$assim_freq $GDATE)
Expand Down
5 changes: 4 additions & 1 deletion parm/config/config.base.emc.dyn
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ export SCRgfs=$HOMEgfs/scripts
# GLOBAL static environment parameters
export PACKAGEROOT="@PACKAGEROOT@"
export COMROOT="@COMROOT@"
export COMINsyn="@COMINsyn@"
export DMPDIR="@DMPDIR@"
export RTMFIX=$CRTM_FIX

Expand All @@ -58,6 +59,8 @@ export WAFSF="NO" # WAFS products
# use RUNMOS flag (currently in config.vrfy)
export REALTIME="YES"

# Experiment mode (cycled or forecast-only)
export MODE="@MODE@" # cycled/forecast-only

####################################################
# DO NOT ADD MACHINE DEPENDENT STUFF BELOW THIS LINE
Expand Down Expand Up @@ -202,7 +205,7 @@ export IAU_OFFSET=6
export DOIAU_ENKF=${DOIAU:-"YES"} # Enable 4DIAU for EnKF ensemble
export IAUFHRS_ENKF="3,6,9"
export IAU_DELTHRS_ENKF=6
if [[ "$SDATE" = "$CDATE" && $EXP_WARM_START = ".false." ]] || [[ "$DOIAU" = "NO" ]] ; then # Cold starting or IAU off
if [[ "$SDATE" = "$CDATE" && $EXP_WARM_START = ".false." ]] || [[ "$DOIAU" = "NO" ]] || [[ "$MODE" = "forecast-only" && $EXP_WARM_START = ".false." ]] ; then # Cold starting or IAU off
export IAU_OFFSET=0
export IAU_FHROT=0
fi
Expand Down
93 changes: 60 additions & 33 deletions ush/hpssarch_gen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,16 @@ if [ $type = "gfs" ]; then
rm -f gfsb.txt
rm -f gfs_pgrb2b.txt
rm -f gfs_flux.txt
rm -f gfs_${format}a.txt
if [ $MODE = "cycled" ]; then
rm -f gfs_${format}a.txt
touch gfs_${format}a.txt
fi
rm -f gfs_${format}b.txt
rm -f gfs_restarta.txt
touch gfsa.txt
touch gfsb.txt
touch gfs_pgrb2b.txt
touch gfs_flux.txt
touch gfs_${format}a.txt
touch gfs_${format}b.txt
touch gfs_restarta.txt

Expand All @@ -63,23 +65,29 @@ if [ $type = "gfs" ]; then
head="gfs.t${cyc}z."

#..................
echo "${dirname}${head}pgrb2b.0p25.anl " >>gfs_pgrb2b.txt
echo "${dirname}${head}pgrb2b.0p25.anl.idx " >>gfs_pgrb2b.txt
echo "${dirname}${head}pgrb2b.0p50.anl " >>gfs_pgrb2b.txt
echo "${dirname}${head}pgrb2b.0p50.anl.idx " >>gfs_pgrb2b.txt
if [ $MODE = "cycled" ]; then
echo "${dirname}${head}pgrb2b.0p25.anl " >>gfs_pgrb2b.txt
echo "${dirname}${head}pgrb2b.0p25.anl.idx " >>gfs_pgrb2b.txt
echo "${dirname}${head}pgrb2b.0p50.anl " >>gfs_pgrb2b.txt
echo "${dirname}${head}pgrb2b.0p50.anl.idx " >>gfs_pgrb2b.txt
fi

echo "./logs/${CDATE}/gfs*.log " >>gfsa.txt
echo "${dirname}${head}gsistat " >>gfsa.txt
echo "${dirname}${head}nsstbufr " >>gfsa.txt
echo "${dirname}${head}prepbufr " >>gfsa.txt
echo "${dirname}${head}prepbufr_pre-qc " >>gfsa.txt
echo "${dirname}${head}prepbufr.acft_profiles " >>gfsa.txt
echo "${dirname}${head}pgrb2.0p25.anl " >>gfsa.txt
echo "${dirname}${head}pgrb2.0p25.anl.idx " >>gfsa.txt
echo "${dirname}avno.t${cyc}z.cyclone.trackatcfunix " >>gfsa.txt
echo "${dirname}avnop.t${cyc}z.cyclone.trackatcfunix " >>gfsa.txt
echo "${dirname}trak.gfso.atcfunix.${PDY}${cyc} " >>gfsa.txt
echo "${dirname}trak.gfso.atcfunix.altg.${PDY}${cyc} " >>gfsa.txt
if [ $MODE = "cycled" ]; then
echo "${dirname}${head}gsistat " >>gfsa.txt
echo "${dirname}${head}nsstbufr " >>gfsa.txt
echo "${dirname}${head}prepbufr " >>gfsa.txt
echo "${dirname}${head}prepbufr_pre-qc " >>gfsa.txt
echo "${dirname}${head}prepbufr.acft_profiles " >>gfsa.txt
echo "${dirname}${head}pgrb2.0p25.anl " >>gfsa.txt
echo "${dirname}${head}pgrb2.0p25.anl.idx " >>gfsa.txt
fi
if [ $VRFYTRAK = "YES" ]; then
echo "${dirname}avno.t${cyc}z.cyclone.trackatcfunix " >>gfsa.txt
echo "${dirname}avnop.t${cyc}z.cyclone.trackatcfunix " >>gfsa.txt
echo "${dirname}trak.gfso.atcfunix.${PDY}${cyc} " >>gfsa.txt
echo "${dirname}trak.gfso.atcfunix.altg.${PDY}${cyc} " >>gfsa.txt
fi
echo "${dirname}storms.gfso.atcf_gen.${PDY}${cyc} " >>gfsa.txt
echo "${dirname}storms.gfso.atcf_gen.altg.${PDY}${cyc} " >>gfsa.txt

Expand All @@ -103,11 +111,12 @@ if [ $type = "gfs" ]; then
fi
fi

echo "${dirname}${head}pgrb2.0p50.anl " >>gfsb.txt
echo "${dirname}${head}pgrb2.0p50.anl.idx " >>gfsb.txt
echo "${dirname}${head}pgrb2.1p00.anl " >>gfsb.txt
echo "${dirname}${head}pgrb2.1p00.anl.idx " >>gfsb.txt

if [ $MODE = "cycled" ]; then
echo "${dirname}${head}pgrb2.0p50.anl " >>gfsb.txt
echo "${dirname}${head}pgrb2.0p50.anl.idx " >>gfsb.txt
echo "${dirname}${head}pgrb2.1p00.anl " >>gfsb.txt
echo "${dirname}${head}pgrb2.1p00.anl.idx " >>gfsb.txt
fi

fh=0
while [ $fh -le $FHMAX_GFS ]; do
Expand Down Expand Up @@ -145,11 +154,13 @@ if [ $type = "gfs" ]; then


#..................
echo "${dirname}${head}atmanl${SUFFIX} " >>gfs_${format}a.txt
echo "${dirname}${head}sfcanl${SUFFIX} " >>gfs_${format}a.txt
echo "${dirname}${head}atmi*.nc " >>gfs_${format}a.txt
echo "${dirname}${head}dtfanl.nc " >>gfs_${format}a.txt
echo "${dirname}${head}loginc.txt " >>gfs_${format}a.txt
if [ $MODE = "cycled" ]; then
echo "${dirname}${head}atmanl${SUFFIX} " >>gfs_${format}a.txt
echo "${dirname}${head}sfcanl${SUFFIX} " >>gfs_${format}a.txt
echo "${dirname}${head}atmi*.nc " >>gfs_${format}a.txt
echo "${dirname}${head}dtfanl.nc " >>gfs_${format}a.txt
echo "${dirname}${head}loginc.txt " >>gfs_${format}a.txt
fi

#..................
if [ $OUTPUT_HISTORY = ".true." ]; then
Expand All @@ -163,12 +174,28 @@ if [ $type = "gfs" ]; then
fi

#..................
echo "${dirname}RESTART/*0000.sfcanl_data.tile1.nc " >>gfs_restarta.txt
echo "${dirname}RESTART/*0000.sfcanl_data.tile2.nc " >>gfs_restarta.txt
echo "${dirname}RESTART/*0000.sfcanl_data.tile3.nc " >>gfs_restarta.txt
echo "${dirname}RESTART/*0000.sfcanl_data.tile4.nc " >>gfs_restarta.txt
echo "${dirname}RESTART/*0000.sfcanl_data.tile5.nc " >>gfs_restarta.txt
echo "${dirname}RESTART/*0000.sfcanl_data.tile6.nc " >>gfs_restarta.txt
if [ $MODE = "cycled" ]; then
echo "${dirname}RESTART/*0000.sfcanl_data.tile1.nc " >>gfs_restarta.txt
echo "${dirname}RESTART/*0000.sfcanl_data.tile2.nc " >>gfs_restarta.txt
echo "${dirname}RESTART/*0000.sfcanl_data.tile3.nc " >>gfs_restarta.txt
echo "${dirname}RESTART/*0000.sfcanl_data.tile4.nc " >>gfs_restarta.txt
echo "${dirname}RESTART/*0000.sfcanl_data.tile5.nc " >>gfs_restarta.txt
echo "${dirname}RESTART/*0000.sfcanl_data.tile6.nc " >>gfs_restarta.txt
elif [ $MODE = "forecast-only" ]; then
echo "${dirname}INPUT/gfs_ctrl.nc " >>gfs_restarta.txt
echo "${dirname}INPUT/gfs_data.tile1.nc " >>gfs_restarta.txt
echo "${dirname}INPUT/gfs_data.tile2.nc " >>gfs_restarta.txt
echo "${dirname}INPUT/gfs_data.tile3.nc " >>gfs_restarta.txt
echo "${dirname}INPUT/gfs_data.tile4.nc " >>gfs_restarta.txt
echo "${dirname}INPUT/gfs_data.tile5.nc " >>gfs_restarta.txt
echo "${dirname}INPUT/gfs_data.tile6.nc " >>gfs_restarta.txt
echo "${dirname}INPUT/sfc_data.tile1.nc " >>gfs_restarta.txt
echo "${dirname}INPUT/sfc_data.tile2.nc " >>gfs_restarta.txt
echo "${dirname}INPUT/sfc_data.tile3.nc " >>gfs_restarta.txt
echo "${dirname}INPUT/sfc_data.tile4.nc " >>gfs_restarta.txt
echo "${dirname}INPUT/sfc_data.tile5.nc " >>gfs_restarta.txt
echo "${dirname}INPUT/sfc_data.tile6.nc " >>gfs_restarta.txt
fi

#..................
if [ $DO_WAVE = "YES" ]; then
Expand Down
6 changes: 5 additions & 1 deletion ush/rocoto/setup_expt.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ def edit_baseconfig():
.replace('@DMPDIR@', dmpdir) \
.replace('@PACKAGEROOT@', packageroot) \
.replace('@COMROOT@', comroot) \
.replace('@COMINsyn@', cominsyn) \
.replace('@HOMEDIR@', homedir) \
.replace('@STMP@', stmp) \
.replace('@PTMP@', ptmp) \
Expand Down Expand Up @@ -188,6 +189,7 @@ def edit_baseconfig():
dmpdir = '/lfs/h2/emc/global/noscrub/emc.global/dump'
packageroot = '${PACKAGEROOT:-"/lfs/h1/ops/prod/packages"}'
comroot = '${COMROOT:-"/lfs/h1/ops/prod/com"}'
cominsyn = '${COMROOT}/gfs/${gfs_ver:-"v16.3"}/syndat'
homedir = '/lfs/h2/emc/global/noscrub/$USER'
stmp = '/lfs/h2/emc/stmp/$USER'
ptmp = '/lfs/h2/emc/ptmp/$USER'
Expand Down Expand Up @@ -241,7 +243,8 @@ def edit_baseconfig():
base_svn = '/scratch1/NCEPDEV/global/glopara/svn'
dmpdir = '/scratch1/NCEPDEV/global/glopara/dump'
packageroot = '/scratch1/NCEPDEV/global/glopara/nwpara'
comroot = '/scratch1/NCEPDEV/rstprod/com'
comroot = '/scratch1/NCEPDEV/global/glopara/com'
cominsyn = '${COMROOT}/gfs/prod/syndat'
homedir = '/scratch1/NCEPDEV/global/$USER'
stmp = '/scratch1/NCEPDEV/stmp2/$USER'
ptmp = '/scratch1/NCEPDEV/stmp4/$USER'
Expand All @@ -259,6 +262,7 @@ def edit_baseconfig():
dmpdir = '/work/noaa/rstprod/dump'
packageroot = '/work/noaa/global/glopara/nwpara'
comroot = '/work/noaa/global/glopara/com'
cominsyn = '${COMROOT}/gfs/prod/syndat'
homedir = '/work/noaa/global/$USER'
stmp = '/work/noaa/stmp/$USER'
ptmp = '/work/noaa/stmp/$USER'
Expand Down
8 changes: 6 additions & 2 deletions ush/rocoto/setup_expt_fcstonly.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ def edit_baseconfig():
.replace('@DMPDIR@', dmpdir) \
.replace('@PACKAGEROOT@', packageroot) \
.replace('@COMROOT@', comroot) \
.replace('@COMINsyn@', cominsyn) \
.replace('@HOMEDIR@', homedir) \
.replace('@STMP@', stmp) \
.replace('@PTMP@', ptmp) \
Expand All @@ -79,7 +80,7 @@ def edit_baseconfig():
.replace('@QUEUE_SERVICE@', queue_service) \
.replace('@PARTITION_BATCH@', partition_batch) \
.replace('@EXP_WARM_START@', exp_warm_start) \
.replace('@MODE@', 'free') \
.replace('@MODE@', 'forecast-only') \
.replace('@CHGRP_RSTPROD@', chgrp_rstprod) \
.replace('@CHGRP_CMD@', chgrp_cmd) \
.replace('@HPSSARCH@', hpssarch) \
Expand Down Expand Up @@ -159,6 +160,7 @@ def edit_baseconfig():
dmpdir = '/lfs/h2/emc/global/noscrub/emc.global/dump'
packageroot = '${PACKAGEROOT:-"/lfs/h1/ops/prod/packages"}'
comroot = '${COMROOT:-"/lfs/h1/ops/prod/com"}'
cominsyn = '${COMROOT}/gfs/${gfs_ver:-"v16.3"}/syndat'
homedir = '/lfs/h2/emc/global/noscrub/$USER'
stmp = '/lfs/h2/emc/stmp/$USER'
ptmp = '/lfs/h2/emc/ptmp/$USER'
Expand Down Expand Up @@ -212,7 +214,8 @@ def edit_baseconfig():
base_svn = '/scratch1/NCEPDEV/global/glopara/svn'
dmpdir = '/scratch1/NCEPDEV/global/glopara/dump'
packageroot = '/scratch1/NCEPDEV/global/glopara/nwpara'
comroot = '/scratch1/NCEPDEV/rstprod/com'
comroot = '/scratch1/NCEPDEV/global/glopara/com'
cominsyn = '${COMROOT}/gfs/prod/syndat'
homedir = '/scratch1/NCEPDEV/global/$USER'
stmp = '/scratch1/NCEPDEV/stmp2/$USER'
ptmp = '/scratch1/NCEPDEV/stmp4/$USER'
Expand All @@ -230,6 +233,7 @@ def edit_baseconfig():
dmpdir = '/work/noaa/rstprod/dump'
packageroot = '/work/noaa/global/glopara/nwpara'
comroot = '/work/noaa/global/glopara/com'
cominsyn = '${COMROOT}/gfs/prod/syndat'
homedir = '/work/noaa/global/$USER'
stmp = '/work/noaa/stmp/$USER'
ptmp = '/work/noaa/stmp/$USER'
Expand Down

0 comments on commit c8e45f9

Please sign in to comment.