#!/bin/bash
##!/bin/ksh
##########################################################################
#### dclrinex
####
#### run fortran program dclrinex and produces plots
####
#### exit codes:
####   0 = successful completion
####   2 = 
####
#### 02May14  GP: began writing original version
##########################################################################

### get command line parameters

if [ $# -lt 4 ]; then
  echo "Usage:   dclrinex.sh <sss1> <sss2> <yydoy[.xxxx]> <dur> [<option>]"
  echo "   "
  echo " where:    "
  echo "   "
  echo "           sss1 = 4-character name for system 1 (travel) "
  echo "           sss2 = 4-character name for system 2 (local) "
  echo "          yydoy = first day of Rinex"
  echo "          .xxxx = option to specify precise start time"
  echo "            dur = Number of days to process "
  echo "         option = lzXXXX to use LZ files with name lzXXXXmj.day for system 2 "
  echo "                  P1ISC1 to use C1 data as P1 when P1 is not available "
  echo "                  default is none of the two options "
  echo "         More options available when running the dclrinex program by itself "
  echo "   "
  echo "    Output file = sss1sss2yydoy_dur.ext "
  echo " Warning: Remove files which have the same filename as this output file! "
  echo "   "
  exit 1
else
  CMDLINE=$*

fi

rm C1.tmp
rm C2.tmp
rm P1.tmp
rm P2.tmp
rm tdevc1.tmp
rm tdevc2.tmp
rm tdevp1.tmp
rm tdevp2.tmp
rm medc1.tmp
rm medc2.tmp
rm medp1.tmp
rm medp2.tmp

/home/tai/bin/dclrinex $1 $2 $3 $4 $5

doyd=`echo $3 | cut -c1-5 `

OUTFILE=`echo $1$2$doyd"_"$4`

if [ -s  ${OUTFILE}".dif" ]; then

 DATERUN=`date '+%D'`
 TITLE=`echo $DATERUN $OUTFILE`

### plot using GMT
# remove any previous GMT command file and rebuild
 rm .gmtcommands  2> /dev/null
 gmtset N_HEADER_RECS 0
 gmtset BASEMAP_AXES WeSn
 gmtset LABEL_FONT_SIZE 16p
 gmtset HEADER_FONT_SIZE 20p
 gmtset PAPER_MEDIA a4

# Plots for P1/P2
 
# plot on linear-linear

 ymax=`awk -v tmax=-99999999 ' { if ($2 > tmax) tmax=$2} END { print tmax} ' P1.tmp `
 ymin=`awk -v tmin=99999999 ' { if ($2 < tmin) tmin=$2} END { print tmin} ' P1.tmp `
 ymax=`echo $ymax  | awk '{ print int($1)+1 }' `
 ymin=`echo $ymin  | awk '{ print int($1)-1 }' `

 yspan=`echo $ymax $ymin | awk '{ print $1-$2 }' `
#yftic=`echo $yspan      | awk '{ print $1/20 }' `
#yatic=`echo $yftic      | awk '{ print $1*5  }' `
 yint=`echo $yspan      | awk '{ print $1/30 }' `

 yatic=`echo 100 `
 if [ $yspan -lt 200 ]; then
  yatic=`echo 10 `
 fi
 if [ $yspan -lt 20 ]; then
  yatic=`echo 1 `
 fi
 yftic=`echo $yatic      | awk '{ print $1/5  }' `

 xmax=`awk -v tmax=-99999999 ' { if ($1 > tmax) tmax=$1} END { print tmax} ' P1.tmp `
 xmin=`awk -v tmin=99999999 ' { if ($1 < tmin) tmin=$1} END { print tmin} ' P1.tmp `
 xmax=`echo $xmax  | awk '{ print int($1)+1 }' `
 xmin=`echo $xmin  | awk '{ print int($1) }' `

 xspan=`echo $xmax $xmin | awk '{ print $1-$2 }' `
 xftic=`echo $xspan      | awk '{ print int($1/10)+1 }' `
 xatic=`echo $xftic      | awk '{ print $1*2  }' `
 xint=`echo $xspan      | awk '{ print $1/30 }' `

# npts=`awk -v tmax=0 ' { if ($1 > 0) tmax=tmax+1} END { print tmax} ' P1.tmp `

# psxy P2.tmp -S-0.04 -R${xmin}/${xmax}/${ymin}/${ymax} -JX6.10il/2.50il -Bf${xftic}a${xatic}:"MJD":/f${yftic}a${yatic}:"ns"::."$TITLE": -W1/0/0/0pen -K > ${OUTFILE}.ps
 psxy P1.tmp -S-0.04 -R${xmin}/${xmax}/${ymin}/${ymax} -JX6.10i/2.50i -Bf${xftic}a${xatic}:"MJD":/f${yftic}a${yatic}:"P1 /ns": -W1/0/0/0pen -K > ${OUTFILE}.ps

 ymax=`awk -v tmax=-99999999 ' { if ($2 > tmax) tmax=$2} END { print tmax} ' P2.tmp `
 ymin=`awk -v tmin=99999999 ' { if ($2 < tmin) tmin=$2} END { print tmin} ' P2.tmp `
 ymax=`echo $ymax  | awk '{ print int($1)+1 }' `
 ymin=`echo $ymin  | awk '{ print int($1)-1 }' `

 yspan=`echo $ymax $ymin | awk '{ print $1-$2 }' `
#yftic=`echo $yspan      | awk '{ print $1/20 }' `
#yatic=`echo $yftic      | awk '{ print $1*5  }' `
 yint=`echo $yspan      | awk '{ print $1/30 }' `

 yatic=`echo 100 `
 if [ $yspan -lt 200 ]; then
  yatic=`echo 10 `
 fi
 if [ $yspan -lt 20 ]; then
  yatic=`echo 1 `
 fi
 yftic=`echo $yatic      | awk '{ print $1/5  }' `

 psxy -O P2.tmp -S-0.04 -Xa0.00i -Ya3.00i -R${xmin}/${xmax}/${ymin}/${ymax} -JX6.10i/2.50i -Bf${xftic}a${xatic}::/f${yftic}a${yatic}:"P2 /ns"::."$TITLE": -W1/0/0/0pen -K >> ${OUTFILE}.ps


### plot Tdevs using GMT
# remove any previous GMT command file and rebuild
 rm .gmtcommands  2> /dev/null
 gmtset N_HEADER_RECS 0
 gmtset BASEMAP_AXES WeSn
 gmtset LABEL_FONT_SIZE 16p
 gmtset HEADER_FONT_SIZE 20p
 gmtset PAPER_MEDIA a4

  rm devs.lis

  cat medp1.tmp |
  while read x
  do
    medp1=`echo $x | awk '{print $3}'`
    Medp1=`echo $medp1 | awk '{printf "%7.2f", $1}'`
    xpos=`echo $xmin $xint | awk '{ print $1+2*$2}' `
    ypos=`echo $ymin $ymax $yint | awk '{ print 1.*$1+0*$2+1*$3}' `
    echo   $xpos $ypos  12 0 1 BL   Median = $Medp1 ns > devs.lis
  done
  cat medp2.tmp |
  while read x
  do
    medp2=`echo $x | awk '{print $3}'`
    Medp2=`echo $medp2 | awk '{printf "%7.2f", $1}'`
    xpos=`echo $xmin $xint | awk '{ print $1+2*$2}' `
    ypos=`echo $ymin $ymax $yint | awk '{ print 0.*$1+1*$2-1*$3}' `
    echo   $xpos $ypos  12 0 1 BL   Median = $Medp2 ns >> devs.lis
  done

  i=`echo 0`
  cat tdevp1.tmp |
  while read x
  do
    tau=`echo $x | awk '{print $1}'`
    tdev=`echo $x | awk '{print $2}'`
    Tau=`echo $tau | awk '{printf "%6.0f", $1}'`
    Tdev=`echo $tdev | awk '{printf "%6.0f", $1*1.e12}'`
    xpos=`echo $xmax $xint | awk '{ print $1+$2*5}' `
    ypos=`echo $ymax $yint $i | awk '{ printf "%9.2f", $1+$2*($3-4) }' `
    echo   $xpos $ypos  9 0 1 LM   $Tau s: P1= $Tdev ps >> devs.lis
    i=$[$i+1]
  done
  i=`echo 0`
  cat tdevp2.tmp |
  while read x
  do
    tau=`echo $x | awk '{print $1}'`
    tdev=`echo $x | awk '{print $2}'`
    Tau=`echo $tau | awk '{printf "%6.0f", $1}'`
    Tdev=`echo $tdev | awk '{printf "%6.0f", $1*1.e12}'`
    xpos=`echo $xmax $xint | awk '{ print $1+$2*12}' `
    ypos=`echo $ymax $yint $i | awk '{ printf "%9.2f", $1+$2*($3-4) }' `
    echo   $xpos $ypos  9 0 1 LM   $Tau s: P2= $Tdev ps >> devs.lis
    i=$[$i+1]
  done

  
# Write the Mdev and Tdev values: -R to define the zone; -O Overlay; -K more to come; 
 pstext -N -K -O -R${xmin}/${xmax}/${ymin}/${ymax} -JX6.10i/5.50i -G0/0/255 devs.lis >> ${OUTFILE}.ps
# pstext -K -O -Xa7.50 -Ya6.00 -R${xmin}/${xmax}/${ymin}/${ymax} -JX2.50/2.00 -G0/0/255 tata >> ${OUTFILE}.ps


# plot tdev on log-log
# P2

 xmax=`awk -v tmax=0 ' { if ($1 > tmax) tmax=$1} END { print tmax} ' tdevp2.tmp `
 xmin=`awk -v tmin=99999999 ' { if ($1 < tmin) tmin=$1} END { print tmin} ' tdevp2.tmp `
 ymax=`awk -v tmax=0 ' { if ($2 > tmax) tmax=$2} END { print tmax} ' tdevp2.tmp `
 ymin=`awk -v tmin=99999999 ' { if ($2 < tmin) tmin=$2} END { print tmin} ' tdevp2.tmp `

 xmax=`echo $xmax  | awk '{ print 10^(int(log($1)/2.302585093)+1) }' `
 xmin=`echo $xmin  | awk '{ print 10^(int(log($1)/2.302585093)) }' `
 ymax=`echo $ymax  | awk '{ print 10^(int(log($1)/2.302585093)) }' `
 ymin=`echo $ymin  | awk '{ print 10^(int(log($1)/2.302585093)-1) }' `


 xspan=`echo $xmax $xmin | awk '{ print $1/$2 }' `
 xftic=`echo $xmax $xspan | awk '{ print $1/$2 }' `
 xatic=`echo $xftic      | awk '{ print $1/1  }' `
 xgtic=`echo $xftic      | awk '{ print $1/10  }' `

 yspan=`echo $ymax $ymin | awk '{ print $1/$2 }' `
 yftic=`echo $ymax $yspan | awk '{ print $1/$2 }' `
 yatic=`echo $yftic      | awk '{ print $1/1  }' `
 ygtic=`echo $yftic      | awk '{ print $1/10  }' `
psxy tdevp2.tmp -O -K -Xa7.50i -Ya2.70i -Sc0.05i -R${xmin}/${xmax}/${ymin}/${ymax} -JX2.50il/1.75il -Bf${xftic}a${xatic}/f1a1:"TdevP2 /s": -W5/0/0/0pen >> ${OUTFILE}.ps


 ymax=`awk -v tmax=0 ' { if ($2 > tmax) tmax=$2} END { print tmax} ' tdevp1.tmp `
 ymin=`awk -v tmin=99999999 ' { if ($2 < tmin) tmin=$2} END { print tmin} ' tdevp1.tmp `
 ymax=`echo $ymax  | awk '{ print 10^(int(log($1)/2.302585093)) }' `
 ymin=`echo $ymin  | awk '{ print 10^(int(log($1)/2.302585093)-1) }' `

 yspan=`echo $ymax $ymin | awk '{ print $1/$2 }' `
 yftic=`echo $ymax $yspan | awk '{ print $1/$2 }' `
 yatic=`echo $yftic      | awk '{ print $1/1  }' `
 ygtic=`echo $yftic      | awk '{ print $1/10  }' `

# in inches: version until 22/10/2009
# psxy tdev.tmp -P -O -Ya-5.40 -Sc0.1 -R${xmin}/${xmax}/${ymin}/${ymax} -JX6.00l/4.30l -Bf${xftic}a${xatic}:"Tau /s":/f${yftic}a${yatic}:"Tdev /s": -W5/0/0/0pen >> ${OUTFILE}.devs.ps
#  psxy tdev.tmp -O  -Xa7.50 -Ya0.00 -Sc0.1 -R${xmin}/${xmax}/${ymin}/${ymax} -JX2.50l/2.00l -Bf${xftic}a${xatic}:"Tau /s":/f${yftic}a${yatic}:"Tdev /s": -W5/0/0/0pen >> ${OUTFILE}.ps
# AH mod. 21/07/10 - set inchs by default
# psxy tdev.tmp -O  -Xa7.50i -Ya0.00i -Sc0.05i -R${xmin}/${xmax}/${ymin}/${ymax} -JX2.50il/1.75il -Bf${xftic}a${xatic}:"Tau /s":/f${yftic}a${yatic}:"Tdev /s": -W5/0/0/0pen >> ${OUTFILE}.ps
# mod 11/10/2012 because the labels of the small plots had disappeared
psxy tdevp1.tmp -O  -Xa7.50i -Ya0.00i -Sc0.05i -R${xmin}/${xmax}/${ymin}/${ymax} -JX2.50il/1.75il -Bf${xftic}a${xatic}:"Tau /s":/f1a1:"TdevP1 /s": -W5/0/0/0pen >> ${OUTFILE}.ps

# transform to pdf
 ps2pdf ${OUTFILE}.ps
 rm -f ${OUTFILE}.ps
 mv ${OUTFILE}.pdf ${OUTFILE}_P12.pdf

# End of plots for P1/P2


# Plots for C1/C2

# plot on linear-linear

 ymax=`awk -v tmax=-99999999 ' { if ($2 > tmax) tmax=$2} END { print tmax} ' C1.tmp `
 ymin=`awk -v tmin=99999999 ' { if ($2 < tmin) tmin=$2} END { print tmin} ' C1.tmp `
 ymax=`echo $ymax  | awk '{ print int($1)+1 }' `
 ymin=`echo $ymin  | awk '{ print int($1)-1 }' `

 yspan=`echo $ymax $ymin | awk '{ print $1-$2 }' `
#yftic=`echo $yspan      | awk '{ print $1/20 }' `
#yatic=`echo $yftic      | awk '{ print $1*5  }' `
 yint=`echo $yspan      | awk '{ print $1/30 }' `

 yatic=`echo 100 `
 if [ $yspan -lt 200 ]; then
  yatic=`echo 10 `
 fi
 if [ $yspan -lt 20 ]; then
  yatic=`echo 1 `
 fi
 yftic=`echo $yatic      | awk '{ print $1/5  }' `

 xmax=`awk -v tmax=-99999999 ' { if ($1 > tmax) tmax=$1} END { print tmax} ' C1.tmp `
 xmin=`awk -v tmin=99999999 ' { if ($1 < tmin) tmin=$1} END { print tmin} ' C1.tmp `
 xmax=`echo $xmax  | awk '{ print int($1)+1 }' `
 xmin=`echo $xmin  | awk '{ print int($1) }' `

 xspan=`echo $xmax $xmin | awk '{ print $1-$2 }' `
 xftic=`echo $xspan      | awk '{ print int($1/10)+1 }' `
 xatic=`echo $xftic      | awk '{ print $1*2  }' `
 xint=`echo $xspan      | awk '{ print $1/30 }' `

 psxy C1.tmp -S-0.04 -R${xmin}/${xmax}/${ymin}/${ymax} -JX6.10i/2.50i -Bf${xftic}a${xatic}:"MJD":/f${yftic}a${yatic}:"C1 /ns": -W1/0/0/0pen -K > ${OUTFILE}.ps

if [ -s  "C2.tmp" ]; then

 ymax=`awk -v tmax=-99999999 ' { if ($2 > tmax) tmax=$2} END { print tmax} ' C2.tmp `
 ymin=`awk -v tmin=99999999 ' { if ($2 < tmin) tmin=$2} END { print tmin} ' C2.tmp `
 ymax=`echo $ymax  | awk '{ print int($1)+1 }' `
 ymin=`echo $ymin  | awk '{ print int($1)-1 }' `

 yspan=`echo $ymax $ymin | awk '{ print $1-$2 }' `
#yftic=`echo $yspan      | awk '{ print $1/20 }' `
#yatic=`echo $yftic      | awk '{ print $1*5  }' `
 yint=`echo $yspan      | awk '{ print $1/30 }' `

 yatic=`echo 100 `
 if [ $yspan -lt 200 ]; then
  yatic=`echo 10 `
 fi
 if [ $yspan -lt 20 ]; then
  yatic=`echo 1 `
 fi
 yftic=`echo $yatic      | awk '{ print $1/5  }' `

 psxy -O C2.tmp -S-0.04 -Xa0.00i -Ya3.00i -R${xmin}/${xmax}/${ymin}/${ymax} -JX6.10i/2.50i -Bf${xftic}a${xatic}::/f${yftic}a${yatic}:"C2 /ns"::."$TITLE": -W1/0/0/0pen -K >> ${OUTFILE}.ps

else

 echo $xmin $ymin > C2.bid
 psxy -O C2.bid -S-0.04 -Xa0.00i -Ya3.00i -R${xmin}/${xmax}/${ymin}/${ymax} -JX6.10i/2.50i -Bf${xftic}a${xatic}::/f${yftic}a${yatic}:"C2 /ns"::."$TITLE": -W1/0/0/0pen -K >> ${OUTFILE}.ps
 rm C2.bid
fi

### plot Tdevs using GMT
# remove any previous GMT command file and rebuild
 rm .gmtcommands  2> /dev/null
 gmtset N_HEADER_RECS 0
 gmtset BASEMAP_AXES WeSn
 gmtset LABEL_FONT_SIZE 16p
 gmtset HEADER_FONT_SIZE 20p
 gmtset PAPER_MEDIA a4

  rm devs.lis

#  cat devs.tmp |
  cat medc1.tmp |
  while read x
  do
    medc1=`echo $x | awk '{print $3}'`
    Medc1=`echo $medc1 | awk '{printf "%7.2f", $1}'`
    xpos=`echo $xmin $xint | awk '{ print $1+2*$2}' `
    ypos=`echo $ymin $ymax $yint | awk '{ print 1.*$1+0*$2+1*$3}' `
    echo   $xpos $ypos  12 0 1 BL   Median = $Medc1 ns > devs.lis
  done
if [ -s  "C2.tmp" ]; then
  cat medc2.tmp |
  while read x
  do
    medc2=`echo $x | awk '{print $3}'`
    Medc2=`echo $medc2 | awk '{printf "%7.2f", $1}'`
    xpos=`echo $xmin $xint | awk '{ print $1+2*$2}' `
    ypos=`echo $ymin $ymax $yint | awk '{ print 0.*$1+1*$2-1*$3}' `
    echo   $xpos $ypos  12 0 1 BL   Median = $Medc2 ns >> devs.lis
  done
fi
  i=`echo 0`
  cat tdevc1.tmp |
  while read x
  do
    tau=`echo $x | awk '{print $1}'`
    tdev=`echo $x | awk '{print $2}'`
    Tau=`echo $tau | awk '{printf "%6.0f", $1}'`
    Tdev=`echo $tdev | awk '{printf "%6.0f", $1*1.e12}'`
    xpos=`echo $xmax $xint | awk '{ print $1+$2*5}' `
    ypos=`echo $ymax $yint $i | awk '{ printf "%9.2f", $1+$2*($3-4) }' `
    echo   $xpos $ypos  9 0 1 LM   $Tau s: C1= $Tdev ps >> devs.lis
    i=$[$i+1]
  done
  i=`echo 0`
  cat tdevc2.tmp |
  while read x
  do
    tau=`echo $x | awk '{print $1}'`
    tdev=`echo $x | awk '{print $2}'`
    Tau=`echo $tau | awk '{printf "%6.0f", $1}'`
    Tdev=`echo $tdev | awk '{printf "%6.0f", $1*1.e12}'`
    xpos=`echo $xmax $xint | awk '{ print $1+$2*12}' `
    ypos=`echo $ymax $yint $i | awk '{ printf "%9.2f", $1+$2*($3-4) }' `
    echo   $xpos $ypos  9 0 1 LM   $Tau s: C2= $Tdev ps >> devs.lis
    i=$[$i+1]
  done

  
# Write the Mdev and Tdev values: -R to define the zone; -O Overlay; -K more to come; 
 pstext -N -K -O -R${xmin}/${xmax}/${ymin}/${ymax} -JX6.10i/5.50i -G0/0/255 devs.lis >> ${OUTFILE}.ps
# pstext -K -O -Xa7.50 -Ya6.00 -R${xmin}/${xmax}/${ymin}/${ymax} -JX2.50/2.00 -G0/0/255 tata >> ${OUTFILE}.ps


# plot tdev on log-log
# C2

 xmax=`awk -v tmax=0 ' { if ($1 > tmax) tmax=$1} END { print tmax} ' tdevc1.tmp `
 xmin=`awk -v tmin=99999999 ' { if ($1 < tmin) tmin=$1} END { print tmin} ' tdevc1.tmp `
 xmax=`echo $xmax  | awk '{ print 10^(int(log($1)/2.302585093)+1) }' `
 xmin=`echo $xmin  | awk '{ print 10^(int(log($1)/2.302585093)) }' `

 xspan=`echo $xmax $xmin | awk '{ print $1/$2 }' `
 xftic=`echo $xmax $xspan | awk '{ print $1/$2 }' `
 xatic=`echo $xftic      | awk '{ print $1/1  }' `
 xgtic=`echo $xftic      | awk '{ print $1/10  }' `

if [ -s  "C2.tmp" ]; then

 ymax=`awk -v tmax=0 ' { if ($2 > tmax) tmax=$2} END { print tmax} ' tdevc2.tmp `
 ymin=`awk -v tmin=99999999 ' { if ($2 < tmin) tmin=$2} END { print tmin} ' tdevc2.tmp `
 ymax=`echo $ymax  | awk '{ print 10^(int(log($1)/2.302585093)) }' `
 ymin=`echo $ymin  | awk '{ print 10^(int(log($1)/2.302585093)-1) }' `

 yspan=`echo $ymax $ymin | awk '{ print $1/$2 }' `
 yftic=`echo $ymax $yspan | awk '{ print $1/$2 }' `
 yatic=`echo $yftic      | awk '{ print $1/1  }' `
 ygtic=`echo $yftic      | awk '{ print $1/10  }' `
psxy tdevc2.tmp -O -K -Xa7.50i -Ya2.70i -Sc0.05i -R${xmin}/${xmax}/${ymin}/${ymax} -JX2.50il/1.75il -Bf${xftic}a${xatic}/f1a1:"TdevC2 /s": -W5/0/0/0pen >> ${OUTFILE}.ps

fi

 ymax=`awk -v tmax=0 ' { if ($2 > tmax) tmax=$2} END { print tmax} ' tdevc1.tmp `
 ymin=`awk -v tmin=99999999 ' { if ($2 < tmin) tmin=$2} END { print tmin} ' tdevc1.tmp `
 ymax=`echo $ymax  | awk '{ print 10^(int(log($1)/2.302585093)) }' `
 ymin=`echo $ymin  | awk '{ print 10^(int(log($1)/2.302585093)-1) }' `

 yspan=`echo $ymax $ymin | awk '{ print $1/$2 }' `
 yftic=`echo $ymax $yspan | awk '{ print $1/$2 }' `
 yatic=`echo $yftic      | awk '{ print $1/1  }' `
 ygtic=`echo $yftic      | awk '{ print $1/10  }' `

psxy tdevc1.tmp -O  -Xa7.50i -Ya0.00i -Sc0.05i -R${xmin}/${xmax}/${ymin}/${ymax} -JX2.50il/1.75il -Bf${xftic}a${xatic}:"Tau /s":/f1a1:"TdevC1 /s": -W5/0/0/0pen >> ${OUTFILE}.ps

# transform to pdf
 ps2pdf ${OUTFILE}.ps
 rm -f ${OUTFILE}.ps
 mv ${OUTFILE}.pdf ${OUTFILE}_C12.pdf
 
# End of plots for C1/C2

#

# end of if [ -s  ${LINKFILE} ]; then
fi


echo "Output files: "${OUTFILE}
exit $EXCODE

