assume

Tells the compiler to make certain assumptions.

IDE Equivalent

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)

Architectures

IA-32, Intel® 64 architectures

Syntax

Linux and Mac OS X:

-assume keyword

Windows:

/assume:keyword

Arguments

keyword

Specifies the assumptions to be made. Possible values are:

none

Disables all assume options.

[no]bscc

Determines whether the backslash character is treated as a C-style control character syntax in character literals.

[no]buffered_io

Determines whether data is immediately written to disk or accumulated in a buffer.

[no]byterecl

Determines whether units for the OPEN statement RECL specifier (record length) value in unformatted files are in bytes or longwords (four-byte units).

[no]cc_omp

Determines whether conditional compilation as defined by the OpenMP Fortran API is enabled or disabled.

[no]dummy_aliases

Determines whether the compiler assumes that dummy arguments to procedures share memory locations with other dummy arguments or with COMMON variables that are assigned.

[no]fpe_summary

Determines whether a floating-point exceptions summary is displayed when a STOP statement is encountered.

[no]ieee_fpe_flags

Determines whether the floating-point exception and status flags are saved on routine entry and restored on routine exit.

[no]minus0

Determines whether the compiler uses Fortran 2003 or Fortran 90/77 standard semantics in the SIGN intrinsic when treating -0.0 and +0.0 as 0.0, and how it writes the value on formatted output.

[no]old_boz

Determines whether the binary, octal, and hexadecimal constant arguments in intrinsic functions INT, REAL, DBLE, and CMPLX are treated as signed integer constants.

[no]old_ldout_format

Determines the output of integer and real values in list-directed and namelist-directed output.

[no]old_logical_ldio

Determines whether NAMELIST and list-directed input accept logical values for numeric IO-list items.

[no]old_maxminloc

Determines the results of intrinsics MAXLOC and MINLOC when given an empty array as an argument.

[no]old_unit_star

Determines whether READs or WRITEs to UNIT=* go to stdin or stdout, respectively.

[no]old_xor

Determines whether .XOR. is defined by the compiler as an intrinsic operator.

[no]protect_constants

Determines whether a constant actual argument or a copy of it is passed to a called routine.

[no]protect_parens

Determines whether the optimizer honors parentheses in REAL and COMPLEX expression evaluations by not reassociating operations.

[no]realloc_lhs

Determines whether allocatable objects on the left-hand side of an assignment are treated according to Fortran 2003 rules or Fortran 95/90 rules.

[no]source_include

Determines whether the compiler searches for USE modules and INCLUDE files in the default directory or in the directory where the source file is located.

[no]std_mod_proc_name

Determines whether the names of module procedures are allowed to conflict with user external symbol names.

[no]underscore

Determines whether the compiler appends an underscore character to external user-defined names.

[no]2underscores
(Linux and Mac OS X)

Determines whether the compiler appends two underscore characters to external user-defined names.

[no]writeable-strings

Determines whether character constants go into non-read-only memory.

Default

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.

nofpe_summary

Suppresses a summary of floating-point exceptions from being displayed when a STOP statement is encountered.

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.

old_ldout_format

For list-directed and namelist-directed output, integers are written with a fixed width that is dependent on the integer kind, and zero real values are written using the E format.

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
Linux and Mac OS X: underscore

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
(Linux and Mac OS X)

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.

Description

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 fpe_summary

Causes a summary of floating-point exceptions that occurred during program execution to be displayed when a STOP statement is encountered. Counts will be shown for each exception. This is the behavior specified by the Fortran 2003 standard.

Note that if there is no STOP statement, no summary is displayed.

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 noold_ldout_format

Tells the compiler to use Fortran 2003 standard semantics for output of integer and real values in list-directed and namelist-directed output.

Integers are written using an I0 format with a leading blank for spacing.

Real and complex values are written using and E or F format with a leading blank for spacing. The format used depends on the magnitude of the value. Values that are zero are written using an F format.

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
(Linux and Mac OS X)

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.

Alternate Options

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 (this is a deprecated option)

Windows: /us (this is a deprecated option)

assume nounderscore

Linux and Mac OS X: -nus (this is a deprecated option)

Windows: None

See Also


Submit feedback on this help topic

Copyright © 1996-2010, Intel Corporation. All rights reserved.