HP OpenVMS Systems Documentation 
HP Fortran for OpenVMS

Previous  Contents  Index 
The EN data edit descriptor transfers values by using engineering notation. It takes the following form:

The value of d (the number of places after the decimal point) plus e (the number of digits in the exponent) must not exceed the value of w (the field width).
The specified I/O list item must be of type real, or it must be the real or imaginary part of a complex type.
On input, the EN data edit descriptor transfers w characters from an external field and assigns their real value to the corresponding I/O list item. The EN descriptor interprets and assigns input data in the same way as the F data edit descriptor (see Section 11.3.4.1).
The following shows input using the EN edit descriptor:
Format  Input  Value 

EN11.3  5.321E+00  5.32100 
EN11.3  600.00E  03   .60000 
EN12.3  3.150E  03  .00315 
EN12.3  3.829E+03  3829.0 
On output, the EN data edit descriptor transfers the real value of the corresponding I/O list item, rightjustified and rounded to d decimal positions, to an external field that is w characters long. The real value is output in engineering notation, where the decimal exponent is divisible by 3 and the absolute value of the significand is greater than or equal to 1 and less than 1000 (unless the output value is zero).
The w should be greater than or equal to d+9 to allow for the following:
The exponent takes one of the following forms:
Edit Descriptor 
Absolute Value of Exponent 
Positive Form of Exponent 
Negative Form of Exponent 

ENw.d  exp <= 99  E+nn  Enn 
99 < exp <= 999  +nnn  nnn  
ENw.dEe  exp <= 10 ^{e}  1  E+n _{1}n _{2}...n _{e}  En _{1}n _{2}...n _{e} 
If the exponent value is too large to be converted into one of these forms, an error occurs.
The exponent field width (e) is optional; if omitted, the default value is 2. If e is specified, the w should be greater than or equal to d+e+5.
The following shows output using the EN edit descriptor:
Format  Value  Output 

EN11.2  475867.222  475.87E+03 
EN11.5  475867.222  *********** 
EN12.3  0.00069  690.000E06 
EN10.3   0.5555  ********** 
EN11.2  0.0  000.00E03 
The ES data edit descriptor transfers values by using scientific notation. It takes the following form:

The value of d (the number of places after the decimal point) plus e (the number of digits in the exponent) must not exceed the value of w (the field width).
The specified I/O list item must be of type real, or it must be the real or imaginary part of a complex type.
On input, the ES data edit descriptor transfers w characters from an external field and assigns their real value to the corresponding I/O list item. The ES descriptor interprets and assigns input data in the same way as the F data edit descriptor (see Section 11.3.4.1).
The following shows input using the ES edit descriptor:
Format  Input  Value 

ES11.3  5.321E+00  5.32100 
ES11.3   6.000E01   .60000 
ES12.3  3.150E  03  .00315 
ES12.3  3.829E+03  3829.0 
On output, the ES data edit descriptor transfers the real value of the corresponding I/O list item, rightjustified and rounded to d decimal positions, to an external field that is w characters long. The real value is output in scientific notation, where the absolute value of the significand is greater than or equal to 1 and less than 10 (unless the output value is zero).
The w should be greater than or equal to d+7 to allow for the following:
The exponent takes one of the following forms:
Edit Descriptor 
Absolute Value of Exponent 
Positive Form of Exponent 
Negative Form of Exponent 

ESw.d  exp <= 99  E+nn  Enn 
99 < exp <= 999  +nnn  nnn  
ESw.dEe  exp <= 10 ^{e}  1  E+n _{1}n _{2}...n _{e}  En _{1}n _{2}...n _{e} 
If the exponent value is too large to be converted into one of these forms, an error occurs.
The exponent field width (e) is optional; if omitted, the default value is 2. If e is specified, the w should be greater than or equal to d+e+5.
The following shows output using the ES edit descriptor:
Format  Value  Output 

ES11.2  473214.356  4.73E+05 
ES11.5  473214.356  4.73214E+05 
ES12.3  0.00069  6.900E04 
ES10.3   .5555   5.555E01 
ES11.2  0.0  0.000E+00 
The G data edit descriptor generally transfers values of real type, but it can be used to transfer values of any intrinsic type. It takes the following form:

The value of d (the number of places after the decimal point) plus e (the number of digits in the exponent) must not exceed the value of w (the field width).
The specified I/O list item can be of any intrinsic type.
When used to specify I/O for integer, logical, or character data, the edit descriptor follows the same rules as Iw, Lw, and Aw, respectively, and d and e have no effect.
Rules for Real Input Processing
On input, the G data edit descriptor transfers w characters from an external field and assigns their real value to the corresponding I/O list item. The G descriptor interprets and assigns input data in the same way as the F data edit descriptor (see Section 11.3.4.1).
Rules for Real Output Processing
On output, the G data edit descriptor transfers the real value of the corresponding I/O list item, rightjustified and rounded to d decimal positions, to an external field that is w characters long.
The form in which the value is written is a function of the magnitude of the value, as described in Table 112.
Data Magnitude  Equivalent Conversion 

