#!/bin/bash echo "$(date -u) begin $(basename $BASH_SOURCE)" set -xa if [[ ${STRICT:-NO} == "YES" ]]; then # Turn on strict bash error checking set -eu fi export PS4='$SECONDS + $(basename $(basename $BASH_SOURCE))[$LINENO] ' #################################### # Determine Job Output Name on System #################################### export jobid=${jobid:-"$job.$PBS_JOBID"} export pgmout="OUTPUT.${PBS_JOBID}" export pgmerr=errfile ###################################### # Set up compute resources ###################################### export wavempexec=${wavempexec:-"mpiexec -n"} export wave_mpmd=${wave_mpmd:-"cfp"} export NTASKS=${total_tasks:-1} #################################### # Specify and create working directory #################################### export DATA=${DATA:-${DATAROOT}/${jobid}} mkdir -p $DATA mkdir $DATA/INPUT cd $DATA #################################### # Specify NET and RUN Name and model #################################### export NET=${NET:-gefs} export envir=${envir:-prod} export RUN=${RUN:-gefs} ###################################### # SENDCOM - Copy Files From TMPDIR to $COMOUT # SENDDBN - Issue DBNet Client Calls # SENDECF - Flag Events on ECF # VERBOSE - Specify Verbose Output ###################################### export SENDCOM=${SENDCOM:-YES} export SENDDBN=${SENDDBN:-YES} export SENDECF=${SENDECF:-YES} export VERBOSE=${VERBOSE:-YES} ###################################### # Set up the date information ###################################### export cycle=t${cyc}z setpdy.sh source PDY #################################### # Specify Execution Areas #################################### export HOMEgefs=${HOMEgefs:-${PACKAGEROOT}/gefs.${gefs_ver}} export EXECgefs=${EXECgefs:-$HOMEgefs/exec} export PARMgefs=${PARMgefs:-$HOMEgefs/parm} export FIXwave=${FIXwave:-$HOMEgefs/fix/fix_wave} ############################################## # Define COM directories ############################################## # Have to include $COMPONENT in COM paths for downstream scripts ver=${ver:-$(echo ${gefs_ver}|cut -c1-5)} export COMIN=${COMIN:-$(compath.py $envir/com/$NET/${ver})/${RUN}.${PDY}/$cyc/wave} export COMOUT=${COMOUT:-$(compath.py -o $NET/${ver})/${RUN}.${PDY}/$cyc/wave} if [[ $SENDCOM = YES ]]; then mkdir -p $COMOUT/rundata fi ############################# # Source relevant config files ############################# configs="gefs gefs_wave gefs_wave_prep" config_path=$PARMgefs for config in $configs; do . $config_path/$config.parm export err=$? if [[ $err -ne 0 ]]; then echo "FATAL ERROR in $(basename $BASH_SOURCE): Error while loading parm file $config_path/$config.parm" exit $err fi done export COMINgfs=${COMINgfs:-$(compath.py ${envir}/com/gfs/${gfs_ver})/gfs.${PDY}/${cyc}/atmos} export COMIN_WAV_ICE=${COMINice:-$(compath.py ${envir}/com/obsproc/${obsproc_ver})/${WAVICEPRFX:-gfs}.${PDY}/${cyc}/atmos} export errchk=${errchk:-err_chk} if [[ $SENDCOM == "YES" ]]; then export wavelog=${COMOUT}/wave.log else export wavelog=${DATA}/wave.log fi echo "Environment before calling script" env | sort ############################################################# # Execute the script $HOMEwave/scripts/exwave_prep.sh export err=$? if [[ $err == 0 ]]; then echo "$job completed normally!" else echo "FATAL ERROR in $(basename $BASH_SOURCE): $job failed!" exit $err fi ############################################################# ############################## # Remove the Temporary working directory ############################## cd $DATAROOT if [ ${KEEPDATA:-NO} = NO ] ; then rm -rf $DATA ; fi echo "$(date -u) end $(basename $BASH_SOURCE)" exit $err