Types, data objects, declarations

God is real… unless explicitly declared an integer
Default implicit typing depending on the first letter of the identifier. Advice: deactivate it in all your programs with the following statement:
implicit none
This statement must be before all the declarations. So a simple Fortran program should look like this:
PROGRAM name
IMPLICIT NONE
{declarations}
executable constructs
END PROGRAM name
Declaration of variables
Write a line with a type followed by a list of variables. Examples:
integer i, j
real x
real u, v ! speed
Numerical operations
The relational operators on integer and real numbers are:
<, <=, == for test of equality, /= means “different than”, >=, >.
The result is a logical value. Example:
x = i == 3
The numeric operators are: + - * /. ** for the exponentiation.
Integer type
-
Integer literal constants: without a decimal point
-
Example of declaration of a variable:
integer i -
Largest integer value:
huge(0)(depends on the compiler, but usually ). Note the difference with Python: in Python the integer values are unlimited. -
Nota bene:
/with integer operands gives an integer result (the floor of the ratio). Examples :1 / 2equals 0,5 / 2equals 2 -
Some intrinsic functions that you can apply to integers:
-
abs(a)absolute value -
mod(a, p): a modulo p. That is:a – (a / p) * p
-
Real type
Real literal constants: can be without exponent: -8.4, or with
exponent: 1e4, 64.2e-5.
Example of declaration of a variable:
real x
These three properties depend on the compiler:
-
Smallest non-null positive real value:
tiny(0.)(usually ) -
Largest real value:
huge(0.)(usually ) -
Smallest such that :
epsilon(0.)(usually )
Character type
-
Write character literal constants between single or double quotes. Examples:
'*' 'A' '9' "x = ?""Isn't valid"'Created file "plouf.txt".' -
Length of a string: number of characters. Examples of declaration of variables:
(default length is 1)character(len=5) a character b -
Concatenation operator:
//
Logical type
-
Logical literal constants:
.false..true. -
Example of declaration of variable:
logical found -
Logical operators:
.not..or..and..eqv..neqv.
Nota bene : logical and integer types are different. You cannot write an integer value in lieu of a logical one (unlike in other languages, such as C or Python).
Declaration of a named constant
Adding the parameter attribute to the declaration of an object means
the object is a named constant and not a variable. You have to provide
the value of the named constant in its declaration
statement. Examples:
real, parameter:: pi = 3.14159265
integer, parameter:: m = 5, n = 10
Nota bene : the coma before parameter and the double colon :: are
compulsory.
Double precision real
- This is a second "kind" of real type.
- Declaration :
instead of:
double precision xreal x - Literal constants:
-8.4d0,1d4,64.2d-5instead of:-8.4,1e4,64.2e-5 - In principle, the properties of this kind of real type depend on
the compiler.
- Smallest positive value:
tiny(0d0)(usually # ) - Largest value:
huge(0d0)(usually # ) - Smallest such as
1d0+ >1d0:epsilon(0d0)(usually # )
- Smallest positive value: