Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

History of Fortran

518 views
Skip to first unread message

michael...@compuserve.com

unread,
Mar 22, 2019, 4:46:31 AM3/22/19
to
There was recently a thread on Fortran history (that veered off into other topics). It contained some interesting links, and I took the opportunity to revise the history file that I maintain, and to check for broken links.
I will post the contents of that file in the next post.

Regards,

Mike Metcalf

michael...@compuserve.com

unread,
Mar 22, 2019, 4:47:41 AM3/22/19
to
An early (1957) paper by John Backus was republished in:

Programming Systems and Languages
(S. Rosen ed.),
McGraw Hill, 1967,
pp. 29-47.

and a 13-minute video "The Beginnings of FORTRAN",
in which Backus and his collaborators on Fortran are interviewed on the 25th
anniversary of the language, is at https://www.youtube.com/watch?v=KohboWwrsXg .

A further rich source is at www.softwarepreservation.org/projects/FORTRAN/ .


The two first textbooks (for Fortran II) were:

A Guide to FORTRAN Programming,
McCracken, Daniel D.
Wiley, 1961.

and

A FORTRAN Primer
Organick, E.I.
Addison-Wesley, 1963


The early history of Fortran (Fortran I to Fortran 77) is documented in:

Annals of History of Computing,
6, 1, January, 1984 (whole issue)


History of Programming Languages
(R.L. Wexelblat ed.),
Academic Press, 1981,
pp. 25-74.

The History of FORTRAN I, II, and III.
Backus, John.
In ACM Sigplan History of Programming Languages Conference -
Preprints, published in ACM Sigplan Notices 13(8),
pp. 165-180, August 1978.

Programming Languages: History and Fundamentals
Sammet, Jean E.
Prentice Hall, 1969

A summary appears in:

Encyclopedia of Science and Technology,
Academic Press, 1986,
vol. 5, under 'Fortran'

or in

Encyclopedia of Science and Technology, (revised edition)
Academic Press, 1992,
vol. 6, under 'Fortran', pp. 632-637.

See also

Programming language standardisation,
I.D. Hill and B.L. Meek, eds.,
Ellis Horwood 1980,
W.S Brainerd, in Chapter 2 (Fortran), p. 34.



A snapshot of the plans for Fortran 90 (then known as Fortran 8x), as
foreseen in 1982, appears in:

Fortran Optimization,
M. Metcalf
Academic Press, 1982,
Chapter 12, pp. 194-210.

A later snapshot appears in the Revised Edition of 1986.

The story of Fortran 90 is related in:

Numerical Recipes in Fortran 90
Cambridge University Press, 1996
Foreword, pp. x-xvi,

and in less detail in:

Fortran 90 Explained,
M. Metcalf & J. Reid
Oxford University Press, 1990
Chapter 1, pp. 3-8.

as well as in an article originally published by the late Brian Meek in
"Fortran Forum" in 1990 (just before Fortran 90 was adopted) and now at:

http://www.fortran.com/fortran/forsaga.html

and in the

Handbook of Programming Languages
Volume II: Imperative Programming Languages
Peter H. Salus, Editor,
Part I: Fortran (by Walt Brainerd)
MacMillan, 1998


Further background information is contained in the articles devoted
to Fortran 90 that comprised a whole issue of the journal:

"Computer Standards & Interfaces", 18,
North Holland/Elsevier, 1996.

and a personal account of writing a first Fortran 90 compiler is to be found at

https://www.nag.co.uk/content/personal-history-nag-fortran-compiler

The story up to Fortran 2008 is to be found in:

"The Seven Ages of Fortran", journal.info.unlp.edu.ar/JCST/article/view/681/210

and briefly in

Encyclopedia of Parallel Computing (article 'Fortran 90 and its successors')
Padua, David (Ed.), Springer, 2011

and

Modern Fortran Explained,
M. Metcalf, J. Reid & M. Cohen
Oxford University Press, 2011
Chapter 1, pp. 4-7.

