#! /bin/sh
NAME=VP
if [ $# -ne 1 ] && [ $# -ne 3 ];
then
  echo "Usage: \"$0 CLASS [MODE]\""
  echo "   CLASS:             S, W, or A"
  #echo "   MODE:  -u:         unformatted data files"
  #echo "          -v:         verbose mode"
  #echo "          -uv or -vu: unformatted data files + verbose mode"
  echo	"-i		Numero de iteracion"
  exit
fi

if [ $# -eq 3 ];
then
  MODE=$2
else
  MODE=default
fi

#PID=$$
PID=0
CLASS=$1
LOG_FILE=____LOG_$NAME.$PID
ERR=____ERR.$PID
#The default script behavior is nonverbose
VERBOSE=0
# the default data file format is ASCII
ASCII=1
ITER=0

case $MODE  in
  -i	    )  ITER=$3;				  ;;
  -u        )  ASCII=0;                           ;;
  -v        )  VERBOSE=1                          ;;
  -vu | -uv )  ASCII=0; VERBOSE=1                 ;;
  default   )                                     ;;
  *         )  echo Error, wrong mode $MODE; exit ;;
esac

if [ $VERBOSE -eq 1 ];
then
  THROWIT="tee"
else
  THROWIT="cat >"
fi

case $CLASS in 
  S )   DEPTH=3
        BTXSIZE=12;  BTYSIZE=12;  BTZSIZE=12
        MGXSIZE=32;  MGYSIZE=32;  MGZSIZE=32
        FTXSIZE=64;  FTYSIZE=64;  FTZSIZE=64
        ;;
  W )   DEPTH=3
        BTXSIZE=24;  BTYSIZE=24;  BTZSIZE=24
        MGXSIZE=64;  MGYSIZE=64;  MGZSIZE=64
        FTXSIZE=128; FTYSIZE=128; FTZSIZE=32
        ;;
  A )   DEPTH=3
        BTXSIZE=64;  BTYSIZE=64;  BTZSIZE=64
        MGXSIZE=256; MGYSIZE=256; MGZSIZE=256
        FTXSIZE=256; FTYSIZE=256; FTZSIZE=128
        ;;
  B )   DEPTH=6
        BTXSIZE=102; BTYSIZE=102; BTZSIZE=102
        MGXSIZE=256; MGYSIZE=256; MGZSIZE=256
        FTXSIZE=512; FTYSIZE=256; FTZSIZE=256
        ;;
  C )   DEPTH=9
        BTXSIZE=162; BTYSIZE=162; BTZSIZE=162
        MGXSIZE=512; MGYSIZE=512; MGZSIZE=512
        FTXSIZE=512; FTYSIZE=512; FTZSIZE=512
        ;;
  * )   echo Error, wrong class; exit ;;
esac
    
WIDTH=3
MAX_ITER=`expr $WIDTH \* $DEPTH`
#ITER=0
    
echo Running GridNPB3.0-SHF-SER code $NAME                     
echo Class is $CLASS                       
echo Number of iterations is $MAX_ITER     
echo Names of executables are \{bt,mg,ft\}.$CLASS     
    
set SECONDS=0
#while :
#do

#==========================BT=================================


  if [ $ITER -ge 3 ]
  then
    mv -f $NAME.`expr $ITER - 3`.$PID.BT $NAME.$ITER.$PID.IN
  fi

  chmod +x mf.$CLASS
  chmod +x bt.$CLASS
  echo Iteration number $ITER, code bt.$CLASS -- no verification being performed
  eval "(./bt.$CLASS <<-EOF ) | $THROWIT /dev/null
	$ASCII
	$NAME
	$CLASS
	$ITER
	$WIDTH
	$DEPTH
	$PID
	$VERBOSE
	EOF"
  
  rm -f $NAME.$ITER.$PID.IN
  ITER=`expr $ITER + 1`

  echo Interpolate bt solution onto mg grid
  eval "(./mf.$CLASS<<-EOF ) | $THROWIT /dev/null
        $ASCII
	s
	$NAME.$ITER.$PID.IN
	$MGXSIZE $MGYSIZE $MGZSIZE
	1
	$NAME.`expr $ITER - 1`.$PID
	$BTXSIZE $BTYSIZE $BTZSIZE
	EOF"
  rm -f $NAME.`expr $ITER - 1`.$PID




#done




#==========================MG=================================
