#!/bin/sh date export PS4=' $(basename $0).$LINENO: $SECONDS + ' set -xa envir=${envir:?} # Typically set to prod DATAROOT=${DATAROOT:?} # Typically default to {DATAROOT:-/tmpnwprd1} COMROOT=${COMROOT:?} # Typically default to -/com PACKAGEROOT=${PACKAGEROOT:?} #################################### # obtain unique process id (pid) and make temp directory #################################### export DATA=${DATA:-${DATAROOT}/${jobid}} mkdir -p $DATA cd $DATA export cycle=${cycle:-t${cyc}z} export ECMWF_FILE_EXT=${ECMWF_FILE_EXT:-1} export process_grib2=${process_grib2:-"YES"} ################################### # File To Log Msgs ################################### export jlogfile=${jlogfile:-${DATA}/jlogfile.${jobid}} #################################### # Specify NET Name and model # # model - model grib field to repack #################################### export NET=${NET:-ecmwf_mos} export RUN=${RUN:-ecmwf_mos} export model=${model:-ecmwf_mos} #################################### # Determine Job Output Name on System #################################### export pgmout="OUTPUT.$$" #################################### # Specify ECMWF-MOS version number #################################### export ECMWFMOS_MODEL_VERSION=${ECMWFMOS_MODEL_VERSION:-${ecmwf_mos_ver}} export ECMWFMOS_CODE_VERSION=${ECMWFMOS_CODE_VERSION:-${mos_shared_ver}} #################################### # Specify Execution Areas #################################### export HOMEmdl=${HOMEmdl:-$PACKAGEROOT/ecmwf_mos.${ECMWFMOS_MODEL_VERSION}} export FIXmdl=${FIXmdl:-$HOMEmdl/fix} export PARMmdl=${PARMmdl:-$HOMEmdl/parm} ############################## # Run setpdy and initialize PDY variables ############################## setpdy.sh . ./PDY ############################################## # Define COM directories ############################################## export DCOMIN=${DCOMIN:-${DCOMROOT}/${PDY}/wgrbbul/ecmwf} export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${ecmwf_mos_ver}/${RUN}.${PDY})} mkdir -m 775 -p $COMOUT env ################################################## # Check for data availability ################################################## Ref_date=`echo $PDY | cut -c 5-8`$cyc Valid_date=`$NDATE +240 ${PDY}${cyc} | cut -c5-10` Last_file=$DCOMIN/DCD${Ref_date}00${Valid_date}00${ECMWF_FILE_EXT} let attempts=1 for tau in $(seq -f "%02g" 102 6 240) do # Build model date string for current tau Valid_date=`$NDATE +${tau} ${PDY}${cyc}` Valid_time=`echo $Valid_date | cut -c5-10` Current_file=$DCOMIN/DCD${Ref_date}00${Valid_time}00${ECMWF_FILE_EXT} while [ $attempts -le 60 ]; do if [ -f $Current_file ]; then break else echo "Cannot find $Current_file. Sleep for 1 minute." sleep 60 attempts=$((attempts+1)) fi done if [ $attempts -gt 60 ]; then postmsg "$jlogfile" "FATAL ERROR: Files missing for ECMWF. Exiting without running." err_exit fi done ################################################## # Launch the driver script ################################################## ${HOMEmdl}/scripts/execmwf_mos_extprep.sh cat $pgmout date if [ "$KEEPDATA" != YES ]; then cd $DATAROOT rm -rf $DATA fi