SimCon - Fortran Analysis, Engineering & Migration About UsDownloadsPricing Home | SimCom logo
$keywords!
FPT - Gould SEL (Encore) Fortran
Consultancy
Migration & Software QA
 
WinFPT & FPT
WinFPT
FPT Summary
 
Error Correction
Hosts
Metrics
Migration
Optimization/Optimisation
QA
Reports
Security
Standardisation  
Updates & Release notes
$keywords!
WinFPT & FPT - Special Issues
Checking Expressions
Continuation Lines
Datapool
File Handling
File Names
Hex Numbers
Program Control
Record/Replay
Tab Format
Tracing Execution
 
Gould-SEL
VMS & Unix
 
Associated Companies
IQS Solutions
 
 
Gould-SEL
Gould-SEL Concept and RSX computers dominated real-time simulator and signal processing in the eighties and early nineties. Many are still in use, in aircraft and power plant simulators and in tracking radars.

The codes are valuable. The issues in migrating them to Unix, Win32 or VMS are:

DATAPOOL

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 Unix, NT or VMS environment.

Colon Characters in Variable Names

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

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.

Mis-matched Arguments

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

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.

Interactive Program Control

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.

The WinFPT Tutorial Migration from Gould-SEL to Win32 contains a detailed description of the migration process. The completed code is in the WinFPT distribution.

 

Copyright ©1995 to 2008 Software Validation Ltd. All rights reserved.