#!/bin/csh
#---------------------------------------------------------------------------
# prep_corona: Prepare MAS data.
#
# Usage      : prep_corona <Carrington rotation> <resolution> <observatory>
#                          <max mode> <extrapolation band min>
#                          <extrapolation band max> <extrapolation point>
#---------------------------------------------------------------------------

# Set parameters
set cr = $1
set res = $2
set observ = $3
set mmmax = $4
set ebmin = $5
set ebmax = $6
set epoint = $7


# Set environment variables
setenv CORHEL_DIR "$CORHEL_ROOT"
setenv CORHEL_BIN "$CORHEL_ROOT/bin"
setenv CORHEL_RUN "$CORHEL_ROOT/run/cr$cr-$res"

pushd $CORHEL_DIR/tools/corona > /dev/null
source ./set.sh run
popd > /dev/null


# Prepare MAS data in corona_bc
cd $CORHEL_RUN/corona_bc

# Get the data
if ($observ == 'kittpeak') then

  if ($cr >= 1615 && $cr <= 2007) then
    echo "Retrieving data from Kittpeak and processing for MAS"
    wget ftp://nsokp.nso.edu/kpvt/synoptic/mag/m$cr\f.fits
    if (-e $CORHEL_RUN/corona_bc/m$cr\f.fits) then
      $CORONA_BIN/fits2hdf m$cr\f.fits kp$cr.hdf
    else
      $CORHEL_BIN/error_msg 6 m$cr\f.fits
      exit 1
    endif
  else if ($cr > 2010) then
    echo "Retrieving data from Solis and processing for MAS"
    wget ftp://solarch.tuc.noao.edu/synoptic/level3/vsm/merged/carr-rot/svsm
    if (-e $CORHEL_RUN/corona_bc/m$cr\f.fits) then
      gzip -d svsm_m11lr_B3_cr$cr.fts.gz
      $CORONA_BIN/fits2hdf svsm_m11lr_B3_cr$cr.fts kp$cr\3D.hdf
      $CORONA_BIN/extract -mp -z0 1 -z1 1 kp$cr\3D.hdf  kp$cr.hdf
    else
      $CORHEL_BIN/error_msg 6 m$cr\f.fits
      exit 1
    endif
  endif

  # Process data to better fit the input into MAS
  echo "Process data to better fit the input into MAS"
  $CORONA_BIN/kpsyn -kpfile kp$cr.hdf -nt 90 -np 181 << EOF
n
br_raw.hdf
y
$ebmin,$ebmax
$ebmin,$ebmax
$epoint
$epoint
y
5
br_polefit.hdf
br_rms_before_filt.dat
brs.hdf
brc.hdf
$mmmax
br_rms_after_filt.dat
br.mmax.hdf
EOF

else

  echo "Retrieving data from Wilcox and processing for MAS"
  wget http://wso.stanford.edu/synoptic/WSO.$cr\.txt
  if (-e $CORHEL_RUN/corona_bc/WSO.$cr.txt) then
    # dummy
  else
    $CORHEL_BIN/error_msg 6 WSO.$cr.txt
    exit 1
  endif

  # Check for Incomplete Dataset
  echo "Check dataset ..."
  if (`grep XXX WSO.$cr\.txt` == "") then
    echo "Complete Data Set, Carry on."
  else
    echo "Incomplete Data Set, Removing WSO file"
    rm -f WSO.$cr\.txt
  endif

  $CORONA_BIN/wsomag << EOF 
WSO.$cr.txt
$mmmax
Wang
EOF

  mv br$cr.dat br.mmax.dat
  $CORONA_BIN/mkhdf br.mmax

  $CORONA_BIN/wsomag_plotbr << EOF 
WSO.$cr.txt
Wang
EOF

  mv br$cr.dat br_raw.dat
  $CORONA_BIN/mkhdf br_raw

endif

# Filter data
$CORONA_BIN/filter -n 3 -periodic y br.mmax.hdf br.mmax.filt3.hdf

# Convert to text for MAS input
$CORONA_BIN/hdf2txt br.mmax.filt3.hdf br.m9.filt3.dat


# Prepare MAS data in corona
cd $CORHEL_RUN/corona

# Set up necessary input/boundary files for coronal run
cp $CORHEL_RUN/corona_bc/br.m9.filt3.dat .
cp $CORHEL_DIR/tools/corona/source/mas_input_files/parker1.8.pw .

exit 0
