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