VMS Help  —  FORTRAN  Intrinsic Procedures
If "mold" is an array and "size" is absent, the result is a rank-one array. Its size is the smallest that is possible to hold all of "source". If "size" is present, the result is a rank-one array of size "size". If the physical representation of the result is larger than "source", the result contains "source"'s bit pattern in its right-most bits; the left-most bits of the result are undefined. If the physical representation of the result is smaller than "source", the result contains the right-most 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 rank-one 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 rank-one array having one element with the value (2.2, 3.3).

178  –  TRANSPOSE

  TRANSPOSE (matrix)

  Class:  Transformational function - Generic

  Transposes an array of rank two (can be any data type).

  The result is a rank-two array with the same type and kind type
  parameters as "matrix".  Its shape is (n, m), where (m, n) is the
  shape of "matrix".  For example, if the shape of "matrix" is (4,6),
  the shape of the result is (6,4).

  Element (i, j) of the result has the value matrix(j, i), where "i"
  is in the range 1 to n, and "j" is in the range 1 to m.

  Examples:

  Consider that B is the array:

   |2 3 4|
   |5 6 7|.
   |8 9 1|

  TRANSPOSE (B) has the value

   |2 5 8|
   |3 6 9|.
   |4 7 1|

179  –  TRIM

  TRIM (string)

  Class:  Transformational function - Generic

  Returns the argument with trailing blanks removed.

  The "string" is a scalar of type character.  The result is of type
  character with the same kind type parameter as "string".  Its
  length is the length of "string" minus the number of trailing
  blanks in "string".

  The value of the result is the same as "string", except any
  trailing blanks are removed.  If "string" contains only blank
  characters, the result has zero length.

  Examples:

  TRIM ('  NAME    ') has the value '  NAME'.

  TRIM ('  C  D     ') has the value '  C  D'.

180  –  UBOUND

  UBOUND (array [,dim] [,kind])

  Class:  Inquiry function - Generic

  Returns the upper bounds for all dimensions of an array, or the
  upper bound for a specified dimension.

  The "array" cannot be an allocatable array that is not allocated,
  or a disassociated pointer.  The "dim" is a scalar integer with a
  value in the range 1 to n, where "n" is the rank of "array".  The
  "kind" must be a scalar integer initialization expression.

  The result is 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.

  If "dim" is present, the result is a scalar.  Otherwise, the result
  is a rank-one array with one element for each dimension of "array".
  Each element in the result corresponds to a dimension of "array".

  If "array" is an array section or an array expression that is not a
  whole array or array structure component, UBOUND (array,dim) has a
  value equal to the number of elements in the given dimension.

  The setting of compiler options that specify integer size can
  affect the result of this function.

  Examples:

  Consider the following:

  REAL ARRAY_A (1:3, 5:8)
  REAL ARRAY_B (2:8, -3:20)

  UBOUND (ARRAY_A) is (3, 8).  UBOUND (ARRAY_A, DIM=2) is 8.

  UBOUND (ARRAY_B) is (8, 20).  UBOUND (ARRAY_B (5:8, :)) is (4,24)
  because the number of elements is significant for array section
  arguments.

181  –  UNPACK

  UNPACK (vector, mask, field)

  Class:  Transformational function - Generic

  Takes elements from a rank-one array and unpacks them into another
  (possibly larger) array under the control of a mask.

  The "vector" must be a rank-one array of any type.  Its size must
  be at least t, where "t" is the number of true elements in "mask".
  The "mask" must be of logical type; it determines where elements of
  "vector" are placed when they are unpacked.

  The "field" must be of the same type and type parameters as
  "vector" and conformable with "mask".  Elements in "field" are
  inserted into the result array when the corresponding "mask"
  element has the value false.

  The result is an array with the same shape as "mask", and the same
  type and type parameters as "vector".

  Elements in the result array are filled in array element order.  If
  element i of the result is true, the corresponding element of the
  result is filled by the next element in "vector".

  Examples:

  Consider that N is the array |0 0 1|, P is the array (2, 3, 4, 5),
                               |1 0 1|
                               |1 0 0|

  and Q is the array |T F F|
                     |F T F|.
                     |T T F|

  UNPACK (P, MASK=Q, FIELD=N) produces the result

   |2 0 1|
   |1 4 1|.
   |3 5 0|

  UNPACK (P, MASK=Q, FIELD=1) produces the result

   |2 1 1|
   |1 4 1|.
   |3 5 1|

182  –  VERIFY

  VERIFY (string, set [,back] [,kind])

  Class:  Elemental function - Generic

  Verifies that a set of characters contains all the characters in a
  string by identifying the first character in the string that is not
  in the set.

  The "set" must be of type character with the same kind type
  parameter as "string".  The "back" must be of type logical.  The
  "kind" must be a scalar integer initialization expression.

  The result is 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.

  If "back" is absent (or is present with the value false) and
  "string" has at least one character that is not in "set", the value
  of the result is the position of the leftmost character of "string"
  that is not in "set".

  If "back" is present with the value true and "string" has at least
  one character that is not in "set", the value of the result is the
  position of the rightmost character of "string" that is not in
  "set".

  If each character of "string" is in "set" or the length of "string"
  is zero, the value of the result is zero.

  Examples:

  VERIFY ('CDDDC', 'C') has the value 2.

  VERIFY ('CDDDC', 'C', BACK=.TRUE.) has the value 4.

  VERIFY ('CDDDC', 'CD') has the value zero.

183  –  ZEXT

  ZEXT (integer [,kind])

  Class:  Elemental function - Generic

  Returns the value of the argument, zero extended.

  The "kind" must be a scalar integer initialization expression.

  The result is 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.
  +------+----------+----------+------------+-------------+
  | Args | Generic  | Specific |  Argument  | Result Type |
  +------+----------+----------+------------+-------------+
  |  1   |  ZEXT    | IZEXT    | LOGICAL*1  | INTEGER*2   |
  |      |          |  --      | LOGICAL*2  | INTEGER*2   |
  |      |          |  --      | INTEGER*1  | INTEGER*2   |
  |      |          |  --      | INTEGER*2  | INTEGER*2   |
  |      |          | JZEXT    | LOGICAL*1  | INTEGER*4   |
  |      |          |  --      | LOGICAL*2  | INTEGER*4   |
  |      |          |  --      | LOGICAL*4  | INTEGER*4   |
  |      |          |  --      | INTEGER*1  | INTEGER*4   |
  |      |          |  --      | INTEGER*2  | INTEGER*4   |
  |      |          |  --      | INTEGER*4  | INTEGER*4   |
  |      |          | KZEXT    | LOGICAL*1  | INTEGER*8   |
  |      |          |  --      | LOGICAL*2  | INTEGER*8   |
  |      |          |  --      | LOGICAL*4  | INTEGER*8   |
  |      |          |  --      | LOGICAL*8  | INTEGER*8   |
  |      |          |  --      | INTEGER*1  | INTEGER*8   |
  |      |          |  --      | INTEGER*2  | INTEGER*8   |
  |      |          |  --      | INTEGER*4  | INTEGER*8   |
  |      |          |  --      | INTEGER*8  | INTEGER*8   |
  +------+----------+----------+------------+-------------+

  The setting of compiler options specifying integer size can affect
  ZEXT.
Close Help