#!/bin/sh set -xa export MP_IOAGENT_CNT=all export MP_IO_BUFFER_SIZE=8M ########################################################################## # Runs NEMS GFS AEROSOL COMPONENT (NGAC) post-processing # # Author: Sarah Lu ; Dec 20 2011 # # # # REVISION HISTORY: # # 16Jan2012 Sarah Lu Add gocart_postout and mapping options # # 19Jan2012 Sarah Lu Modify err_check # # 09Feb2012 Jun Wang Output AOD using PDT4.44 to seperate file # # 13Feb2012 Sarah Lu Support OPT_FLE and OPT_PDT options # # 08Mar2012 Sarah Lu Support OPT_LUMP option # # 29Mar2012 Sarah Lu Add ngac_para_config # # 18Jun2012 Sarah Lu Streamline the code to comply the NCO guideline# ########################################################################## # # Specify whether the run is production or development # export RUN_ENVIR=${RUN_ENVIR:-prod} # ################################################################ # Specify NET and RUN Name and model ################################################################ export NET=${NET:-ngac} export RUN=${RUN:-ngac} ################################################################ # Run config file to get input parameters for the developers ################################################################ if [ $RUN_ENVIR != prod ] ### For Developers then . ${PARA_CONFIG:-/global/save/wx23lu/NGAC/nwprod_2jif/parm/ngac_para_config} fi ################################################################ # This block can be modified for different test environment ################################################################ if [ $RUN_ENVIR = prod -a $envir != prod ]; then export SENDDBN=${SENDDBN:-NO} export jlogfile=${jlogfile:-/com/logs/${envir}/jlogfile} export utilexec=${utilexec:-/nw${envir}/util/exec} export DBNROOT=/nwprod/spa_util/fakedbn export DBN_ALERT_TYPE=${DBN_ALERT_TYPE:-NGAC_AOD_GB2_PARA} else # export LOGDIR=${DATA_IN}/logs export LOGDIR=/com/logs mkdir -m 775 -p $LOGDIR export jlogfile=${jlogfile:-${LOGDIR}/jlogfile} fi if [[ $RUN_ENVIR = prod || ${DEV_SMS:-YES} = YES ]] ; then $SMSBIN/smsinit $LOADL_STEP_ID fi # ################################################################ # set up job name and environment ################################################################ export job=${job:-$RUN} export envir=${envir:-prod} export host=${host:-`hostname | cut -c1`} ################################################################ # SETUP NGAC PROCESSING VARIABLES ################################################################ export PS4='$SECONDS + ' date ################################################################ # obtain unique process id (pid) and make temp directory ################################################################ export pid=${pid:-$$} export DATA_IN=${DATA_IN:-/tmpnwprd} export DATA=${DATA:-$DATA_IN/${job}.${pid}} mkdir -p $DATA cd $DATA export DATA_FCST=${DATA_FCST:-${DATA_IN}/ngac_forecast_00_${envir}} ## working directory for fcst job #################################### # Specify NGAC version number #################################### NGAC_VERSION=${NGAC_VERSION:-${model_ver}} ################################################################ # Specify Execution Areas ################################################################ export HOMEngac=${HOMEngac:-/nw${envir}/ngac.${NGAC_VERSION}} export EXECngac=${EXECngac:-$HOMEngac/exec} export FIXngac=${FIXngac:-$HOMEngac/fix} export USHngac=${USHngac:-$HOMEngac/ush} export PARMngac=${PARMngac:-$HOMEngac/parm} export SCRIPTDIR=${SCRIPTDIR:-$HOMEngac/scripts} export HOMEGLOBAL=${HOMEGLOBAL:-/nw${envir}} export EXECGLOBAL=${EXECGLOBAL:-$HOMEGLOBAL/exec} export FIXGLOBAL=${FIXGLOBAL:-$HOMEGLOBAL/fix} export USHGLOBAL=${USHGLOBAL:-$HOMEGLOBAL/ush} export PARMGLOBAL=${PARMGLOBAL:-$HOMEGLOBAL/parm} ################################################################ # Specify CONFIG_FILE ################################################################ export CONFIG_FILE=${CONFIG_FILE:-$PARMngac/ngac_config} [[ $(dirname $CONFIG_FILE) = . ]]&&CONFIG_FILE=$(pwd)/$CONFIG_FILE if [[ ! -r $CONFIG_FILE ]];then echo $0: inaccessible configuration file $CONFIG_FILE >&2 err_exit fi ################################################################ # Determine Job Output Name on System ################################################################ export cyc=${cyc:-00} export outid="LL$job" export jobid="${outid}.o${pid}" export pgmout="OUTPUT.${pid}" export pgmerr=errfile export cycle=t${cyc}z ################################################################ # SAVEGES - Copy Files From TMPDIR to $GESdir # SENDSMS - Flag Events on SMS # SENDCOM - Copy Files From TMPDIR to $COMOUT # SENDDBN - Issue DBNet Client Calls # RERUN - Rerun prep from beginning (default no) # VERBOSE - Specify Verbose Output ################################################################ export SAVEGES=${SAVEGES:-YES} export SENDSMS=${SENDSMS:-YES} export SENDCOM=${SENDCOM:-YES} export SENDDBN=${SENDDBN:-YES} export RERUN=${RERUN:-NO} export VERBOSE=${VERBOSE:-YES} ################################################################ # DBN_ALERT_TYPE - dbn_alert type ################################################################ export DBN_ALERT_TYPE=${DBN_ALERT_TYPE:-NGAC_AOD_GB2} ################################################################ # Set up the UTILITIES ################################################################ export utilscript=${utilscript:-/nwprod/util/ush} export utilexec=${utilexec:-/nwprod/util/exec} export err_chk=${err_chk:-$utilscript/err_chk.sh} export startmsg=${startmsg:-$utilscript/startmsg.sh} export ERRSCRIPT=${ERRSCRIPT:-$err_chk} export LOGSCRIPT=${LOGSCRIPT:-$startmsg} ################################################################ # Run setup to initialize working directory and utility scripts ################################################################ sh $utilscript/setup.sh # export PDY=20120624 ################################################################ # Run setpdy and initialize PDY variables ################################################################ sh $utilscript/setpdy.sh . PDY export CDATE=${CDATE:-${PDY}$cyc} ################################################################ # Get the variables setup from config script ################################################################ set -a; . $CONFIG_FILE; set +a env export MP_SHARED_MEMORY=${MP_SHARED_MEMORY:-no} # ################################################################ # Define COM and GES directories ################################################################ export COM_IN=${COM_IN:-/com/${NET}/${envir}} export COM_OUT=${COM_OUT:-/com/${NET}/${envir}} export gespath=${gespath:-/nwges/${envir}} export COMIN=${COMIN:-$COM_IN/${RUN}.${PDY}} export COMOUT=${COMOUT:-$COM_OUT/${RUN}.${PDY}} export GESdir=${GESdir:-$gespath/${RUN}.${PDY}} mkdir -m 775 -p $COMOUT mkdir -m 775 -p $GESdir ##### --------- post job starts here -------------------------------- msg="NGAC_POST HAS BEGUN on`hostname`" $DATA/postmsg "$jlogfile" "$msg" ################################################################ # Define NEMS-GFS History File Names ################################################################ export SIGO=$COMOUT/${RUN}.${cycle}.sigf export FLXO=$COMOUT/${RUN}.${cycle}.flxf export D3DO=$COMOUT/${RUN}.${cycle}.d3df export AERO=$COMOUT/${RUN}.${cycle}.aerf ################################################################ # Define NGAC Post File Names ################################################################ export A2DO=${A2DO:-$COMOUT/${RUN}.${cycle}.a2df} export A3DO=${A3DO:-$COMOUT/${RUN}.${cycle}.a3df} export AOD01=${AOD01:-$COMOUT/${RUN}.${cycle}.aod_550nm} export AOD02=${AOD02:-$COMOUT/${RUN}.${cycle}.aod_340nm} export AOD03=${AOD03:-$COMOUT/${RUN}.${cycle}.aod_440nm} export AOD04=${AOD04:-$COMOUT/${RUN}.${cycle}.aod_660nm} export AOD05=${AOD05:-$COMOUT/${RUN}.${cycle}.aod_860nm} export AOD06=${AOD06:-$COMOUT/${RUN}.${cycle}.aod_1p63um} export AOD07=${AOD07:-$COMOUT/${RUN}.${cycle}.aod_11p1um} ################################################################ # Execute the script. ################################################################ msg="Submit NGAC Post" postmsg "$jlogfile" "$msg" export POST_SCRIPT_DIR=${POST_SCRIPT_DIR:-$SCRIPTDIR} export POST_SCRIPT=${POST_SCRIPT:-$POST_SCRIPT_DIR/exngac_post.sh.sms} $POST_SCRIPT ##### --------- post job ends here ----------------------------------- ################################################### # msg end of job and clean up temperary directory ################################################### msg="ENDED NORMALLY." postmsg "$jlogfile" "$msg" cd $DATA_IN if [ ${RM_TMPDIR:-YES} = YES ] ; then rm -rf $DATA $DATA_FCST ; fi date if [[ $RUN_ENVIR = prod || ${DEV_SMS:-YES} = YES ]] ; then $SMSBIN/endt ; fi