#!/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 COMINgfs=${COMINgfs:-$COMROOT/gfs/${envir}/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 if [[ $cyc == "00" || $cyc == "12" ]]; then complist="prep47 pac_prep akgoe_prep" else complist="prep47 pac_prep" fi for comp in $complist do if [[ $comp == "akgoe_prep" ]]; then for projGroup in 1 2 3 4; do mkdir -p $DATA/${comp}.${projGroup} out_file=$out_dir/gfsmos_${comp}.${projGroup}_$cyc.o${pid} echo "$SCRIPTSmdl/exgfsmos_${comp}.sh.ecf ${projGroup}" >> $DATA/mpmdscript done else mkdir -p $DATA/$comp out_file=$out_dir/gfsmos_${comp}_$cyc.o${pid} echo "$SCRIPTSmdl/exgfsmos_${comp}.sh.ecf" >> $DATA/mpmdscript fi done 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 out_file=$out_dir/gfsmos_${comp}_$cyc.o${pid} echo "############# OUTPUT FOR GFSMOS $comp #################" > $out_file ranknum=`grep "^cfp: " $LSB_OUTPUTFILE | grep "exgfsmos_${comp}\.sh" | 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 for projGroup in 1 2 3 4; do cat $DATA/akgoe_prep.${projGroup}/pkgfsrawgmosak.${PDY}${cyc}.$projGroup >> $DATA/pkgfsrawgmosak.${PDY}${cyc} done cp $DATA/pkgfsrawgmosak.${PDY}${cyc} $COMOUT/. 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