Steve Lionel

unread,
Mar 22, 2019, 5:36:56 PM3/22/19
to
On 3/22/2019 4:46 AM, michael...@compuserve.com wrote:
> There was recently a thread on Fortran history (that veered off into other topics). It contained some interesting links, and I took the opportunity to revise the history file that I maintain, and to check for broken links.
> I will post the contents of that file in the next post.

This is fabulous, Michael! I had not seen your history file before. I
can see how I am going to spend the next few days, and this will be a
great source for a talk I am giving later this year.

--
Steve Lionel
Retired Intel Fortran developer/support
Email: firstname at firstnamelastname dot com
Twitter: @DoctorFortran
LinkedIn: https://www.linkedin.com/in/stevelionel
Blog: http://intel.com/software/DrFortran

Lynn McGuire

unread,
Mar 22, 2019, 8:24:59 PM3/22/19
to
I learned Fortran IV in 1975 using the 1972 "A Guide to Fortran IV
Programming" book written by Daniel McCracken:
https://www.amazon.com/guide-Fortran-IV-programming/dp/0471582816

Lynn



JCampbell

unread,
Mar 24, 2019, 3:45:32 AM3/24/19
to
This documenting of the "History of Fortran" is very interesting, especially to me in how it has been described.

I find it very interesting to try and understand how the language definition has changed and what might have been the influences on those changes.

While hoping not to veer off into other topics, has there been any attempts to describe how Fortran has been used ?
Perhaps this should be another aspect of the "History of Fortran", though I am interested in how this aspect relates to the changing definition.

FortranFan

unread,
Mar 25, 2019, 10:37:23 AM3/25/19
to
On Sunday, March 24, 2019 at 3:45:32 AM UTC-4, JCampbell wrote:

> .. has there been any attempts to describe how Fortran has been used ?
> Perhaps this should be another aspect of the "History of Fortran", though I am interested in how this aspect relates to the changing definition.

One particular view into how Fortran is used now is provided by GitHub: a quick glance suggests over 2,800 repositories of Fortran codes and it's a growing list which is a good sign, even if code repositories of other languages such as C++, Python, etc. are growing much more rapidly.

The mostly recently updated Fortran repositories in GitHub include:

* A GTK / Fortran binding,
* A parallel particle-in-cell library in Fortran,
* A parallel neural net microframework,
* UVLM, a Parallel, Object oriented implementation of the Unsteady Vortex Lattice method for aerodynamic analysis of a single wing under generic 3D motion
* Container data structure types for Fortran,
* Fortran code to generate molecular cross-sections using line lists in the ExoMol format
* ..

Above is a rather impressive list and one can start to notice in these GitHub project sources certain common traits:
* type-safe codes with (mostly) portable data type and kinds,
* free-form source with developers-own (and mostly consistent) coding styles including the casing of object names, language tokens, etc.
* structured constructs and considerable avoidance of GOTOs,
* modular programming
* increasing use of object-oriented design and its principles
* increasing use of parallel programming and framework
* increasing application of functional programming concepts via PURE and ELEMENTAL procedures,
* use of standard facilities for interoperation with a C companion processor,
* continued focus on computing efficiency and robustness,
* liberal utilization of super array handling facilities in Fortran,
* ..

which is all highly encouraging and validating of the effort to advance Fortran since the 1978 revision.

Kudos to all those who have worked on the Fortran standard committees starting with Fortran 90.

The complaints with the state of the language today with Fortran 2018 which are mostly along the lines of ".. could have done more" (a la a scene in that touching movie about one of the most horrific chapters in human history) can be seen as encouragement for further and *faster* development of the language.

Beliavsky

unread,
Mar 25, 2019, 2:13:46 PM3/25/19
to
On Sunday, March 24, 2019 at 3:45:32 AM UTC-4, JCampbell wrote:

> While hoping not to veer off into other topics, has there been any attempts to describe how Fortran has been used ?

