#!/bin/ksh ##################################################################### # 1/7/2014, Jiayi Peng and Dingchen Hou Scripts are modified to be vertical structure #################################################################### echo $(date) $0 $(date -u) begin set -xa export PS4=' + $SECONDS $na $LINENO: ' date export total_tasks=${total_tasks:-21} export gefsmpexec=${gefsmpexec:-"mpirun -n $total_tasks"} export APRUN=${gefsmpexec_mpmd:-"mpirun -n $total_tasks cfp mpmd_cmdfile"} #export APRUNTRACK="aprun -j1 -n21 -N7 -d1" #export NODES=3 #export IOBUF_PARAMS="*:size=32M:count=4:verbose" #################################### # obtain unique process id (pid) and make temp directory #################################### export pid=$$ export DATA=${DATA:-${DATAROOT}/${job}.${pid}} mkdir -p $DATA cd $DATA ############################ # Set up cycle varaible ############################ export cycle=t${cyc}z echo cyc=$cyc echo cycle=$cycle #################################### # Specify NET and RUN Name and model #################################### export NET=${NET:-gefs} export RUN=${RUN:-gefs} #################################### # File To Log Msgs #################################### export jlogfile=${jlogfile:-${DATA}/jlogfile.${job}.${pid}} #################################### # Determine Job Output Name on System #################################### export outid="LL$job" export jobid="${outid}.o${pid}" export pgmout="OUTPUT.${pid}" export pgmerr=errfile #################################### # SENDCOM - Copy Files From TMPDIR to $COMOUT # SENDDBN - Issue DBNet Client Calls # SENDECF - Flag Events on ECF # VERBOSE - Specify Verbose Output #################################### export SENDCOM=${SENDCOM:-YES} export SENDDBN=${SENDDBN:-YES} export SENDECF=${SENDECF:-YES} export VERBOSE=${VERBOSE:-YES} #################################### # Specify Execution Areas #################################### export HOMEgefs=${HOMEgefs:-${NWROOT}/gefs.${gefs_ver}} export HOMEtrak=${HOMEtrak:-${NWROOT}/ens_tracker.${tracker_ver}} export EXECens_tracker=${EXECtrak:-$HOMEtrak/exec} export USHens_tracker=${USHtrak:-$HOMEtrak/ush} export FIXens_tracker=${FIXtrak:-$HOMEtrak/fix} export SCRIPTSens_tracker=${SCRIPTSens_tracker:-$HOMEtrak/scripts} export PARMgefs=$HOMEgefs/parm ############################## # Run setup to initialize working directory and utility scripts ############################## #ksh setup.sh ############################## # Run setpdy and initialize PDY variables ############################## setpdy.sh . PDY #export PDY=20140913 ############################################## # Define COM directories ############################################## export COMIN=${COMIN:-${COMROOT}/${NET}/${envir}/gefs.${PDY}/${cyc}} export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/tctrack} export COMOUThur=${COMOUThur:-${COMROOT}/hur/${envir}/global} export COMOUTatcf=${COMOUTatcf:-${COMROOT}/nhc/${envir}/atcf} mkdir -m 775 -p $COMOUT $COMOUThur $COMOUTatcf export ensdira=$COMIN/pgrb2sp25 export ensdirb=$COMIN/pgrb2p25 ############################################## echo set parameters using gefs.parm ############################################## . $PARMgefs/gefs.parm if [[ $envir = dev ]]; then export fhmax=$fhmax00 elif (( cyc == 06 )); then export fhmax=$fhmax06 elif (( cyc == 12 )); then export fhmax=$fhmax12 elif (( cyc == 18 )); then export fhmax=$fhmax18 fi #################################### # Create member list #################################### if [[ $fcstlong = true ]]; then memberlist="c00" else memberlist="" fi (( imem = 0 )) while (( imem < npert )); do (( imem = imem + 1 )) if (( imem < 10 )); then imem=0$imem fi memberlist="$memberlist p$imem" done # while (( imem < npert )) echo memberlist=$memberlist export homesyndir=$HOMEtrak echo env | sort echo ######################################################## # Execute the tracking script. export cmodel=ens export loopnum=1 export ymdh=${PDY}${cyc} #-----------input data checking ----------------- ${USHens_tracker}/data_check_gefs.sh export err=$?; err_chk if [ $err != 0 ]; then msg="JOB FAILED!" exit $err fi #------------------------------------------------ mkdir ${DATA}/${cmodel} cd ${DATA}/${cmodel} >trkr.cmdfile for pert in ${memberlist}; do pertdir=${DATA}/${cmodel}/${pert} if [ ! -d ${pertdir} ]; then mkdir -p ${pertdir} fi outfile=${pertdir}/trkr.${cmodel}.${pert}.${ymdh}.out echo "${USHens_tracker}/extrkr_g2.sh ${loopnum} ${cmodel} ${ymdh} ${pert} ${pertdir} 2>&1 >${outfile}" >>trkr.cmdfile done # for pert in ${memberlist} cat trkr.cmdfile chmod 775 trkr.cmdfile export MP_CMDFILE=${DATA}/${cmodel}/trkr.cmdfile export SCR_CMDFILE=$MP_CMDFILE # Used by mpiserial on Theia export MP_PGMMODEL=mpmd rm mpmd_cmdfile ln -s $MP_CMDFILE mpmd_cmdfile $APRUN #for pert in ${memberlist}; do # pertdir=${DATA}/${cmodel}/${pert} # cp ${pertdir}/trak.a${pert}.atcfunix.${PDY}${CYL} ${COMOUT}/a${pert}.t${CYL}z.cyclone.trackatcfunix #done ##rm -rf ${DATA}/* sh ${USHens_tracker}/ens_trak_ave.sh export err=$?; err_chk #cd ${DATA} #${USHens_tracker}/atcf_2_cxml.sh ${cmodel} ${ymdh} ${COMOUT} ${DATA} #export err=$?; err_chk ################################ msg="JOB COMPLETED NORMALLY" postmsg "$jlogfile" "$msg" ############################## # Remove the Temporary working directory ############################## if [[ $KEEPDATA != "YES" ]]; then cd $DATAROOT rm -rf $DATA fi echo $(date) $job completed