#!/bin/bash # #### 05/05/99 ############################### # Bias Correct NCEP Global Ensemble Forecast # ############################################# ###################################################### # 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=${NET:-gens} export RUN=${RUN:-gefs} ########################################### # Run config file to get input parameters ########################################### if [ "$RUN_ENVIR" = dev ] ### For Developers, "group_name" is passed from the ecFLOW script then export PARA_CONFIG=${PARA_CONFIG:-/ensemble/save/${LOGNAME}/${direxp}/parm/gefs_debias_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}" #################################### # SENDECF - Flag Events on ECF # SENDCOM - Copy Files From TMPDIR to $COMOUT # SENDDBN - Issue DBNet Client Calls #################################### export SENDCOM=${SENDCOM:-YES} export SENDECF=${SENDECF:-YES} export SENDDBN=${SENDDBN:-YES} ######################################################################## # RUNJOB - Judge the Job for Regular Run or Extended 00 Cycle Run ######################################################################## export RUNJOB=${RUNJOB:-REGULAR} #################################### # Specify Execution Areas #################################### export HOMEgefs=${HOMEgefs:-/nw${envir}/naefs.${model_ver}} export EXECgefs=${EXECgefs:-$HOMEgefs/exec} export FIXgefs=${FIXgefs:-$HOMEgefs/fix} export USHgefs=${USHgefs:-$HOMEgefs/ush} export ERRSCRIPT=err_chk export LOGSCRIPT=startmsg export REDOUT='1>>' export REDERR='2>' ############################## # 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_BIAS=${COM_BIAS:-/com/${NET}/${envir}} #export COM_GEFS=${COM_GEFS:-/com/${NET}/${envir}} export COM_GEFS=${COM_GEFS:-/com/${NET}/prod} export COMIN=$COM_GEFS/${RUN}.${PDY}/${cyc}/pgrb2a export COM_OUT=${COM_OUT:-/com/${NET}/${envir}} export COMOUTBC=${COM_OUT}/${RUN}.${PDY}/${cyc}/pgrb2a_bc export COMOUTAN=${COM_OUT}/${RUN}.${PDY}/${cyc}/pgrb2a_an export COMOUTWT=${COM_OUT}/${RUN}.${PDY}/${cyc}/pgrb2a_wt export COMOUTBC_GB1=${COM_OUT}/${RUN}.${PDY}/${cyc}/pgrba_bc export COMOUTAN_GB1=${COM_OUT}/${RUN}.${PDY}/${cyc}/pgrba_an export COMOUTWT_GB1=${COM_OUT}/${RUN}.${PDY}/${cyc}/pgrba_wt mkdir -m 775 -p ${COMOUTBC} mkdir -m 775 -p ${COMOUTBC_GB1} mkdir -m 775 -p ${COMOUTAN} mkdir -m 775 -p ${COMOUTAN_GB1} mkdir -m 775 -p ${COMOUTWT} mkdir -m 775 -p ${COMOUTWT_GB1} msg="HAS BEGUN on `hostname`" postmsg "$jlogfile" "$msg" env ############################################################# # Execute the script ############################################################# export memberlist0="c00" export memberlist1="p01" export memberlist2="p02" export memberlist3="p03" export memberlist4="p04" export memberlist5="p05" export memberlist6="p06" export memberlist7="p07" export memberlist8="p08" export memberlist9="p09" export memberlist10="p10" export memberlist11="p11" export memberlist12="p12" export memberlist13="p13" export memberlist14="p14" export memberlist15="p15" export memberlist16="p16" export memberlist17="p17" export memberlist18="p18" export memberlist19="p19" export memberlist20="p20" export memberlist21="gfs" if [ -s $DATA/poescript ]; then rm -f $DATA/poescript fi for num in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 0 do mkdir -p $DATA/group$num done echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist1\" $DATA/group1" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist2\" $DATA/group2" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist3\" $DATA/group3" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist4\" $DATA/group4" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist5\" $DATA/group5" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist6\" $DATA/group6" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist7\" $DATA/group7" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist8\" $DATA/group8" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist9\" $DATA/group9" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist10\" $DATA/group10" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist11\" $DATA/group11" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist12\" $DATA/group12" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist13\" $DATA/group13" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist14\" $DATA/group14" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist15\" $DATA/group15" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist16\" $DATA/group16" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist17\" $DATA/group17" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist18\" $DATA/group18" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist19\" $DATA/group19" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist20\" $DATA/group20" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist21\" $DATA/group21" >>$DATA/poescript echo "$HOMEgefs/scripts/exgefs_debias.sh.ecf \"$memberlist0\" $DATA/group0" >>$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 cat $DATA/group0/$pgmout.24.c00_an cat $DATA/group0/$pgmout.24.c00 cat $DATA/group0/$pgmout.24.c00_wt cat $DATA/group20/$pgmout.360.p20_an cat $DATA/group20/$pgmout.360.p20 cat $DATA/group20/$pgmout.360.p20_wt msg="JOB COMPLETED NORMALLY" postmsg "$jlogfile" "$msg" ############################## # Remove the Temporary working directory ############################## cd $DATA_IN rm -rf $DATA date