Fortran Intrinsics#

This is a collection of extended descriptions of the Fortran intrinsics based on the reference document “Current F2018 Working Document as of April 2018”. Vendor-specific extensions are not included.

Array Operations#

Properties and attributes of arrays#

Mathematics#

General mathematical functions#

Type and Kind#

Numeric#

Manipulation and properties of numeric values#

Transformational#

Matrix multiplication, Dot product, array shifts,#

General State#

General and miscellaneous intrinsics on state of variables and I/O#

Character#

basic procedures specifically for manipulating character variables#

System Environment#

accessing external system information such as environmental variables, command line arguments, date and timing data …#

C Interface#

procedures useful for binding to C interfaces#

Bit-level#

bit-level manipulation and inquiry of values0#

Parallel Programming#

Parallel programming using co-arrays and co-indexing#

Numeric Model#

numeric compiler-specific numeric model information#

Compiler Information#

information about compiler version and compiler options used for building#

Overview#

The standard documents and most vendor-supplied descriptions of the intrinsics are often very brief and concise to the point of the functionality of the intrinsics being obscure, particularly to someone unfamiliar with the procedure.

By describing the procedures here

  • in greater detail

  • with a working example

  • providing links to additional resources (including additional documents at fortran-lang.org and related discussions in Fortran Discourse)

these documents strive to be a valuable asset for Fortran programmers.

This is a community-driven resource and everyone is encouraged to contribute to the documents. For contribution guidelines see MINIBOOKS and the following Copyright guidelines.

See Also#

Experimental#

  • review by procedure

  • review by header

  • fman(1) A self-contained Fortran program that lets you view the non-graphical plain ASCII portions of the documentation from a terminal interface. Compile the program and enter “./fman –help” for directions.

  • man pages A gzipped tar(1) file containing early versions of man-pages derived from the markdown documents.

    Typical installation on a Linux platform as an administrator ( but it varies) :

     # as the administrator
     cd /usr/share
     tar xvfz /tmp/fortran.tgz
     cd man
     mandb -c
 then anyone on that plaform can enter commands like 
     man sinh.3fortran     # specifically show Fortran sinh(3) documentation
     man -k . -s 3fortran  # list all fortran pages
     man -s 3fortran --regex '.*' |col -b # show all Fortran intrinsics
See man(1) (ie. enter "man man") for more information.

If you can only install the pages on your own ID, try
     # as a user, placing the files in ~/man:
     cd 
     tar xvfz /tmp/fortran.tgz
     cd man
     mandb -c
     export MANPATH="$MANPATH:$HOME/man"
     export MANWIDTH=80
 Still debating whether having to keep the document limited to ANSI
 characters is worth-while so these formats can be generated, and
 still having issues converting the markdown to the proper formats.

Text Content Copyrights#

Many of the documents presented here are modified versions of man-pages from the Fortran Wiki and as such are available under the terms of the GNU Free Documentation License GFDL with no invariant sections, front-cover texts, or back-cover texts.

If you contribute to this site by modifying the files marked as GFDL, you thereby agree to license the contributed material to the public under the GFDL (version 1.2 or any later version published by the Free Software Foundation, with no invariant sections, front-cover texts, or back-cover texts).

If you contribute new material you thereby agree to release it under the MIT license, and should indicate this by placing MIT on the specially-formatted last line. For example, change

###### fortran-lang intrinsic descriptions

to

###### fortran-lang intrinsic descriptions (Iicense: MIT) @urbanjost

Written in Markdown kramdown#