diff --git a/ush/forecast_det.sh b/ush/forecast_det.sh index f3823cde99..0518f97913 100755 --- a/ush/forecast_det.sh +++ b/ush/forecast_det.sh @@ -19,55 +19,55 @@ FV3_GFS_det(){ res_latlon_dynamics="''" # Determine if this is a warm start or cold start - if [ -f $gmemdir/RESTART/${sPDY}.${scyc}0000.coupler.res ]; then + if [[ -f "${gmemdir}/RESTART/${sPDY}.${scyc}0000.coupler.res" ]]; then export warm_start=".true." fi # turn IAU off for cold start DOIAU_coldstart=${DOIAU_coldstart:-"NO"} - if [ $DOIAU = "YES" -a $warm_start = ".false." ] || [ $DOIAU_coldstart = "YES" -a $warm_start = ".true." ]; then + if [ ${DOIAU} = "YES" -a ${warm_start} = ".false." ] || [ ${DOIAU_coldstart} = "YES" -a ${warm_start} = ".true." ]; then export DOIAU="NO" - echo "turning off IAU since warm_start = $warm_start" + echo "turning off IAU since warm_start = ${warm_start}" DOIAU_coldstart="YES" IAU_OFFSET=0 - sCDATE=$CDATE - sPDY=$PDY - scyc=$cyc - tPDY=$sPDY - tcyc=$cyc + sCDATE=${CDATE} + sPDY=${PDY} + scyc=${cyc} + tPDY=${sPDY} + tcyc=${cyc} fi #------------------------------------------------------- # determine if restart IC exists to continue from a previous forecast RERUN="NO" - filecount=$(find $RSTDIR_ATM -type f | wc -l) - if [ $CDUMP = "gfs" -a $rst_invt1 -gt 0 -a $FHMAX -gt $rst_invt1 -a $filecount -gt 10 ]; then + [[ ${CDUMP} = "gfs" ]] && filecount=$(find "${RSTDIR_ATM}" -type f | wc -l) + if [ ${CDUMP} = "gfs" -a ${rst_invt1} -gt 0 -a ${FHMAX} -gt ${rst_invt1} -a ${filecount} -gt 10 ]; then reverse=$(echo "${restart_interval[@]} " | tac -s ' ') - for xfh in $reverse ; do + for xfh in ${reverse} ; do yfh=$((xfh-(IAU_OFFSET/2))) - SDATE=$($NDATE +$yfh $CDATE) - PDYS=$(echo $SDATE | cut -c1-8) - cycs=$(echo $SDATE | cut -c9-10) - flag1=$RSTDIR_ATM/${PDYS}.${cycs}0000.coupler.res - flag2=$RSTDIR_ATM/coupler.res + SDATE=$(${NDATE} +${yfh} "${CDATE}") + PDYS=$(echo "${SDATE}" | cut -c1-8) + cycs=$(echo "${SDATE}" | cut -c9-10) + flag1=${RSTDIR_ATM}/${PDYS}.${cycs}0000.coupler.res + flag2=${RSTDIR_ATM}/coupler.res #make sure that the wave restart files also exist if cplwav=true waverstok=".true." - if [ $cplwav = ".true." ]; then - for wavGRD in $waveGRD ; do - if [ ! -f ${RSTDIR_WAVE}/${PDYS}.${cycs}0000.restart.${wavGRD} ]; then + if [[ "${cplwav}" = ".true." ]]; then + for wavGRD in ${waveGRD} ; do + if [[ ! -f "${RSTDIR_WAVE}/${PDYS}.${cycs}0000.restart.${wavGRD}" ]]; then waverstok=".false." fi done fi - if [ -s $flag1 -a $waverstok = ".true." ]; then - CDATE_RST=$SDATE - [[ $RERUN = "YES" ]] && break - mv $flag1 ${flag1}.old - if [ -s $flag2 ]; then mv $flag2 ${flag2}.old ;fi + if [[ -s "${flag1}" ]] && [[ ${waverstok} = ".true." ]]; then + CDATE_RST=${SDATE} + [[ ${RERUN} = "YES" ]] && break + mv "${flag1}" "${flag1}.old" + if [[ -s "${flag2}" ]]; then mv "${flag2}" "${flag2}.old" ;fi RERUN="YES" - [[ $xfh = $rst_invt1 ]] && RERUN="NO" + [[ ${xfh} = ${rst_invt1} ]] && RERUN="NO" fi done fi