#! /bin/sh
######################################
##### Model Transformation Tools #####
######################################
# Bourne shell script: struc2state_txt2txt
# Creates the default state file for the system (txt)
# Copyright (c) P.J.Gawthrop 1998
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %% Version control history
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %% $Id$
# %% $Log$
# %% Revision 1.10 2000/10/16 08:20:23 peterg
# %% New version with direct naming.
# %% Note ss version is broken - ss.r file in wrong format
# %%
# %% Revision 1.9 2000/10/10 21:03:06 peterg
# %% *** empty log message ***
# %%
# %% Revision 1.8 1998/08/10 13:57:33 peterg
# %% Removed debugging lines
# %%
# %% Revision 1.7 1998/08/10 13:55:11 peterg
# %% Added option of computing from ss values
# %%
# %% Revision 1.6 1998/07/27 20:32:11 peterg
# %% Octave mode forced
# %%
# %% Revision 1.5 1998/07/25 20:10:01 peterg
# %% Lower case mttx
# %%
# %% Revision 1.4 1998/07/25 09:42:37 peterg
# %% Now writes out an array
# %%
# %% Revision 1.3 1998/07/25 08:11:35 peterg
# %% No longer used the SS method - just sets zero states
# %%
# %% Revision 1.2 1998/07/21 16:54:15 peterg
# %% Changed erroneous header
# %%
# %% Revision 1.1 1998/06/27 15:06:40 peterg
# %% Initial revision
# %%
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
while [ -n "`echo $1 | grep '-'`" ]; do
case $1 in
-ss )
steadystate_computation=yes ;;
*)
echo "$1 is an invalid argument - ignoring" ;;
esac
shift
done
# Default state
default='0.0'
#Create the state file complete with headers.
echo '# -*-octave-*- Put Emacs into octave-mode' > $1_state.txt
echo "# Initial state file ($1_state.txt)" >> $1_state.txt
echo "# Generated by MTT at `date`" >> $1_state.txt
cat $MTTPATH/trans/rcs_header.sh >> $1_state.txt
#Write out the defaults -- states to steady-state values
echo "# Set the states" >> $1_state.txt
if [ -n "$steadystate_computation" ]; then
# Compute state from ss.r file
# Inform user
echo Creating $1_state.txt - compute from steady-state information
cat $1_ss.r $1_struc.txt | sed 's/\$//' |\
gawk '{
if(match($1,"MTTx")>0) {
j++
split($0,a,"=");
x[j]=a[2];
}
if($1=="state") {
i++;
# print "x(" i ") =\t", x[i], " \# " $4 " (" $3 ")"
printf("%s =\t%s; # MTT initial value\n", $4, x[i]);
}
}' >> $1_state.txt
else
# Set states to zero
# Inform user
echo Creating $1_state.txt - default states to $default
gawk '{
if ($1=="state") printf("%s \t= %s; # MTT initial value\n", $4, default)
}' default=$default <$1_struc.txt >> $1_state.txt
fi