1
1
# Language elements
2
2
3
- Fortran is <a href="case-insensitive" class="wikilink"
4
- title="case-insensitive">case-insensitive</a >. The convention of writing
3
+ Fortran is
4
+ [ case-insensitive] ( https://en.wikipedia.org/wiki/Case_sensitivity )
5
+ The convention of writing
5
6
Fortran keywords in upper case and all other names in lower case is
6
7
adopted in this article; except, by way of contrast, in the input/output
7
8
descriptions
8
- (<a href =" #Data_transfer " class =" wikilink " title =" Data transfer " >Data
9
- transfer</a > and
10
- <a href="#Operations_on_external_files" class="wikilink"
11
- title="Operations on external files">Operations on external files</a >).
9
+ ([ Data transfer] ( data_transfer )
10
+ and
11
+ [ Operations on external files] ( operations_on_external_files ) ).
12
12
13
13
## Basics
14
14
@@ -22,7 +22,8 @@ members are
22
22
- the special characters
23
23
` = : + blank - * / ( ) [ ] , . $ ' ! " % & ; < > ? `
24
24
25
- <a href =" Token_(parser) " class =" wikilink " title =" Token " >Tokens</a > that
25
+ [ Tokens] ( https://en.wikipedia.org/wiki/Token_(parser) )
26
+ that
26
27
have a syntactic meaning to the compiler are built from those
27
28
components. There are six classes of tokens:
28
29
@@ -34,8 +35,9 @@ components. There are six classes of tokens:
34
35
| Name | ` solve_equation ` (up to 31 characters, including \_ ) |
35
36
| Separator | ` / ( ) (/ /) [ ] , = => : :: ; % ` |
36
37
37
- From the tokens, <a href="statement_ (programming)" class="wikilink"
38
- title="statement">statements</a > are built. These can be coded using the
38
+ From the tokens,
39
+ [ statements] ( https://en.wikipedia.org/wiki/Statement_(programming) )
40
+ are built. These can be coded using the
39
41
new free * source form* which does not require positioning in a rigid
40
42
column structure:
41
43
@@ -126,9 +128,9 @@ must make the actual mapping to bytes):
126
128
RANGE(1_two_bytes)
127
129
```
128
130
129
- Also, in <a href="#DATA_statement" class="wikilink"
130
- title=" DATA (initialization) statements">< code >DATA</ code >
131
- (initialization) statements</ a >, binary (B), octal (O) and hexadecimal
131
+ Also, in
132
+ [ ` DATA ` (initialization) statements] ( data_statement ) ,
133
+ binary (B), octal (O) and hexadecimal
132
134
(Z) constants may be used (often informally referred to as "BOZ
133
135
constants"):
134
136
@@ -209,8 +211,10 @@ The forms of literal constants for `CHARACTER` data type are
209
211
210
212
(the last being an empty string). Different kinds are allowed (for
211
213
example, to distinguish
212
- <a href =" ASCII " class =" wikilink " title =" ASCII " >ASCII</a > and
213
- <a href =" UNICODE " class =" wikilink " title =" UNICODE " >UNICODE</a > strings),
214
+ [ ASCII] ( https://en.wikipedia.org/wiki/ASCII )
215
+ and
216
+ [ UNICODE] ( https://en.wikipedia.org/wiki/UNICODE )
217
+ strings),
214
218
but not widely supported by compilers. Again, the kind value is given by
215
219
the ` KIND ` function:
216
220
@@ -239,8 +243,9 @@ important for portable numerical software:
239
243
240
244
## Scalar variables
241
245
242
- Scalar <a href="Variable_ (programming)" class="wikilink"
243
- title="variables">variables</a > corresponding to the five intrinsic
246
+ Scalar
247
+ [ variables] ( https://en.wikipedia.org/wiki/Variable_(programming) )
248
+ corresponding to the five intrinsic
244
249
types are specified as follows:
245
250
246
251
``` f90
@@ -395,10 +400,9 @@ at the beginning of each program unit.
395
400
396
401
Arrays are considered to be variables in their own right. Every array is
397
402
characterized by its
398
- <a href="type_ (computer_programming)" class="wikilink"
399
- title="type">type</a >,
400
- <a href="rank_ (computer_programming)" class="wikilink"
401
- title="rank">rank</a >, and * shape* (which defines the extents of each
403
+ [ type] ( https://en.wikipedia.org/wiki/Type_(computer_programming) ) ,
404
+ [ rank] ( https://en.wikipedia.org/wiki/Rank_(computer_programming) ) ,
405
+ and * shape* (which defines the extents of each
402
406
dimension). Bounds of each dimension are by default 1 and * size* , but
403
407
arbitrary bounds can be explicitly specified. ` DIMENSION ` keyword is
404
408
optional and considered an attribute; if omitted, the array shape must
@@ -410,9 +414,8 @@ INTEGER, DIMENSION(0:100, -50:50) :: map
410
414
```
411
415
412
416
declares two arrays, rank-1 and rank-2, whose elements are in
413
- <a href="column-major_order" class="wikilink"
414
- title="column-major order">column-major order</a >. Elements are, for
415
- example,
417
+ [ column-major order] ( https://en.wikipedia.org/wiki/Column-major_order ) .
418
+ Elements are, for example,
416
419
417
420
``` f90
418
421
a(1) a(i*j)
@@ -533,8 +536,8 @@ attributes, are constant expressions that may include references to:
533
536
array and structure constructors, elemental intrinsic functions with
534
537
integer or character arguments and results, and the six transformational
535
538
functions ` REPEAT, SELECTED_INT_KIND, TRIM, SELECTED_REAL_KIND, RESHAPE `
536
- and ` TRANSFER ` (see <a href="#Intrinsic_procedures" class="wikilink"
537
- title=" Intrinsic procedures">Intrinsic procedures</ a > ):
539
+ and ` TRANSFER ` (see
540
+ [ Intrinsic procedures] ( intrinsic_procedures ) :
538
541
539
542
``` f90
540
543
INTEGER, PARAMETER :: long = SELECTED_REAL_KIND(12), &
0 commit comments