#! /bin/sh set -xa # # <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>> # <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>> # << NCEP_FSL_npnwind60.run >> # << >> # <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>> # <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>> # # It is called with Arguments: # Arg 1: the run directory # Arg 2: the time in YYJJJHHMM format (eg 930691200) # Arg 3: the current minute in MM format (eg 08) # Arg 4: the output directory for dumped bufr obs # ############################################################################### # ASSIGN THE ARGUMENTS ############################################################################### RUNDIR=${DATA} RAWDIR=$4 ITIME=$2 MIN=$3 HH=${ITIME:8:2} mkdir $RUNDIR/npnwind60 cd ${RUNDIR}/npnwind60 ############################################################################### # Check for new data ############################################################################### # Data file have to end with ".block" EXT=block # Top of the hour +- 36 minutes RAD=0.6 # prflr group DGRP="prflr prflrm" # Because we are +- the top of the hour, we are trying to minimize duplicate data # processing, but get the data the soonest possible. To do this we use fetch +- # 36 minute for the hour starting with the hour 1 minute ahead. We will look # back 1 hour to get late arriving data. # Get hour for Current + 1 minute, then get the prior 1 hour # Missing radial velocities, exspanding look back time. # Note -- This should probably only be the curent hour and the prior hour HRPDS="0 1" for tmpd in $HRPDS do export tmpd # HOUR=`perl -e '($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$rest) = gmtime(time+1800-($ENV{"tmpd"}*3600));print sprintf("%4.4d%2.2d%2.2d%2.2d",$year+1900,$mon+1,$mday,$hour)'` # HOUR=${CDATEHH:-`perl -e '($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$rest) = gmtime(time+60-($ENV{"tmpd"}*3600));print sprintf("%4.4d%2.2d%2.2d%2.2d",$year+1900,$mon+1,$mday,$hour)'`} HOUR=$(date -d "${ITIME:0:8} $HH:$MIN:00 UTC +1 minute -${tmpd} hour" +%Y%m%d%H) ${DUMPJB:?} $HOUR $RAD $DGRP export err=$? if [[ $err -ne 11 && $err -ne 0 && $err -ne 22 ]] then err_chk fi # FILETIME=`perl -e '($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$rest) = gmtime(time+60-($ENV{"tmpd"}*3600));print sprintf("%4.4d%2.2d%2.2d_%2.2d%2.2d",$year+1900,$mon+1,$mday,$hour,0)'` FILETIME=${HOUR:0:8}_${HOUR:8:2}00 ############################################################################### # WIND file ############################################################################### FILE=prflr.ibm FILEPREV=${RAWDIR}/prflr.ibm.${FILETIME}.prev mv ${DATA}/$FILE . rm -f dir.1 dir.2 # Check for changes in data file if [ -r ${FILEPREV} ] then ls -l ${FILE} | awk '{print $5}' > dir.1 ls -l ${FILE} $FILEPREV ls -l ${FILEPREV} | awk '{print $5}' > dir.2 x=`diff dir.1 dir.2 | wc -l` else # First time here. Make sure we have a prev file for next time. x=1 fi if [ $x -gt 0 ] then cp $FILE ${FILEPREV} # move files to processing area mv -f prflr.ibm ${RAWDIR}/prflr.ibm.${FILETIME}.$EXT if [ "$SENDDBN" = 'YES' ] ; then export DBNALERT_TYPE=${DBNALERT_TYPE:-DATA} $SIPHONROOT/bin/dbn_alert $DBNALERT_TYPE MADIS_DUMP $job ${RAWDIR}/${FILE}.${FILETIME}.$EXT fi else # cleanup mv -f prflr.ibm prflr.ibm.last fi ############################################################################### # MOM file ############################################################################### FILE=prflrm.ibm FILEPREV=${RAWDIR}/prflrm.ibm.${FILETIME}.prev mv ${DATA}/$FILE . rm -f dir.1 dir.2 # Check for changes in data file if [ -r ${FILEPREV} ] then ls -l ${FILE} | awk '{print $5}' > dir.1 ls -l ${FILE} $FILEPREV ls -l ${FILEPREV} | awk '{print $5}' > dir.2 x=`diff dir.1 dir.2 | wc -l` else # First time here. Make sure we have a prev file for next time. x=1 fi if [ $x -gt 0 ] then cp $FILE ${FILEPREV} # move files to processing area mv -f prflrm.ibm ${RAWDIR}/prflrm.ibm.${FILETIME}.$EXT export err=$?;err_chk if [ "$SENDDBN" = 'YES' ] ; then export DBNALERT_TYPE=${DBNALERT_TYPE:-DATA} $SIPHONROOT/bin/dbn_alert $DBNALERT_TYPE MADIS_DUMP $job ${RAWDIR}/${FILE}.${FILETIME}.$EXT fi else # cleanup mv -f prflrm.ibm prflrm.ibm.last fi done