#!/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:-$COMROOT/${NET}/${envir}/${RUN}.${PDY}} export COMINgfs=${COMINgfs:-$COMROOTp2/gfs/prod/gfs.${PDY}} export COMOUT=${COMOUT:-$COMROOT/${NET}/${envir}/${RUN}.${PDY}} mkdir -m 775 -p $COMOUT env ######################################## # EXECUTE THE SCRIPTS USING MPMD ######################################## rm -f $DATA/mpmdscript let ntask=0 complist="prep47 pac_prep" for comp in $complist do for dat in $datlist do mkdir -p $DATA/${comp}_${dat} if [ ! -d $COMOUT/gfs.${dat} ]; then mkdir -p $COMOUT/gfs.${dat} fi echo "($SCRIPTSretro/exgfsmos_ext${comp}.sh.ecf ${dat} 2>&1 | sed 's/^/${comp}_${dat}:/')" >> $DATA/mpmdscript ntask=$((ntask+1)) done done if [ $ntask -le 15 ]; then ptile=$ntask else ptile=15 fi chmod 755 $DATA/mpmdscript export MP_LABELIO=YES export MP_STDOUTMODE=unordered aprun -T -n ${ntask} -N ${ptile} -d ${OMP_NUM_THREADS} -cc depth cfp $DATA/mpmdscript #aprun -n ${NTASK} -N ${PTILE} -d ${OMP_NUM_THREADS} $DATA/mpmdscript export err=$?; err_chk set +x i=0 export out_dir=${out_dir:-${COMROOT}/output/${envir}/today} for comp in $complist do for dat in $datlist do out_file=$out_dir/gfsmos_ext${comp}_${dat}_$cyc.o${pid} echo "############# OUTPUT FOR GFSMOS EXT $comp $dat#################" > $out_file grep -E "${comp}_${dat}:" $LSB_OUTPUTFILE | cut -d":" -f 2- >> $out_file cat $DATA/${comp}_${dat}/$pgmout >> $out_file let i=i+1 done 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