Skip to content

interkosmos/awesome-fortran-77

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 

Repository files navigation

Awesome FORTRAN 77 Awesome

A curated list of awesome FORTRAN 77 libraries, tools, and resources.

Contents

Compilers

Free Compilers

  • BC-FORTRAN 77 (DOS) – Freeware compiler/linker, supporting the ANSI/ISO FORTRAN 77 language standard only. Written by Andre Koestli.
  • DJGPP (DOS) – 32-bit C/C++ and Fortran development environment for Intel 80386 PCs running DOS.
  • g77 (DOS, Win32, Linux, UNIX) – The open-source FORTRAN 77 compiler of the GNU Compiler Collection (GCC) prior version 4.0. Has been replaced by GNU Fortran since then. Available for Win32 through MinGW or Cygwin.
  • lcc-win32 (Win32) – C and FORTRAN development environment, by Jacob Navia.
  • Open Watcom FORTRAN 77 (DOS, OS/2, Win32, Linux) – Multi-platform open-source compiler, based on the commercial Watcom FORTRAN 77. Includes the DOS/4GW 32-bit DOS extender with run-time and virtual memory support up to 32 MiB.

Commercial Compilers

  • Absoft ProFortran F77 (DOS, Win32, MacOS 7.5, Linux) – Full ANSI/ISO FORTRAN 77 compiler with VAX/VMS language extensions; Cray pointers; Sun, IBM, and HP extensions; and LS Fortran language extensions.
  • Apogee-FORTRAN 77 (UNIX) – Supports almost all language extensions found in Sun, VAX/VMS, Cray, and MIL-STD 1753 FORTRAN 77.
  • Fujitsu Fortran (Linux) – Fortran 90/95 compiler with FORTRAN 77 support.
  • Lahey F77L3-EM/32 (DOS) – Highly optimised 32-bit FORTRAN 77 compiler for DOS that supports the full ANSI standard and the most popular DEC VAX, IBM VS, and Fortran 90 features. Includes a basic graphics library. The more advanced Graphoria library was sold separately.
  • Microsoft FORTRAN 5.1 (DOS, OS/2, Win16) – Microsoft’s implementation of a FORTRAN 77 compiler. The compiler provides its own HIMEM.SYS to access up to 16 MiB of real memory.
  • Microway NDP Fortran (DOS, Win32, OS/2, Linux, UNIX) – Globally optimising VMS-compatible compiler that supports Intel, Cyrix, and Weitek co-processors. Full FORTRAN 77 support with DOD, FORTRAN 66, BSD4.2, and VMS extensions. Linkable with NDP C/C++/Pascal. Includes linker, DOS extender, and librarian.
  • Prospero Pro Fortran-77 (DOS, OS/2) – FORTRAN 77 development environment that includes compiler, linker, librarian, source level debugger and IDE. The F77PC Graphics BIOS Library even provides “turtle graphics”, better known from the Logo programming language. Prospero also published FORTRAN 77 compilers for Atari ST, OS/2, and Sinclair QL. An optional DOS Extender Kit was available. The PC version was supported until 2003.
  • Ryan-McFarland RM/FORTRAN (DOS) – Supports the full ANSI FORTRAN 77 standard and includes popular extensions from VAX, VS, and FORTRAN 66. Featured code optimisation and floating-point co-processor support/emulation.
  • Salford FTN77 (DOS, Win32, UNIX) – The FTN77 compiler uses the Salford-developed DBOS extender. Later versions of FTN77 were ported to Win32 and UNIX. A personal edition is available free of charge.
  • SNI F77 (Linux) – Optimised compiler for Intel 486/586/686, developed by Siemens Nixdorf Informationssysteme.
  • Sun WorkShop Compiler FORTRAN 77 (UNIX) – ANSI FORTRAN 77 compiler, with VMS, Cray, and MIL-STD 1753 extensions; POSIX binding; and interlanguage calling (C, C++, Pascal, Ada).
  • The Portland Group PGF77 Workstation (Win32, Linux, UNIX) – SMP-parallel FORTRAN 77 compiler for Intel Pentium Pro processors.
  • Watcom FORTRAN 77 (DOS, OS/2, Win16, Win32) – 32-bit protected-mode compiler that supports up to 4 GiB memory. Run-time compatible with Watcom C. Includes source-level debugger, full ANSI FORTRAN 77 language support plus extensions, profiler, IBM SAA compatibility, linker, librarian, and make utility. Requires 386/486 and DOS extender. In 2003, the compiler was made available free of charage as Open Watcom.
  • Watcom WATFOR-77 (DOS) – FORTRAN 77 compiler for MS-DOS PCs with 8087/80287 floating point co-processors.

