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: November 14, 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: November 14, 2024