#! /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$
## Revision 1.9 1996/09/12 19:26:05 peter
## Input _params file.
##
## Revision 1.8 1996/08/30 19:37:43 peter
## Moved headers in shell script.
##
## Revision 1.7 1996/08/24 14:11:56 peter
## Global parameter passing.
##
## Revision 1.6 1996/08/20 08:21:24 peter
## *** empty log message ***
##
## Revision 1.5 1996/08/16 14:27:25 peter
## Make a dummy function when no parameters (MTTNVar=0).
##
## Revision 1.4 1996/08/15 12:46:59 peter
## Removed a spuriuos echo.
##
## Revision 1.3 1996/08/12 20:20:59 peter
## Explicit parameters via out put list.
## Parameter conversion stuff deleted.
##
## Revision 1.2 1996/08/11 10:41:52 peter
## Fixed various bugs.
##
## Revision 1.1 1996/08/11 08:48:07 peter
## Initial revision
##
###############################################################
# Inform user
echo Creating $1_numpar.m
# Remove the old log file
rm -f sympar2numpar_r2m.log
# Use reduce to accomplish the transformation
reduce >sympar2numpar_r2m.log << 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.m";
IF MTTNvar>0 THEN
BEGIN
write "global ...;;";
FOR i := 1:MTTNvar DO
IF numberp(MTTVar(i,1))
THEN
BEGIN
% Do nowt
END
ELSE
BEGIN
IF i<MTTNvar THEN write MTTVar(i,1), " ..."
ELSE write 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;
if MTTNVar=0 THEN
write "foo=0";
SHUT "$1_numpar1.m";
EOF
matlab_tidy $1_numpar1.m
#Create the numpar file complete with headers.
echo "%% Numerical parameter file ($1_numpar.m)" > $1_numpar.m
echo "%% Generated by MTT at `date`" >> $1_numpar.m
cat $MTTPATH/trans/m/rcs_header.txt >> $1_numpar.m
cat $1_numpar1.m >> $1_numpar.m
echo '%% Input the user-defined parameters' >> $1_numpar.m
echo "$1_params;" >> $1_numpar.m
rm $1_numpar1.m
# Now invoke the standard error handling.
mtt_error_r sympar2numpar_r2m.log