WARNING:This example assumes spaces are ignored for theIandFdescriptors and the output is sent to a printer.

Suppose we have an input organized as follows. The first line gives the
number of lines, followed by that number of input lines. Each line is
divided into four parts with 10 positions each, except for the third data
which occupies positions 21 to 40. Each part contains
a **REAL** number. Moreover, each input number should have two
digits for the fractional part. Note that the number are not aligned well.

Write a1 1 2 2 3 3 4 4 5 ....5....0....5....0....5....0....5....0....5....0 5 12.3 1234 1.234 3.14 1.2E-3 3341 1.2E-5 1.23E+1 7.69E-3 2314 12.34E-9 2.44E-1 12345 3309 1 3 4 5 7.64E-2 77 88 1953 7 5 3.34E+1

Note that the first position is always for printer control.1 1 2 2 ....5....0....5....0....5 Input Number List ================= 1 - 12.34 3.14 2 - 33.41 12.30 3 - 23.14 0.24 4 - 33.09 0.08 5 - 19.53 33.40 --------------------- Sum = 1110.17

ClickPROGRAM Select_Numbers IMPLICIT NONE INTEGER :: Number, i REAL :: u, v, Sum CHARACTER(LEN=40) :: ReadIn, WriteOut, Title, Last Title = "(1X,A)" ReadIn = "(T11, F10.2, T41, F10.2)" WriteOut = "(1X, I4, A, 2F7.2)" Last = "(1X, A, F7.2)" READ(*,"(I5)") Number Sum = 0.0 WRITE(*,Title) "Input Number List" WRITE(*,Title) "=================" WRITE(*,*) DO i = 1, Number READ(*,ReadIn) u, v WRITE(*,WriteOut) i, " - ", u, v Sum = Sum + u*v END DO WRITE(*,Title) "---------------------" WRITE(*,Last) "Sum = ", Sum END PROGRAM Select_Numbers

1 1 2 2 3 3 4 4 5 ....5....0....5....0....5....0....5....0....5....0 5 12.3 1234 1.234 3.14 1.2E-3 3341 1.2E-5 1.23E+1 7.69E-3 2314 12.34E-9 2.44E-1 12345 3309 1 3 4 5 7.64E-2 77 88 1953 7 5 3.34E+1

- Since the two input values needed for this program are in
positions 11 to 20 and 41 to 50, we can use
**T11**and**T41**to jump to the right locations. Therefore, we have the following format**ReadIn**and**READ**statement:CHARACTER(LEN=40) :: ReadIn ReadIn = "(T11, F10.2, T41, F10.2)" READ(*,ReadIn) u, v

**u**and**v**, which are used to compute the sum of products. - The heading and the other lines are simple.
- Please note that
**1X**is used for generating printer control in all formats that are used for output.