#! /bin/sh
######################################
##### Model Transformation Tools #####
######################################
# Bourne shell script: dat22dat
# Splits the data file into output and state bits
# Copyright (c) P.J.Gawthrop 1999
###############################################################
## Version control history
###############################################################
## $Id$
## $Log$
## Revision 1.10 2000/10/17 12:24:02 peterg
## Three argument generic version
##
## Revision 1.9 2000/09/27 16:12:50 peterg
## Use expr to evaluate arithmetic - compatible with sh (as opposed to
## bash)
##
## Revision 1.8 2000/09/21 10:07:06 peterg
## Now correctely writes out the state into _odes.dat rep.
##
## Revision 1.7 2000/04/06 09:02:46 peterg
## Removed bash let commands as unsupported by sh
## Do arithmetic within awk - yuk
##
## Revision 1.6 2000/04/06 08:36:15 peterg
## *** empty log message ***
##
## Revision 1.5 1999/03/15 22:42:52 peterg
## Strip comments (put in by Octave save function)
##
## Revision 1.4 1999/03/15 21:55:36 peterg
## Does away with the # symbol in the file - uses _de to get Nx Ny
## instead
##
###############################################################
if [ -z "$1" ]; then
echo "Usage: dat22dat system ode|odes so|s"
exit
fi
# Find Nx and Ny
Nx=`mtt_getsize $1 x` # States
Ny=`mtt_getsize $1 y` # Outputs
case $3 in
so)
First=1; Last=`expr $First + $Ny`
;;
s)
First=`expr $Ny + 2`; Last=`expr $First + $Nx`
;;
*)
First=1; Last=`expr $Ny + 1`
;;
esac
echo Creating $1_$2$3.dat
gawk '{
## Extract the data
if (index($1,"#") != 1){
for (i=First;i<=Last;i++)
printf("%s ", $i);
printf("\n");
}
}' First=$First Last=$Last <$1_$2s.dat2 > $1_$2$3.dat