Below is a list from https://www.g95.org/g95_status.shtml . I remember the good old days when Fortranners from time zones around the world (U.S., Europe, Australia) would bombard the primary developer of g95 with bug reports which he would fix almost daily. I will always be grateful to him and hope he resurfaces online. Of course, gfortran forked from g95 and continues to advance.

Code that works with g95
LAPACK -- Linear Algebra PACKage.
LAPACK95 - a Fortran 95 interface to the Fortran 77 LAPACK library.
FMLIB - Multiple Precision Arithmetic
ASTEROIDS for Xwindows
NUMERICAL RECIPES
Netlib Fortran benchmark programs
Fortran Execution Time Benchmarks at Polyhedron
DISLIN Scientific Data Plotting package
SIESTA quantum chemistry package
PWscf ab-initio electronic structure calculations
ABINIT, an Ab initio DFT package
CP2K - a DFT package for atomistic and molecular simulations of solid state, liquid, molecular and biological systems
GYRO, tokamak turbulence code (simulates electromagnetic plasma turbulence)
MPICH - a portable implementation of MPI, the Standard for message-passing libraries
UMFPACK - Sparse unsymmetric linear solver
Fortran 95 example programs from Loren Meissner's book, Essential Fortran 90 and 95, (1997, ISBN 0-9640135-3-3)
ASTEC - Accident Source Term Evaluation Code for simulating severe accidents in light water nuclear reactors
BLAS - Basic Linear Algebra Subprograms, from Netlib. The blas_95.f90 and smart BLAS95 packages are also available.
GATOR, coupled-cavity travelling wave tube simulation-- an E&M code
CUTEr - a testing environment for mathematical programming
GALAHAD - a library of solvers for nonlinear programming
VASP/VAMP - Ab initio molecular dynamics package
BOM - the Bergen Ocean Model
NetCDF - a library for the creation, access, and sharing of scientific data. For help with compiler options go here
ASW, ab initio package for very fast all-electron electronic structure calculations
Pencil Code, a high-order finite-difference code for compressible hydrodynamic flows with magnetic fields
MA41 (unsymmetric), and MA57 (symmetric) sparse direct solvers from the HSL2002 library
Arprec - arbitrary precision numerical calculations
CAMB - cosmology code for anisotropies in the microwave background
CASTEP - ab initio quantum mechanical DFT package
SANDER - a program for molecular dynamics simulations, included in the AMBER package (version 9)
Octave - a Matlab-like numerical computation package
FUN3D - NASA aerodynamic and aerothermodynamic analysis and design codes
Bil Kleb, one of the developers, wrote:
The g95 compiler is one of only two compilers that have been able to compile the FUN3D suite of codes without encountering an internal compiler error. Thanks to agile software development practices, the FUN3D suite of codes have revealed compiler bugs in nearly every Fortran compiler: Intel, Portland Group, Absoft, Cray, DEC, SGI, Sun, HP, IBM, PathScale, NAG, NAS, and Salford. Lahey-Fujitsu is the only other one we haven't been able to break yet.
SPECFEM3D_GLOBE - an earthquake simulation package. Simulates seismic wave propagation on regional and local scales. SPECFEM3D_BASIN simulates global and regional seismic wave propagation.
SLICOT - subroutine library for computations in systems and control theory.
PHASE - a quantum mechanical DFT package from Japan.
ROMS -Regional Ocean Model System
CLaMS - Chemical Lagrangian Model of the Stratosphere, a spatially highly resolved and chemically detailed model for simulating the processes responsible for the "ozone hole" and the future evolution of the ozone layer.
f90gl - a Fortran 90 interface to OpenGL
Eta - a weather prediction model at the National Weather Service's National Centers for Environmental Predictions. (NCEP).
WRF - Weather Research and Forecasting Model developed by several agencies such as NOAA, NCAR, NASA, DoD-AFWA and several universities.
P-STAT - Princeton statistics package
Synergia - Code for simulating the behavior of particle beams in accelerators.
CWP/SU - an instant seismic processing and research environment developed at the Center for Wave Phenomena, Colorado School of Mines
LAM/MPI - an open-source implementation of the Message Passing Interface environment for running applications on clusters.
CUBPACK - code for the automatic integration of functions in one or more dimensions
ar-HRT-1 - an implementation of the Hierarchical Reference Theory for one-component fluids. (Hint: compile with -fno-backslash)
BUFR & GRIB - encoding/decoding software developed by the European Centre for Medium-Range Weather Forecasts
OCTOPUS - code for ab initio virtual experimentation using time-dependent DFT and pseudopotentials
GAMESS - General Atomic and Molecular Electronic Structure System, a general ab initio quantum chemistry package
SLATEC - Common mathematical library
FVCOM - a finite-volume, three-dimensional ocean model
METRAS & MITRAS - meteorological models from the Meteorological Institute, University of Hamburg
MUMPS - MUltifrontal Massively Parallel sparse direct Solver
Caesar - a program designed to analyse the infrared behaviour of QCD jet-observables in a range of processes
Source code for Rich Townsend's Fortran 95 module iso_varying_string.f95
TALYS - software for the simulation of nuclear reactions
Spherepack - a collection of programs for modeling geophysical processes.
BRAMS - Brazilian Regional Atmospheric Model and System
GCM ModelE - coupled atmosphere-ocean models from NASA
f2py - Fortran to Python interface generator, now included in the NumPy scientific computing package.
MSLIB - Space dynamics library from Centre National d'Etudes Spatiales, France
PGPLOT - Graphics subroutine library for making simple scientific graphs. Details are provided here.
COCO - Conditional Compilation program by Dan Nagle
NJOY - Nuclear Data Processing System
NBODY6 - Simulations of many-body (N-body) gravitational interactions by Svere Aarseth
Gaussian 03 - A quantum mechanics based electronic structure program. Predicts the energies, molecular structures, and vibrational frequencies of molecular systems, along with numerous molecular properties.
HDF5 - a general purpose library and file format for storing scientific data
THERMIX - German code for calculating steady state and transient heat transport in helium-cooled, graphite moderated High Temperature Reactors (nuclear reactor).
NEMO - Nucleus for European Modelling of the Ocean, a state-of-the-art modeling framework for oceanographic research and operational oceanography.
Flash - a state-of-the-art simulator code for solving nuclear astrophysical problems related to exploding stars
XPLOR-NIH - a structure determination program which builds on the X-PLOR system for computational structural biology
GILDAS - a collection of software for (sub-)millimeter radioastronomical applications
INTERACTER - user-interface and graphics subroutine library for g95 (MinGW)
nextnano3 - Schroedinger-Poisson solver for three-dimensional nano semiconductor devices, developed by the Walter Schottky Institute (TU Munich)
CASINO - the Cambridge quantum Monte Carlo code
OSA 5.0 - Off-line Scientific Analysis software, by INTEGRAL Science Data Centre, Switzerland
MATRAN - a Fortran 95 wrapper that implements matrix operations using Lapack and Blas
TORUS - 3-dimensional radiative-transfer code
EXCITING - full-potential linearised augmented-planewave density functional theory (DFT) code
MODFLOW-2000 - a three-dimensional finite-difference ground-water flow model, by the U.S. Geological Survey
Elmer - Finite Element solver for multiphysical problems, including fluid dynamics, structural mechanics, heat transfer, electromagnetics and acoustics
Supersphplot - a visualisation tool for output from astrophysical simulations using the Smoothed Particle Hydrodynamics method
NCARG - National Center for Atmospheric Research graphics package
KOPRA - Karlsruhe Optimized and Precise Radiative transfer Algorithm for atmospheric radiative transfer modelling in the mid-infrared spectral range
OptoCad - Fortran 90 code for tracing Gaussian beams through an optical setup
I3RC - community Monte Carlo model for 3D radiative transfer
FDS - Fire Dynamics Simulator from NIST
HEALPix - Hierarchical Equal Area isoLatitude Pixelization of a sphere
VULCAN - Viscous Upwind ALgorithm for Complex Flow ANalysis; a turbulent, non-equilibrium, finite-rate chemical kinetics, Navier-Stokes flow solver
R - a free software environment for statistical computing and graphics
For2R - a Fortran 95 module containing routines intended to ease transfer of data from Fortran programs to the R system
HimenoBMTxp - Fortran code to solve Poisson's equation, adapted as a benchmark
SHTOOLS - Tools for working with spherical harmonics
Simplicial package - implements a PL continuation method, whose objective is to follow the zero path of an homotopy connecting two problems
TOUGH2 - a general-purpose numerical simulation program for multi-phase fluid and heat flow in porous and fractured media
SPheno - calculates the SUSY spectrum, using low energy data and a user supplied high scale model as input; the spectrum is used to calculate two- and three body decay modes of a supersymmetric particle as well as of Higgs bosons
EMPIRE - a modular system of nuclear reaction codes for advanced modeling of nuclear reactions
EXC - an exciton code for calculating ab initio, the dielectric and optical properties, like absorption, reflectivity, refraction index, electron and X-ray energy loss, of a large variety of systems, by solving the Bethe-Salpeter equation
MECCA - Module for Efficiently Calculating the Chemistry of the Atmosphere
ProtoFit - a tool for optimization of surface protonation models from acid-base titration data
PARSEC - a DFT code that solves the Kohn-Sham equations by expressing electron wave-functions directly in real space
Dolfyn - Computational Fluid Dynamics project
Winteracter - a modern GUI toolset for Fortran 90/95. G95 support is provided in v7.0a on Linux and Mac OSX.
CRTM - Community Radiative Transfer Model, used in numerical weather prediction systems to simulate radiances and radiance gradients (or Jacobians) at the top of atmospheres for satellites. Developed at the US Joint Center for Satellite Data Assimilation.
Ariane - a FORTRAN code dedicated to the computation of 3D streamlines in a given velocity field, as the output of an Ocean General Circulation Model
LABROC4 & PROPROC - radiology programs for ROC analysis (decision theory)
SSDRUP - a Fortran 90 code for 2D Steady State Dynamic Rupture Pulses
Copygb - NOAA program to convert grids of a grib file to a latitude-longitude grid
IAPP - International ATOVS Processing Package for retrieving atmospheric temperature and moisture profiles, total ozone and other parameters in both clear and cloudy atmospheres
ZZ DROSG-2000 - Legendre Coefficient Library for 59 monoenergetic neutron source reactions
CALENDF-2002 - Nuclear Data Processing System
PENELOPE - code for Monte Carlo simulation of coupled electron-photon transport in arbitrary materials and complex quadric geometries
FTPC - a program package for Time Projection Chamber analysis written in F
HJPACK - sofware for numerical experiments on Hamilton-Jacobi equations in 1D and 2D
GINO - a suite of high-end development tools for creating complex 2D and 3D graphics and GUI applications
PVM - Parallel Virtual Machine, a software package that permits a heterogeneous collection of Unix and/or Windows computers hooked together by a network to be used as a single large parallel computer
gt4f90io - a Fortran90 netCDF I/O library with gtool4 conventions; provides a self-descriptive storage format for gridded data used in geophysical sciences
HadCM3 - Hadley Centre Coupled Model, version 3, a coupled atmosphere-ocean general circulation model
GrWin - free graphics library for Fortran and C/C++ graphics programming on Windows, by Tsuguhiro Tamaribuchi
PARF - implementation of the Random Forests algorithm for classifying large quantities of data
Gplot - a Fortran 95 plotting library that invokes Bob Parker's plotxy to output a postscript file or display a graph with gsview
JADSPE - a package of eight programs to process multichannel gamma-ray spectra
CrysFML - a crystallographic library in modern Fortran
GotoBLAS - a fast implementation of the Basic Linear Algebra Subroutines
PEST - a free nonlinear parameter estimation and model calibration package, commonly used in groundwater and surface water modeling projects
Gaussquad - a Fortran 95 module that generates all of the classical Gauss quadrature rules
Athena Visual Studio - a software package for parameter estimation, model discrimination and optimal experimental design
CRYSTAL - code for computing the electronic structure of periodic systems within Hartree Fock, density functional or various hybrid approximations
PHOENIX - a general-purpose state-of-the-art stellar and planetary atmosphere code
PCHAN - code for modeling turbulent flows by direct numerical simulation
DL_POLY - a general purpose serial and parallel molecular dynamics simulation package
CHARMM - Chemistry at HARvard Macromolecular Mechanics, a general purpose molecular mechanics, molecular dynamics and vibrational analysis package
GAMESS-UK - a general purpose ab initio molecular electronic structure program
Japi - an open source free software GUI toolkit allowing the development of platform independent applications
WanT - an open source electronic structure DFT code
Starlink - a set of data reduction and analysis tools developed for astronomers in the UK
DIRECT - Joerg Gablonsky's DIRECT optimization package
CHIMERE - multi-scale chemistry transport model for air quality forecasting and simulation
AGRIF - Adaptive Grid Refinement In Fortran, a package for including adaptive mesh refinement (AMR) features within a finite difference numerical model
Xspec - X-Ray Spectral Fitting Package, a mission independent general purpose analysis environment for X-Ray spectra
ELSTRU - a software package for validating crystal structure models with electron diffraction patterns
CosmoMC - a Markov-Chain Monte-Carlo engine for exploring cosmological parameter space
CATHARE - a code to calculate transient thermal hydraulics in nuclear reactors
ROPP - Radio Occultation Processing Package for assimilation of radio occultation data in numerical weather prediction models
SIB-PAIR - a program for elementary genetical analyses
MIRIAD - Multichannel Image Reconstruction, Image Analysis and Display, a toolbox for image analysis of interferometric data
Dalton - a powerful molecular electronic structure program
Dirac - a code for relativistic molecular calculations based on the Dirac-Coulomb Hamiltonian
PQS - an ab-initio and DFT quantum chemistry electronic structure program
CLM3 - Community Land Model for the CCSM and CAM climatology projects
FEQ - unsteady-flow modeling system
Molpro - a system of ab initio programs for molecular electronic structure calculations
Wannier90 - code for calculating maximally-localised Wannier functions
GiBUU - transport model for nuclear particles by the Institut f?r Theoretische Physik, JLU Giessen
FeatFlow - solver package for incompressible flow in 2D and 3D
smart BLAS95 - another Fortran 95 interface to the BLAS linear algebra package
MCTDH - Multi Configuration Time Dependent Hartree, a general algorithm to solve the time-dependent Schr?dinger equation for multidimensional dynamical systems consisting of distinguishable particles
DEAD - Dust Entrainment and Deposition Model, a wind erosion and mineral dust transport model
PAW - a physics analysis package developed at CERN to handle high energy physics data
FLIPS - a Fortran Linear Inverse Problem Solver
Porcelly Model - a code for computing conditions needed to trigger a sawtooth crash in tokamak plasmas
WTTS - Window To The Stars, a graphical front end to the TWIN stellar evolution code
Exflib - multiple-precision arithmetic library for Fortran 90/95
RTTOV - a radiative transfer model
Acoustic Toolbox - acoustic propagation code, from HLS Research
NMFF - a package for flexible multi-resolution fitting of large atomically detailed structures into electron density maps from cryoEM, tomography and related lower resolution methods
UTCHEM - a chemical compositional reservoir simulator from the University of Texas CPGE
GULP - a program for solid simulation using lattice dynamics
CEA - Chemical Equilibrium with Applications, a NASA program which calculates chemical equilibrium product concentrations from any set of reactants and determines thermodynamic and transport properties for the product mixture
SWAN - a wave model for the simulation of waves in waters of deep, intermediate and finite depth
Fresco - a program to perform coupled-reaction channels calculations in nuclear physics
CLAVR-x - programs for processing satellite data on clouds and climate
Scilab - an open-source scientific software package for numerical computations
SDP - SeaWinds Data Processor, a Fortran 90 package for processing scatterometer data used in weather prediction
JMATRIX - a program for calculating scattering phase shifts using the J-matrix method (relativistic and non-relativistic versions)
SELF - code for Many-Body calculations in solid state physics
WIEN2k - a program package for electronic structure calculations of solids using density functional theory (DFT)
Bernese GPS Software - a high performance reference GPS and GLONASS post processing package
FoX - a library designed to allow easy use of XML from Fortran programs
Dassflow - software for numerical simulation of river hydraulics with variational data assimilation
OTIS 4 - Optimal Trajectories by Implicit Simulation, a NASA program designed to simulate and optimize trajectories of launch vehicles, aircraft, missiles, satellites, and interplanetary vehicles
DTDM - Dynamics and Thermodynamics Demonstration Model, a simple 2D model for illustrating basic atmospheric sciences
TURBOPAIR - Qunatum Monte Carlo software for electronic structure calculations
QuickBeam - radar simulation software
SEM2DPACK - 2D Spectral Element Method code (in Fortran 90) and utilities for the study of seismic wave propagation in sedimentary basins and earthquake dynamics.
FELO - A one-dimensional, SDDS compliant, time-dependant free electron laser oscillator code
TAU - a portable profiling and tracing toolkit. To use with g95, configure with: % configure -fortran=g95 [... other flags]
MM5 - a limited-area, nonhydrostatic, terrain-following sigma-coordinate model designed to simulate or predict mesoscale atmospheric circulation.
MCNPX - a general-purpose Monte Carlo radiation transport code for modeling the interaction of radiation with everything
CABLE - Community Atmosphere Biosphere Land Exchange land surface model
DOUG - Domain Decomposition on Unstructured Grids
mpiSim - simulates a subset of MPI library routines
Whizard - a generic Monte-Carlo generator for multi-particle processes at high-energy colliders
DIF3D - a computer program to solve the neutron diffusion equation. Developed by Argonne National Laboratory
MathCode F90 - generates optimized Fortran 90 code that can be compiled and connected seamlessly into Mathematica
GlobSol - asystem for solving global optimization problems in a validated way using interval arithmetic
ESME - an accelerator beam simulation program
MESA - Modules for Experiments in Stellar Astrophysics
Dacapo - a total energy program based on density functional theory
Forthon - Python interface generator for Fortran based codes
Eiger - integral equation code for frequency-domain electromagnetics and electrostatics
SunShell - Nuclear Shell Model Codes
SAGE - Open Source Mathematics Software
SNOPT - sparse nonlinear programming package from UCSD & Stanford U.
DDSCAT - a Fortran code for calculating scattering and absorption of light by irregular particles
SPLASH - a visualisation tool for astrophysical simulations
Eigenray - acoustic ray propagation code for calculating the basic properties of rays over long ranges in deep water
SYNAPS - a library devoted to symbolic and numeric computations
Tetra - Computational Fluid Dynamics code for Direct Numerical Simulation and adjoint based optimization.
Princeton Ocean Model (POM) - ocean modeling code
MCNPX - Monte Carlo Neutral Particle transport with high-energy physics extensions
ERANOS 2.0 - a code suite for fast reactor neutronics and reactor physics calculations
MUESLI - a free numerical and graphical library, written mainly in Fortran 95. Very close to MATFOR which allows a MATLAB-like syntax in the Fortran code.
NIST - F77 test suite

