diff --git a/jobs/rocoto/arch.sh b/jobs/rocoto/arch.sh index b33857838f..a0fd6a6031 100755 --- a/jobs/rocoto/arch.sh +++ b/jobs/rocoto/arch.sh @@ -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 @@ -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 @@ -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 @@ -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 @@ -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) diff --git a/parm/config/config.base.emc.dyn b/parm/config/config.base.emc.dyn index e369f7fca6..2e7cdee387 100755 --- a/parm/config/config.base.emc.dyn +++ b/parm/config/config.base.emc.dyn @@ -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 @@ -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 @@ -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 diff --git a/ush/hpssarch_gen.sh b/ush/hpssarch_gen.sh index 1f4c8ed542..0184683a44 100755 --- a/ush/hpssarch_gen.sh +++ b/ush/hpssarch_gen.sh @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 diff --git a/ush/rocoto/setup_expt.py b/ush/rocoto/setup_expt.py index badab09041..131e534267 100755 --- a/ush/rocoto/setup_expt.py +++ b/ush/rocoto/setup_expt.py @@ -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) \ @@ -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' @@ -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' @@ -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' diff --git a/ush/rocoto/setup_expt_fcstonly.py b/ush/rocoto/setup_expt_fcstonly.py index 16b93c624f..434fcb2220 100755 --- a/ush/rocoto/setup_expt_fcstonly.py +++ b/ush/rocoto/setup_expt_fcstonly.py @@ -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) \ @@ -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) \ @@ -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' @@ -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' @@ -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'