# Fortran Tools, Libraries, and Application Software

The Fortran Company is now offering FortranTools, a suite of tools consisting of gfortran, the open source Fortran 95 compiler with F03 and F08 features; Code::Blocks, an open source graphical user interface for editing, compiling, running, and debugging Fortran programs; GTK-Fortran; OpenMP; procedures for creating graphical input and output with Fortran programs; GNUPlot plotting; several books in electronic form; the BLAS and LAPACK libraries with the MATRAN Fortran wrapper; interval arithmetic; and other tools. FortranTools is available on Windows from the Fortran Store.

Here is a list of general libraries.

All of the libraries in this first list are free:

- RANDLIB, random number and statistical distribution generators
- BLAS
- EISPACK
- GAMS–NIST Guide to Available Math Software
- Some statistical and other routines from NIST
- LAPACK
- LINPACK
- MINPACK
- MUDPACK
- NCAR Mathematical Library
- The Netlib collection of mathematical software, papers, and databases.
- ODEPACK
- ODERPACK, a set of routines for ranking and ordering.
- Expokit for computing matrix exponentials
- SLATEC
- SPECFUN
- STARPAC
- StatLib statistical library
- TOMS
- Sorting and merging strings

The following libraries are not free:

Here are many other software tools for Fortran programmers. Some are free; some are not:

- MUESLI, a numerical and graphics library (free)
- EGGX/Procall Easy and Gratifying Graphics Library for X11
- fUnit is an xUnit-style testing framework for Fortran 90 test-driven development
- cfortran.h, which helps with interfacing Fortran with C/C++
- There is a bunch of F90 software, including least squares, quad precision, and random number generation, from Alan Miller
- FXDR, subroutines to do unformatted I/O accross platforms, provided by David Pierce at UCSD
- A program that diagrams Fortran (including Fortran 90 and 95) programs
- StopWatch, a Fortran 90 module for timing Fortran programs, developed by William Mitchell of NIST.
- A Fortran 77 quick sort and another Fortran 77 quick sort
- A random number generator in a module from George Marsaglia
- A random number generator written in Fortran 77 (or Fortran 90 fixed form).
- Another random number generator written in Fortran 77 (or Fortran 90 fixed form).
- The NAS Parallel Benchmarks
- There is a bunch of free software available on the Numerical Algorithms Group software repository and many items of related interest as well.
- A module for sets of integers
- Roman numerals module
- Floppy, a f77 coding convention checker and code tidier
- Flow, which takes output produced by Floppy and produces various reports on the structure of the original Fortran program
- David Bailey’s Multiple Precision Arithmetic Module
- Large Integers Module
- f2c, a Fortran 77 to C translator
- Fortran-M is a small set of extensions to Fortran that supports a modular approach to the design of task parallel, message-passing programs
- Three utilities provided by Michel Olagnon of Ifremer: f90ppr, a Fortran 90 preprocesor, f90split, a Fortran 90 version of fsplit, and f90tops, a Fortran 90 to PostScript converter
- PGPLOT Graphics Subroutine Library
- PSPLOT, a Fortran-callable PostScript plotting library
- A program that attempts to convert Numerical Recipes Fortran 90 code to make it compatible with the ELF90 compiler
- Here is a Fortran 77 to Java translator
- Some code that determines processor dependencies and build a usable module can be found here, compliments of Dan Nagle
- Generic linked list module provided by Peter McGavin and Roger Young
- Milan Batista of the University of Ljubljana has ported the STARLNIK GKS library onto MS Windows environment using the Compaq VC 6.x compiler: http://www.fpp.uni-lj.si/~milanb/gks/
- Milan Batista also has ported the NCAR graphics software to the Windows environment using the Compaq VC 6.x compilers. http://www.fpp.uni-lj.si/~milanb/ncarg/
- A module for checking consistency of physical units.
- A module for performing sophisticated data input operations
- F2KCLI is a free implementation of the Fortran 2000 command line interface (getting arguments from the command line)
- A version of quick sort has been contributed by Juli Rew of NCAR
- MATRAN: A matrix wrapper for Fortran 95
- John Burkardt’s huge collection of F77 code translated to free-format F90 (Lapack, Eispack, Linpack, Quadpack etc.)
- Open Directory Project: Fortran source code
- Ftcl, an interface for Tcl and Fortran from Arjen Markus
- Xeffort is a free, open source library for the creation of GUIs with Intel Visual Fortran.
- Interfaces allowing direct access to gnuplot from Fortran (for Unix).
- Posix functions in Fortran (for Linux).
- XML parser written in F by Alberto Garcia.
- XML parser written by Arjen Markus
- XML parser written by Mart Rentmeester
- HicEst is a Fortran-based Interpreter.
- make_pm generates a processor model and helps with interfacing Fortran with C/C++.
- Mathtools.net is the technical computing portal for all scientific and engineering needs. The portal is provided as a free service to the scientific community and contains useful links for technical computing programmers.
- The Fortran Interface Wizard automatically generates code for creating a Fortran DLL and interface code for using the DLL from Borland Delphi. A sample delphi project can also be generated. The program is GPL.
- COCO free source code from Purple Sage
- Abraham Agay has a Fortran 90 module implementing error analysis via interval arithmetic, and would like to get feedback from more users.
- A vectorial graphical library in DXF.
- F2PY – Fortran to Python Interface Generator
- SansGUI, from ProtoDesign, Inc., is a modeling and simulation environment for developing and deploying scientific and engineering simulators without writing any graphical user interface code. SansGUI supports Compaq Visual Fortran for creating tightly-coupled and highly interactive in-process simulators. Other Fortran compilers can be used to create external process simulators.
- DESL, an integrated data manipulation/plotting tool written in Fortran with functionality mostly related, but not limited to, wind tunnel testing of aircraft.
- A Fortran 90 syntax (lexical) coloring file for the vim text editor is available at http://www.unb.ca/chem/ajit/f90.vim. It has options for fixed source format, Fortran 95, the Lahey subset language elf90, and the Fortran Company subset language F.
- Stephen Kirkup sells and gives away Fortran codes for solving a range of physical problems by the Boundary Element Method. See the web site http://www.boundary-element-method.com.
- Here are three Makefile builders, one a perl or shell script, and the other two: a perl program, also a perl program.
- FMZM90 (related to FMLIB), provided by David Smith of Loyola Marymount University, is a Fortran-90 module that defines three derived types: multiple-precision real, multiple-precision integer, and multiple-precision complex. Interfaces are provided so that a program can declare variables to be multiple-precision types and then write the code for multiple-precision operations using normal Fortran syntax.
- Here is a Fortran 77 to Java translator.
- MarshallSoft Computing offers “SMTP Email Library for Fortran” (SEE4F), which allows the ABSOFT Fortran programmer to send email including MIME attachments. SEE4F is marketed as shareware ($95).