dpb

unread,
Mar 25, 2019, 3:59:48 PM3/25/19
to
On 3/24/2019 2:45 AM, JCampbell wrote:
...

> While hoping not to veer off into other topics, has there been any
> attempts to describe how Fortran has been used?
> Perhaps this should be another aspect of the "History of Fortran",
> though I am interested in how this aspect relates to the changing
> definition.


While I've been out of the field for 30+ years now, the vast majority of
nuclear design codes were at least initially all FORTRAN and there's the
depository at RISC at ORNL of current versions.

What the code base itself now consists of I can't say, but I'd wager a
high fraction of them still have the basic FORTRAN core underlying them.

All the reactor vendors had their own proprietary versions of the major
Bettis/WAPD packages that were initially developed in large part for the
Nuclear Navy plus all their own specific-purpose codes.

Where they've migrated to since I don't know but can't imagine all the
code base has been totally tossed overboard even if user interfaces and
such have been written in C++ or whatever.

--

jfh

unread,
Mar 25, 2019, 5:16:46 PM3/25/19
to
One influence on Fortran that seems to have been written out of its history is MIL-STD-1753 (9 November 1978), a supplement to the f77 standard that introduced
END DO, DO WHILE, INCLUDE, IMPLICIT NONE, bit manipulations, and reading and writing past end-of-file on an unlabeled magnetic tape sequential file.

