The P edit descriptor scales real input values by a power of 10. It also gives you more control over the significant digit displayed for output values.
The general form is:
Parameter |
Description |
k |
Integer constant, with an optional sign |
k is called the scale factor, and the default value is zero.
Example: I/O statements with scale factors:
READ ( 1, '( 3P E8.2 )' ) X WRITE ( 1, '( 1P E8.2 )' ) X
P by itself is equivalent to 0P. It resets the scale factor to the default value 0P. This P by itself is nonstandard.
The scale factor is reset to zero at the start of execution of each I/O statement. The scale factor can have an effect on D, E, F, and G edit descriptors.
On input, any external datum that does not have an exponent field is divided by 10k before it is stored internally.
Input examples: Showing data, scale factors, and resulting value stored:
Data |
18.63 |
18.63 |
18.63E2 |
18.63 |
Format |
E8.2 |
3P E8.2 |
3P E8.2 |
-3P E8.2 |
Memory |
18.63 |
.01863 |
18.63E2 |
18630. |
On output, with D, and E descriptors, and with G descriptors if the E editing is required, the internal item gets its basic real constant part multiplied by 10k, and the exponent is reduced by k before it is written out.
On output with the F descriptor and with G descriptors, if the F editing is sufficient, the internal item gets its basic real constant part multiplied by 10k before it is written out.
Output Examples: Showing value stored, scale factors, and resulting output:
Memory |
290.0 |
290.0 |
290.0 |
290.0 |
Format |
2P E9.3 |
1P E9.3 |
-1P E9.3 |
F9.3 |
Display |
29.00E+01 |
2.900E+02 |
0.029E+04 |
0.290E+03 |