NOTE: Some Fortran compilers let you read NaN and Infinity from a
character string (an extension to F95 but standard in F2003) but may not have
the F2003 IEEE_ARITHMETIC intrinsic module. The values you get may differ from
the IEEE values (especially NaN). Only one program below, kinds03.f90, uses
that module.
It also uses the F2003 intrinsic module ISO_FORTRAN_ENV.
Programs below that involve NaN and Infinity try to read them but
continue without them if the reading fails. Reading them may succeed even if
calculations like 0.0/0.0 or 1.0/0.0 would fail.
. . Programs illustrating features of Fortran and its compilers
. . . . Printing properties of the various real and integer kinds
. . . . . . using no intrinsic modules, old version kinds.f90:
here
. . . . . . using no intrinsic modules, new version kinds95.f90:
here
. . . . . . using the IEEE and ISO intrinsic modules, kinds03.f90:
here
. . The latest version (3 November 2021) of my notes on Fortran 95 for
Fortran 77 users. PDF file f95f77.pdf: here
. . G95 tgz files:
. . . . Source code here
. . . . Binary for x86_64 Linux here
. . . . Binary for Sparc Solaris here
. . . . Binary for x86 Solaris here
. . Additional index entries for the Fortran 2003 Handbook
here
. . Notes on compilers available to SMS and SECS at VUW
here
. . . . Combining finite rotations by using quaternions:
here
. . . . Showing 19 different uses of * in Fortran 95, test19stars.f:
here
. . . . Showing 20 different uses of * in Fortran 2008, test20stars.f:
here
. . . . Showing 29 different uses of * in Fortran 2018, test29stars.f:
here
. . . . Printing hexcodes for NaN and Infinity without using IEEE
modules, testnaninf.f: here
. . Fortran 95/2003 module with test programs to simulate F0.n format with
various options
. . . . For compilers supporting exceptional values NaN and Infinity,
f0withNaNInf.f90: here
. . . . For compilers not supporting those exceptional values, f0noNaNInf.f90:
here
. . Programs that exposed bugs (some now fixed) in some Fortran compilers
. . . . Six unfixed bugs in g95: here
. . . . Two programs using ADVANCE='NO' that different compilers treat differently:
here and here
. . . . Using a generic function that has two specific forms,
one of which invokes the other: here
. . . . Using a FORALL statement with a character array:
here
. . . . Printing an enormous number in F0.0 format:
here
. . . . Using a public generic function with specific functions of
private types (valid F2003 but bad F95):
here
. . . . Printing the value of a public generic function with
specific functions of private types:
here