HP OpenVMS Systems Documentation 
HP Fortran for OpenVMS

Previous  Contents  Index 
Description:  Returns the internal address of a storage item. ^{1}  
Class:  Inquiry function; Generic  
Arguments:  X is a variable, an array or record field reference, a procedure, or a constant; it can be of any data type. It must not be the name of an internal procedure or statement function. If it is a pointer, it must be defined and associated with a target.  
Results:  The result is of type INTEGER(8). The value of the result represents the address of the data object or, in the case of pointers, the address of its associated target. If the argument is not valid, the result is undefined.  
In the case of global symbolic constants, LOC returns the value of the constant rather than an address.  
This function serves the same purpose as the %LOC builtin function. 
Description:  Returns the natural logarithm of the argument.  
Class:  Elemental function; Generic  
Arguments:  X must be of type real or complex. If X is real, its value must be greater than zero. If X is complex, its value must not be zero.  
Results:  The result type is the same as X. The result value is approximately equal to log _{e}X.  
If the arguments are complex, the result is the principal value of imaginary part <omega symbol> in the range Pi sign < <omega symbol> <= Pi sign. The imaginary part of the result is Pi sign if the real part of the argument is less than zero and the imaginary part of the argument is zero. 
Specific Name  Argument Type  Result Type 

ALOG ^{1}  REAL(4)  REAL(4) 
DLOG  REAL(8)  REAL(8) 
QLOG  REAL(16)  REAL(16) 
CLOG ^{1}  COMPLEX(4)  COMPLEX(4) 
CDLOG ^{2 }  COMPLEX(8)  COMPLEX(8) 
CQLOG  COMPLEX(16)  COMPLEX(16) 
Examples
LOG (8.0) has the value 2.079442.
LOG (25.0) has the value 3.218876.
Description:  Returns the common logarithm of the argument.  
Class:  Elemental function; Generic  
Arguments:  X must be of type real. The value of X must be greater than zero.  
Results:  The result type is the same as X. The result has a value equal to log _{10}X. 
Specific Name  Argument Type  Result Type 

ALOG10 ^{1}  REAL(4)  REAL(4) 
DLOG10  REAL(8)  REAL(8) 
QLOG10  REAL(16)  REAL(16) 
Examples
LOG10 (8.0) has the value 0.9030900.
LOG10 (15.0) has the value 1.176091.
Description:  Converts the logical value of the argument to a logical value with different kind parameters.  
Class:  Elemental function; Generic  
Arguments:  L  Must be of type logical.  
KIND (opt)  Must be a scalar integer initialization expression.  
Results: 
The result is of type logical. If KIND is present, the kind parameter
is that specified by KIND; otherwise, the kind parameter is that of
default logical. The result value is that of L.
The setting of compiler options specifying integer size can affect this function. 
Examples
LOGICAL (L .OR. .NOT. L) has the value true and is of type default logical regardless of the kind parameter of logical variable L.
LOGICAL (.FALSE., 2) has the value false, with the kind parameter of INTEGER(KIND=2).
Description:  Allocates a block of memory. This is a specific function that has no generic function associated with it. It must not be passed as an actual argument.  
Class:  Elemental function; Specific  
Arguments:  I must be of type integer. This value is the size (in bytes) of memory to be allocated.  
Results: 
The result is of type INTEGER(8).
If the argument is INTEGER(8), a 64bit (P3) space is allocated. The result is the starting address of the allocated memory. The memory allocated can be freed by using the FREE intrinsic function (see Section 9.4.55). 
Examples
Consider the following:
INTEGER(4) ADDR, SIZE SIZE = 1024 ! Size in bytes ADDR = MALLOC(SIZE) ! Allocate the memory CALL FREE(ADDR) ! Free it END 
Description:  Performs matrix multiplication of numeric or logical matrices.  
Class:  Transformational function; Generic  
Arguments:  MATRIX_A  Must be an array of rank one or two. It must be of numeric (integer, real, or complex) or logical type.  
MATRIX_B 
Must be an array of rank one or two. It must be of numeric type if
MATRIX_A is of numeric type or logical type if MATRIX_A is logical type.
At least one argument must be of rank two. The size of the first (or only) dimension of MATRIX_B must equal the size of the last (or only) dimension of MATRIX_A. 

Results: 
The result is an array whose type depends on the data type of the
arguments, according to the rules shown in Table 42. The rank and
shape of the result depends on the rank and shapes of the arguments, as
follows:
If the arguments are of numeric type, element (i, j) of the result has the value SUM ((row i of MATRIX_A) * (column j of MATRIX_B)). If the arguments are of logical type, element (i, j) of the result has the value ANY ((row i of MATRIX_A) .AND. (column j of MATRIX_B)). 
Examples
A is matrix <left[ symbol><matrix symbol> 2&3&4<cr symbol> 3&4&5<cr symbol> <right] symbol> , B is matrix <left[ symbol><matrix symbol> 2&3<cr symbol> 3&4<cr symbol> 4&5<cr symbol> <right] symbol> , X is vector (1, 2), and Y is vector (1, 2, 3).
The result of MATMUL (A, B) is the matrixmatrix product AB with the value <left[ symbol><matrix symbol> 29&38<cr symbol> 38&50<cr symbol> <right] symbol> .
The result of MATMUL (X, A) is the vectormatrix product XA with the value (8, 11, 14).
The result of MATMUL (A, Y) is the matrixvector product AY with the value (20, 26).
Description:  Returns the maximum value of the arguments.  
Class:  Elemental function; Generic  
Arguments:  A1, A2, and A3 (opt) must all have the same type (integer or real) and kind parameters.  
Results:  For MAX0, AMAX1, DMAX1, QMAX1, IMAX0, JMAX0, and KMAX0, the result type is the same as the arguments. For MAX1, IMAX1, JMAX1, and KMAX1, the result is of type integer. For AMAX0, AIMAX0, AJMAX0, and AKMAX0, the result is of type real. The value of the result is that of the largest argument. 
Specific Name^{1}  Argument Type  Result Type 

