ADDED mttroot/mtt/bin/trans/sympar2numpar_r2c Index: mttroot/mtt/bin/trans/sympar2numpar_r2c ================================================================== --- /dev/null +++ mttroot/mtt/bin/trans/sympar2numpar_r2c @@ -0,0 +1,112 @@ +#! /bin/sh + + ###################################### + ##### Model Transformation Tools ##### + ###################################### + +# Bourne shell script: sympar2numpar_r2m +# Creates the deafault numerical parameters file for the system + +# Copyright (c) P.J.Gawthrop 1996 + +############################################################### +## Version control history +############################################################### +## $Id$ +## $Log$ +############################################################### + +# Inform user +echo Creating $1_numpar.c + +# Remove the old log file +rm -f sympar2numpar_r2c.log + +# Use reduce to accomplish the transformation +reduce >sympar2numpar_r2c.log 2>mtt_error.txt << EOF + +%Set up the number of argument variables to zero in case the user has forgotten +MTTNVar := 0; + +%Read the symbolic parameters file +IN "$1_sympar.r"; + +OUT "$1_numpar1.c"; + +IF MTTNvar>0 THEN +BEGIN + FOR i := 1:MTTNvar DO + IF numberp(MTTVar(i,1)) + THEN + BEGIN + % Do nowt + END + ELSE + BEGIN + write "extern float ", MTTVar(i,1)$ + END; +END; + + +IF MTTNvar>0 THEN +BEGIN + FOR i := 1:MTTNvar DO + IF numberp(MTTVar(i,1)) + THEN + BEGIN + write "/* Variable ", i, " has already been set to ", MTTVar(i,1), "*/"; + END + ELSE + BEGIN + write MTTVar(i,1), " = 1; /* Default value */"; + END; +END; + + +SHUT "$1_numpar1.c"; + +EOF + +matlab_tidy $1_numpar1.c + +#Create the numpar file complete with headers. +echo "/*" > $1_numpar.c +echo "%% Numerical parameter file ($1_numpar.c)" >> $1_numpar.c +echo "%% Generated by MTT at `date`" >> $1_numpar.c +echo "*/" >> $1_numpar.c + +echo "void $1_ode()" >> $1_numpar.c +echo "{" >> $1_numpar.c + +cat $1_numpar1.c >> $1_numpar.c + +echo "/*" >> $1_numpar.c +echo '%% Input the user-defined parameters' >> $1_numpar.c +echo "*/" >> $1_numpar.c + +echo "$1_params;" >> $1_numpar.c +echo "};" >> $1_numpar.c + +rm $1_numpar1.c + +# Now invoke the standard error handling. +mtt_error_r sympar2numpar_r2c.log + + + + + + + + + + + + + + + + + + +