#!/bin/ksh set -xa # # Specify whether the run is production or development # export RUN_ENVIR=${RUN_ENVIR:-prod} ##################################################################################### # Run config file to get input parameters # This config file should define the following variables # DATA_IN: Location of working directory, default to /tmpnwprd # DEV_ECF: If the job is to be running using ECF, default to YES # SENDDBN: Set to NO for developers, default to YES # COM_IN: Directory for input files, default to /com/$NET/${envir} # COM_OUT: Directory for output file, default to /com/$NET/${envir} # gespath: Directory for the guess or restart files, default to /nwges/${envir} ##################################################################################### if [ "$RUN_ENVIR" != prod ] ### For Developers, "group_name" is passed from the ECF script then . ${PARA_CONFIG:-/global/save/${LOGNAME}/test/angupdate/para_config} export userid=$LOGNAME export DATA_IN=${DATA_IN:-/ptmp/$LOGNAME} fi ############################################################### # This block can be modified for different test environment ############################################################### if [[ $RUN_ENVIR = prod && $envir != prod ]]; then export SENDDBN=${SENDDBN:-NO} export jlogfile=${jlogfile:-/com/logs/${envir}/jlogfile} fi #################################### # Specify NET and RUN Name and model #################################### export NET=gfs export RUN=gdas1 export RUNENS=enkf #################################### # set up job name and environment #################################### export job=${job:-$RUN} export envir=${envir:-prod} export host=${host:-`hostname | cut -c1`} ############################################### export PS4='$SECONDS + ' # #### 04/27/2010 ############################# # SETUP GDAS ANGUPDATE PROCESSING VARIABLES # ############################################# #################################### # obtain unique process id (pid) and make temp directory #################################### export pid=$$ export DATA_IN=${DATA_IN:-/tmpnwprd} export DATA=$DATA_IN/${job}.${pid} mkdir $DATA cd $DATA #################################### # Determine Job Output Name on System #################################### export cyc=${cyc:-00} export cycle=t${cyc}z export outid="LL$job" export jobid="${outid}.o${pid}" export pgmout="OUTPUT.${pid}" export pgmerr=errfile #################################### # SENDECF - Flag Events on ECF # SENDCOM - Copy Files From TMPDIR to $COMOUT # SENDDBN - Issue DBNet Client Calls # RERUN - Rerun fcst from beginning (default no) # VERBOSE - Specify Verbose Output in exglobal_fcst.sh.ecf #################################### export SENDECF=YES export SENDCOM=YES export SAVEGES=YES export SENDDBN=YES export VERBOSE=YES ################################# # Define the Log File directory ################################# if [ $envir = "prod" ] then export jlogfile=${jlogfile:-/com/logs/jlogfiles/jlogfile.${job}.${pid}} else export jlogfile=${jlogfile:-/com/logs/${envir}/jlogfile} fi #################################### # Specify Execution Areas #################################### export HOMEGLOBAL=${HOMEGLOBAL:-/nw${envir}} export EXECGLOBAL=${EXECGLOBAL:-$HOMEGLOBAL/exec} export FIXGLOBAL=${FIXGLOBAL:-$HOMEGLOBAL/fix} export USHGLOBAL=${USHGLOBAL:-$HOMEGLOBAL/ush} export SCRGLOBAL=${SCRGLOBAL:-$HOMEGLOBAL/scripts} export UTILGLOBAL=${UTILGLOBAL:-$HOMEGLOBAL/util} export PARMGLOBAL=${PARMGLOBAL:-$HOMEGLOBAL/parm} ############################## # Set up the UTILITIES ############################## export utilscript=${utilscript:-$UTILGLOBAL/ush} export utilexec=${utilexec:-$UTILGLOBAL/exec} export NDATE=${NDATE:-$utilexec/ndate} ############################## # Run setup to initialize working directory and utility scripts ############################## $utilscript/setup.sh export err_chk=${err_chk:-$utilscript/err_chk.sh} export startmsg=${startmsg:-$utilscript/startmsg.sh} export ERRSCRIPT=${ERRSCRIPT:-$err_chk} export LOGSCRIPT=${LOGSCRIPT:-$startmsg} export FILESTYLE=${FILESTYLE:-'C'} ############################## # Run setpdy and initialize PDY variables ############################## $utilscript/setpdy.sh . ./PDY ############################################## # Define COM directories ############################################## export COM_IN=${COM_IN:-/com/${NET}/${envir}} export COM_OUT=${COM_OUT:-/com/${NET}/${envir}} export COMIN=$COM_IN/gdas.${PDY} export COMOUT=$COM_OUT/gdas.${PDY} export GETGES_COM=${GETGES_COM:-/com} export GETGES_NWG=${GETGES_NWG:-/nwges} mkdir -m 775 -p $COMOUT ############################################## # Define GES directories ############################################## gespath=/nwges/${envir} export GESdir=$gespath/gdas.${PDY} mkdir -m 775 -p $GESdir #################################### # Specify Special Vars #################################### # export ANGUPDATEXEC=${ANGUPDATEXEC:-$EXECGLOBAL/global_angupdate} export ANGUPDATESH=${ANGUPDATESH:-$SCRGLOBAL/exglobal_angupdate.sh.ecf} # # Forecast Horizontal Resolution # export JCAP_ges=574 # # Forecast Vertical Resolution # export LEVS_ges=64 # # Analysis valid time # export CDATE=${PDY}${cyc} #################################### # Fix Files # export SATANGL=${SATANGL:-${FIXGLOBAL}/global_satangbias.txt} #################################### # Input Fields # export PREINP=${RUN}.${cycle}. export RADSTAT=${COMIN}/${PREINP}radstat ############################################################################ # # Output File Names # export SATANGO=$DATA/${RUN}.${cycle}.satang msg="HAS BEGUN on `hostname`" ./postmsg "$jlogfile" "$msg" #################################### # Check if this is a restart # # Define Previous Guess File Names #################################### gesenvir=${envir} $utilscript/getges.sh -t sfcges -r ${JCAP_ges}${LEVS_ges} -v $PDY$cyc \ -e $gesenvir bges err1=$? $utilscript/getges.sh -t satang -r ${JCAP_ges}${LEVS_ges} -v $PDY$cyc \ -e $gesenvir gsatang export SFCGES=$DATA/bges export GSATANG=$DATA/gsatang if test "$err1" -eq '0' then msg="Angupdate Start/Guess Fields Found" ./postmsg "$jlogfile" "$msg" else msg="Angupdate Cannot Start/Guess Fields Not Available" ./postmsg "$jlogfile" "$msg" export pgm=$job export err=911 ./err_chk fi ############################ # Make use of updated angle dependent bias file, if it exists. if [[ -s $GSATANG ]]; then export SATANGL=$GSATANG fi # Make use of increment from GFS early cycle, if it exists if [[ -s $GESFIL ]]; then export GINCIN=$GESFIL fi ############################ # WCOSS envrionment settings export MP_COREFILE_FORMAT=lite export MP_EUIDEVELOP=min export MP_EUIDEVICE=sn_all export MP_EUILIB=us export MP_MPILIB=mpich2 export MP_LABELIO=yes export MP_SHARED_MEMORY=yes export machine=WCOSS export APRUN='mpirun.lsf' env ############################################################# # Execute the script ${ANGUPDATESH:-$SCRGLOBAL/exglobal_angupdate.sh.ecf} ############################################################# #export MP_PMDLOG=no #poe rm -rf /tmp/mplog* ########## # NOTES: 1) SATANGO is used in the following analysis cycle ########## if test "$SAVEGES" = "YES" then cp $SATANGO $GESdir/${RUN}.${cycle}.satang fi if test "$SENDCOM" = "YES" then cp $SATANGO $COMOUT/${RUN}.${cycle}.satang fi if test $SENDDBN = 'YES' then $DBNROOT/bin/dbn_alert MODEL GDAS1_MSC_satang $job $COMOUT/${RUN}.${cycle}.satang fi cat $pgmout msg="ENDED NORMALLY." ./postmsg "$jlogfile" "$msg" ############################## # Remove the Temporary working directory ############################## cd $DATA_IN if [ ${RM_TMPDIR:-YES} = YES ] ; then rm -rf $DATA ; fi date