Intel® Fortran Compiler Classic and Intel® Fortran Compiler Developer Guide and Reference

ID 767251
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Glossary D

data abstraction

A style of programming in which you define types to represent objects in your program, define a set of operations for objects of each type, and restrict the operations to only this set, making the types abstract. The Standard Fortran modules, derived types, and defined operators, support this programming paradigm.

data edit descriptor

A repeatable format descriptor that causes the transfer or conversion of data to or from its internal representation. In FORTRAN 77, this term was called a field descriptor.

data entity

A data object that has a data type. It is the result of the evaluation of an expression, or the result of the execution of a function reference (the function result).

data item

A unit of data (or value) to be processed. Includes constants, variables, arrays, character substrings, or records.

data object

A constant, variable, or subobject (part) of a constant or variable. Its type may be specified implicitly or explicitly.

data type

The properties and internal representation that characterize data and functions. Each intrinsic and user-defined data type has a name, a set of operators, a set of values, and a way to show these values in a program. The basic intrinsic data types are integer, real, complex, logical, and character. The data value of an intrinsic data type depends on the value of the type parameter. See also type parameter.

data type declaration

See type declaration statement.

data type length specifier

The form *n appended to Intel® Fortran-specific data type names. For example, in REAL*4, the *4 is the data type length specifier.

deadlock

A bug where the execution of thread A is blocked indefinitely waiting for thread B to perform some action, while thread B is blocked waiting for thread A. For example, two threads on opposite ends of a named pipe can become deadlocked if each thread waits to read data written by the other thread. A single thread can also deadlock itself. See also thread.

declaration

See specification statement.

declared type

The type that a data entity is declared to have. For polymorphic data entities, it may differ from the type during execution (the dynamic type) .

decorated name

An internal representation of a procedure name or variable name that contains information about where it is declared; for procedures, the information includes how it is called. Decorated names are mainly of interest in mixed-language programming, when calling Fortran routines from other languages.

default character

The kind for character constants if no kind type parameter is specified. Currently, the only kind type parameter for character constants is CHARACTER(1), the default character kind.

default complex

The kind for complex constants if no kind type parameter is specified. The default complex kind is affected by compiler options specifying double size. If no compiler option is specified, default complex is COMPLEX(4) (COMPLEX*8). See also default real.

default integer

The kind for integer constants if no kind type parameter is specified. The default integer kind is affected by the INTEGER directive, the OPTIONS statement, and by compiler options specifying integer size. If none of these are specified, default integer is INTEGER(4) (INTEGER*4).

If a command line option affecting integer size has been specified, the integer has the kind specified, unless it is outside the range of the kind specified by the option. In this case, the kind type of the integer is the smallest integer kind which can hold the integer.

default logical

The kind for logical constants if no kind type parameter is specified. The default logical kind is affected by the INTEGER directive, the OPTIONS statement, and by compiler options specifying integer size. If none of these are specified, default logical is LOGICAL(4) (LOGICAL*4). See also default integer.

default real

The kind for real constants if no kind type parameter is specified. The default real kind is affected by compiler options specifying real size and by the REAL directive. If neither of these is specified, default real is REAL(4) (REAL*4).

If a real constant is encountered that is outside the range for the default, an error occurs.

deferred-shape array

An array pointer (an array with the POINTER attribute) or an allocatable array (an array with the ALLOCATABLE attribute). The size in each dimension is determined by pointer assignment or when the array is allocated.

The array specification contains a colon (:) for each dimension of the array. No bounds are specified.

definable

A property of variables. A variable is definable if its value can be changed by the appearance of its name or designator on the left of an assignment statement. An example of a variable that is not definable is an allocatable array that has not been allocated.

defined

For a data object, the property of having or being given a valid value.

defined assignment

An assignment statement that is not intrinsic, but is defined by a subroutine and an ASSIGNMENT(=) interface block. See also derived type and interface block.

defined operation

An operation that is not intrinsic, but is defined by a function subprogram containing a generic interface block with the specifier OPERATOR. See also derived type and interface block.

denormalized number

A computational floating-point result smaller than the lowest value in the normal range of a data type (the smallest representable normalized number). You cannot write a constant for a subnormal number. Older floating-point standard documents used the term denormal; newer standards call such numbers subnormal.

dependent task

A task that cannot be executed until its preceding task completes; this is due to a task dependence. See also preceding task and task dependence .

derived type

A data type that is user-defined and not intrinsic. It requires a type definition to name the type and specify its components (which can be intrinsic or user-defined types). A structure constructor can be used to specify a value of derived type. A component of a structure is referenced using a percent sign (%).

Operations on objects of derived types (structures) must be defined by a function with an OPERATOR interface. Assignment for derived types can be defined intrinsically, or be redefined by a subroutine with an ASSIGNMENT(=) interface. Structures can be used as procedure arguments and function results, and can appear in input and output lists. Also called a user-defined type. See also record, the first definition.

designator

A name that references a subobject (part of a data object) that can be defined and referenced separately from other parts of the data object. A designator is the name of the object followed by a selector that selects the subobject. For example, B(3) is a designator for an array element. Also called a subobject designator. See also selector and subobject.

dimension

A range of values for one subscript or index of an array. An array can have from 1 to 7 dimensions. The number of dimensions is the rank of the array.

dimension bounds

See bounds.

direct access

A method for retrieving or storing data in which the data (record) is identified by the record number, or the position of the record in the file. The record is accessed directly (nonsequentially); therefore, all information is equally accessible. Also called random access. Contrast with sequential access.

DLL

See Dynamic Link Library.

double-byte character set (DBCS)

A mapping of characters to their identifying numeric values, in which each value is 2 bytes wide. Double-byte character sets are sometimes used for languages that have more than 256 characters.

double-precision constant

A processor approximation to the value of a real number that occupies 8 bytes of memory and can assume a positive, negative, or zero value. The precision is greater than a constant of real (single-precision) type. For the precise ranges of the double-precision constants, see Data Representation Overview in the Compiler Reference. See also denormalized number.

driver program

A program that is the user interface to the language compiler. It accepts command line options and file names and causes one or more language utilities or system programs to process each file.

dummy aliasing

The sharing of memory locations between dummy (formal) arguments and other dummy arguments or COMMON variables that are assigned.

dummy argument

A variable whose name appears in the parenthesized list following the procedure name in a FUNCTION statement, a SUBROUTINE statement, an ENTRY statement, or a statement function statement. A dummy argument takes the value of the corresponding actual argument in the calling program unit (through argument association). Also called a formal argument.

dummy array

A dummy argument that is an array.

dummy pointer

A dummy argument that is a pointer.

dummy procedure

A dummy argument that is specified as a procedure or appears in a procedure reference. The corresponding actual argument must be a procedure.

Dynamic Link Library (DLL)

A separate source module compiled and linked independently of the applications that use it. Applications access the DLL through procedure calls. The code for a DLL is not included in the user's executable image, but the compiler automatically modifies the executable image to point to DLL procedures at runtime.

dynamic type

The type of a data entity during execution of a program. The dynamic type of a data entity that is not polymorphic is the same as its declared type.