HP OpenVMS Systems Documentation 
HP Fortran for OpenVMS

Previous  Contents  Index 
Description:  Returns the number of bytes of storage used by the argument. This is a specific function that has no generic function associated with it. It must not be passed as an actual argument.  
Class:  Inquiry function; Specific  
Arguments:  X is a scalar or array (of any data type). It must not be an assumedsize array.  
Results:  The result is of type INTEGER(8). The result value is the number of bytes of storage used by X. 
Examples
SIZEOF (3.44) has the value 4.
SIZEOF ( ' SIZE ' ) has the value 4.
Description:  Returns the absolute spacing of model numbers near the argument value.  
Class:  Elemental function; Generic  
Arguments:  X must be of type real.  
Results:  The result type is the same as X. The result has the value b ^{ep}. Parameters b, e, and p are defined in Section D.2. If the result value is outside of the real model range, the result is TINY(X). (For information on TINY, see Section 9.4.157.) 
Examples
If 3.0 is a REAL(4) value, SPACING (3.0) has the value 2^{22}.
Description:  Creates a replicated array with an added dimension by making copies of existing elements along a specified dimension.  
Class:  Transformational function; Generic  
Arguments:  SOURCE  Must be a scalar or array (of any data type). The rank must be less than 7.  
DIM  Must be scalar and of type integer. It must have a value in the range 1 to n + 1 (inclusive), where n is the rank of SOURCE.  
NCOPIES  Must be scalar and of type integer. It becomes the extent of the additional dimension in the result.  
Results: 
The result is an array of the same type as SOURCE and of rank that is
one greater than SOURCE.
If SOURCE is an array, each array element in dimension DIM of the result is equal to the corresponding array element in SOURCE. If SOURCE is a scalar, the result is a rankone array with NCOPIES elements, each with the value SOURCE. If NCOPIES <= zero, the result is an array of size zero. 
Examples
SPREAD ("B", 1, 4) is the character array (/"B", "B", "B", "B"/).
B is the array (3, 4, 5) and NC has the value 4.
SPREAD (B, DIM=1, NCOPIES=NC) produces the array <left[ symbol><matrix symbol> 3&4&5<cr symbol> 3&4&5<cr symbol> 3&4&5<cr symbol> 3&4&5<cr symbol> <right] symbol> .
SPREAD (B, DIM=2, NCOPIES=NC) produces the array <left[ symbol><matrix symbol> 3&3&3&3<cr symbol> 4&4&4&4<cr symbol> 5&5&5&5<cr symbol> <right] symbol> .
Description:  Derives the square root of the argument.  
Class:  Elemental function; Generic  
Arguments:  X must be of type real or complex. If X is type real, its value must be greater than or equal to zero.  
Results:  The result type is the same as X. The result has a value equal to the square root of X. A result of type complex is the principal value, with the real part greater than or equal to zero. When the real part of the result is zero, the imaginary part is greater than or equal to zero. 
Specific Name  Argument Type  Result Type 

SQRT  REAL(4)  REAL(4) 
DSQRT  REAL(8)  REAL(8) 
QSQRT  REAL(16)  REAL(16) 
CSQRT ^{1}  COMPLEX(4)  COMPLEX(4) 
CDSQRT ^{2 }  COMPLEX(8)  COMPLEX(8) 
CQSQRT  COMPLEX(16)  COMPLEX(16) 
Examples
SQRT (16.0) has the value 4.0.
SQRT (3.0) has the value 1.732051.
Description:  Returns the sum of all the elements in an entire array or in a specified dimension of an array.  
Class:  Transformational function; Generic  
Arguments:  ARRAY  Must be an array of type integer, real, or complex.  
DIM (opt)  Must be a scalar integer with a value in the range 1 to n, where n is the rank of ARRAY.  
MASK (opt)  Must be of type logical and 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:

Examples
SUM ((/2, 3, 4/)) returns the value 9 (sum of 2 + 3 + 4). SUM ((/2, 3, 4/), DIM=1) returns the same result.
SUM (B, MASK=B .LT. 0.0) returns the arithmetic sum of the negative elements of B.
C is the array <left[ symbol><matrix symbol> 1&2&3<cr symbol> 4&5&6<cr symbol> <right] symbol> .
SUM (C, DIM=1) returns the value (5, 7, 9), which is the sum of all elements in each column. 5 is the sum of 1 + 4 in column 1. 7 is the sum of 2 + 5 in column 2, and so forth.
SUM (C, DIM=2) returns the value (6, 15), which is the sum of all elements in each row. 6 is the sum of 1 + 2 + 3 in row 1. 15 is the sum of 4 + 5 + 6 in row 2.
Description:  Returns integer data from a realtime clock. ^{1}  
Class:  Subroutine  
Arguments:  There are three optional arguments ^{2}:  
COUNT (opt)  Must be scalar and of type default integer. It is set to a value based on the current value of the processor clock. The value is increased by one for each clock count until the value COUNT_MAX is reached, and is reset to zero at the next count. (COUNT lies in the range 0 to COUNT_MAX.)  
COUNT_
RATE (opt) 
Must be scalar and of type default integer. It is set to the number of
processor clock counts per second modified by the kind of COUNT_RATE.
If default integer is INTEGER(2), COUNT_RATE is 1000. If default integer is INTEGER(4), COUNT_RATE is 10000. If default integer is INTEGER(8), COUNT_RATE is 1000000. 

