Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

f77(1)

ratfor(1)

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)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026