Jeff Ryman

unread,
May 24, 2019, 7:40:53 PM5/24/19
to
RSICC (now named the Radiation Safety Information Computational Center)still maintains a large library of nuclear codes and related data at https://rsicc.ornl.gov/Default.aspx. However, two codes, MCNP (from Los Alamos National Laboratory) and SCALE (really a system of codes from Oak Ridge National Laboratory) now comprise over 90% of the requests that are filled. MCNP is written in Fortran, but SCALE (and AMPX a cross section code system included with SCALE) are now written in both C++ and Fortran. It is gradually migrating to a system that will be primarily (if not completely) in C++, apparently because newer programmers involved with SCALE and the managers of the project are more familiar with or more inclined to use C++. In my opinion, this has a significant downside in that whenever codes are rewritten there is inevitably more opportunity for new errors to be introduced as it is impossible to exhaustively test all combinations of code options. This was certainly demonstrated during the transition from FORTRAN 77 to Fortran 9x for both MCNP (v4x to v5x) and SCALE (v4x to v5x) which were not even complete rewrites.

ga...@u.washington.edu

unread,
Jun 3, 2019, 4:05:46 AM6/3/19
to
On Friday, May 24, 2019 at 4:40:53 PM UTC-7, Jeff Ryman wrote:

(snip)

