#! /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


#==========================MG=================================
chmod +x mg.$CLASS
chmod +x mf.$CLASS
  echo Iteration number $ITER, code mg.$CLASS -- no verification being performed
  eval "(./mg.$CLASS <<-EOF ) | $THROWIT /dev/null 
        $ASCII
	$NAME
	$CLASS
	$ITER
	$WIDTH
	$DEPTH
	$PID
	$VERBOSE
	EOF"

  rm -f $NAME.$ITER.$PID.IN

  ITER=`expr $ITER + 1`

# combine input files for FT; must make an exception for
# the first instance of FT, which takes only one input

#####

 # if [ $ITER -ge 3 ];
 # then
#    echo Interpolate mg and ft solution onto ft grid
#    eval "(./mf.$CLASS<<-EOF ) | $THROWIT /dev/null
#        $ASCII
#	s
#	$NAME.$ITER.$PID.IN
#	$FTXSIZE $FTYSIZE $FTZSIZE
#	2
#	$NAME.`expr $ITER - 1`.$PID
#	$MGXSIZE $MGYSIZE $MGZSIZE
#	$NAME.`expr $ITER - 3`.$PID
#	$FTXSIZE $FTYSIZE $FTZSIZE
#	EOF"
#    rm -f $NAME.`expr $ITER - 1`.$PID $NAME.`expr $ITER - 3`.$PID

 # else
#    echo Interpolate mg solution onto ft grid
#    eval "(./mf.$CLASS<<-EOF ) | $THROWIT /dev/null
#        $ASCII
#	s
#	$NAME.$ITER.$PID.IN
#	$FTXSIZE $FTYSIZE $FTZSIZE
#	1
#	$NAME.`expr $ITER - 1`.$PID
#	$MGXSIZE $MGYSIZE $MGZSIZE
#	EOF"
#    rm -f $NAME.`expr $ITER - 1`.$PID
 # fi
 #######
  
    echo Interpolate mg solution onto ft grid
    eval "(./mf.$CLASS<<-EOF ) | $THROWIT /dev/null
        $ASCII
	s
	$NAME.$ITER.$PID.IN
	$FTXSIZE $FTYSIZE $FTZSIZE
	1
	$NAME.`expr $ITER - 1`.$PID
	$MGXSIZE $MGYSIZE $MGZSIZE
	EOF"
    rm -f $NAME.`expr $ITER - 1`.$PID


#done


