#!/usr/bin/env bash ###################################################################### # # JOB NAME: JLMP_POST_WEB # # HISTORY: SEP 19 2022 lamp.v2.5.0 HUANG - NEW JOB FOR LMP # FEB 14 2023 SHAFER - MODIFIED TO ADD MPMD FOR MERGING # INTO ONE JOB # ###################################################################### set -x ###################################################################### # SETUP LAMP MODEL POST-PROCESSING VARIABLES # #################################################################### export PS4=' $SECONDS + ' date export MIN # 00, 15, 30, or 45 #################################### # Specify NET Name and RUN #################################### export NET=${NET:-lmp} export RUN=${RUN:-lmp} #################################### # Determine Job Output Name on System #################################### export pgmout="OUTPUT.$$" #################################### # Make temp directory #################################### export DATA=${DATA:-${DATAROOT:?}/${jobid:?}} mkdir -p $DATA cd $DATA ############################## # Run setpdy and initialize PDY variables ############################## export cycle=t${cyc}z export PDY=$PDY setpdy.sh . ./PDY export HOUR=$cyc export DAT0=$PDY$HOUR export DATm1=`$NDATE -1 $DAT0` #################################### # SENDCOM - Copy Files From TMPDIR to $com # SENDDBN - Send files to OSO #################################### export SENDCOM=${SENDCOM:-YES} export SENDDBN=${SENDDBN:-YES} export SENDDBN_NTC=${SENDDBN_NTC:-YES} #################################### # Specify Execution Areas #################################### export SCRlmp=${SCRlmp:-${HOMElmp}/scripts} export USHlmp=${USHlmp:-${HOMElmp}/ush} export EXEClmp=${EXEClmp:-${HOMElmp}/exec} export FIXlmp=${FIXlmp:-${HOMElmp}/fix} export PARMlmp=${PARMlmp:-${HOMElmp}/parm} export HOMElamp_shared=${HOMElamp_shared:-${OPSROOT}/lamp_shared.${lamp_shared_ver:?}} export FIXlamp_shared=${FIXlamp_shared:-${HOMElamp_shared}/fix} export EXEClamp_shared=${EXEClamp_shared:-${HOMElamp_shared}/exec} export USHlamp_shared=${USHlamp_shared:-${HOMElamp_shared}/ush} ############################################## # Define COM directories ############################################## export COMIN=${COMIN:-$(compath.py ${envir}/com/${NET}/${lmp_ver})/${RUN}.${PDY}} export COMOUTbase=${COMOUTbase:-$(compath.py -o ${NET}/${lmp_ver})} export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${lmp_ver})/${RUN}.${PDY}} export WMO=${WMO:-$COMOUT/wmo} export COMOUTimg=${COMOUT}/web_imgs/${cyc}z mkdir -m 775 -p $COMOUT $WMO $COMOUTimg env ############################################################# # EXECUTE THE SCRIPT USING CFP ############################################################# #elmlist="flight temp dpt wspeed wdir wgust cig vis sky ptype obv popo" # # BUILD AND EXECUTE MPMDSCRIPT # echo "${SCRlmp}/exlmp_post_web.sh bull" >> ${DATA}/mpmdscript if (( ${MIN} == 30 )); then echo "${SCRlmp}/exlmp_post_web.sh cnvltg" >> ${DATA}/mpmdscript # for elem in $elmlist; do # echo "${SCRlmp}/exlmp_post_web.sh stnfcst $elem" >> $DATA/mpmdscript # done for proj in `seq -w 00 38`; do echo "${SCRlmp}/exlmp_post_web.sh uncert $proj" >> $DATA/mpmdscript done echo "${SCRlmp}/exlmp_post_web.sh meteo_obs1h" >> $DATA/mpmdscript for proj in `seq -w 00 38`; do echo "${SCRlmp}/exlmp_post_web.sh meteo_fcst1h $proj" >> ${DATA}/mpmdscript done else echo "${SCRlmp}/exlmp_post_web.sh meteo_fcst15m" >> ${DATA}/mpmdscript fi chmod 755 $DATA/mpmdscript export MP_PGMMODEL=mpmd export MP_LABELIO=YES mpiexec --configfile $DATA/mpmdscript export err=$?; err_chk # # Additional processing for uncert and meteo # if (( ${MIN} == 30 )); then # # Combine uncert projection output # cd $DATA/uncert echo " ITDLP INVENTORY FOR UNCERT PLOTS" > lmp_uncert.probs.${PDY}${HOUR}.tmp echo "" >> lmp_uncert.probs.${PDY}${HOUR}.tmp echo " ITDLP INVENTORY FOR UNCERT PLOTS" > lmp_uncert.thresh.${PDY}${HOUR}.tmp echo "" >> lmp_uncert.thresh.${PDY}${HOUR}.tmp for proj in `seq -w 00 38`; do cat probs/${proj}/lmp_uncert.probs.${PDY}${HOUR}_${proj}_cv >> lmp_uncert.probs.${PDY}${HOUR}.tmp cat thresh/${proj}/lmp_uncert.thresh.${PDY}${HOUR}_${proj}_cv >> lmp_uncert.thresh.${PDY}${HOUR}.tmp done sed s/" NSTA STAID"/" VARIABLE "/g lmp_uncert.probs.$PDY$HOUR.tmp > lmp_uncert.probs.$PDY$HOUR sed s/" NSTA STAID"/" VARIABLE "/g lmp_uncert.thresh.$PDY$HOUR.tmp > lmp_uncert.thresh.$PDY$HOUR python $USHlmp/final_lmp_cv_fcst.py lmp_uncert.probs.$PDY$HOUR lmp_uncert.thresh.$PDY$HOUR export err=$?; err_chk # # Combine meteo fcst projection output # cd $DATA/meteo_fcst1h echo " ITDLP INVENTORY FOR METEOGRAMS" > lmp_meteo.1hr.fcsts.${PDY}${HOUR} echo "" >> lmp_meteo.1hr.fcsts.${PDY}${HOUR} for proj in `seq -w 00 38`; do cat ${proj}/lmp_meteo.1hr.fcsts.${PDY}${HOUR}_${proj} >> lmp_meteo.1hr.fcsts.${PDY}${HOUR} done mv lmp_meteo.1hr.fcsts.${PDY}${HOUR} lmp_meteo.1hr.fcsts.${PDY}${HOUR}.tmp sed s/" NSTA STAID"/" VARIABLE "/g lmp_meteo.1hr.fcsts.${PDY}${HOUR}.tmp > lmp_meteo.1hr.fcsts.${PDY}${HOUR} fi # # Copy output to $COMOUT # cd $DATA if test "$SENDCOM" = 'YES' then if (( ${MIN} == 30 )); then cp uncert/lmp_uncert.probs.${PDY}${HOUR}_cv $COMOUT/. cp uncert/lmp_uncert.thresh.${PDY}${HOUR}_cv $COMOUT/. cp meteo_obs1h/lmp_meteo.1hr.obs.${PDY}${HOUR} $COMOUT/. # JY 04/23 cp meteo_obs1h/lmp_meteo.15min.obs.${PDY}${HOUR} $COMOUT/lmp_meteo.15min.obs.${PDY}${HOUR}30 cp meteo_fcst1h/lmp_meteo.1hr.fcsts.${PDY}${HOUR} $COMOUT/. cp meteo_fcst1h/lmp_meteo.1hr.fcsts.${PDY}${HOUR} $COMOUT/lmp_meteo.15min.fcsts.${PDY}${HOUR}30 cp cnvltg/*.png $COMOUT/lmpplot/. else cp meteo_fcst15m/lmp_meteo.15min.fcsts.${PDY}${HOUR}${MIN} $COMOUT/. # JY 04/23 cp meteo_fcst15m/lmp_meteo.15min.obs.${PDY}${HOUR} $COMOUT/lmp_meteo.15min.obs.${PDY}${HOUR}${MIN} fi cp $COMOUT/lmp_meteo.15min.obs.${PDY}${HOUR} $COMOUT/lmp_meteo.15min.obs.${PDY}${HOUR}${MIN} fi # # DBNET UNCERT AND METEO FILES TO WEB # if test $SENDDBN_NTC = 'YES'; then # JY 04/23 $DBNROOT/bin/dbn_alert MODEL LMP_WEBIMGS $job $COMOUT/lmp_meteo.15min.obs.${DAT0}${MIN} $DBNROOT/bin/dbn_alert MODEL LMP_WEBIMGS $job $COMOUT/lmp_meteo.15min.obs.${DAT0} # 04/25 JY: $DBNROOT/bin/dbn_alert MODEL LMP_WEBIMGS $job $COMOUT/lmp_meteo.15min.obs.${DATm1} $DBNROOT/bin/dbn_alert MODEL LMP_WEBIMGS $job $COMOUT/lmp_meteo.15min.fcsts.${DAT0}${MIN} if (( ${MIN} == 00 || ${MIN} == 15 )); then $DBNROOT/bin/dbn_alert MODEL LMP_WEBIMGS $job $COMOUT/lmp_meteo.15min.obs.${DATm1} # Make latest_java_meteo file only for MIN=45 elif (( ${MIN} == 45 )); then export TMEFIL=$COMOUT/lmp_latest_java_meteogram_${PDY}${HOUR}${MIN}.txt echo '
'`date -u -d ${PDY} +"%A, %B %e"` > $TMEFIL echo '  '${cyc} UTC '' >> $TMEFIL echo '
'`date -u +"${cyc}:${MIN} UTC"`'' >> $TMEFIL # echo '
'`date -u +"%H:%M UTC"`'' >> $TMEFIL cp $TMEFIL $COMOUT/latest_java_meteogram.txt $DBNROOT/bin/dbn_alert MODEL LMP_WEBIMGS $job $COMOUT/latest_java_meteogram.txt elif (( ${MIN} == 30 )); then $DBNROOT/bin/dbn_alert MODEL LMP_WEBIMGS $job $COMOUT/lmp_meteo.1hr.obs.${DAT0} $DBNROOT/bin/dbn_alert MODEL LMP_WEBIMGS $job $COMOUT/lmp_meteo.1hr.fcsts.${DAT0} cp $COMOUT/lmp_uncert.probs.${PDY}${HOUR}_cv $COMOUT/lmp_uncert.probs.${HOUR} $DBNROOT/bin/dbn_alert MODEL LMP_WEBIMGS $job $COMOUT/lmp_uncert.probs.${HOUR} cp $COMOUT/lmp_uncert.probs.${PDY}${HOUR}_cv $COMOUT/lmp_uncert.probs $DBNROOT/bin/dbn_alert MODEL LMP_WEBIMGS $job $COMOUT/lmp_uncert.probs cp $COMOUT/lmp_uncert.thresh.${PDY}${HOUR}_cv $COMOUT/lmp_uncert.thresh.${HOUR} $DBNROOT/bin/dbn_alert MODEL LMP_WEBIMGS $job $COMOUT/lmp_uncert.thresh.${HOUR} cp $COMOUT/lmp_uncert.thresh.${PDY}${HOUR}_cv $COMOUT/lmp_uncert.thresh $DBNROOT/bin/dbn_alert MODEL LMP_WEBIMGS $job $COMOUT/lmp_uncert.thresh export TMEFIL=$COMOUT/lmp_latest_uncertainty_${PDY}${HOUR}${MIN}.txt echo 'setting time file' #echo '
'`date -u +"%A, %B %e"` > $TMEFIL echo '
'`date -u -d ${PDY} +"%A, %B %e"` > $TMEFIL echo '  '${cyc} UTC '' >> $TMEFIL echo '
'`date -u +"%H:%M UTC"`'' >> $TMEFIL cp $TMEFIL $COMOUT/latest_uncertainty.txt $DBNROOT/bin/dbn_alert MODEL LMP_WEBIMGS $job $COMOUT/latest_uncertainty.txt fi fi cd $DATAROOT if [ "${KEEPDATA^^}" != "YES" ]; then rm -rf $DATA fi date