packages icon



 FLECS90(l)                       flecs 90                        FLECS90(l)
 flecs 90                                                           flecs 90

                                 20 Dec 1994



 NAME
      flecs90 - FLECS to Fortran 90 translator

 SYNOPSIS
      flecs90 [ -f ] [ -c ] [ -n ] [ -s ] [ -l ] file...

 DESCRIPTION
      The flecs90 processor is designed to translate code written in the
      FLECS extended control language for Fortran 77 into fixed form Fortran
      90 code. Because Fortran 90 contains all of the extended capabilities
      of FLECS, flecs90 is designed to provide a one time conversion from
      FLECS code to Fortran 90 code.

 WARNINGS
      Note that the options -s and -l can cause serious problems in the
      translated Fortran 90. See the TRANSLATION section before deciding to
      use these options.

      Control can no longer be transferred from inside a FLECS procedure to
      a statement outside the procedure using a GOTO statement.

 OPTIONS
      -f   Process FLECS file but do not create a Fortran file.

      -c   Echo comments in FLECS file to Fortran file.

      -n   Include line number of FLECS code in columns 74 to 78 of Fortran
           file.

      -s   Translate FLECS SELECT and appropriate CASE statements into
           Fortran 90 SELECT CASE rather than BLOCK-IF statements.

      -l   Do not include a label in Fortran 90 translation naming DO loops
           generated by FLECS repetition keywords.

      file ...
           List of FLECS source files to be processed.

 TRANSLATION
    alternation
      FLECS keywords denoting alternation structures IF, UNLESS, WHEN ...
      ELSE, CONDITIONAL, SELECT, and CASE are translated into Fortran 90
      BLOCK-IF statements.

      If the -s option is used, FLECS SELECT and appropriate CASE statements
      are translated into Fortran 90 SELECT CASE rather than BLOCK-IF
      statements.  This causes errors compiling the Fortran 90 code if the
      restrictions on the SELECT CASE statement are not met. Specifically,
      the index must be an expression of type integer, logical or character,



                                    - 1 -         Formatted:  March 29, 2024






 FLECS90(l)                       flecs 90                        FLECS90(l)
 flecs 90                                                           flecs 90

                                 20 Dec 1994



      and the case selectors must be evaluated at compile time.

    repetition
      FLECS keywords denoting repetition structures DO, FOR, WHILE, UNTIL,
      REPEAT WHILE, REPEAT UNTIL, and LOOP are translated into Fortran 90 DO
      statements. The Fortran 90 DO loops are named FLECS_LOOP_i where i is
      the number of FLECS repetition structures translated.

      FLECS keywords CYCLE and EXIT which affect the execution of FLECS
      loops are translated into Fortran 90 CYCLE and EXIT statements.

      If the -l option is used, the Fortran 90 DO loops generated by FLECS
      repetition structures are not named.  Since the DO loops are no longer
      named, the FLECS keywords CYCLE and EXIT will affect the inner most DO
      loop in the Fortran 90 code, including those not generated by FLECS
      repetition structures. This can change the behavior of programs.  For
      example, in FLECS code which contained an EXIT statements within a
      Fortran 77 DOp within a FLECS LOOP structure, the EXIT statement would
      terminate the Fortran 77 DO loop not the FLECS LOOP structure.

    procedure
      FLECS procedures, denoted by the TO keyword, are translated into
      Fortran 90 internal subroutines. The FLECS keyword REVERT which causes
      execution within a FLECS procedure to transfer immediately out of the
      procedure is translated into a Fortran 90 RETURN statement.

      Because each FLECS procedure becomes a separate Fortran 90 subroutine,
      control can not be transferred from inside a FLECS procedure to
      outside the procedure via a GOTO or other similar statement.

 ERRORS
      Flecs90 errors are identified by the file name and line number and an
      error type. There are three different types of errors. The first type,
      denoted by (I) cause a line of FLECS code to be ignored. The second
      type, denoted by (T), cause the current FLECS structure to be
      terminated. With the final error type, denoted by (E), lines are
      echoed to the Fortran file.















                                    - 2 -         Formatted:  March 29, 2024