#!/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 export MP_IOAGENT_CNT=all export MP_IO_BUFFER_SIZE=8M #################################### # Specify NET and RUN Name and model #################################### export NET=gens export RUN=gefs ######################################### # This block is for Developer's test run: # Run config file to get input parameters ######################################### if [ "$RUN_ENVIR" != prod ] ### For Developers, "group_name" is passed from the ecFLOW script 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 pgmerr=errfile ############################################## # SENDCOM - Copy Files From TMPDIR to $COMOUT # SENDECF - Flag Events on SMS ############################################## 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=NO export IFGEFS=YES 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 COMOUTGEFS=${COM_OUT}/${RUN}.${PDY}/${cyc}/pgrba_bc export COMOUTGEFS_GB2=${COM_OUT}/${RUN}.${PDY}/${cyc}/pgrb2a_bc export COMOUTGEFSAN=${COM_OUT}/${RUN}.${PDY}/${cyc}/pgrba_an export COMOUTGEFSAN_GB2=${COM_OUT}/${RUN}.${PDY}/${cyc}/pgrb2a_an mkdir -m 775 -p ${COMOUTGEFS} mkdir -m 775 -p ${COMOUTGEFS_GB2} mkdir -m 775 -p ${COMOUTGEFSAN} mkdir -m 775 -p ${COMOUTGEFSAN_GB2} msg="HAS BEGUN on `hostname`" postmsg "$jlogfile" "$msg" env ################################################### # Execute the script using poe ################################################### export hourlist1=" 06 12 18 24 30 36 42 48 54 60 66 72 78 84 90 96 \ 102 108 114 120 126 " export hourlist2=" 132 138 144 150 156 162 168 174 180 186 192 198 204 210 216 222 228 \ 234 240 246 252 258 " export hourlist3=" 264 270 276 282 288 294 300 306 312 318 324 330 336 342 348 354 360 \ 366 372 378 384" if [ -s $DATA/poescript ]; then rm $DATA/poescript fi mkdir -p $DATA/group1 mkdir -p $DATA/group2 mkdir -p $DATA/group3 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 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 cd $DATA cat $DATA/group1/$pgmout.24_prob cat $DATA/group1/$pgmout.24.avg_an cat $DATA/group3/$pgmout.360_prob cat $DATA/group3/$pgmout.360.avg_an ############################################################# msg="JOB COMPLETED NORMALLY" postmsg "$jlogfile" "$msg" ######################################## # Remove the Temporary working directory ######################################## cd $DATA_IN rm -rf $DATA date