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



