COUNT_MAX
(opt) 
Must be scalar and of type default integer. It is set to the maximum value that COUNT can have, HUGE(0) ^{3}. 
Examples
Consider the following:
INTEGER(2) :: IC2, CRATE2, CMAX2 INTEGER(4) :: IC4, CRATE4, CMAX4 CALL SYSTEM_CLOCK(COUNT=IC2, COUNT_RATE=CRATE2, COUNT_MAX=CMAX2) CALL SYSTEM_CLOCK(COUNT=IC4, COUNT_RATE=CRATE4, COUNT_MAX=CMAX4) PRINT *, IC2, CRATE2, CMAX2 PRINT *, IC4, CRATE4, CMAX4 end 
This program was run on Thursday Dec 11, 1997 at 14:23:55 EST and produced the following output:
13880 1000 32767 1129498807 10000 2147483647 
Description:  Produces the tangent of X.  
Class:  Elemental function; Generic  
Arguments:  X must be of type real. It must be in radians and is treated as modulo 2 * Pi sign.  
Results:  The result type is the same as X. 
Specific Name  Argument Type  Result Type 

TAN  REAL(4)  REAL(4) 
DTAN  REAL(8)  REAL(8) 
QTAN  REAL(16)  REAL(16) 
Examples
TAN (2.0) has the value 2.185040.
TAN (0.8) has the value 1.029639.
Description:  Produces the tangent of X.  
Class:  Elemental function; Generic  
Arguments:  X must be of type real. It must be in degrees and is treated as modulo 360.  
Results:  The result type is the same as X. 
Specific Name  Argument Type  Result Type 

TAND  REAL(4)  REAL(4) 
DTAND  REAL(8)  REAL(8) 
QTAND  REAL(16)  REAL(16) 
Examples
TAND (2.0) has the value 3.4920771E02.
TAND (0.8) has the value 1.3963542E02.
Description:  Produces a hyperbolic tangent.  
Class:  Elemental function; Generic  
Arguments:  X must be of type real.  
Results:  The result type is the same as X. 
Specific Name  Argument Type  Result Type 

TANH  REAL(4)  REAL(4) 
DTANH  REAL(8)  REAL(8) 
QTANH  REAL(16)  REAL(16) 
Examples
TANH (2.0) has the value 0.9640276.
TANH (0.8) has the value 0.6640368.
Description:  Returns the current time as set within the system.  
Class:  Subroutine  
Arguments: 
BUF is an 8byte variable, array, array element, or character substring.
The date is returned as an 8byte ASCII character string taking the form hh:mm:ss, where: hh is the 2digit hour If BUF is of numeric type and smaller than 8 bytes, data corruption can occur. If BUF is of character type, its associated length is passed to the subroutine. If BUF is smaller than 8 bytes, the subroutine truncates the date to fit in the specified length. If a CHARACTER array is passed, the subroutine stores the date in the first array element, using the element length, not the length of the entire array. 
Examples
An example of a value returned from a call to TIME is 13:45:23 (a 24hour clock is used).
Consider the following:
CHARACTER*1 HOUR(8) ... CALL TIME (HOUR) 
The length of the first array element in CHARACTER array HOUR is passed to the TIME subroutine. The subroutine then truncates the time to fit into the 1character element, producing an incorrect result.
Description:  Returns the smallest number 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 with the same type and kind parameters as X. The result has the value b ^{e_min1} . Parameters b and e _{min} are defined in Section D.2. 
Examples
If X is of type REAL(4), TINY (X) has the value 2^{126}.
Description:  Returns the number of trailing zero bits in an integer.  
Class:  Elemental function; Generic  
Arguments:  I must be of type integer.  
Results: 
The result type is the same as I. The result value is the number of
trailing zeros in the binary representation of the integer I.
The model for the interpretation of an integer value as a sequence of bits is shown in Section D.3. 
Examples
Consider the following:
INTEGER*8 J, TWO PARAMETER (TWO=2) DO J= 1, 40 TYPE *, TRAILZ(TWO**J) ! Prints 64, then 0 up to ENDDO ! 40 (trailing zeros) END 
Description:  Copies the bit pattern of SOURCE and interprets it according to the type and kind parameters of MOLD.  
Class:  Transformational function; Generic  
Arguments:  SOURCE  Must be a scalar or array (of any data type).  
MOLD  Must be a scalar or array (of any data type). It provides the type characteristics (not a value) for the result.  
SIZE (opt)  Must be scalar and of type integer. It provides the number of elements for the output result.  
Results: 
The result has the same type and type parameters as MOLD.
If MOLD is a scalar and SIZE is omitted, the result is a scalar. If MOLD is an array and SIZE is omitted, the result is a rankone array. Its size is the smallest that is possible to hold all of SOURCE. If SIZE is present, the result is a rankone array of size SIZE. If the physical representation of the result is larger than SOURCE, the result contains SOURCE's bit pattern in its rightmost bits; the leftmost bits of the result are undefined. If the physical representation of the result is smaller than SOURCE, the result contains the rightmost bits of SOURCE's bit pattern. 
Examples
TRANSFER (1082130432, 0.0) has the value 4.0 (on processors that represent the values 4.0 and 1082130432 as the string of binary digits 0100 0000 1000 0000 0000 0000 0000 0000).
TRANSFER ((/2.2, 3.3, 4.4/), ((0.0, 0.0))) results in a scalar whose value is (2.2, 3.3).
TRANSFER ((/2.2, 3.3, 4.4/), (/(0.0, 0.0)/)) results in a complex rankone array of length 2. Its first element is (2.2,3.3) and its second element has a real part with the value 4.4 and an undefined imaginary part.
TRANSFER ((/2.2, 3.3, 4.4/), (/(0.0, 0.0)/), 1) results in a complex rankone array having one element with the value (2.2, 3.3).
Previous  Next  Contents  Index 