Translators

  • C2F (Win32) – David Frank’s C to FORTRAN 77 translator.
  • f2c (DOS, Win32, Linux, UNIX) – An open-source FORTRAN 77-to-C transpiler. The output can be compiled with any K&R or ANSI C compiler. Mac F2C is a version for Mac OS.
  • f2cl – A FORTRAN 77 to Common Lisp translator.
  • f2cpp – Perl script to convert FORTRAN 77 to C++ (requires GNU Fortran runtime).
  • f2go – FORTRAN 77-to-Go translator.
  • f2j – FORTRAN 77-to-Java converter.
  • f2j – Another FORTRAN 77-to-Java converter of the same name.
  • F2perl – Perl script to translate FORTRAN 77 into Perl.
  • F2PY – Fortran to Python interface generator.
  • f2what – Project to translate algorithmic Fortran to a variety of languages (Java, .NET, and VBA so far). It offers a FORTRAN 77 parser with code transformations, variable disambiguation, and modular output to other programming languages.
  • ForToPas – A Fortran to Pascal (Delphi) converter.

Pre-Processors

  • Ratfor – Translates programs written in the Ratfor language into FORTRAN 77 programs. Originally developed by B. Kernighan and P. J. Plauger.

Code Generators

  • avr-gfortran – Pseudo-FORTRAN 77 compiler for Atmel AVR microcontrollers, written in Fortran using GNU Fortran.

Codes

Repositories & Directories

