#!/bin/sh

########################### EXCMCENS ################################
echo "------------------------------------------------"
echo "CMC Ensemble Postprocessing, Change Resolution from 1.25 to 1 degree"
echo "------------------------------------------------"
echo "History: March 2006 - First implementation of this new script."
echo "AUTHOR: Bo Cui  (wx20cb)"
echo "April 2006 - Bo Cui   - save interpolated data per member & per forecast lead time"
echo "                      - add CMC analysis files"
echo "May   2007 - Bo Cui   - CMC ensemble system updrada, member change from 16 to 20"

set -x

##############################
# Define Script/Exec Variables
##############################


#####################################
# START TO DUMP DATA FOR $cycle CYCLE
#####################################

msg="Starting postprocessing for $cycle Ensemble memebers"
postmsg "$jlogfile" "$msg"

########################################################
# Begin Processing CMC Analysis at 00z, 06z, 12z and 18z
########################################################

if [ "$ANAPRDGEN" = "YES" ]; then

  PGBF=$COMINm1/CMC_naefs_latlon1p0x1p0_${PDYm1}${cyc}_P000_ana.grib                                
  PGBO=cmc_gec00.t${cyc}z.pgrbaanl_prep
  cp $PGBF $PGBO

fi

########################################################
# Begin Processing Ensemble Forecast Data at 00z and 12z
########################################################

if [ $cyc -eq 00 -o $cyc -eq 12 ]; then

hourlist="000 006 012 018 024 030 036 042 048 054 060 066 072 078 084 090 096 \
          102 108 114 120 126 132 138 144 150 156 162 168 174 180 186 192 198 \
          204 210 216 222 228 234 240 246 252 258 264 270 276 282 288 294 300 \
          306 312 318 324 330 336 342 348 354 360 366 372 378 384"

memberlist="00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20"

#########################################
## Copy Data From /dcom to temp directory
#########################################

for FHOUR in $hourlist;do

  if [ $FHOUR -le 99 ];then
    IFHR=`echo $FHOUR | cut -c2-3`
  else
    IFHR=$FHOUR
  fi

  for RUNNAME in $memberlist; do
    PGBF=$COMIN/CMC_naefs_latlon1p0x1p0_${PDY}${cyc}_P${FHOUR}_0${RUNNAME}.grib
    icnt=0
    while [ icnt -le 12 ]; do
      if [ -s $PGBF ]; then
        ln -fs $PGBF PGC.$FHOUR.$RUNNAME
        if [ $RUNNAME -eq 00 ]; then 
          PGBO=cmc_gec${RUNNAME}.t${cyc}z.pgrbaf${IFHR}_prep
        else
          PGBO=cmc_gep${RUNNAME}.t${cyc}z.pgrbaf${IFHR}_prep
        fi
        cp PGC.$FHOUR.$RUNNAME $PGBO
        icnt=13
      else
        echo $PGBO
        sleep 10
        icnt=`expr $icnt + 1`
      fi
    done
  done

done

###################################
## Final check if data is available 
###################################

for FHOUR in $hourlist;do

  if [ $FHOUR -le 99 ];then
    IFHR=`echo $FHOUR | cut -c2-3`
  else
    IFHR=$FHOUR
  fi

  for RUNNAME in $memberlist; do
    if [ $RUNNAME -eq 00 ]; then 
      PGBO=cmc_gec${RUNNAME}.t${cyc}z.pgrbaf${IFHR}_prep
    else
      PGBO=cmc_gep${RUNNAME}.t${cyc}z.pgrbaf${IFHR}_prep
    fi
    if [ ! -s $PGBO ]; then
      PGBF=$COMIN/CMC_naefs_latlon1p0x1p0_${PDY}${cyc}_P${FHOUR}_0${RUNNAME}.grib
      ln -fs $PGBF PGC.$FHOUR.$RUNNAME
      cp PGC.$FHOUR.$RUNNAME $PGBO
    fi
  done

done

######################################################
# End Processing Ensemble Forecast Data at 00z and 12z
######################################################
fi

###############################################################################
# Copy CMC Bias Estimate Files to /com/gens/prod During Practice Sharing Period
# Only for Data Transition Period
###############################################################################

if [ "$BIASCOPY" = "YES" ]; then

# cp $COMINBIASm1/CMC_breanalcmc_latlon2p5x2p5_${PDYm1}${cyc}_000.grib  $COMOUTBIAS/cmc_glbanl.t${cyc}z.pgrba_mdf00 
# cp $COMINBIASm2/CMC_breanalcmc_latlon2p5x2p5_${PDYm2}${cyc}_000.grib  $COMOUTBIASm1/cmc_glbanl.t${cyc}z.pgrba_mdf00
# cp $COMINBIASm3/CMC_breanalcmc_latlon2p5x2p5_${PDYm3}${cyc}_000.grib  $COMOUTBIASm2/cmc_glbanl.t${cyc}z.pgrba_mdf00

  if [ $cyc -eq 00 -o $cyc -eq 12 ]; then

    for FHOUR in $hourlist;do
      if [ $FHOUR -le 99 ];then
        IFHR=`echo $FHOUR | cut -c2-3`
      else
        IFHR=$FHOUR
      fi
      for RUNNAME in $memberlist; do
        if [ $RUNNAME -eq 00 ]; then 
          cp $COMINBIASm1/CMC_bianalcmc_latlon1p0x1p0_${PDYm1}${cyc}_${FHOUR}_0${RUNNAME}.grib $COMOUTBIAS/cmc_gec${RUNNAME}.t${cyc}z.pgrba_mef${IFHR}
          cp $COMINBIASm2/CMC_bianalcmc_latlon1p0x1p0_${PDYm2}${cyc}_${FHOUR}_0${RUNNAME}.grib $COMOUTBIASm1/cmc_gec${RUNNAME}.t${cyc}z.pgrba_mef${IFHR}
          cp $COMINBIASm3/CMC_bianalcmc_latlon1p0x1p0_${PDYm3}${cyc}_${FHOUR}_0${RUNNAME}.grib $COMOUTBIASm2/cmc_gec${RUNNAME}.t${cyc}z.pgrba_mef${IFHR}
        else
          cp $COMINBIASm1/CMC_bianalcmc_latlon1p0x1p0_${PDYm1}${cyc}_${FHOUR}_0${RUNNAME}.grib $COMOUTBIAS/cmc_gep${RUNNAME}.t${cyc}z.pgrba_mef${IFHR}
          cp $COMINBIASm2/CMC_bianalcmc_latlon1p0x1p0_${PDYm2}${cyc}_${FHOUR}_0${RUNNAME}.grib $COMOUTBIASm1/cmc_gep${RUNNAME}.t${cyc}z.pgrba_mef${IFHR}
          cp $COMINBIASm3/CMC_bianalcmc_latlon1p0x1p0_${PDYm3}${cyc}_${FHOUR}_0${RUNNAME}.grib $COMOUTBIASm2/cmc_gep${RUNNAME}.t${cyc}z.pgrba_mef${IFHR}
        fi
      done
    done
  fi

fi

msg="HAS COMPLETED NORMALLY!"
postmsg "$jlogfile" "$msg"
