# C to D

This section describes language features that start with C or D.

Parent topic: A to Z Reference

- C_ASSOCIATED
  Intrinsic Module Inquiry function (Generic): Indicates the association status of one argument, or whether two arguments are associated with the same entity.
- C_F_POINTER
  Intrinsic Module Subroutine: Associates a data pointer with the target of a C pointer and specifies its shape.
- C_F_PROCPOINTER
  Intrinsic Module Subroutine: Associates a Fortran procedure pointer with the target of a C function pointer.
- C_FUNLOC
  Intrinsic Module Inquiry function (Generic): Returns the C address of a function pointer.
- C_LOC
  Intrinsic Module Inquiry function (Generic): Returns the C address of an argument.
- C_SIZEOF
  Intrinsic Module Inquiry function (Generic): Returns the number of bytes of storage used by the argument. It cannot be passed as an actual argument.
- CACHESIZE
  Inquiry Intrinsic Function (Generic): Returns the size of a level of the memory cache.
- CALL
  Statement: Transfers control to a subroutine subprogram.
- CANCEL
  OpenMP* Fortran Compiler Directive: Requests cancellation of the innermost enclosing region of the construct specified, and causes the encountering implicit or explicit task to proceed to the end of the canceled construct.
- CANCELLATION POINT
  OpenMP* Fortran Compiler Directive: Defines a point at which implicit or explicit tasks check to see if cancellation has been requested for the innermost enclosing region of the type specified. This construct does not implement a synchronization between threads or tasks.
- CASE
  Statement: Marks the beginning of a CASE construct. A CASE construct conditionally executes one block of constructs or statements depending on the value of a scalar expression in a SELECT CASE statement.
- CDFLOAT
  Portability Function: Converts a COMPLEX(4) argument to double-precision real type.
- CEILING
  Elemental Intrinsic Function (Generic): Returns the smallest integer greater than or equal to its argument.
- CFI_address
  C function prototype: Returns the C address of an object described by a C descriptor.
- CFI_allocate
  C function prototype: Allocates memory for an object described by a C descriptor.
- CFI_deallocate
  C function prototype: Deallocates memory for an object described by a C descriptor.
- CFI_establish
  C function prototype: Establishes a C descriptor.
- CFI_is_contiguous
  C function prototype: Tests contiguity of an array.
- CFI_section
  C function prototype: Updates a C descriptor for an array section for which each element is an element of a given array.
- CFI_select_part
  C function prototype: Updates a C descriptor for an array section for which each element is a part of the corresponding element of an array.
- CFI_setpointer
  C function prototype: Updates a C descriptor for a Fortran pointer to be associated with the whole of a given object or to be disassociated.
- CHANGEDIRQQ
  Portability Function: Makes the specified directory the current, default directory.
- CHANGEDRIVEQQ
  Portability Function: Makes the specified drive the current, default drive.
- CHANGE TEAM and END TEAM
  Statement: Changes the current team of each image that executes the statement.
- CHAR
  Elemental Intrinsic Function (Generic): Returns the character in the specified position of the processor's character set. It is the inverse of the function ICHAR.
- CHARACTER
  Statement: Specifies the CHARACTER data type.
- CHDIR
  Portability Function: Changes the default directory.
- CHMOD
  Portability Function: Changes the access mode of a file.
- CLASS
  Statement: Declares a polymorphic object. It takes one of the following forms:
- CLEARSTATUSFPQQ
  Portability Subroutine: Clears the exception flags in the floating-point processor status word.
- CLOCK
  Portability Function: Converts a system time into an 8-character ASCII string.
- CLOCKX
  Portability Subroutine: Returns the processor clock in units of microseconds.
- CLOSE
  Statement: Disconnects a file from a unit.
- CMPLX
  Elemental Intrinsic Function (Specific): Converts the argument to complex type. This function cannot be passed as an actual argument.
- CO_BROADCAST
  Collective Intrinsic Subroutine (Generic): Broadcasts a value to other images.