Numerical Codes

  • ADIFOR – Automatic differentiation of FORTRAN 77 programs.
  • ALFPACK – Legendre functions of first kind.
  • ARPACK – Collection of FORTRAN 77 subroutines designed to solve large scale eigenvalue problems.
  • ARPACK-NG – Replacement of ARPACK.
  • ASAD – Software package developed for creating and integrating chemistry schemes in atmospheric models without the need to write any FORTRAN code to solve the chemical rate equations.
  • ATLAS – Optimised BLAS implementation.
  • Aztec – An iterative sparse linear solver package.
  • BIFPACK – Package for bifurcation, continuation and stability analysis.
  • BLAS – Reference implementation of the Basic Linear Algebra Subprograms.
  • BiM – Implements a variable order-variable stepsize method for (stiff) initial value problems for ODEs.
  • CERNLIB – CERN general-purpose program library.
  • CHOL-REV – Reverse-mode routine written in FORTRAN 77 which uses blocked level-3 BLAS routines.
  • CMLIB – NIST core math library.
  • DAEPAK – Differential algebraic equations.
  • DASPK – Differential-algebraic system solver (BDF/Krylov method).
  • DATAPAC – FORTRAN 77 statistical library, by James Filliben (NIST).
  • DCDFLIB – Cumulative distribution functions, inverses, and parameters for common statistical distributions.
  • DEGAS 2 – Monte Carlo code for studying neutral transport in plasmas, with emphasis on fusion applications.
  • Efficient sorting routines in FORTRAN 77 – Sorting routines in FORTRAN 77 by G. T. Houlsby and S. W. Sloan.
  • EIGENTRI – Set of Fortran programs for reducing a nonsymmetric matrix to tridiagonal form, computing the eigenvalues of the tridiagonal matrix, improving the accuracy of an eigenvalue, and computing the corresponding eigenvector.
  • EISPACK – Collection of FORTRAN 77 subroutines that compute the eigenvalues and eigenvectors. Superseded by LAPACK.
  • EMMIX – Program to fit a mixture model of multivariate normal or t-distributed components to a given data set.
  • Expokit – Software package that provides matrix exponential routines for small dense or very large sparse matrices.
  • FFTPACK – FORTRAN 77 library of fast Fourier transforms.
  • FISHPAK – Subprograms for the solution of separable elliptic PDEs.
  • FMLIB – Package of FORTRAN routines for multiple precision computation.
  • FMM – Routines from the book Computer Methods for Mathematical Computations, by Forsythe, Malcolm, and Moler (1977).
  • GeographicLib – Geodesic routines implemented in FORTRAN 77.
  • GSLIB – Geostatistical Software Library. Collection of geostatistical programs developed at Stanford University.
  • GWMFE – 1D and 2D gradient-weighted moving finite element codes.
  • HSL – Collection of FORTRAN codes for large scale scientific computation.
  • HSL (Harwell Subroutine Library) – Collection of ISO FORTRAN 77 subprograms for large scale scientific computation.
  • IMSL – More than 900 FORTRAN 77 subroutines for use in general applied mathematics, statistical data analysis and presentation in scientific and business applications (commercial).
  • IRBEM-LIB – Provides routines to compute magnetic coordinates for any location in the Earth’s magnetic field, to perform coordinate conversions, to evaluate geophysics/space-physics models, and to propagate orbits in time.
  • ITPACK – Subroutines for solving large sparse linear systems by iterative methods.
  • JTPACK77 – Various FORTRAN routines, with BLAS/LAPACK-like functionality.
  • LAIPE – High-performance package of parallel direct solvers.
  • LANCELOT – Standard FORTRAN 77 package for solving large-scale nonlinearly constrained optimisation problems.
  • LAPACK – Subroutines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems.
  • LINPACK – Collection of Fortran subroutines that analyse and solve linear equations and linear least-squares problems. Superseded by LAPACK.
  • MCLUST/EMCLUST – Model-based clustering and discriminant analysis, including hierarchical clustering and EM for parameterized Gaussian mixtures and Poisson noise.
  • MCHF – Multi-configuration Hartree-Fock (MCHF) atomic-structure package that determines radial functions that define the orbitals of configuration states in the expansion of a non-relativistic wave function of a many-electron system.
  • MGMPI – Parallel multigrid solver for 3D elliptic problems.
  • MINPACK – Subroutines for solving nonlinear equations and nonlinear least squares problems.
  • MINUIT – Numerical minimisation program, by CERN.
  • MISCLIB – Miscellaneous FORTRAN routines for statistical software.
  • MPFUN77 – Multiple precision arithmetic in FORTRAN 77.
  • MUDPACK – Multigrid software for elliptic PDEs.
  • NCARM – Non-portable math library that is very Cray parallel-vector specific, and dates back to the mid-1970s.
  • ODEPACK – FORTRAN 77 library which implements a variety of solvers for ODEs.
  • PIM – Collection of FORTRAN 77 routines designed to solve systems of linear equations (SLEs) on parallel computers using a variety of iterative methods.
  • PSIDE – Parallel software for implicit differential equations.
  • QUADPACK – Subroutine package for the numerical computation of definite one-dimensional integrals.
  • REGRIDPACK – FORTRAN 77 routines for interpolating values between one-, two-, three-, and four-dimensional arrays defined on uniform or nonuniform orthogonal grids.
  • SCILIB – Portable FORTRAN emulation of Cray SCILIB.
  • SLATEC – Comprehensive software library containing over 1400 general purpose mathematical and statistical routines written in FORTRAN 77.
  • SLEIGN2 – Sturm-Liouville problems.
  • SLICOT – Provides FORTRAN 77 implementations of numerical algorithms for computations in systems and control theory.
  • SPARSEKIT – Basic tool-kit for sparse matrix computations.
  • SPBLAS – Sparse matrix computational kernels.
  • SPECFUN – Library that include Bessel functions, exponential integrals, error and error-related functions, and gamma and gamma-related functions. Replaces the old AMOSLIB and FUNPACK.
  • SPHEREPACK – Collection of FORTRAN programs that facilitates computer modeling of geophysical processes.
  • STARPAC – Time-series and regressions package.
  • StatLib – Collection of algorithms published in the journal Applied Statistics between 1968 and 1994, mostly in FORTRAN (AS1 – AS319).
  • STSPACK – FORTRAN 77 statistical library, by Charlie Reeves (NIST).
  • Timeslap – Time series analysis package by H. Joseph Newton to accompany his book “Timeslab: A Time Series Analysis Laboratory” (1988).
  • Tinker – General package for molecular mechanics and dynamics, with some special features for biopolymers.
  • TLCPACK – Suite of FORTRAN 77 routines for interpolating values between one-, two-, three-, and four-dimensional arrays defined on uniform and nonuniform orthogonal grids.
  • TOMS – Collected algorithms of the ACM.
  • TRNFSP3N – FORTRAN 77 source code for transforming GPS orbit files in SP3 format between different realisations of ITRFs.
  • UMFPACK – Set of routines for solving unsymmetric sparse linear systems.
  • WSMP – A collection of algorithms for efficiently solving large sparse systems of linear equations.

