STRUCT(1) BSD STRUCT(1)
NAME
struct - structure FORTRAN programs
SYNOPSIS
struct [ options ] [ file ]
DESCRIPTION
struct translates the FORTRAN program specified by file into a Ratfor
program. (If no filename is given, struct reads the standard input.)
Wherever possible, Ratfor control constructs replace the original
FORTRAN. Statement numbers appear only where still necessary. struct
makes certain cosmetic changese, including changing Hollerith strings
into quoted strings and relational operators into symbols (e.g., ".GT."
into ">"). The output is appropriately indented.
OPTIONS
-s Accept input in standard format: comments are specified by a c, C,
or * in column 1, and continuation lines are specified by a nonzero,
nonblank character in column 6. Normally input is in the form
accepted by f77(1).
-i Do not turn computed goto statements into switches. (Ratfor does
not turn switches back into computed goto statements.)
-a Turn sequences of else-ifs into a non-Ratfor switch of the form
switch
{ case pred1: code
case pred2: code
case pred3: code
default: code
}
The case predicates are tested in order; the code appropriate to
only one case is executed. This generalized form of switch
statement does not occur in Ratfor.
-b Generate goto's instead of multilevel break statements.
-n Generate goto's instead of multilevel next statements.
-tn Make the nonzero integer n the lowest valued label in the output
program (default 10).
-cn Increment successive labels in the output program by the nonzero
integer n (default 1).
-en If n is 0 (default), place code within a loop only if it can lead to
an iteration of the loop. If n is nonzero, admit a small code
segment to a loop if otherwise the loop would have exits to several
places including the segment and the segment can be reached only
from the loop. "Small" is close to, but not equal to, the number of
statements in the code segment. Values of n under 10 are suggested.
FILES
/tmp/struct*
/usr/lib/struct/*
BUGS
Struct knows FORTRAN 66 syntax, but not full FORTRAN 77.
If an input FORTRAN program contains identifiers which are reserved words
in Ratfor, the structured version of the program will not be a valid
Ratfor program.
The labels generated cannot go above 32767.
If you get a goto without a target, try using -e.
SEE ALSO
f77(1), ratfor(1)