- CO_MAX
  Collective Intrinsic Subroutine (Generic): Calculates the maximum value across images.
- CO_MIN
  Collective Intrinsic Subroutine (Generic): Calculates the minimum value across images.
- CO_REDUCE
  Collective Intrinsic Subroutine (Generic): Performs generalized reduction across images.
- CO_SUM
  Collective Intrinsic Subroutine (Generic): Performs a sum reduction across images.
- CODE_ALIGN
  General Compiler Directive: Specifies the byte alignment for a loop.
- CODIMENSION
  Statement and Attribute: Specifies that an entity is a coarray, and specifies its corank and cobounds, if any.
- COLLAPSE Clause
  Parallel Directive Clause: Specifies how many loops are associated with a loop construct.
- COMMAND_ARGUMENT_COUNT
  Inquiry Intrinsic Function (Generic): Returns the number of command arguments.
- COMMITQQ
  Run-Time Function: Forces the operating system to execute any pending write operations for the file associated with a specified unit to the file's physical device.
- COMMON
  Statement: Defines one or more contiguous areas, or blocks, of physical storage (called common blocks) that can be accessed by any of the scoping units in an executable program. COMMON statements also define the order in which variables and arrays are stored in each common block, which can prevent misaligned data items. COMMON is an obsolescent language feature in Standard Fortran.
- COMPILER_OPTIONS
  Module Intrinsic Inquiry Function: Returns a string containing the compiler options that were used for compilation.
- COMPILER_VERSION
  Module Intrinsic Inquiry Function: Returns a string containing the name and version number of the compiler used for compilation.
- COMPLEX Statement
  Statement: Specifies the COMPLEX data type.
- COMPLINT, COMPLREAL, COMPLLOG
  Portability Functions: Return a BIT-WISE complement or logical .NOT. of the argument.
- CONJG
  Elemental Intrinsic Function (Generic): Calculates the conjugate of a complex number.
- CONTAINS
  Statement: Separates the body of a main program, module, submodule, or external subprogram from any internal or module procedures it may contain, or it introduces the type-bound procedure part of a derived-type definition. It is not executable.
- CONTIGUOUS
  Statement and Attribute: Specifies that the target of a pointer or an assumed-sized array is contiguous.
- CONTINUE
  Statement: Primarily used to terminate a labeled DO construct when the construct would otherwise end improperly with either a GO TO, arithmetic IF, or other prohibited control statement.
- COPYIN Clause
  Parallel Directive Clause: Specifies that the data in the primary thread of the team is to be copied to the thread private copies of the common block at the beginning of the parallel region.
- COPYPRIVATE Clause
  Parallel Directive Clause: Uses a private variable to broadcast a value, or a pointer to a shared object, from one member of a team to the other members. The COPYPRIVATE clause can only appear in the END SINGLE directive.
- COS
  Elemental Intrinsic Function (Generic): Produces the cosine of an argument.
- COSD
  Elemental Intrinsic Function (Generic): Produces the cosine of x.
- COSH
  Elemental Intrinsic Function (Generic): Produces a hyperbolic cosine.
- COSHAPE
  Inquiry Intrinsic Function (Generic): Returns the sizes of codimensions of a coarray.
- COTAN
  Elemental Intrinsic Function (Generic): Produces the cotangent of x.
- COTAND
  Elemental Intrinsic Function (Generic): Produces the cotangent of x.
- COUNT
  Transformational Intrinsic Function (Generic): Counts the number of true elements in an entire array or in a specified dimension of an array.
- CPU_TIME
  Intrinsic Subroutine (Generic): Returns a processor-dependent approximation of the processor time in seconds. Intrinsic subroutines cannot be passed as actual arguments.
- CRITICAL Directive
  OpenMP* Fortran Compiler Directive: Restricts access to a block of code to only one thread at a time.
- CRITICAL Statement
  Statement: Marks the beginning of a CRITICAL construct. A CRITICAL construct limits execution of a block to one image at a time.
