Overview
Comment:Incluse subs.r
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | origin/master | trunk
Files: files | file ages | folders
SHA3-256: f357bc12429d231f35d88d3713eb48d810e368b417c51078b6c0942dcecf2121
User & Date: gawthrop@users.sourceforge.net on 1998-11-26 09:18:55.000
Other Links: branch diff | manifest | tags
Context
1998-11-26
10:32:34
Include subs.r check-in: 87b1bbd5ac user: gawthrop@users.sourceforge.net tags: origin/master, trunk
09:18:55
Incluse subs.r check-in: f357bc1242 user: gawthrop@users.sourceforge.net tags: origin/master, trunk
1998-11-25
13:55:42
Added missig attribute field m*g,internal check-in: 16fb8ae899 user: gawthrop@users.sourceforge.net tags: origin/master, trunk
Changes
︙
11
12
13
14
15
16
17



18
19
20
21
22
23
24
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27







+
+
+







# Copyright (c) P.J.Gawthrop 1991, 1992, 1994.

###############################################################
## Version control history
###############################################################
## $Id$
## $Log$
## Revision 1.10  1998/11/18 13:50:29  peterg
## Removed writeing of EYz matrix
##
## Revision 1.9  1998/11/18 10:53:38  peterg
## Put in some more "IF MTTNx>0 THEN" to avoid error messages when no
## states.
##
## Revision 1.8  1998/11/10 08:54:34  peterg
## Put in "IF MTTNx>0 THEN" to prevent probs when Nx=0
##  -- still a couple of apparent error messages - but answers now
︙
55
56
57
58
59
60
61
62

63
64

65
66











67
68
69
70
71
72
73
74
75
76
58
59
60
61
62
63
64
65
66
67

68


69
70
71
72
73
74
75
76
77
78
79
80
81

82
83
84
85
86
87
88








+

-
+
-
-
+
+
+
+
+
+
+
+
+
+
+


-







## Sorted out bug when MTTNz=0
##
## Revision 1.1  1996/08/15 16:47:02  peter
## Initial revision
##
###############################################################



#Explicit solution option
Solving=$2;
solve=0
if [ "$Solving" = "Solving" ]; then
    solve=1
while [ -n "`echo $1 | grep '^-'`" ]; do
  case $1 in
	-A )
                solve=1;;
	*)
		echo "$1 is an invalid argument - ignoring" ;;
  esac
  shift
done

if [ "$solve" = "1" ]; then
    echo "Creating $1_cse.r (with explicit solution of algebraic equations)"
else
    solve=0
    echo "Creating $1_cse.r"
fi

# Remove the old log file
rm -f dae2cse_r.log

# Use reduce to accomplish the transformation
︙
225
226
227
228
229
230
231

232
233

234

235

236
237
238
239
240
241
242
237
238
239
240
241
242
243
244
245
246
247
248
249

250
251
252
253
254
255
256
257







+


+

+
-
+








  %Create list of the relevant unknowns
  MTT_unknowns := {};
  FOR i := 1:MTTNyz DO
    MTT_unknowns := append(MTT_unknowns,{MTTUi(i,1)});

  %Solve the algebraic equations symbolically
    MTT_sol := solve(MTT_eqns,MTT_unknowns);
  %The result seems to be in an extra list - I don't know why
  % So remove the outer list with first.
  % But only if more than one list element!

  if MTTNyz>1 THEN
  MTT_sol := first(solve(MTT_eqns,MTT_unknowns));
    MTT_sol := first(MTT_sol);

  %Substitute back into the equations
  FOR i := 1:MTTNyz DO
  BEGIN
    MTT_sol_i := first(MTT_sol); MTT_sol := rest(MTT_sol);
    set(lhs(MTT_sol_i),rhs(MTT_sol_i));
  END;
︙
297
298
299
300
301
302
303















304
305
306
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336







+
+
+
+
+
+
+
+
+
+
+
+
+
+
+




write ";END;";

SHUT "$1_cse.r";
quit;

EOF

if [ "$solve" = "1" ]; then
    echo "Setting MTTNyz=0 in $1_def.r and removing other $1_def files"
    awk '{
     if ($1=="MTTNyz") 
       print "MTTNyz := 0;" 
     else print $0
    }' $1_def.r > mtt_junk
  # Make sure it preserves the time stamp!!
  # and remove dependent reps
   touch -r $1_def.r mtt_junk
   rm $1_def.*
   mv mtt_junk $1_def.r
fi


# Now invoke the standard error handling.
mtt_error_r dae2cse_r.log

MTT: Model Transformation Tools
[ GitHub | SourceHut | Sourceforge | Fossil RSS ]