See http://www.marshallsoft.com/

MarshallSoft Computing

P. O. Box 4543

Huntsville AL 35815 USA

Phone 256-881-4630 880-0925 (fax)

mike@marshallsoft.com - This site at NIST contains Fortran 90 bindings for OpenGL.
- Oxford Scientific Software markets and supports GKS for Windows.
- RealWin to create real Windows Applications with Fortran.
- The Data Plotting Library DISLIN is a high-level and easy to use graphics library for displaying data as curves, bar graphs, pie charts, 3D-colour plots, surfaces, contours and maps. Several output formats are supported such as X11, PostScript, CGM, HPGL, TIFF and Prescribe. The library contains about 400 plotting and parameter setting routines and is available for several C, Fortran 77 and Fortran 90 compilers. A free version of DISLIN for the Linux F compiler is also now available.
- The Numerical Algorithms Group mathematical and statistical libraries
- FORTRAN-lint, from Cleanscape Software, is a stand-alone source code analyzer that expedites software development by simplifying the debugging and maintenance of F77 and F90 programs by detecting problems compilers cannot catch.
- Fortran reverse engineering tools from STI
- WinFPT, tools for Fortran engineering
- SDX Dynamic Systems Modeling & Simulation Software is a general purpose Problem Solving Environment for dynamics related applications in science and engineering.
- GINO v6.0, the graphics and GUI development toolkits, is now available. Pleas visit their website http://www.gino-graphics.com for complete product information.
*INTERACTER*portable graphics interface library and*Winteracter*, Fortran 90 Win32 user-interface and graphics developments tools from Interactive Software Services Ltd*plus*FORT tools for the Fortran programmer from Polyhedron Software- FOR_STRUCT, FOR_STUDY, FOR_C, FOR_C++ tools from Cobalt Blue
- FTNCHEK, which detects unused, undeclared, and uninitialized variables, provided by Robert Moniot (free–439K bytes)
- Forcheck, Leiden University’s Fortran static analyser
- Keyed file shareware pkf.f90: a Fortran 90 module is available from Garnatz and Grovender, Inc.
- Fixed-to-Free Source Form Converter; a preconverter for convert.f90
- f2f90, a command-line version of Metcalf and Reid’s convert.f90, which converts fixed source form to free source form
- A Fortran 77 subroutine that converts Unix time into date and time