DATAPOOL is a COMMON block which can be shared
by any process running on the machine. The addresses of the variables are
pre-defined. Each subroutine or function declares only the variables it
uses, not the entire COMMON block. The MPX operating system contains tools
to examine and change DATAPOOL variables at run-time, without the loss of
run-time performance which would occur with a debugger.
FPT translates DATAPOOL into standard Fortran. Tools are available to
access the DATAPOOL at run-time, and to edit and manipulate the DATAPOOL
address database in a Linux, Unix or Windows environment.
Colon Characters in Variable Names
Gould-SEL Fortran allows variable names to contain
colon characters, for example: IBUS:FLG or W:SAMP:T. FPT has a language-sensitive editor
which can replace the colons. It checks that the conversion does not cause
name collisions with variables already present and does not change colon characters in, for example, array declarations
and sub-string expressions.
Silent Truncation of Names
Variable names in Gould-SEL Fortran can be of
any length. However, the compiler only uses the first 8 characters to
identify the variable. The names T_FFT_RE, T_FFT_RES and T_FFT_RESULTS are
exactly equivalent. When the code is migrated, the new compiler treats the names as different variables.
FPT identifies that the variables are equivalent, and uses the first
spelling encountered for all of them.
The Gould-SEL real number format is constructed
so that a REAL*4 and REAL*8 at the same address have the same value except
for precision. REAL*8 values passed to routines which expect REAL*4 and
vice-versa are common. IEEE numbers do not have this characteristic, and serious errors result
when the data sizes are different. FPT finds and corrects all occurrences.
Unusual Control Constructs
FPT can convert Gould-SEL constructs such
as DO - UNTIL to DO - WHILE,
and SELECT CASE to IF-THEN-ELSE.
Note that the Gould-SEL SELECT CASE syntax is different from that in standard Fortran 90.
Extended Memory Constructs
FPT removes statements such as EXTENDED BLOCK and EXTENDED DUMMY.
Other extended memory constructs are converted to standard form.
The Gould-SEL syntax for internal sub-programs is different from that of standard Fortran. FPT can
expand the internal routines in-line.
Hex Number Formats
Gould-SEL uses formats of the form 4ZFFFF.
FPT converts these to standard Fortran 90 format, or to the formats for
most other targets.
Division by Zero
Real-time programs should not crash. Halting
hardware and man-in-the-loop simulations damages equipment and hurts
people. Gould-SEL run-time systems are therefore tolerant of division by
zero (It is assumed that the result can be ignored).
FPT can replace all vulnerable divisions by function calls which trap
division by zero and discard the result.
Gould-SEL simulations usually have real-time
interactive control software. FPT fully automates the creation of an
interactive environment for program control, written in standard Fortran.