- CSHIFT
  Transformational Intrinsic Function (Generic): Performs a circular shift on a rank-one array, or performs circular shifts on all the complete rank-one sections (vectors) along a given dimension of an array of rank two or greater.
- CSMG
  Portability Function: Performs an effective BIT-WISE store under mask.
- CTIME
  Portability Function: Converts a system time into a 24-character ASCII string.
- CYCLE
  Statement: Interrupts the current execution cycle of the innermost (or named) DO construct.
- DATA
  Statement: Assigns initial values to variables before program execution.
- DATE Intrinsic Procedure
  Intrinsic Subroutine (Generic): Returns the current date as set within the system. DATE can be used as an intrinsic subroutine or as a portability routine. It is an intrinsic procedure unless you specify USE IFPORT. Intrinsic subroutines cannot be passed as actual arguments.
- DATE Portability Routine
  Portability Function or Subroutine: Returns the current system date. DATE can be used as a portability routine or as an intrinsic procedure. It is an intrinsic procedure unless you specify USE IFPORT.
- DATE4
  Portability Subroutine: Returns the current system date.
- DATE_AND_TIME
  Intrinsic Subroutine (Generic): Returns character and binary data on the real-time clock and date. Intrinsic subroutines cannot be passed as actual arguments.
- DBESJ0, DBESJ1, DBESJN, DBESY0, DBESY1, DBESYN
  Portability Functions: Compute the double-precision values of Bessel functions of the first and second kinds.
- DBLE
  Elemental Intrinsic Function (Generic): Converts a number to double-precision real type.
- DCLOCK
  Portability Function: Returns the elapsed time in seconds since the start of the current process.
- DCMPLX
  Elemental Intrinsic Function (Specific): Converts the argument to double complex type. This function cannot be passed as an actual argument.
- DEALLOCATE
  Statement: Frees the storage allocated for allocatable variables and nonprocedure pointer targets (and causes the pointers to become disassociated).
- DECLARE and NODECLARE
  General Compiler Directives: DECLARE generates warnings for variables that have been used but have not been declared (like the IMPLICIT NONE statement). NODECLARE (the default) disables these warnings.
- DECLARE MAPPER
  OpenMP* Fortran Compiler Directive: Declares a user-defined mapper for a specified type. It also lets you optionally declare a map-identifier that can be used in a MAP clause in other directives or in a motion-clause of a TARGET UPDATE directive. This feature is only available for ifx.
- DECLARE REDUCTION
  OpenMP* Fortran Compiler Directive: Declares user-defined reductions which are identified by a reduction-identifier that can be used in a reduction clause of other directives.
- DECLARE SIMD
  OpenMP* Fortran Compiler Directive: Creates a version of a function that can process multiple arguments using Single Instruction Multiple Data (SIMD) instructions from a single invocation from a SIMD loop.
- DECLARE TARGET
  OpenMP* Fortran Compiler Directive: Specifies that named variables, common blocks, functions, and subroutines are mapped to a device. This feature is only available for ifx.
- DECLARE VARIANT
  OpenMP* Fortran Compiler Directive: Identifies a variant of a base procedure and specifies the context in which this variant is used. This feature is only available for ifx.
- DECODE
  Statement: Translates data from character to internal form. It is comparable to using internal files in formatted sequential READ statements.
- DEFAULT Clause
  Parallel Directive Clause: Lets you specify a scope for all variables in the lexical extent of a parallel region.
- DEFINE and UNDEFINE
  General Compiler Directives: DEFINE creates a symbolic variable whose existence or value can be tested during conditional compilation. UNDEFINE removes a defined symbol.
- DEFINE FILE
  Statement: Establishes the size and structure of files with relative organization and associates them with a logical unit number.
- DELDIRQQ
  Portability Function: Deletes a specified directory.
- DELETE
  Statement: Deletes a record from a relative file.
- DELFILESQQ
  Portability Function: Deletes all files matching the name specification, which can contain wildcards (* and ?).
- DEPEND Clause
  Parallel Directive Clause: Enforces additional constraints on the scheduling of a task by enabling dependences between sibling tasks in the task region.
