top_left_banner  SimCon logo

Research Projects

Systematic Errors in Fortran

Several classes of systematic error have been identified in Fortran codes. This investigation seeks to understand:



Emulation of Real Arithmetic

fpt supports a system for emulation of the real and complex arithmetic in a program. All REAL and COMPLEX declarations are changed to declarations of objects of derived types. All arithmetic operators and intrinsic functions which operate on REAL and COMPLEX objects are overloaded to operate on these types, and it is then possible to modify the arithmetic behaviour. There are at least two applications.

  1. Changing the arithmetic allows changing the precisions of the numbers used in a program from those of the system defaults. This supports the investigation of numerical precision described below.
  2. Adding additional components to the arithmetic types makes it possible to track the units and dimensions of variables at run-time. This supports a second approach to the analysis of units and dimensions.



Units and Dimensions

SimCon is carrying out research on automatic identification and checking of the physical units and dimensions of the variables in a Fortran program. The tools form part of fpt, and preliminary releases have been tested by CSC at Airbus Filton. An important issue is that the user does not need to specify the units and dimensions of the variables in the program. fpt automatically determines the relationships between the units of different variables, and attempts to find inconsistencies or to show that none exist. More...


Testing Numerical Precision

A technique has been developed to test the adequacy of the numerical precisions chosen in real world programs. It is possible to identify the specific variables in a code where the chosen precision breaks down. It is also possible to determine the precisions required for correct program execution. In many cases the precisions may be reduced safely from those of the 4, 8, 10 and 16-byte IEEE numbers in use. This could lead to a significant reduction in the data transferred between processors in multiprocessor systems, and therefore to significant improvements in speed. More...


Analysis of Errors in WRF

WRF is one of the most important programs used in weather forecasting and in the analysis of climate change. The code contains many thousands of errors and inconsistencies. Most of these have no consequence other than a small loss of precision in intermediate results, but some are potentially significant. More...


FPGA and Parallel Programming

Research on automatic fine-grain parallel programming of FPGAs and multi-core systems is being carried out in collaboration with The University of Cape Town and Edge Hill University. Algorithms for parallelisation and for fixed-point scaled fraction programming, first developed for the AD10 simulation computer, are applied to FPGAs. More...


The Tracking Radar Project at DENEL OTR

SimCon worked in collaboration with staff at DENEL OTR to re-host tracking radar control programs from Gould-SEL computers to PCs. This was a large industrial research project, and involved automatic translation of code for embedded CSPI MAP array processors and automatic translation of Gould-SEL assembler code. fpt was used to convert the Gould-SEL Fortran code, which used DATAPOOL and shared memory constructs, to standard Fortran.

Further information

Research Collaborations

Edge Hill University

The two senior researchers at SimCon, Brian Farrimond and John Collins, are both Honorary Research Fellows at the Department of Computing at Edge Hill University (EHU). The current project, in collaboration with Prof. Mark Anderson at EHU and Dave Gill at The University Corporation for Atmospheric Research, Boulder, Colorado, is to re-engineer the weather and climate prediction program, WRF, in order to remove systematic errors and to improve reliability. The project is partly funded by he United States Air Force.

This work includes:

Aspects of this work are described in the posters presented at the WRF workshops in Boulder Colorado, publication 3 and publication 4, and in the poster presented at the 4th WGNE Workshop on Systematic Errors in Weather and Climate Models, publication 5.

An important issue in the use of large computer programs such as WRF is the reproducibility of results. Different parallel configurations, different compilers and different machines may legitimately produce different results because of numerical drift. This is caused by the accumulation of small rounding errors due to different orders of computation or differences in the precision of numbers. The results may also differ because of differences in the consequences of coding errors and compiler bugs, but these effects are hidden amongst those due to numerical drift. The run-time trace facility in WinFPT is used to suppress numerical drift. Coding errors and compiler bugs are then exposed and may be trapped. This work is described in publication 7.

The University of Cape Town

Brian Farrimond and John Collins are Honorary Research Associates at the University of Cape Town (UCT). We are working in collaboration with members of the Radar Remote Sensing Group, and on projects connected with The Centre for High Performance Computing (CHPC). The current project, in collaboration with Jane Wyngaard and Prof. Mike Inggs at UCT, is the development of a new class of fine-grain parallel processor, based on the work described in publication 2 and publication 8, below.


  1. Farrimond B.T and Collins J. 2007, "Dimensional Inference Using Symbol Lives", Paper presented at the 2007 International Conference: Software Engineering Theory and Practice, Orlando Florida
  2. Farrimond B.T., Collins J. and Sharma A. 2008, "APPRASE: Automatic parallelisation of Fortran to run on an FPGA" Paper presented at The Summer Conference of the Society for Computer Simulation, Edinburgh, Scotland, June 2008.
  3. Collins J, Farrimond B and Anderson M, 2011, "Automatic Detection of Softare Errors in WRF", Poster presented at the 12th WRF Users Workshop, Boulder Colorado, June 2011.
  4. Collins J, Anderson M, Farrimond B and Gill D, 2012, "Q. A. Analysis of the WRF Program", Poster presented at the 13th WRF Users Workshop, Boulder, Colorado, June 2012.
  5. Collins, J., Farrimond, B., Anderson, M., Owens, D., Bayliss, D. and Gill, D. 2013, "Automated Quality Assurance Analysis: WRF - A Case Study", ICCET 2013, 13-14 April 2013, Vancouver.
  6. Collins J, Anderson M, Farrimond B, Bayliss D and Owens D, 2013,"Systematic Errors in Climate Models Consequent on the Design of the Fortran Language", Poster presented at the 4th WGNE Workshop on Systematic Errors in Weather and Climate Models, The Met Office, Exeter, UK, April 2013.
  7. Collins J, Farrimond B, Flower D, Anderson M and Gill D. 2013, "The Removal of Numerical Drift from Scientific Models", arXiv:1304.3260 [cs.SE].
  8. Wyngaard J, Inggs M, Collins J and Farrimond B, 2013, "Towards a many-core architecture for HPC", 23rd International Conference on Field Programmable Logic and Applications (FPL)
  9. Collins J. 2017, Testing the Numerical Precisions Required to Execute Real World Programs", IJSEA Vol 8, No 2, March 2017.

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