Computer Science

  • Genetic Algorithm (GA) Driver – FORTRAN 77 implementation of a genetic algorithm driver program that provides an environment (function) in which a population must evolve, by David L. Carroll.

Cryptography

  • Fortran77-Enigma – Enigma machine emulator in FORTRAN 77.
  • Lucifer – Implementation of Arthur Sorkin’s variant of the Lucifer block cipher, a direct predecessor of DES, ported from FORTRAN IV to FORTRAN 77.

Pseudo-Random Number Generators

  • ACORN – Original FORTRAN 77 version of the Additive Congruential Random Number (ACORN) generator, by R. S. Wikramaratna.
  • Mersenne Twister – Various adaptions of the Mersenne Twister (MT19937), collected by Makoto Matsumoto.
  • Park–Miller – FORTRAN 77 adaption of the “Integer Version 2” PRNG, originally written by Steven K. Park and Keith W. Miller in Pascal.
  • RANARRAY – Portable random number generator.
  • RANLIB – General random number generators.
  • RANLUX – Subtract-and-borrow random number generator proposed by Marsaglia and Zaman.

Graphics, Plotting, User Interfaces

  • Accis – Plotting routines for Fortran, by Ian Hutchinson.
  • DISLIN – Free high-level scientific plotting library.
  • DRAWCGM – Package of FORTRAN and C routines which can be used to create CGM metafiles.
  • EGGX/ProCALL – X11 graphics library for C and FORTRAN.
  • Fastgraph (DOS, Win32) – Proprietary graphics library for DOS and Windows (version 3.0.3). Requires Microsoft FORTRAN compiler.
  • GGG – Geneva Group Graphics library for FORTRAN and LaTeX.
  • GRAFIC – Library of interactive graphics routines for UNIX.
  • moriplot – Plotting program for Sun OS 1.4.2, by Masatake Mori.
  • OzAPI – Enables user interfaces to be developed and graphics output to be designed for FORTRAN and C programs using Tcl/Tk libraries. Includes example program in FORTRAN.
  • PBMA_IO – Read and write utilities for Portable Bit Map (PBM) files.
  • PGPLOT – Scientific graphics subroutine library for FORTRAN 77 and C.
  • PLplot – Cross-platform software package for creating scientific plots.
  • PSPLOT – Free Fortran-callable PostScript plotting library.
  • SDL 77 – FORTRAN 77 graphics and multimedia library based on SDL 1.2.
  • ThanCad Fortran Dxf Library – FORTRAN 77 library to create DXF drawings.

Message Passing

  • F77_ZMQ – ZeroMQ bindings for FORTRAN 77.
  • SIDL – FORTRAN 77 interface bindings to the Scientific Interface Description Language of the Babel middleware.

