Visible to Intel only — GUID: GUID-B456C211-5FA2-4D25-94BC-8FA899CDC9BE
Visible to Intel only — GUID: GUID-B456C211-5FA2-4D25-94BC-8FA899CDC9BE
DECODE
Statement: Translates data from character to internal form. It is comparable to using internal files in formatted sequential READ statements.
DECODE (c,f,b[, IOSTAT=i-var] [, ERR=label]) [io-list]
c |
Is a scalar integer expression. It is the number of characters to be translated to internal form. |
f |
Is a format identifier. An error occurs if more than one record is specified. |
b |
Is a scalar or array reference. If b is an array reference, its elements are processed in the order of subscript progression. b contains the characters to be translated to internal form. |
i-var |
Is a scalar integer variable that is defined as a positive integer if an error occurs and as zero if no error occurs (see I/O Status Specifier). |
label |
Is the label of an executable statement that receives control if an error occurs. |
io-list |
Is an I/O list. An I/O list is either an implied-DO list or a simple list of variables (except for assumed-size arrays). The list receives the data after translation to internal form. The interaction between the format specifier and the I/O list is the same as for a formatted I/O statement. |
The number of characters that the DECODE statement can translate depends on the data type of b. For example, an INTEGER(2) array can contain two characters per element, so that the maximum number of characters is twice the number of elements in that array.
The maximum number of characters a character variable or character array element can contain is the length of the character variable or character array element.
The maximum number of characters a character array can contain is the length of each element multiplied by the number of elements.
Example
In the following example, the DECODE statement translates the 12 characters in A to integer form (as specified by the FORMAT statement):
DIMENSION K(3)
CHARACTER*12 A,B
DATA A/'123456789012'/
DECODE(12,100,A) K
100 FORMAT(3I4)
The 12 characters are stored in array K:
K(1) = 1234
K(2) = 5678
K(3) = 9012