All standard and many vendor-specific legacy language features are supported, so that Fortran projects may be any combination of Fortran 77, Fortran 90 and Fortran 95. NEC The Fortran compiler conforms to the Fortran-2003 standard (ISO/IEC 1539-1:2004) and supports many features from Fortran-2008 (ISO/IEC 1539-1:2010). Lahey Fortran Professional v7.9 Windows Combining the 32/64-bit LGF Rainier compiler with the classic Lahey/Fujitsu LF95 compiler, LF Professional v7.9 delivers! LGF Rainier has full Fortran 95/90/77 compliance with extensive support for the Fortran 2003 and 2008 standards. Lahey/Fujitsu LF95 offers best in class diagnostics.
Free Fortran Compilers
There are a number of free Fortran 77 and 90 compilers available on thenet.The one I have been using in my Fortran courses at York isBasics of Fortran 90 Language Fortran Compiler Compiler - from Wikipedia A compiler is a computer program (or a set of programs) that transforms source code written in a programming language (the source language) into another computer language (the target language), with the latter often having a binary form known as object code. The Windows Fortran compiler supports a full range of project targets including command-line programs, GUI based applications, and Window’s DLLs. It provides a complete 64 and 32 bit Windows Fortran compiler solution and supports mixed language development by interfacing with the Microsoft Visual Studio and Windows SDK C/C compilers. The following is a possible solution: f90 test.f90 & test.err. Or, if you do not compile test.f90 to a.out, then do the following, where test is name of the executable: f90 test.f90 -o test & test.err. Note that if you see a message like File already exists, then remove test.err and execute again. When I compile my program, I got the.
GNU, which implements Fortran 77 and adds several Fortran 90 features. Thanks to Prof. Clive Page (Dept of Physics & Astronomy, University of Leicester, UK)for providing the compiler and for valuable advice on Fortran in general.You can download the 1999 version of this compiler (version 2.95 of gcc
) along with the SLATEC library (Version 4.1, July 1993), from this page. Thepackage should run under all versions ofWindows.All the needed files are packed in one zipped file(Fort99.zip
) of about 6MB.
(If for some reason you need the older DOS/EMX
version,which does not include a library and does not run under Windows XP
, then youcan download it from my old page.)
DOWNLOAD
- Create the directory
F
The new folder must be immediately under the root of your hard disk. You can do this by double-clicking MyComputer, then double-clicking your hard drive (usuallyC:
), and then selecting New Folder from the File menu and calling the folderF
. - Download the file
Fort99.zip
(5,820,239 bytes).
You can do this by right-clicking the mouse on the above link, and choosing Save Target As.... In the Save As window that appears, locate theF
folder, and save the file in it. - Unzip the downloaded file into
F
.
Yon can do this by locating the file (starting from MyComputer) and simply double-clicking it to launch the zip/unzip program. Make sure to specify that all files should be extracted immediately under theF
folder.
Note: If the unzip program does not give you the option to specify the extraction location, let it extract the content to anywhere and then move the extracted folders (using cut and paste) toF
. When done, you should see the four foldersG77
,SLATEC
,MINE
, andYORK
appearing inF
.
PATH
and LIBRARY_PATH
, as shown below.USAGE
You store your programs in theFYork
directory, compile themusing: f2exe
, and create library object files using f2lib
.Here is a very short program to test the compiler and the configuration: Use any editor to create this program (simply copy and paste) and save it as a text file in the Fortran 90 Compiler Online
FYork
directory under the name test.for
. Youcan, of course, use any editor you like as long as you can save the filein text format and with the extension you want. Notepad, for example, uses text but insists on using the txt
extension (unless you override by double-quoting) while MS-Word insists on its propriety format (unless you explicitly override). I highly recommend using the Crimson
Fortran 90 Compiler For Apple Silicon
editor, which can be downloaded from the on-line Lab-1 (see below).To compile your program, start a CLI session (by launching the command promptprogram, usually in the Accessories group) and issue these two commands:These set the environment so that your computer would know where the compilerand its libraries are located.
Note: these two commands must be issued every time you start a CLI session. Youcan optionally automate this step by adding these two variables to the system-wideenvironment using the Control Panel.
You can now compile and run your program by typing:If the first command returned an error then the directory was not created (ornamed) correctly. If the second command was not recognized, or complained that a library is missing, then the environmentvariables were not set correctly (you can issue the set
command without any arguments to inspect all environment variables).
More information on using the compiler can be found in theon-line Labs at theFortran@York site.
LANGUAGE
TheFG77doc
directory has a detailed reference to the language, which is largly ANSI Fortran-77but with some Fortran-90 features added (see below).The above Fortran@York sitecontains a quick reference guide, lab, and SLATEC usage examples.If you are already familiar with Fortran then the following points may beall you need to know about this compiler:
- Control Structures
You can use either the old (goto-based) or the new (structured) control flow (or mix them in the same program). Support of the 'ugly goto' is meant for existing code only, and any new development should avoid it. - Style
You can write your source using either the old style code (column 7) or the newer free-form. - Compilation Command
The abovef2exe
command is just a batch file that invokesg77
, the 'real' compilation command. The command: directs the compiler to compile the fileprog.for
and stores the output in the fileprog.exe
. The-ffree-form
switch indicates free-form style (remove it if you are using the old style). - Comments
In free-form style, use ! for both full-line and in-line comments. In the old style, use a 'C' in column-1. - Statement Continuation
In free-form style, you can continue a statement on the next line by ending it with an ampersand '&'. In the old style, put a character in column-6. - Path Separator
When referring to files (e.g. in the file=' ' parameter of the OPEN statement) use a forward slash '/' or two consecutive backslashes ' rather than a backslash to delimit directories. This is because the backslash ' denotes an escape sequence in strings. - I/O Unit Numbers
Not all unit numbers are allowed in the OPEN statement. In particular, unit 5 is 'pre-connected' to the keyboard. Units 10 through 99 seem to work well with disk files. - Fortran-90 Features
These include: Automatic arrays in subprograms, zero length strings, character constants may be enclosed in double quotes ('
) as well as single quotes,cycle
andexit
, theDOUBLE COMPLEX
type,DO WHILE
, theEND
decoration,KIND
,IMPLICIT NONE
,INCLUDE
statements, list-directed and namelist I/O on internal files, binary, octal, and hex constants, `O' and `Z' edit descriptors,NAMELIST
,OPEN
specifiersSTATUS='REPLACE'
, theFILE=
specifier may be omitted in anOPEN
statement ifSTATUS='SCRATCH'
is supplied, relational operators<
,<=
, ,/=
,>
and>=
may be used instead of.LT.
,.LE.
,.EQ.
,.NE.
,.GT.
and.GE.
respectively,SELECT CASE
(but not for character types). - Separate Compilation of Subprograms
Your main program is recognized by theprogram
statement, as in theConvert
program above. The subprograms (functions and subroutines) can be included in the same file as the main program (in which case you can compile everything in one shot) or can be stored in separate file(s). It is recommended that you store general reusable subprograms in separate files so that you can reuse them (without recompiling them) in future projects. To compile a file that contains only subprograms (noprogram
statement), use thef2lib
command, which generates object files, one per sub, in themine
directory, e.g. will compile (without linking) the subprogram inutil.for
and store the output (an object file) in the fileutil.o
.f2lib
is just a batch file that invokes theg77
command with the-c
(compile-only) switch, viz.A program that uses pre-compiled object files can be compiled (and linked to them) by simply referring to them in the compilation command: The above command searches all object files inmine
to resolve any missing reference inprog.for
. - Separate Compilation of Subprograms, automated
The suppliedf2exe
andf2lib
batch files take care of separate compilation and delayed linking with object files and with the SLATEC subprograms. You don't have to directly issue theg77
command unless you use the old columnar style or you want to change one of the switches or directories. - Assembly Listing
The-S
(capital S) switch allows you to see a listing of the generated assembly code.