#!/bin/bash ###### 08/15/2007 ################################################################# # Calculate CMC, GEFS & NAEFS Ensemble Probability Forecast, Ensemble Mean & Spread ################################################################################### ###################################################### # The following two variable could be defined in the # loadleveler submission script (the sms script), if # not they will take the default values which is set # for the NCO running enviroment ####################################################### export RUN_ENVIR=${RUN_ENVIR:-prod} set -xa #################################### # Specify NET and RUN Name and model #################################### export NET=gens export RUN=naefs ######################################### # This block is for Developer's test run: # Run config file to get input parameters ######################################### if [ "$RUN_ENVIR" != prod ]; then PARA_CONFIG=${PARA_CONFIG:-/ensemble/save/${LOGNAME}/naefs.${model_ver}/user/naefs_para_config} . $PARA_CONFIG fi export PS4='$SECONDS + ' date ######################################################## # obtain unique process id (pid) and make temp directory ######################################################## export pid=$$ export DATA_IN=${DATA_IN:-/tmpnwprd2} export DATA=$DATA_IN/${job}.${pid} mkdir -p $DATA cd $DATA export cycle=t${cyc}z #################################### # File To Log Msgs #################################### if [ "$envir" = 'prod' ] || [ "$envir" = 'para' ] || [ "$envir" = 'test' ] then # NCO if [ $envir = "prod" ] then export jlogfile=/com/logs/jlogfiles/jlogfile.${job}.${pid} else export jlogfile=/com/logs/${envir}/jlogfile #export DBNROOT=/nwprod/spa_util/para_dbn export DBNROOT=/nwprod/spa_util/fakedbn fi else # DEV export jlogfile=/dev/null fi ##################################### # Determine Job Output Name on System ##################################### export outid="LL$job" export jobid="${outid}.o${pid}" #export pgmout="OUTPUT.${pid}" export pgmout="OUTPUT" export pgmerr=errfile ############################################## # SENDCOM - Copy Files From TMPDIR to $COMOUT # SENDECF - Flag Events on ecFLOW ############################################## export SENDCOM=${SENDCOM:-YES} export SENDECF=${SENDECF:-YES} export SENDDBN=${SENDDBN:-YES} ############################################################### # IFNAEFS - Generate Products from NCEP/CMC Combined Ensemble # IFGEFS - Generate Products from NCEP Ensemble # IFCMCE - Generate Products from CMC Ensemble ############################################################### export IFNAEFS=YES export IFGEFS=NO export IFCMCE=NO ######################### # Specify Execution Areas ######################### export HOMEnaefs=${HOMEnaefs:-/nw${envir}/naefs.${model_ver}} export EXECnaefs=${EXECnaefs:-$HOMEnaefs/exec} export FIXnaefs=${FIXnaefs:-$HOMEnaefs/fix} export USHnaefs=${USHnaefs:-$HOMEnaefs/ush} ###################### # Set up the UTILITIES ###################### export HOMEUTIL=/nwprod/util export utilscript=$HOMEUTIL/ush export EXECUTIL=$HOMEUTIL/exec ############################################################### # Run setup to initialize working directory and utility scripts ############################################################### sh $utilscript/setup.sh ######################################### # Run setpdy and initialize PDY variables ######################################### sh $utilscript/setpdy.sh . PDY ######################## # Define COM directories ######################## export COM_NCEP=${COM_NCEP:-/com/${NET}/${envir}} export COM_CMC=${COM_CMC:-/com/${NET}/${envir}} export COM_FENS=${COM_FENS:-/com/${NET}/${envir}} export DCOM_CMC=${DCOM_CMC:-/dcom/us007003} export COMINCMC=${COMINCMC:-$DCOM_CMC/$PDY/wgrbbul/cmcensbc_gb2} export COMINNCEP=$COM_NCEP/gefs.${PDY}/${cyc}/pgrb2a_bc export COMINFENS=$COM_FENS/fens.${PDY}/${cyc}/pgrb2a_bc export COM_NCEPANL=${COM_NCEPANL:-${COM_NCEP}} export COM_CMCANL=${COM_CMCANL:-${COM_CMC}} export COM_FENSANL=${COM_FENSANL:-${COM_FENS}} export COM_OUT=${COM_OUT:-/com/${NET}/${envir}} export COMOUTNAEFS=$COM_OUT/${RUN}.${PDY}/${cyc}/pgrba_bc export COMOUTNAEFSAN=$COM_OUT/${RUN}.${PDY}/${cyc}/pgrba_an export COMOUTNAEFS_GB2=$COM_OUT/${RUN}.${PDY}/${cyc}/pgrb2a_bc export COMOUTNAEFSAN_GB2=$COM_OUT/${RUN}.${PDY}/${cyc}/pgrb2a_an mkdir -m 775 -p ${COMOUTNAEFS} mkdir -m 775 -p ${COMOUTNAEFS_GB2} mkdir -m 775 -p ${COMOUTNAEFSAN} mkdir -m 775 -p ${COMOUTNAEFSAN_GB2} msg="HAS BEGUN on `hostname`" postmsg "$jlogfile" "$msg" env ################################################### # Execute the script using poe ################################################### export hourlist1="06 12 18 24" export hourlist2="30 36 42 48" export hourlist3="54 60 66 72" export hourlist4="78 84 90 96" export hourlist5="102 108 114 120" export hourlist6="126 132 138 144" export hourlist7="150 156 162 168" export hourlist8="174 180 186 192" export hourlist9="198 204 210 216" export hourlist10="222 228 234 240" export hourlist11="246 252 258 264" export hourlist12="270 276 282 288" export hourlist13="294 300 306 312" export hourlist14="318 324 330 336" export hourlist15="342 348 354 360" export hourlist16="366 372 378 384" if [ -s $DATA/poescript ]; then rm $DATA/poescript fi for num in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 do mkdir -p $DATA/group$num done echo "$HOMEnaefs/scripts/exnaefs_prob_avgspr.sh.ecf \"$hourlist1\" $DATA/group1" >>$DATA/poescript echo "$HOMEnaefs/scripts/exnaefs_prob_avgspr.sh.ecf \"$hourlist2\" $DATA/group2" >>$DATA/poescript echo "$HOMEnaefs/scripts/exnaefs_prob_avgspr.sh.ecf \"$hourlist3\" $DATA/group3" >>$DATA/poescript echo "$HOMEnaefs/scripts/exnaefs_prob_avgspr.sh.ecf \"$hourlist4\" $DATA/group4" >>$DATA/poescript echo "$HOMEnaefs/scripts/exnaefs_prob_avgspr.sh.ecf \"$hourlist5\" $DATA/group5" >>$DATA/poescript echo "$HOMEnaefs/scripts/exnaefs_prob_avgspr.sh.ecf \"$hourlist6\" $DATA/group6" >>$DATA/poescript echo "$HOMEnaefs/scripts/exnaefs_prob_avgspr.sh.ecf \"$hourlist7\" $DATA/group7" >>$DATA/poescript echo "$HOMEnaefs/scripts/exnaefs_prob_avgspr.sh.ecf \"$hourlist8\" $DATA/group8" >>$DATA/poescript echo "$HOMEnaefs/scripts/exnaefs_prob_avgspr.sh.ecf \"$hourlist9\" $DATA/group9" >>$DATA/poescript echo "$HOMEnaefs/scripts/exnaefs_prob_avgspr.sh.ecf \"$hourlist10\" $DATA/group10" >>$DATA/poescript echo "$HOMEnaefs/scripts/exnaefs_prob_avgspr.sh.ecf \"$hourlist11\" $DATA/group11" >>$DATA/poescript echo "$HOMEnaefs/scripts/exnaefs_prob_avgspr.sh.ecf \"$hourlist12\" $DATA/group12" >>$DATA/poescript echo "$HOMEnaefs/scripts/exnaefs_prob_avgspr.sh.ecf \"$hourlist13\" $DATA/group13" >>$DATA/poescript echo "$HOMEnaefs/scripts/exnaefs_prob_avgspr.sh.ecf \"$hourlist14\" $DATA/group14" >>$DATA/poescript echo "$HOMEnaefs/scripts/exnaefs_prob_avgspr.sh.ecf \"$hourlist15\" $DATA/group15" >>$DATA/poescript echo "$HOMEnaefs/scripts/exnaefs_prob_avgspr.sh.ecf \"$hourlist16\" $DATA/group16" >>$DATA/poescript chmod 775 $DATA/poescript export MP_CMDFILE=$DATA/poescript export MP_EUIDEVICE=sn_all export MP_EUILIB=us export MP_PGMMODEL=mpmd export MP_TASK_AFFINITY=cpu # # Execute the script. mpirun.lsf -cmdfile $DATA/poescript -pgmmodel mpmd -ilevel 3 -labelio yes -stdoutmode ordered export err=$?; err_chk wait cat $DATA/group1/$pgmout.24_prob cat $DATA/group1/$pgmout.24.avg_an cat $DATA/group15/$pgmout.360_prob cat $DATA/group15/$pgmout.360.avg_an ############################################################# msg="JOB COMPLETED NORMALLY" postmsg "$jlogfile" "$msg" ######################################## # Remove the Temporary working directory ######################################## cd $DATA_IN rm -rf $DATA date