- DEVICE Clause
  Parallel Directive Clause: Specifies the target device for a processor control directive like TARGET.
- DFLOAT
  Elemental Intrinsic Function (Generic): Converts an integer to double-precision real type.
- DFLOATI, DFLOATJ, DFLOATK
  Portability Functions: Convert an integer to double-precision real type.
- DIGITS
  Inquiry Intrinsic Function (Generic): Returns the number of significant digits for numbers of the same type and kind parameters as the argument.
- DIM
  Elemental Intrinsic Function (Generic): Returns the difference between two numbers (if the difference is positive).
- DIMENSION
  Statement and Attribute: Specifies that an object is an array, and defines the shape of the array.
- DISPATCH
  OpenMP* Fortran Compiler Directive: Determines whether a variant of a procedure is called for a given function or subroutine call. This feature is only available for ifx.
- DISTRIBUTE
  OpenMP* Fortran Compiler Directive: Specifies that loop iterations will be distributed among the primary threads of all thread teams in a league created by a teams construct.
- DISTRIBUTE PARALLEL DO
  OpenMP* Fortran Compiler Directive: Specifies a loop that can be executed in parallel by multiple threads that are members of multiple teams.
- DISTRIBUTE PARALLEL DO SIMD
  OpenMP* Fortran Compiler Directive: Specifies a loop that will be executed in parallel by multiple threads that are members of multiple teams. It will be executed concurrently using SIMD instructions.
- DISTRIBUTE POINT
  General Compiler Directive: Specifies loop distribution. It suggests a location at which a DO loop can be split.
- DISTRIBUTE SIMD
  OpenMP* Fortran Compiler Directive: Specifies a loop that will be distributed across the primary threads of the teams region. It will be executed concurrently using SIMD instructions.
- DNUM
  Elemental Intrinsic Function (Specific): Converts a character string to a REAL(8) value. This function cannot be passed as an actual argument.
- DO Directive
  OpenMP* Fortran Compiler Directive: Specifies that the iterations of the immediately following DO loop must be executed in parallel.
- DO Statement
  Statement: Marks the beginning of a DO construct. The DO construct controls the repeated execution of a block of statements or constructs. This repeated execution is called a loop.
- DO CONCURRENT
  Statement: Specifies that there are no data dependencies between the iterations of a DO loop.
- DO SIMD
  OpenMP* Fortran Compiler Directive: Specifies that the iterations of the loop will be distributed across threads in the team. Iterations executed by each thread can also be executed concurrently using SIMD instructions.
- DO WHILE
  Statement: Executes the range of a DO construct while a specified condition remains true.
- DOT_PRODUCT
  Transformational Intrinsic Function (Generic): Performs dot-product multiplication of numeric or logical vectors (rank-one arrays).
- DOUBLE COMPLEX
  Statement: Specifies the DOUBLE COMPLEX data type.
- DOUBLE PRECISION
  Statement: Specifies the DOUBLE PRECISION data type.
- DPROD
  Elemental Intrinsic Function (Specific): Produces a higher precision product. This is a specific function that has no generic function associated with it.
- DRAND, DRANDM
  Portability Functions: Return double-precision random numbers in the range 0.0 to 1.0, not including the end points.
- DRANSET
  Portability Subroutine: Sets the seed for the random number generator.
- DREAL
  Elemental Intrinsic Function (Specific): Converts the real part of a double complex argument to double-precision type. This is a specific function that has no generic function associated with it. It cannot be passed as an actual argument.
- DSHIFTL
  Elemental Intrinsic Function (Specific): Selects the left 64 bits after shifting a 128-bit integer value to the left. This function cannot be passed as an actual argument.
- DSHIFTR
  Elemental Intrinsic Function (Specific): Selects the left 64 bits after shifting a 128-bit integer value to the right. This function cannot be passed as an actual argument.
- DTIME
  Portability Function: Returns the elapsed CPU time since the start of program execution when first called, and the elapsed execution time since the last call to DTIME thereafter.