> MCNP is written in Fortran, but SCALE (and AMPX a cross section code
> system included with SCALE) are now written in both C++ and Fortran.
> It is gradually migrating to a system that will be primarily
> (if not completely) in C++, apparently because newer programmers
> involved with SCALE and the managers of the project are more familiar
> with or more inclined to use C++.

> In my opinion, this has a significant downside in that whenever
> codes are rewritten there is inevitably more opportunity for new
> errors to be introduced as it is impossible to exhaustively test
> all combinations of code options.

> This was certainly demonstrated during the transition from
> FORTRAN 77 to Fortran 9x for both MCNP (v4x to v5x) and SCALE
> (v4x to v5x) which were not even complete rewrites.

Certainly there is the probability to add new errors, but there is
also the possibility of finding bugs that weren't previously detected.

There have been many stories both ways.

It is hard to say in advance which which way the results
will go.

Beliavsky

unread,
Jun 14, 2019, 4:44:28 PM6/14/19
to
Stuart Feldman has recently joined Citadel, a large hedge fund and market-maker. He wrote the make utility and the first Fortran 77 compiler, according to Wikipedia. An interview with him from 1989, covering his experience with Fortran among other things, is at https://www.princeton.edu/~hos/mike/transcripts/feldman.htm .

0 new messages