unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (v7man)
Page:
Section:
Apropos / Subsearch:
optional field

STRUCT(1)                   General Commands Manual                  STRUCT(1)



NAME
       struct - structure Fortran programs

SYNOPSIS
       struct [ option ] ...  file

DESCRIPTION
       Struct translates the Fortran program specified by file (standard input
       default) into a Ratfor program.  Wherever possible, Ratfor control con-
       structs  replace  the  original Fortran.  Statement numbers appear only
       where still necessary.  Cosmetic changes are made,  including  changing
       Hollerith  strings  into  quoted  strings and relational operators into
       symbols (.e.g. `.GT.' into `>').  The output is appropriately indented.

       The following options may occur in any order.

       -s     Input is accepted in standard format, i.e.  comments are  speci-
              fied  by  a  c,  C, or * in column 1, and continuation lines are
              specified by a nonzero, nonblank character in  column  6.   Nor-
              mally,  a  statement  whose  first  nonblank  character  is  not
              alphanumeric is treated as a continuation.

       -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.


       -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  code  segments  with  fewer than n statements 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.

FILES
       /tmp/struct*
       /usr/lib/struct/*

SEE ALSO
       f77(1)

BUGS
       Struct knows Fortran 66 syntax, but not full Fortran 77  (alter-
       nate returns, IF...THEN...ELSE, etc.)
       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.
       Extended range DO's generate cryptic errors.
       Columns 73-80 are not special even when -s is in effect.
       Will not generate Ratfor FOR statements.



                                                                     STRUCT(1)