xref: /llvm-project/flang/docs/RuntimeEnvironment.md (revision af964c7e31f0728e84c97b734933fcb9a1912bce)
1*af964c7eSPeter Klausler<!--===- docs/RuntimeEnvironment.md
2*af964c7eSPeter Klausler
3*af964c7eSPeter Klausler   Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*af964c7eSPeter Klausler   See https://llvm.org/LICENSE.txt for license information.
5*af964c7eSPeter Klausler   SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*af964c7eSPeter Klausler
7*af964c7eSPeter Klausler-->
8*af964c7eSPeter Klausler
9*af964c7eSPeter Klausler```{contents}
10*af964c7eSPeter Klausler---
11*af964c7eSPeter Klauslerlocal:
12*af964c7eSPeter Klausler---
13*af964c7eSPeter Klausler```
14*af964c7eSPeter Klausler
15*af964c7eSPeter Klausler# Environment variables of significance to Fortran execution
16*af964c7eSPeter Klausler
17*af964c7eSPeter KlauslerA few environment variables are queried by the Fortran runtime support
18*af964c7eSPeter Klauslerlibrary.
19*af964c7eSPeter Klausler
20*af964c7eSPeter KlauslerThe following environment variables can affect the behavior of
21*af964c7eSPeter KlauslerFortran programs during execution.
22*af964c7eSPeter Klausler
23*af964c7eSPeter Klausler## `DEFAULT_UTF8=1`
24*af964c7eSPeter Klausler
25*af964c7eSPeter KlauslerSet `DEFAULT_UTF8` to cause formatted external input to assume UTF-8
26*af964c7eSPeter Klauslerencoding on input and use UTF-8 encoding on formatted external output.
27*af964c7eSPeter Klausler
28*af964c7eSPeter Klausler## `FORT_CONVERT`
29*af964c7eSPeter Klausler
30*af964c7eSPeter KlauslerDetermines data conversions applied to unformatted I/O.
31*af964c7eSPeter Klausler
32*af964c7eSPeter Klausler* `NATIVE`: no conversions (default)
33*af964c7eSPeter Klausler* `LITTLE_ENDIAN`: assume input is little-endian; emit little-endian output
34*af964c7eSPeter Klausler* `BIG_ENDIAN`: assume input is big-endian; emit big-endian output
35*af964c7eSPeter Klausler* `SWAP`: reverse endianness (always convert)
36*af964c7eSPeter Klausler
37*af964c7eSPeter Klausler## `FORT_CHECK_POINTER_DEALLOCATION`
38*af964c7eSPeter Klausler
39*af964c7eSPeter KlauslerFortran requires that a pointer that appears in a `DEALLOCATE` statement
40*af964c7eSPeter Klauslermust have been allocated in an `ALLOCATE` statement with the same declared
41*af964c7eSPeter Klauslertype.
42*af964c7eSPeter KlauslerThe runtime support library validates this requirement by checking the
43*af964c7eSPeter Klauslersize of the allocated data, and will fail with an error message if
44*af964c7eSPeter Klauslerthe deallocated pointer is not valid.
45*af964c7eSPeter KlauslerSet `FORT_CHECK_POINTER_DEALLOCATION=0` to disable this check.
46*af964c7eSPeter Klausler
47*af964c7eSPeter Klausler## `FORT_FMT_RECL`
48*af964c7eSPeter Klausler
49*af964c7eSPeter KlauslerSet to an integer value to specify the record length for list-directed
50*af964c7eSPeter Klauslerand `NAMELIST` output.
51*af964c7eSPeter KlauslerThe default is 72.
52*af964c7eSPeter Klausler
53*af964c7eSPeter Klausler## `NO_STOP_MESSAGE`
54*af964c7eSPeter Klausler
55*af964c7eSPeter KlauslerSet `NO_STOP_MESSAGE=1` to disable the extra information about
56*af964c7eSPeter KlauslerIEEE floating-point exception flags that the Fortran language
57*af964c7eSPeter Klauslerstandard requires for `STOP` and `ERROR STOP` statements.
58