Databases

  • RIM – Relational database management system, written in FORTRAN 77, by Boeing, NASA, and University of Washington.

CGI

  • AMWAVE – FORTRAN 77 POST method CGI example.
  • COLORIT – FORTRAN 77 GET method CGI example.
  • FORTRAN CGI – Native FORTRAN 77 CGI interface.

Serialisation

  • F77xml – C library designed to provide DOM parsing functionality to FORTRAN 77.
  • Harwell-Boeing – File format used to store sparse matrices.
  • NetCDF – FORTRAN 77 interface to the NetCDF library.
  • PnetCDF – Parallel I/O library for accessing NetCDF files.

System

  • ANSI.SYS – Using the ANSI.SYS driver to enhance FORTRAN 77 programs (MS-DOS).

Utilities

  • f2f90 – Utility to convert FORTRAN 77 fixed source form to Fortran 90 free source form, by Michael Metcalf, Peter A. Rochford, Ben Trettel.
  • ffixed2free – Converts FORTRAN fixed-format source code to free-format source code, by Pirmin Kaufmann and Martin Schraner.
  • findent – Indents, beautifies and relabels Fortran source, fixed and free format, and converts fixed format to free format (and vice-versa).
  • Perl for Fortran – Several Perl scripts useful when working with Fortran programs.
  • to_f90 – Tool to convert FORTRAN 77 code to free-form code, by Alan Miller.

Source Code Documentation

  • for2html – FORTRAN 77 to HTML translator.
  • ROBODoc – Documentation tool that extracts the documentation from your source code and formats it in HTML, RTF, TeX, XML DocBook (PDF), or ASCII.

Static Code Analysis

  • FLOPPY – Software tool that takes as input a file of FORTRAN 77 code and checks it according to various “coding conventions”. FLOW produces reports based on the output of FLOPPY.
  • FPT – Suite of tools for writing, maintaining, and migrating FORTRAN programs.
  • fsource – Collection of tools written in Python to parse FORTRAN 77 to Fortran 2008 programs.
  • FTNCHEK – Static analyser for FORTRAN 77 programs that is designed to detect certain errors in a FORTRAN program that a compiler usually does not.
  • i-Code CNES – Static code analysis tool to help developers write code compliant with CNES coding rules for FORTRAN 77, Fortran 90 and Shell.

Benchmarks

Editors & IDEs

  • VFort (Win32) – Programmer-oriented text editor, with g77.
  • Yapakit (Win32) – Free Fortran source code editor.

Language, FAQs, Tutorials

Introduction

Coding Style

Standards

Transition to Modern Fortran

Free Books

Games

  • Canabis (OS/2, Win32) – Tk-based Canasta card-game in FORTRAN 77.
  • COMEL – A military communications-oriented war game, developed by the Joint Telecommunications Staff Officers’ Course at Keesler Air Force Base in 1983.
  • Colossal Cave Adventure – Several FORTRAN 77 ports of the famous text adventure, originally written by Will Crowther.
  • Conway’s Game of Life – Simple implementation in FORTRAN 77 for DOS.
  • LIFE_SERIAL – Another implementation of Conway’s Game of Life, by John Burkardt.
  • Empire – Strategy and tactics war game, ported to various platforms (FORTRAN IV).
  • Hunt the Wumpus – Four implementations in FORTRAN 77, LISP, Prolog, Literate-Java.
  • Mystery Mansion – Late 1970s text-based adventure computer game written by Bill Wolpert while at the Naval Undersea Warfare Center.
  • OREGON 77 – Source port of the 1978 version of The Oregon Trail to ANSI FORTRAN 77.
  • RFK-77 (DOS) – Implementation of robotfindskitten in FORTRAN 77.
  • Rock, Paper, Scissors – FORTRAN 77 and Fortran 90/95 implementations.
  • University of Toronto FORTRAN Games – Chess, Tic Tac Toe, Minefield, and other games, some dating back to the late 70’s.
  • TREK 7 – Original multiplayer network Star Trek game from the early-mid 70s.

Humor