|
|
1.1 root 1: .TH STRUCT 1 "18 January 1983"
2: .SH NAME
3: struct \- structure Fortran programs
4: .SH SYNOPSIS
5: .B struct
6: [ option ] ...
7: file
8: .SH DESCRIPTION
9: .LP
10: .I Struct
11: translates the Fortran program specified by
12: .I file
13: (standard input default)
14: into a Ratfor program.
15: Wherever possible, Ratfor control constructs
16: replace the original Fortran.
17: Statement numbers appear only where still necessary.
18: Cosmetic changes are made, including changing Hollerith strings
19: into quoted strings
20: and relational operators into symbols (.e.g. ".GT." into ">").
21: The output is appropriately indented.
22: .PP
23: The following options may occur in any order.
24: .TP
25: .B \-s
26: Input is accepted in standard format, i.e.
27: comments are specified by a c, C, or * in column 1, and continuation lines
28: are specified by a nonzero, nonblank character in column 6.
29: Normally input is in the form accepted by
30: .IR f77 (1)
31: .TP
32: .B \-i
33: Do not turn computed goto statements into
34: switches.
35: (Ratfor does not turn switches back
36: into computed goto statements.)
37: .TP
38: .B \-a
39: Turn sequences of else ifs into a
40: non-Ratfor switch of the form
41: .IP
42: .nf
43: .ta 5 7
44: switch
45: { case pred1: code
46: case pred2: code
47: case pred3: code
48: default: code
49: }
50: .fi
51: .DT
52: .IP
53: The case predicates are tested in order;
54: the code appropriate to only one case is executed.
55: This generalized form of switch statement does not
56: occur in Ratfor.
57: .TP
58: .B \-b
59: Generate goto's instead of multilevel break statements.
60: .TP
61: .B \-n
62: Generate goto's instead of multilevel next statements.
63: .TP
64: .BI \-t n
65: Make
66: the nonzero integer
67: .I n
68: the lowest valued label in the output program
69: (default 10).
70: .TP
71: .BI \-c n
72: Increment successive labels
73: in the output program
74: by the nonzero integer
75: .I n
76: (default 1).
77: .TP
78: .BI \-e n
79: If
80: .I n
81: is 0 (default),
82: place code within a loop only if it can
83: lead to an iteration of the loop.
84: If
85: .I n
86: is nonzero,
87: admit a small code segments to a loop
88: if otherwise the loop would have exits to several places including the segment,
89: and the segment can be reached only from the loop.
90: `Small' is close to, but not equal to, the
91: number of statements in the code segment.
92: Values of n under 10 are suggested.
93: .TP
94: .BI \-p n
95: If
96: .I n
97: is 0 (default to 1),
98: it parses the code
99: .I n
100: lines at a time.
101: It also displays the related
102: procedures that the utility
103: is using to build the appropriate code.
104: .TP
105: .BI \-d
106: If this flag is on,
107: a detail debugging
108: trace is displayed
109: and a line by line
110: conversion is listed
111: in an output file 'debug1'.
112: .SH FILES
113: /tmp/struct*
114: .br
115: /usr/lib/struct/*
116: .SH SEE ALSO
117: f77(1)
118: .SH BUGS
119: Struct knows Fortran 66 syntax, but not full Fortran 77.
120: .br
121: If an input Fortran program contains identifiers which
122: are reserved words in Ratfor, the structured
123: version of the program
124: will not be a valid Ratfor program.
125: .br
126: The labels generated cannot go above 32767.
127: .br
128: If you get a Hollerith string that is
129: longer than than 50 character,
130: you will not get the correct
131: quoted string output from struct.
132: .br
133: If you get a goto without a target, try
134: .B \-e .
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.