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 Fortran 95/90 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 part (subobject) 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 length specifier
The form *n appended to Compaq 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
A statement or series of statements which specify attributes and properties of named entities, such as specifying the data type of named data objects. Declaration is a synonym for specification.
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 type 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 type for complex constants if no kind type parameter is specified. The default complex kind is affected by the compiler option specifying real size. If no compiler option is specified, default complex is COMPLEX(8) (COMPLEX*8). See also default real.
default integer
The kind type for integer constants if no kind type parameter is specified. The default integer kind is affected by compiler options specifying integer size. If no compiler option is 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 type for logical constants if no kind type parameter is specified. The default logical kind is affected by compiler options specifying integer size. If no compiler option is specified, default logical is LOGICAL(4) (LOGICAL*4). See also default integer.
default real
The kind type for real constants if no kind type parameter is specified. The default real kind is affected by the compiler option specifying real size. If no compiler option 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 declared bounds are specified by a colon (:).
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.
define
(1) To give a value to a data object during program execution. (2) To declare derived types and procedures.
defined assignment
An assignment statement that is not intrinsic, but is defined by a subroutine and an interface block. See also derived type.
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 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 denormalized number.
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 an 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. See also multibyte character set.
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 in the Programmer's Guide. See also denormalized number.
driver program
On Windows, Tru64 UNIX, and Linux systems, 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
Is 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 run time.