#! /bin/sh
######################################
##### Model Transformation Tools #####
######################################
###############################################################
## Version control history
###############################################################
## $Id$
## $Log$
## Revision 1.4 1998/07/25 20:14:00 peterg
## update code added for flexibility and octave efficiency
##
###############################################################
# Bourne shell script: make_ode2odes
# Copyright (c) P.J.Gawthrop July 1998.
Sys=$1
# Find system constants
Nx=`grep "MTTNx " <$Sys\_def.r | awk '{print $3}' | sed 's/;//'`
Nu=`grep "MTTNu " <$Sys\_def.r | awk '{print $3}' | sed 's/;//'`
Ny=`grep "MTTNy " <$Sys\_def.r | awk '{print $3}' | sed 's/;//'`
cat << EOF > $1_ode2odes.m
# Program $1_ode2odes
EOF
# Do the globals
sympar2global_txt2m $1 >> $1_ode2odes.m
# The rest of the program
cat << EOF >> $1_ode2odes.m
$1_simpar; # Read in simulation parameters
$1_numpar; # Read in parameters
MTTiLast = round(mttLAST/mttDT); # Total number of steps
mttDDT = mttDT/mttSTEPFACTOR;
#Initialise
MTTt = 0.0;
MTTx = $1_state; # Read in initial state
MTTu = $1_input(MTTx,MTTt); # Evaluate initial input
MTTy = $1_odeo(MTTx,MTTu,MTTt); # Evaluate initial output
mtt_write(MTTt,MTTx,MTTy,$Nx,$Ny); # And write them
#Integration loop
for MTTit = 1:MTTiLast
for MTTi = 1:mttSTEPFACTOR
[MTTu] = $1_input(MTTx,MTTt);# Input
[MTTx] = $1_switch(MTTx); # Switches
[MTTdx] = $1_ode(MTTx,MTTu,MTTt);
[MTTx] = mtt_update(MTTdx,MTTx,mttDDT,$Nx,mttMETHOD);
[MTTy] = $1_odeo(MTTx,MTTu,MTTt);
MTTt = MTTt + mttDDT;
end;
mtt_write(MTTt,MTTx,MTTy,$Nx,$Ny);
end;
EOF