INTEGER(1)  INTEGER(1)  
INTEGER(1)  REAL(4)  
IMAX0  INTEGER(2)  INTEGER(2) 
AIMAX0  INTEGER(2)  REAL(4) 
MAX0 ^{2}  INTEGER(4)  INTEGER(4) 
AMAX0 ^{3,4}  INTEGER(4)  REAL(4) 
KMAX0  INTEGER(8)  INTEGER(8) 
AKMAX0  INTEGER(8)  REAL(4) 
IMAX1  REAL(4)  INTEGER(2) 
MAX1 ^{4,5,6}  REAL(4)  INTEGER(4) 
KMAX1  REAL(4)  INTEGER(8) 
AMAX1 ^{7}  REAL(4)  REAL(4) 
DMAX1  REAL(8)  REAL(8) 
QMAX1  REAL(16)  REAL(16) 
Examples
MAX (2.0, 8.0, 6.0) has the value 6.0.
MAX (14, 32, 50) has the value 32.
Description:  Returns the maximum exponent in the model representing the same type and kind parameters as the argument.  
Class:  Inquiry function; Generic  
Arguments:  X must be of type real; it can be scalar or array valued.  
Results:  The result is a scalar of type default integer. The result has the value e _{max} , as defined in Section D.2. 
Examples
If X is of type REAL(4), MAXEXPONENT (X) has the value 128.
Description:  Returns the location of the maximum value of all elements in an array, a set of elements in an array, or elements in a specified dimension of an array.  
Class:  Transformational function; Generic  
Arguments:  ARRAY  Must be an array of type integer or real.  
DIM (opt)  Must be a scalar integer with a value in the range 1 to n, where n is the rank of ARRAY. This argument is a Fortran 95 feature.  
MASK (opt)  Must be a logical array that is conformable with ARRAY.  
KIND (opt)  Must be a scalar integer initialization expression.  
Results: 
The result is an array of type integer.
If KIND is present, the kind parameter of the result
is that specified by KIND; otherwise, the kind parameter of the result
is that of default integer. If the processor cannot represent the
result value in the kind of the result, the result is undefined.
The following rules apply if DIM is omitted:
The following rules apply if DIM is specified:
If more than one element has maximum value, the element whose subscripts are returned is the first such element, taken in array element order. If ARRAY has size zero, or every element of MASK has the value .FALSE., the value of the result is undefined. 
Examples
The value of MAXLOC ((/3, 7, 4, 7/)) is (2), which is the subscript of the location of the first occurrence of the maximum value in the rankone array.
A is the array <left[ symbol><matrix symbol> 4& 0&3& 2<cr symbol> 3& 1&2& 6<cr symbol> 1&4& 5&5<cr symbol> <right] symbol> .
MAXLOC (A, MASK=A .LT. 5) has the value (1, 1) because these are the subscripts of the location of the maximum value (4) that is less than 5.
MAXLOC (A, DIM=1) has the value (1, 2, 3, 2). 1 is the subscript of the location of the maximum value (4) in column 1; 2 is the subscript of the location of the maximum value (1) in column 2; and so forth.
MAXLOC (A, DIM=2) has the value (1, 4, 3). 1 is the subscript of the location of the maximum value in row 1; 4 is the subscript of the location of the maximum value in row 2; and so forth.
Description:  Returns the maximum value of all elements in an array, a set of elements in an array, or elements in a specified dimension of an array.  
Class:  Transformational function; Generic  
Arguments:  ARRAY  Must be an array of type integer or real.  
DIM (opt)  Must be a scalar integer expression with a value in the range 1 to n, where n is the rank of ARRAY.  
MASK (opt)  Must be a logical array that is conformable with ARRAY.  
Results: 
The result is an array or a scalar of the same data type as ARRAY.
The result is a scalar if DIM is omitted or ARRAY has rank one. The following rules apply if DIM is omitted:
The following rules apply if DIM is specified:
If ARRAY has size zero or if there are no true elements in MASK, the result (if DIM is omitted), or each element in the result array (if DIM is specified), has the value of the negative number of the largest magnitude supported by the processor for numbers of the type and kind parameters of ARRAY. 
Examples
The value of MAXVAL ((/2, 3, 4/)) is 4 because that is the maximum value in the rankone array.
MAXVAL (B, MASK=B .LT. 0.0) finds the maximum value of the negative elements of B.
C is the array <left[ symbol><matrix symbol> 2&3&4<cr symbol> 5&6&7<cr symbol> <right] symbol> .
MAXVAL (C, DIM=1) has the value (5, 6, 7). 5 is the maximum value in column 1; 6 is the maximum value in column 2; and so forth.
MAXVAL (C, DIM=2) has the value (4, 7). 4 is the maximum value in row 1 and 7 is the maximum value in row 2.
Previous  Next  Contents  Index 