#!/bin/sh date export PS4=' $SECONDS + ' set -x #################################### # obtain unique process id (pid) and make temp directory #################################### export pid=${pid:-$$} export DATA=${DATA:-$DATAROOT/${job}}.${pid} mkdir -p $DATA cd $DATA export cycle=${cycle:-t${cyc}z} #################################### # Specify NET Name and RUN # # RUN - RUN grib field to repack #################################### export NET=gfs export RUN=gfsmos #################################### # 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 $com # SENDDBN - Send files to OSO #################################### export SENDECF=${SENDECF:-YES} export SENDCOM=${SENDCOM:-YES} export SENDDBN=${SENDDBN:-YES} #################################### # Specify GFS-MOS version number #################################### export GFSMOS_MODEL_VERSION=${GFSMOS_MODEL_VERSION:-${gfsmos_ver}} export GFSMOS_CODE_VERSION=${GFSMOS_CODE_VERSION:-${mos_shared_ver}} #################################### # Specify Execution Areas #################################### export HOMEmdl=${HOMEmdl:-$NWROOT/gfsmos.${GFSMOS_MODEL_VERSION}} export HOMEcode=${HOMEcode:-$NWROOT/mos_shared.${GFSMOS_CODE_VERSION}} export EXECmdl=${EXECmdl:-$HOMEcode/exec} export FIXmdl=${FIXmdl:-$HOMEmdl/fix} export FIXcode=${FIXcode:-$HOMEcode/fix} export PARMmdl=${PARMmdl:-$HOMEmdl/parm} export PARMcode=${PARMcode:-$HOMEcode/parm} export SCRIPTSmdl=${SCRIPTSmdl:-$HOMEmdl/scripts} ############################## # Run setpdy and initialize PDY variables ############################## setpdy.sh . PDY ############################################## # Define COM directories ############################################## export COMIN=${COMIN:-$PTMPROOT/retro/retro.$PDY} #export COMIN=${COMIN:-$COMROOT/${NET}/${envir}/${RUN}.${PDY}} export COMINhourly=${COMINhourly:-/gpfs/hps2/ptmp/Geoff.Wagner/hry/hry.$PDY} #export COMINhourly=${COMINhourly:-$COMROOTp1/hourly/prod/hourly.$PDY} export COMOUT=${COMOUT:-$COMROOT/${NET}/${envir}/${RUN}.${PDY}} export PCOM=${PCOM:-${PCOMROOT}/gfsmos/} mkdir -m 775 -p $COMOUT $PCOM env ######################################## # EXECUTE THE SCRIPTS USING MPMD ######################################## rm -f $DATA/mpmdscript complist="metar cooprfcmeso goe higoe akgoe tstms" complist2="copopo3 coptype akpopo3 akptype" for comp in $complist do mkdir -p $DATA/$comp echo "$SCRIPTSmdl/exgfsmos_${comp}_extfcst.sh.ecf" >> $DATA/mpmdscript done for comp in $complist2 do mkdir -p $DATA/$comp echo "$SCRIPTSmdl/exgfsmos_${comp}_extprdgen.sh.ecf" >> $DATA/mpmdscript done chmod 755 $DATA/mpmdscript export MP_LABELIO=YES export MP_STDOUTMODE=unordered aprun -n ${NTASK} -N ${PTILE} -d ${OMP_NUM_THREADS} -j ${OMP_NUM_THREADS} -cc depth cfp $DATA/mpmdscript export err=$?; err_chk set +x i=0 export out_dir=${out_dir:-${COMROOT}/output/${envir}/today} for comp in $complist do out_file=$out_dir/gfsmos_ext_forecast_${comp}_$cyc.o${pid} echo "############# OUTPUT FOR GFSMOS $comp #################" > $out_file ranknum=`grep "^cfp: " $LSB_OUTPUTFILE | grep "exgfsmos_${comp}_extfcst" | grep executing | awk '{print $4}'` grep -E "^${ranknum}+ " $LSB_OUTPUTFILE >> $out_file cat $DATA/$comp/$pgmout >> $out_file let i=i+1 done for comp in $complist2 do out_file=$out_dir/gfsmos_ext_prdgen_${comp}_$cyc.o${pid} echo "############# OUTPUT FOR GFSMOS $comp #################" > $out_file ranknum=`grep "^cfp: " $LSB_OUTPUTFILE | grep "exgfsmos_${comp}_extprdgen" | grep executing | awk '{print $4}'` grep -E "^${ranknum}+ " $LSB_OUTPUTFILE >> $out_file cat $DATA/$comp/$pgmout >> $out_file let i=i+1 done set -x msg="JOB $job HAS COMPLETED NORMALLY" postmsg $jlogfile "$msg" if [ -e $pgmout ]; then cat $pgmout fi if [ "$KEEPDATA" != YES ]; then cd $DATAROOT rm -rf $DATA fi date