#!/bin/ksh ################################################################# # # In case of problems with this job or its output: # # To force a cold start, modify the variable coldstartcycles # in the file parm/gefs.parm # ################################################################# set -xa echo `date` $0 `date -u` begin export PS4='$SECONDS + ' #################################### # 01/28/2013 New variables added for WCOSS and cross-machine unfication export gefsmachine=${gefsmachine:-dell} export gefsmpexec=${gefsmpexec:-mpirun} export APRUN=${gefsmpexec:-mpirun} ########################################### # Run gefs_config to get input parameters ########################################### #DHOU 03/09/2012 temporal setting #RERUN=YES if [ "$RUN_ENVIR" = dev ] ### For Developers then # RLW 20141008 modify to obtain and use version for vertical structure . $basesource/nw$envir/*/versions/gefs_legacy.ver . $basesource/nw$envir/gefs_legacy.${gefs_legacy_ver}/parm/gefs_config_dev fi #################################### # obtain unique process id (pid) and make working directory #################################### export pid=$$ if [[ $envir = prod ]] || \ [[ $envir = para ]] || \ [[ $envir = test ]]; then export DATA=$DATAROOT/gefs_legacy_init_$cyc.$envir.save else echo basenfs=$basenfs echo baseptmp=$baseptmp echo basetmp=$basetmp export DATA=$basetmp/tmpnwprd1/gefs_legacy_init_$PDY$cyc.$envir.save echo DATA=$DATA fi if [[ -d $DATA ]]; then rm -rf $DATA fi mkdir -p $DATA cd $DATA export cycle=t${cyc}z export cycle_fcst=t${cyc_fcst}z echo cyc=$cyc cyc_fcst=$cyc_fcst echo cycle=$cycle cycle_fcst=$cycle_fcst if (( cyc == cyc_fcst )); then export cycsuffix=false export fcstlong=true else export fcstlong=false export cycsuffix=true fi echo fcstlong=$fcstlong echo cycsuffix=$cycsuffix #################################### # Specify NET and RUN Name and model #################################### export NET=gens export RUN=enstr #################################### # File To Log Msgs #################################### if [[ $envir = dev ]]; then export jlogfile=$baselog/com/logs/jlogfile fi jlogfile=${jlogfile:-${DATA}/jlogfile} #################################### # Determine Job Output Name on System #################################### export outid="LL$job" export jobid="${outid}.o${pid}" export pgmout="OUTPUT.${pid}" export pgmerr=errfile export CHGRESTHREAD=16 #################################### # SAVEGES - Copy Files From TMPDIR to $GESdir # RMGES - Clean Files in $GESdir # SENDECF - Flag Events on ECF # SENDCOM - Copy Files From TMPDIR to $COMOUT # SENDDBN - Issue DBNet Client Calls # RERUN - Rerun posts from beginning (default no) # VERBOSE - Specify Verbose Output in global_postgp.sh #################################### export SAVEGES=YES export SENDECF=YES export SENDCOM=YES export RERUN=NO export VERBOSE=YES if [ $cyc -eq 00 ]; then if [[ $envir = prod ]]; then export SENDDBN=NO else export SENDDBN=NO fi else export SENDDBN=NO fi #################################### # Specify Execution Areas #################################### export HOMEgefs=${HOMEgefs_legacy:-/gpfs/dell1/nco/ops/nw${envir}/gefs_legacy.${gefs_legacy_ver}} export HOMEGLOBAL=${HOMEgefs_legacy:-/gpfs/dell1/nco/ops/nw${envir}/gefs_legacy.${gefs_legacy_ver}} export EXECGLOBAL=$HOMEGLOBAL/exec export FIXGLOBAL=$HOMEGLOBAL/fix #export FIXGLOBAL=${FIXSUBDA:-$HOMEGLOBAL/fix/fix_am} export PARMGLOBAL=$HOMEGLOBAL/parm export USHGLOBAL=$HOMEGLOBAL/ush if [[ $envir = dev ]]; then #DHOU 03/29/2012 added the following block for ZEUS if [[ $gefsmachine = zeus ]]; then export EXECGLOBAL=$HOMEgefs/exec export FIXGLOBAL=$HOMEGLOBAL/fix export PARMGLOBAL=$HOMEgefs/parm export USHGLOBAL=$HOMEgefs/ush fi #DHOU 01/18/2013 added the following block for WCOSS (temporary) if [[ $gefsmachine = wcoss ]]; then export EXECGLOBAL=$HOMEgefs/exec export FIXGLOBAL=$HOMEgefs/fix export PARMGLOBAL=$HOMEgefs/parm export USHGLOBAL=$HOMEgefs/ush fi if [[ $gefsmachine = dell ]]; then export EXECGLOBAL=$HOMEgefs/exec export FIXGLOBAL=$HOMEgefs/fix export PARMGLOBAL=$HOMEgefs/parm export USHGLOBAL=$HOMEgefs/ush fi export UTILgefs=${UTILgefs:-$HOMEgefs/util} export FIXgefs=$HOMEgefs/fix export USHgefs=$HOMEgefs/ush export EXECgefs=$HOMEgefs/exec else export HOMEgefs=${HOMEgefs_legacy:-/gpfs/dell1/nco/ops/nw${envir}/gefs_legacy.${gefs_legacy_ver}} export EXECgefs=$HOMEgefs/exec export FIXgefs=$HOMEgefs/fix export PARMgefs=$HOMEgefs/parm export USHgefs=$HOMEgefs/ush export UTILgefs=${UTILgefs:-$HOMEgefs/util} fi export HOMEgsm=${HOMEgsm:-$NWROOT/gsm.${gsm_ver}} export ERRSCRIPT=err_chk export LOGSCRIPT=startmsg export REDOUT='1>>' export REDERR='2>' ############################################## echo set parameters using gefs.parm ############################################## if [[ $envir = prod ]]; then . $PARMGLOBAL/gefs.parm . $PARMGLOBAL/gefs_init.parm elif [[ $envir = para ]] || \ [[ $envir = test ]]; then . $PARMGLOBAL/gefs.parm . $PARMGLOBAL/gefs_init.parm else # RLW 20141008 modify to obtain and use version for vertical structure . $basesource/nw$envir/gefs_legacy.${gefs_legacy_ver}/parm/gefs.parm . $basesource/nw$envir/gefs_legacy.${gefs_legacy_ver}/parm/gefs_init.parm fi echo env | sort echo ############################## # Set up the UTILITIES ############################## #export utilscript=/nwprod/util/ush ############################## # Run setup to initialize working directory and utility scripts ############################## #ksh $utilscript/setup.sh ############################## # Run setpdy and initialize PDY variables ############################## setpdy.sh if [[ $envir = prod ]] || \ [[ $envir = para ]] || \ [[ $envir = test ]]; then . PDY else echo PDY=$PDY is already set fi ############################################## # for global_chgres.sh ############################################## export SLMASK=/dev/null ############################################## # Define COM directories ############################################## # COMIN from ens_tracker export gfstrkdir=${gfstrkdir:-$(compath.py ens_tracker/prod/gfs.${PDY})/$cyc/tctrack} if [[ $NEMSIO_IN = .true. ]]; then if [[ $envir = prod ]] || \ [[ $envir = para ]] || \ [[ $envir = test ]]; then export COMINgfs=${COMINgfs:-$(compath.py gfs/prod/gfs.${PDY})/$cyc/atmos} export COMINgefs=${COMINgefs:-$(compath.py gefs/prod/gefs.$PDY)/$cyc/atmos/sfcsig} else export COMINgfs=${COMINgfs:-$(compath.py gfs/prod/gfs.$PDY)/$cyc/atmos} export COMINgefs=${COMINgefs:-$(compath.py gefs/prod/gefs.$PDY)/$cyc/atmos/sfcsig} fi else echo !!!! FATAL ERROR !!!! echo NEMSIO_IN= $NEMSIO_IN = is not supported export err=9 err_chk exit fi if [[ $envir = prod ]] || \ [[ $envir = para ]] || \ [[ $envir = test ]]; then export COMIN=$COMROOT/${NET}/${envir}/gefs_legacy.${PDY} export COM=$COMROOT/${NET}/${envir} export COMINm1=$COMROOT/${NET}/${envir}/gefs_legacy.${PDYm1} export COMINm2=$COMROOT/${NET}/${envir}/gefs_legacy.${PDYm2} export COMINm3=$COMROOT/${NET}/${envir}/gefs_legacy.${PDYm3} export COMINm4=$COMROOT/${NET}/${envir}/gefs_legacy.${PDYm4} else export COMIN=$baseoutput/com/${NET}/${envir}/gefs_legacy.${PDY} export COM=$baseoutput/com/${NET}/${envir} export COMINm1=$baseoutput/com/${NET}/${envir}/gefs_legacy.${PDYm1} export COMINm2=$baseoutput/com/${NET}/${envir}/gefs_legacy.${PDYm2} export COMINm3=$baseoutput/com/${NET}/${envir}/gefs_legacy.${PDYm3} export COMINm4=$baseoutput/com/${NET}/${envir}/gefs_legacy.${PDYm4} fi if [[ $envir = prod ]] || \ [[ $envir = para ]] || \ [[ $envir = test ]]; then export COMOUT=$COMROOT/${NET}/${envir}/gefs_legacy.${PDY} else export COMOUT=$baseoutput/com/${NET}/${envir}/gefs_legacy.${PDY} fi mkdir -m 775 -p $COMOUT/$cyc/init mkdir -m 775 -p $COMOUT/$cyc/sflux ############################################## # Define GES directories ############################################## if [[ $envir = prod ]] || \ [[ $envir = para ]] || \ [[ $envir = test ]]; then gespath=$GESROOT/${envir} else gespath=$baseoutput/nwges/${envir} fi export GESdir=$gespath/gefs_legacy.${PDY} mkdir -m 775 -p $GESdir ############################################## echo locations of scripts and executables ############################################## echo location of sighdr executable if [[ $envir = prod || $envir = para || $envir = test ]]; then sighdrexec=$HOMEgsm/exec/global_sighdr else echo locsighdrexec=$locsighdrexec case $locsighdrexec in (prod) export sighdrexec=$HOMEgsm/exec/global_sighdr ;; (para) export sighdrexec=$HOMEgsm/exec/global_sighdr ;; (test) export sighdrexec=$HOMEgsm/exec/global_sighdr ;; (wcoss) export sighdrexec=$HOMEgsm/exec/global_sighdr ;; (dell) export sighdrexec=$HOMEgsm/exec/global_sighdr ;; (local) case $envir in (prod) export sighdrexec=/nw$envir/exec/global_sighdr ;; (para) export sighdrexec=/nw$envir/exec/global_sighdr ;; (test) export sighdrexec=/nw$envir/exec/global_sighdr ;; (zeus) export sighdrexec=$EXECglobal/global_sighdr ;; (*) export sighdrexec=$basesource/nw$envir/exec/global_sighdr ;; esac ;; (*) export sighdrexec=$locsighdrexec ;; esac fi echo sighdrexec=$sighdrexec echo location of chgres script and executable if [[ $envir = prod || $envir = para || $envir = test ]]; then export chgresush=$HOMEgsm/ush/global_chgres.sh export CHGRESEXEC=$HOMEgsm/exec/global_chgres export getnsttf=$UTILgefs/exec/getnsttf else echo locchgresush=$locchgresush case $locchgresush in (prod) export chgresush=$HOMEgsm/ush/global_chgres.sh ;; (para) export chgresush=$HOMEgsm/ush/global_chgres.sh ;; (test) export chgresush=$HOMEgsm/ush/global_chgres.sh ;; (wcoss) export chgresush=$HOMEgsm/ush/global_chgres.sh ;; (dell) export chgresush=$HOMEgsm/ush/global_chgres.sh ;; # (zeus) export chgresush=$basesource/nw$envir/ush/global_chgres.sh ;; (local) case $envir in (prod) export chgresush=/nw$envir/ush/global_chgres.sh ;; (para) export chgresush=/nw$envir/ush/global_chgres.sh ;; (test) export chgresush=/nw$envir/ush/global_chgres.sh ;; # (zeus) export chgresush=$USHglobal/global_chgres.sh ;; (zeus) export chgresush=$basesource/nw$envir/ush/global_chgres.sh ;; (*) export chgresush=$basesource/nw$envir/ush/global_chgres.sh ;; esac ;; (*) chgresush=$locchgresush ;; esac echo locchgresexec=$locchgresexec case $locchgresexec in (prod) export CHGRESEXEC=$HOMEgsm/exec/global_chgres ;; (para) export CHGRESEXEC=$HOMEgsm/exec/global_chgres ;; (test) export CHGRESEXEC=$HOMEgsm/exec/global_chgres ;; (wcoss) export CHGRESEXEC=$HOMEgsm/exec/global_chgres ;; (dell) export CHGRESEXEC=$HOMEgsm/exec/global_chgres ;; (local) case $envir in (prod) export CHGRESEXEC=/nw$envir/exec/global_chgres_thread ;; (para) export CHGRESEXEC=/nw$envir/exec/global_chgres_thread ;; (test) export CHGRESEXEC=/nw$envir/exec/global_chgres_thread ;; (*) export CHGRESEXEC=$basesource/nw$envir/exec/global_chgres_thread ;; esac ;; (*) export CHGRESEXEC=$locchgresexec ;; esac export getnsttf=$UTILgefs/exec/getnsttf fi echo chgresush=$chgresush echo CHGRESEXEC=$CHGRESEXEC echo getnsttf=$getnsttf ############################################## echo set up module for nemsio ############################################## if [[ $NEMSIO_IN = .true. ]]; then echo FIXgsm=$FIXgsm export CHGRESEXEC_SAVE=$CHGRESEXEC export chgresush_save=$chgresush export FIXgsm_save=$FIXgsm unset CHGRESEXEC unset chgresush unset FIXgsm #. /usrx/local/Modules/default/init/ksh . /usrx/local/prod/lmod/lmod/init/ksh module use /gpfs/dell1/nco/ops/nwprod/modulefiles module load util_shared/1.1.0 # Redirecting CHGRESEXEC to GEFS exec CHGRESEXEC=$EXECgefs/global_chgres_nemsio export CHGRESEXEC=$CHGRESEXEC echo before set chgresush export FIXgsm=${FIXSUBDA:-$HOMEgsm/fix/fix_am} export chgresush=$GLOBALCHGRES echo after set chgresush echo chgresush=$chgresush echo CHGRESEXEC=$CHGRESEXEC echo FIXgsm=$FIXgsm fi ############################################## echo list environment before running script ############################################## echo env | sort echo ############################################################# # Execute the script if [[ $envir = prod ]] || \ [[ $envir = para ]] || \ [[ $envir = test ]]; then # RLW 20141008 modify to obtain and use version for vertical structure #/nw${envir}/gefs_legacy.${gefs_legacy_ver}/scripts/exgefs_init_separate.sh.ecf $HOMEgefs/scripts/exgefs_init_separate.sh.ecf else # RLW 20141008 modify to obtain and use version for vertical structure $basesource/nw${envir}/gefs_legacy.${gefs_legacy_ver}/scripts/exgefs_init_separate.sh.ecf fi ############################################################# cat $pgmout msg="JOB COMPLETED NORMALLY" postmsg "$jlogfile" "$msg" ############################## # Save the working directory # for the ET and COMBINE jobs ############################## echo `date` $0 `date -u` end