0 < m < 0.1  0.5 x 10 ^{d1}  Ew.d[Ee] 
m = 0  F(w  n).(d  1), n( ' b ' ) 
0.1  0.5 x 10 ^{d1} <= m < 1  0.5 x 10 ^{d}  F(w  n).d, n( ' b ' ) 
1  0.5 x 10 ^{d} <= m < 10  0.5 x 10 ^{d+1}  F(w  n).(d  1), n( ' b ' ) 
10  0.5 x 10 ^{d+1} <= m < 100  0.5 x 10 ^{d+2}  F(w  n).(d  2), n( ' b ' ) 
.  . 
.  . 
.  . 
10 ^{d2}  0.5 x 10 ^{2} <= m < 10 ^{d1}  0.5 x 10 ^{1}  F(w  n).1, n( ' b ' ) 
10 ^{d1}  0.5 x 10 ^{1} <= m < 10 ^{d}  0.5  F(w  n).0, n( ' b ' ) 
m => 10 ^{d}  0.5  Ew.d[Ee] 
The ' b ' is a blank following the numeric data representation. For Gw.d, n( ' b ' ) is 4 blanks. For Gw.dEe, n( ' b ' ) is e+2 blanks.
The w should be greater than or equal to d+7 to allow for the following:
If e is specified, the w should be greater than or equal to d+e+5.
The following shows output using the G edit descriptor and compares it to output using equivalent F editing:
Value  Format  Output with G  Format  Output with F 

0.01234567  G13.6  0.123457E  01  F13.6  0.012346 
 0.12345678  G13.6   0.123457  F13.6    0.123457 
1.23456789  G13.6  1.23457  F13.6  1.234568 
12.34567890  G13.6  12.3457  F13.6  12.345679 
123.45678901  G13.6  123.457  F13.6  123.456789 
 1234.56789012  G13.6    1234.57  F13.6    1234.567890 
12345.67890123  G13.6  12345.7  F13.6  12345.678901 
123456.78901234  G13.6  123457.  F13.6  123456.789012 
 1234567.89012345  G13.6   0.123457E+07  F13.6  ************* 
A complex value is an ordered pair of real values. Complex editing is specified by a pair of real edit descriptors, using any combination of the forms: Fw.d, Ew.d[Ee], Dw.d, ENw.d[Ee], ESw.d[Ee], or Gw.d[Ee].
On input, the two successive fields are read and assigned to the corresponding complex I/O list item as its real and imaginary part, respectively.
The following shows input using complex editing:
Format  Input  Value 

F8.5,F8.5  1234567812345.67  123.45678, 12345.67 
E9.1,F9.3  734.432E8123456789  734.432E8, 123456.789 
On output, the two parts of the complex value are transferred under the control of repeated or successive real edit descriptors. The two parts are transferred consecutively without punctuation or blanks, unless control or character string edit descriptors are specified between the pair of real edit descriptors.
The following shows output using complex editing:
Format  Value  Output 

2F8.5  2.3547188, 3.456732  2.35472 3.45673 
E9.2, ' , ' ,E5.3  47587.222, 56.123  0.48E+06,***** 
The L data edit descriptor transfers logical values. It takes the following form:

The specified I/O list item must be of type logical or integer.
The G edit descriptor can be used to edit logical data; it follows the same rules as Lw.
On input, the L data edit descriptor transfers w characters from an external field and assigns their logical value to the corresponding I/O list item. The value assigned depends on the external field data, as follows:
If an other value appears in the external field, an error occurs.
On output, the L data edit descriptor transfers the following to an external field that is w characters long: w  1 blanks, followed by a T or F (if the value is .TRUE. or .FALSE., respectively).
The following shows output using the L edit descriptor:
Format  Value  Output 

L5  .TRUE.  T 
L1  .FALSE.  F 
On the general form for data edit descriptors, see Section 11.3.1.
The A data edit descriptor transfers character or Hollerith values. It takes the following form:

If the corresponding I/O list item is of type character, character data is transferred. If the list item is of any other type, Hollerith data is transferred.
The G edit descriptor can be used to edit character data; it follows the same rules as Aw.
On input, the A data edit descriptor transfers w characters from an external field and assigns them to the corresponding I/O list item.
The maximum number of characters that can be stored depends on the size of the I/O list item, as follows:
I/O List Element  Maximum Number of Characters 

BYTE  1 
LOGICAL(1) or LOGICAL*1  1 
LOGICAL(2) or LOGICAL*2  2 
LOGICAL(4) or LOGICAL*4  4 
LOGICAL(8) or LOGICAL*8  8 
INTEGER(1) or INTEGER*1  1 
INTEGER(2) or INTEGER*2  2 
INTEGER(4) or INTEGER*4  4 
INTEGER(8) or INTEGER*8  8 
REAL(4) or REAL*4  4 
DOUBLE PRECISION  8 
REAL(8) or REAL*8  8 
REAL(16) or REAL*16  16 
COMPLEX(4) or COMPLEX*8  8 ^{1} 
DOUBLE COMPLEX  16 ^{1} 
COMPLEX(8) or COMPLEX*16  16 ^{1} 
COMPLEX(16) or COMPLEX*32  32 ^{1} 
If w is equal to or greater than the length (len) of the input item, the rightmost characters are assigned to that item. The leftmost excess characters are ignored.
If w is less than len, or less than the number of characters that can be stored, w characters are assigned to the list item, leftjustified, and followed by trailing blanks.
The following shows input using the A edit descriptor:
Format  Input  Value  Data Type 

A6  PAGE#  #  CHARACTER(LEN=1) 
A6  PAGE#  E#  CHARACTER(LEN=3) 
A6  PAGE#  PAGE#  CHARACTER(LEN=6) 
A6  PAGE#  PAGE#  CHARACTER(LEN=8) 
A6  PAGE#  #  LOGICAL(1) 
A6  PAGE#  #  INTEGER(2) 
A6  PAGE#  GE#  REAL(4) 
A6  PAGE#  PAGE#  REAL(8) 
Previous  Next  Contents  Index 