Tells the compiler to make certain assumptions.
Windows: Compatibility > Treat Backslash as Normal Character in Strings (/assume:[no]bscc)
Data > Assume Dummy Arguments Share Memory Locations (/assume:[no]dummy_aliases)
Data > Constant Actual Arguments Can Be Changed (/assume:[no]protect_constants)
Data > Use Bytes as RECL=Unit for Unformatted Files (/assume:[no]byterecl)
Floating Point > Enable IEEE Minus Zero Support (/assume:[no]minus0)
Optimization > I/O Buffering (/assume:[no]buffered_io)
Preprocessor > Default Include and Use Path (/assume:[no]source_include)
Preprocessor > OpenMP Conditional Compilation (/assume:[no]cc_omp)
External Procedures > Append Underscore to External Names (/assume:[no]underscore)
Linux: None
Mac OS X: Optimization > I/O Buffering (-assume [no]buffered_io)
Preprocessor > OpenMP Conditional Compilation (-assume [no]cc_omp)
Preprocessor > Default Include and Use Path (-assume [no]source_include)
Compatibility > Treat Backslash as Normal Character in Strings (-assume [no]bscc)
Data > Assume Dummy Arguments Share Memory Locations (-assume [no]dummy_aliases)
Data > Constant Actual Arguments Can Be Changed (-assume [no]protect_constants)
Data > Use Bytes as RECL=Unit for Unformatted Files (-assume [no]byterecl)
Floating Point > Enable IEEE Minus Zero Support (-assume [no]minus0)
External Procedures > Append Underscore to External Names (-assume [no]underscore)
IA-32, Intel® 64, IA-64 architectures
Linux and Mac OS X: | -assume keyword |
Windows: | /assume:keyword |
keyword |
Specifies the assumptions to be made. Possible values are:
|
nobscc |
The backslash character is treated as a normal character in character literals. |
nobuffered_io |
Data in the internal buffer is immediately written (flushed) to disk (OPEN specifier BUFFERED='NO'). If you set the FORT_BUFFERED environment variable to true, the default is assume buffered_io. |
nobyterecl |
Units for OPEN statement RECL values with unformatted files are in four-byte (longword) units. |
nocc_omp |
Conditional compilation as defined by the OpenMP Fortran API is disabled unless option -openmp (Linux) or /Qopenmp (Windows) is specified. If compiler option -openmp (Linux and Mac OS X) or /Qopenmp (Windows) is specified, the default is assume cc_omp. |
nodummy_aliases |
Dummy arguments to procedures do not share memory locations with other dummy arguments or with variables shared through use association, host association, or common block use. |
noieee_fpe_flags |
The flags are not saved on routine entry and they are not restored on routine exit. |
nominus0 |
The compiler uses Fortran 90/77 standard semantics in the SIGN intrinsic to treat -0.0 and +0.0 as 0.0, and writes a value of 0.0 with no sign on formatted output. |
noold_boz |
The binary, octal, and hexadecimal constant arguments in intrinsic functions INT, REAL, DBLE, and CMPLX are treated as bit strings that represent a value of the data type of the intrinsic, that is, the bits are not converted. |
noold_logical_ldio |
Tells the compiler that NAMELIST and list-directed input cannot accept logical values (T, F, etc.) for numeric (integer, real, and complex) IO-list items. If this option is specified and a logical value is given for a numeric item in NAMELIST and list-directed input, a runtime error will be produced. |
old_maxminloc |
MAXLOC and MINLOC return 1 when given an empty array as an argument. |
noold_unit_star |
The READs or WRITEs to UNIT=* go to stdin or stdout, respectively, even if UNIT=5 or 6 has been connected to another file. |
old_xor |
Intrinsic operator .XOR. is defined by the compiler. |
protect_constants |
A constant actual argument is passed to a called routine. Any attempt to modify it results in an error. |
noprotect_parens |
The optimizer reorders REAL and COMPLEX expressions without regard for parentheses if it produces faster executing code. |
norealloc_lhs |
The compiler uses Fortran 95/90 rules when interpreting assignment statements. The left-hand side is assumed to be allocated with the correct shape to hold the right-hand side. If it is not, incorrect behavior will occur. |
source_include |
The compiler searches for USE modules and INCLUDE files in the directory where the source file is located. |
nostd_mod_proc_name |
The compiler allows the names of module procedures to conflict with user external symbol names. |
Windows: nounderscore |
On Windows systems, the compiler does not append an underscore character to external user-defined names. On Linux and Mac OS X systems, the compiler appends an underscore character to external user-defined names. |
no2underscores |
The compiler does not append two underscore characters to external user-defined names that contain an embedded underscore. |
nowriteable-strings |
The compiler puts character constants into read-only memory. |
This option specifies assumptions to be made by the compiler.
Option |
Description |
---|---|
assume none |
Disables all the assume options. |
assume bscc |
Tells the compiler to treat the backslash character (\) as a C-style control (escape) character syntax in character literals. The "bscc" keyword means "BackSlashControlCharacters." |
assume buffered_io |
Tells the compiler to accumulate records in a buffer. This sets the default for opening sequential output files to BUFFERED='YES', which also occurs if the FORT_BUFFERED run-time environment variable is specified. When this option is specified, the internal buffer is filled, possibly by many record output statements (WRITE), before it is written to disk by the Fortran run-time system. If a file is opened for direct access, I/O buffering is ignored. Using buffered writes usually makes disk I/O more efficient by writing larger blocks of data to the disk less often. However, if you request buffered writes, records not yet written to disk may be lost in the event of a system failure. The OPEN statement BUFFERED specifier applies to a specific logical unit. In contrast, the assume [no]buffered_io option and the FORT_BUFFERED environment variable apply to all Fortran units. |
assume byterecl |
Specifies that the units for the OPEN statement RECL specifier (record length) value are in bytes for unformatted data files, not longwords (four-byte units). For formatted files, the RECL value is always in bytes. If a file is open for unformatted data and assume byterecl is specified, INQUIRE returns RECL in bytes; otherwise, it returns RECL in longwords. An INQUIRE returns RECL in bytes if the unit is not open. |
assume cc_omp |
Enables conditional compilation as defined by the OpenMP Fortran API. That is, when "!$space" appears in free-form source or "c$spaces" appears in column 1 of fixed-form source, the rest of the line is accepted as a Fortran line. |
assume dummy_aliases |
Tells the compiler that dummy (formal) arguments to procedures share memory locations with other dummy arguments (aliases) or with variables shared through use association, host association, or common block use. Specify the option when you compile the called subprogram. The program semantics involved with dummy aliasing do not strictly obey the Fortran 95/90 standards and they slow performance, so you get better run-time performance if you do not use this option. However, if a program depends on dummy aliasing and you do not specify this option, the run-time behavior of the program will be unpredictable. In such programs, the results will depend on the exact optimizations that are performed. In some cases, normal results will occur, but in other cases, results will differ because the values used in computations involving the offending aliases will differ. |
assume ieee_fpe_flags |
Tells the compiler to save floating-point exception and status flags on routine entry and restore them on routine exit. This option can slow runtime performance because it provides extra code to save and restore the floating-point exception and status flags (and the rounding mode) on entry to and exit from every routine compiled with the option. This option can be used to get the full Fortran Standard behavior of intrinsic modules IEEE EXCEPTIONS, IEEE ARITHMETIC, and IEEE FEATURES, which require that if a flag is signaling on routine entry, the processor will set it to quiet on entry and restore it to signaling on return. If a flag signals while the routine is executing, it will not be set to quiet on routine exit. Options fpe and fpe-all can be used to set the initial state for which floating-point exceptions will signal. |
assume minus0 |
Tells the compiler to use Fortran 95 standard semantics for the treatment of the IEEE* floating value -0.0 in the SIGN intrinsic, which distinguishes the difference between -0.0 and +0.0, and to write a value of -0.0 with a negative sign on formatted output. |
assume old_boz |
Tells the compiler that the binary, octal, and hexadecimal constant arguments in intrinsic functions INT, REAL, DBLE, and CMPLX should be treated as signed integer constants. |
assume old_logical_ldio |
Logical values are allowed for numeric items. |
assume noold_maxminloc |
Tells the compiler that MAXLOC and MINLOC should return 0 when given an empty array as an argument. Compared to the default setting (old_maxminloc), this behavior may slow performance because of the extra code needed to check for an empty array argument. |
assume old_unit_star |
Tells the compiler that READs or WRITEs to UNIT=* go to whatever file UNIT=5 or 6 is connected. |
assume noold_xor |
Prevents the compiler from defining .XOR. as an intrinsic operator. This lets you use .XOR. as a user-defined operator. This is a Fortran 2003 feature. |
assume noprotect_constants |
Tells the compiler to pass a copy of a constant actual argument. This copy can be modified by the called routine, even though the Fortran standard prohibits such modification. The calling routine does not see any modification to the constant. |
assume protect_parens |
Tells the optimizer to honor parentheses in REAL and COMPLEX expression evaluations by not reassociating operations. For example, (A+B)+C would not be evaluated as A+(B+C). If assume noprotect_parens is specified, (A+B)+C would be treated the same as A+B+C and could be evaluated as A+(B+C) if it produced faster executing code. Such reassociation could produce different results depending on the sizes and precision of the arguments. For example, in (A+B)+C, if B and C had opposite signs and were very large in magnitude compared to A, A+B could result in the value as B; adding C would result in 0.0. With reassociation, B+C would be 0.0; adding A would result in a non-zero value. |
assume realloc_lhs |
Tells the compiler that when the left-hand side of an assignment is an allocatable object, it should be reallocated to the shape of the right-hand side of the assignment before the assignment occurs. This is the Fortran 2003 definition. This feature may cause extra overhead at run time. |
assume nosource_include |
Tells the compiler to search the default directory for module files specified by a USE statement or source files specified by an INCLUDE statement. This option affects fpp preprocessor behavior and the USE statement. |
assume std_mod_proc_name |
Tells the compiler to revise the names of module procedures so they do not conflict with user external symbol names. For example, procedure proc in module m would be named m_MP_proc. The Fortran 2003 Standard requires that module procedure names not conflict with other external symbols. By default, procedure proc in module m would be named m_mp_proc, which could conflict with a user-defined external name m_mp_proc. |
assume underscore |
Tells the compiler to append an underscore character to external user-defined names: the main program name, named common blocks, BLOCK DATA blocks, global data names in MODULEs, and names implicitly or explicitly declared EXTERNAL. The name of a blank (unnamed) common block remains _BLNK__, and Fortran intrinsic names are not affected. |
assume 2underscores |
Tells the compiler to append two underscore characters to external user-defined names that contain an embedded underscore: the main program name, named common blocks, BLOCK DATA blocks, global data names in MODULEs, and names implicitly or explicitly declared EXTERNAL. The name of a blank (unnamed) common block remains _BLNK__, and Fortran intrinsic names are not affected. This option does not affect external names that do not contain an embedded underscore. By default, the compiler only appends one underscore to those names. For example, if you specify assume 2underscores for external names my_program and myprogram, my_program becomes my_program__, but myprogram becomes myprogram_. |
assume writeable-strings |
Tells the compiler to put character constants into non-read-only memory. |
assume nobscc |
Linux and Mac OS X: -nbs Windows: /nbs |
assume dummy_aliases |
Linux and Mac OS X: -common-args Windows: /Qcommon-args |
assume underscore |
Linux and Mac OS X: -us Windows: /us |
assume nounderscore |
Linux and Mac OS X: -nus Windows: None |