#!/bin/sh ######################################################################## # # JOB NAME: JLMP_1HCNVLTG_MOSFCST # (ADOPTED FROM JLMP_CNVLTG_PREP) # # HISTORY: NOV 27 2016 SAMPLATSKY CREATED # DEC 21 2016 HUANG MODIFIED TO REMOVE # MODULE LOAD STATEMENT # AS THAT IS DONE IN # MASTER SCRIPT # DEC 29 2016 HUANG MODIFIED TO SUIT THE # NEED OF THE NEW MOSFCST # SCRIPT (function # CAPABILITY) # SEP 2021 SAMPLATSKY/ MODIFED FOR WCOSS2 # SHAFER # JAN 13 2023 lmp.v2.5.0 SHAFER ADDRESSING BUGZILLA - CHECK FOR # EXISTENCE OF $pgmout BEFORE CATTING # ######################################################################## ########################################################### # SET SHELL PROCESSING VARIABLES ########################################################### date export PS4=' $SECONDS + ' set -x ########################################################### # OBTAIN UNIQUE PROCESS ID (PID) AND CREATE TEMP DIRECTORY ########################################################### export DATA=${DATA:-${DATAROOT:?}/${jobid:?}} mkdir -p $DATA cd $DATA export cycle=t${cyc}z export HOUR=$cyc ########################################################### # SPECIFY NET AND MODEL VARIABLES ########################################################### export NET=${NET:-lmp} export RUN=${RUN:-lmp} ########################################################### # SPECIFY LOG FILE, WHERE ALL DIAGNOSTIC OUTPUT IS WRITTEN ########################################################### ########################################################### # DETERMINE JOB OUTPUT NAME (USED IN $DATA WHILE JOB IS # RUNNING) ########################################################### export pgmout="OUTPUT.$$" ########################################################### # 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 DIRECTORIES WHERE JOB-RELATED FILES RESIDE ########################################################### export USHlmp=${USHlmp:-${HOMElmp}/ush} export EXEClmp=${EXEClmp:-${HOMElmp}/exec} export FIXlmp=${FIXlmp:-${HOMElmp}/fix} export PARMlmp=${PARMlmp:-${HOMElmp}/parm} export SCRlmp=${SCRlmp:-${HOMElmp}/scripts} export EXEClamp_shared=${EXEClamp_shared:-${HOMElamp_shared}/exec} ########################################################### # SET DATE AND TIME VARIABLES ########################################################### export PDY=$PDY setpdy.sh . ./PDY export DAT=${PDY}${HOUR} env case ${HOUR} in 04 | 10 | 16 | 22 ) export offset=4 export offset2=10;; 05 | 11 | 17 | 23 ) export offset=5 export offset2=11;; 06 | 12 | 18 | 00 ) export offset=6 export offset2=12;; 07 | 13 | 19 | 01 ) export offset=7 export offset2=13;; 08 | 14 | 20 | 02 ) export offset=8 export offset2=14;; 09 | 15 | 21 | 03 ) export offset=9 export offset2=15;; esac MOSDATcurr=`$NDATE -${offset} ${DAT}` MOSDATprev=`$NDATE -${offset2} ${DAT}` export MOSPDYcurr=`echo ${MOSDATcurr} | cut -c1-8` export MOSPDYprev=`echo ${MOSDATprev} | cut -c1-8` export MOSCYCcurr=`echo ${MOSDATcurr} | cut -c9-10` export MOSCYCprev=`echo ${MOSDATprev} | cut -c9-10` ########################################################### # SET UP DIRECTORY PATHS DEPENDENT ON DATE VARIABLES ########################################################### COMOUTbase=${COMOUTbase:-$(compath.py -o ${NET}/${lmp_ver})} export COMOUTcurr=${COMOUTcurr:-${COMOUTbase}/${RUN}.${MOSPDYcurr}} export COMOUTprev=${COMOUTprev:-${COMOUTbase}/${RUN}.${MOSPDYprev}} export COMINnamdir=${COMINnam:-$(compath.py nam_mos/${nam_mos_ver})} export COMINgfsdir=${COMINgfs:-$(compath.py gfs_mos/${gfs_mos_ver})} mkdir -p ${COMOUTcurr} $COMOUTprev ##################################################### # SET UP POE ##################################################### rm -f ${DATA}/mpmdscript runlist1="gfs nam" runlist2="cnv ltg" for run1 in ${runlist1} do for run2 in ${runlist2} do echo "${SCRlmp}/exlmp_1hcnvltg_mosfcst.sh ${run1} ${run2}" >> ${DATA}/mpmdscript done done ############################################################# # EXECUTE THE POESCRIPT ############################################################# chmod 775 ${DATA}/mpmdscript export MP_PGMMODEL=mpmd export MP_LABELIO=YES mpiexec --configfile $DATA/mpmdscript export err=$?; err_chk set +x i=0 for run1 in $runlist1 do for run2 in $runlist2 do echo "############# OUTPUT FOR RUN ${run1}-${run2} #################" if [ -f ${DATA}/${run1}${run2}/${pgmout} ]; then cat ${DATA}/${run1}${run2}/${pgmout} fi echo "###################################################" let i=i+1 done done set -x ########################################################### # DELETE WORKING DIRECTORY ########################################################### cd $COMOUTbase if [ "${KEEPDATA^^}" != "YES" ]; then rm -rf ${DATA} fi date