#!/bin/ksh set -xa export MP_IOAGENT_CNT=all export MP_IO_BUFFER_SIZE=8M ######################################## # HRRR Free Forecast ######################################## ###################################################### # The following two variable could be defined in the # loadleveler submission script (the ecf script), if # not they will take the default values which is set # for the NCO running enviroment ####################################################### export RUN_ENVIR=${RUN_ENVIR:-nco} export SENDECF=${SENDECF:-YES} ################################### # Specify NET and RUN Name and model #################################### export NET=${NET:-hrrr} export RUN=${RUN:-hrrr} export model=${model:-hrrr} ##################################################################################### # This block is for Developer's test run: # Run config file to get input parameters # This config file should define the following variables # DATA_IN: Location of working directory, default to ${DATAROOT} # SENDECF: 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 ${COMROOT}/$NET/${envir} # COM_OUT: Directory for output file, default to ${COMROOT}/$NET/${envir} # gespath: Directory for the guess or restart files, default to ${GESROOT}/${envir} ##################################################################################### if [ "$RUN_ENVIR" != nco ] ### For Developers, "group_name" is passed from the ECF script then group_name=${group_name:-meso} package_name=${package_name:-hrrr} # . /${group_name}/save/${LOGNAME}/${package_name}${PACKAGEROOT}/parm/${package_name}_para_config export userid=${userid:-$LOGNAME} fi export PS4='$SECONDS + ' date #################################### # obtain unique process id (pid) and make temp directory #################################### export DATA=${DATAROOT}/hrrr_${dom}_fcst_${envir}_${cyc} if [ "${dom}" != hrrrdas ]; then rm -rf $DATA fi mkdir -p $DATA cd $DATA export cycle=t${cyc}z export tmmark=tm00 export cycm1=`expr $cyc - 1` if [ "$cyc" = 00 ]; then cycm1=23 else cycm1=$(printf "%02d" $cycm1) fi export pgmout="OUTPUT.$$" #################################### # SENDECF - Flag Events on ECF # SENDCOM - Copy files to /com directory #################################### export SENDECF=${SENDECF:-YES} export SENDCOM=${SENDCOM:-YES} export SENDDBN=${SENDDBN:-YES} #################################### # Specify Execution Areas #################################### export HOMEhrrr=${HOMEhrrr:-${PACKAGEROOT}/${NET}.${hrrr_ver}} export EXEChrrr=${EXEChrrr:-${HOMEhrrr}/exec} export FIXhrrr=${FIXhrrr:-${HOMEhrrr}/fix/${dom}} export PARMhrrr=${PARMhrrr:-${HOMEhrrr}/parm/${dom}} export USHhrrr=${USHhrrr:-${HOMEhrrr}/ush/${dom}} if [ "${dom}" = hrrrdas ]; then . $PARMhrrr/hrrrdas_config.fcst ensmem=$ENSBEG echo "run forecast for member =$ensmem" ensmemid=`printf %4.4i $ensmem` export PS4='HRRRDAS_FCST_${ensmemid} $SECONDS + ' rm -rf $DATA/mem${ensmemid} mkdir $DATA/mem${ensmemid} cd $DATA/mem${ensmemid} fi ########################################### # Run setpdy and initialize PDY variables ########################################### setpdy.sh . PDY ############################################## # Define COM directories ############################################## # for testing with canned data #export COMROOT=${COMROOT:-/lfs/h2/emc/ptmp/Benjamin.Blake/com} #export COM=${COM:-${COMROOT}/${NET}/${hrrr_ver}/${RUN}.${PDY}} #export COMIN=${COMIN:-${COMROOT}/${NET}/${hrrr_ver}/${RUN}.${PDY}/${dom}} #export COMINm1=${COMINm1:-${COMROOT}/${NET}/${hrrr_ver}/${RUN}.${PDYm1}/${dom}} #export COMOUT=${COMOUT:-${COMROOT}/${NET}/${hrrr_ver}/${RUN}.${PDY}/${dom}} #export GESROOT=${GESROOT:-${COMROOT}/${NET}/${hrrr_ver}/nwges} # for WCOSS2 ops export COM=${COM:-$(compath.py ${envir}/${NET}/${hrrr_ver})/${RUN}.${PDY}} export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${hrrr_ver})/${RUN}.${PDY}/${dom}} export COMINm1=${COMINm1:-$(compath.py ${envir}/${NET}/${hrrr_ver})/${RUN}.${PDYm1}/${dom}} export COMOUT=${COMOUT:-$(compath.py ${envir}/${NET}/${hrrr_ver})/${RUN}.${PDY}/${dom}} export GESROOT=${GESROOT:-$(compath.py ${envir}/${NET}/${hrrr_ver})/nwges} export HRRRDASBC=${HRRRDASBC:-$GESROOT/hrrrdasbc} export HRRRDASGES=${HRRRDASGES:-$GESROOT/hrrrdasges} mkdir -m 775 -p $HRRRDASGES export HRRRDAS_CONTINUE_FCST=${HRRRDAS_CONTINUE_FCST:-NO}; env ######################################################## # Execute the script. ${HRRR_FCSTSH:-$HOMEhrrr/scripts/${dom}/exhrrr_fcst.sh} ######################################################## if [ "${dom}" = hrrrdas ]; then (( ensmem = $ensmem + 1 )) while [[ $ensmem -le $ENSEND ]]; do echo "run forecast for member =$ensmem" ensmemid=`printf %4.4i $ensmem` export PS4='HRRDAS_FCST_${ensmemid} $SECONDS + ' rm -rf $DATA/mem${ensmemid} mkdir $DATA/mem${ensmemid} cd $DATA/mem${ensmemid} ${HRRR_FCSTSH:-$HOMEhrrr/scripts/${dom}/exhrrr_fcst.sh} (( ensmem = $ensmem + 1 )) done fi cat $pgmout msg="ENDED NORMALLY." postmsg "$jlogfile" "$msg" export KEEPDATA=YES ######################################## # Remove the Temporary working directory ######################################## cd $DATA if [ ${KEEPDATA} = NO ] ; then if [ "${dom}" = hrrrdas ]; then ensmem=$ENSBEG while [[ $ensmem -le $ENSEND ]]; do ensmemid=`printf %4.4i $ensmem` rm -rf $DATA/mem${ensmemid} (( ensmem = $ensmem + 1 )) done else rm -rf $DATA ; fi fi date