Scorpio News |
January–March 1987 – Volume 1. Issue 1. |
Page 17 of 63 |
---|
100 FORMAT(9HDATA FROM,/,10HEXPERIMENT,I3)
which would print out
DATA FROM EXPERIMENT 1 (assuming that L had a value of 1)
F80 and ProFortran recognise ten different types of I/O field descriptor:
A | Alphanumeric [A – Z, 0 – 9 etc.] |
D | Double precision numeric |
E | Exponent form [e.g. 1.1E04 = 11,000] |
F | Floating point [e.g. 12.34) |
G | (can be used for floating point or exponent) |
H | Hollerith (string) |
(or) ' | alternative to Hollerith |
I | Integer data [e.g. 12, 560) |
L | Logical [T(rue) c F(alse)] – not often used. |
P | optional scaling descriptor used with D,E,F and G conversions either as a multiple or a fraction |
X | blank space |
These are fairly standard for most Fortrans but NFortran does not have Double Precision or the scaling descriptor P. It does have T (tabulation), K (hexadecimal) and Z (inhibit <cr,lf> on output) which might be useful.
Most users will only be concerned with A,E,F,H,I and X descriptors; apart from the H and X descriptors, which have the general forms nH or nX where n is the number of columns each descriptor covers, the rest have the operational form rZy where r is the number of repetitions of the field descriptor if this it grater than 1, Z is the descriptor type and y giver information about the total width of field required for each repetition.
Some examples would not come amiss here –
10A4 | indicates 10 alphanumeric fields each 4 columns wide |
E8.2 | indicates 1 exponent field 8 columns wide, where there are two figures after the decimal point. Thus 12345.67 is represented as 0.12E¯05 (where the ‘¯’ represents a blank column in which nothing is printed) |
E12.5 | is a single exponent field of 12 columns in which 5 figures follow the decimal point and a figure such as −12.345678 would be represented as −0.12345E¯02. This implies that the number is truncated (shortened) and loses some accuracy. |
F3.0 | shows that a floating point number occupying 3 columns is involved which has no significant numbers to the right of the decinal point, 7.0 er 2.0 would be shown in this way |
F8.4 | shows that the floating point (real) number occupies 6 columns and has 4 digits to the right of the decimal point. 123.4567 is a suitable example: a real number such as −34.89088 would be shown as 34.8909, since the field only permits a maximum of 4 digits after the decimal point. Overflow can occur if the number of digits to the left of the decimal point cannot be fitted into the space available – thus 1234.56 would be printed as *.56 – the asterisk shows that the field width was too small. |
4I3 | indicates that there are four 3 digit integer fields involved; thus 123, 245, 778 and 200 are represented as: 123245778200 while −30, 2, 45 and 559 are represented by −30¯¯2¯45559. In the latter case, the ‘−’ sign occupies 1 of the columns in its field and the numbers with less than 3 digits are right justified |
4X | this shows that 4 columns are to be skipped (not read or printed) |
Page 17 of 63 |
---|