Edit descriptors Tc, TLc and TRc provide a way of moving to a specific positions on the current input or output line. More importantly, they can move backward and forward. However, nX can only move forward. The general forms are
T6 moves to position 6. In the following, we shall use a blue blinking vertical bar to indicate the next position to be used.INTEGER :: a = 123, b = 456 WRITE(*,"(T6,I4,T2,I4)") a, b
              1    1    2
     ....5....0....5....0
T6        
          Then, I4 is used to print the value of a.  Since
          this value is 123, the printed result occupies positions 6, 7, 8 
          and 9, and the next position to be used is 10.
              1    1    2
     ....5....0....5....0
T6           
I4         123
          Now, T2 moves to position 2:
              1    1    2
     ....5....0....5....0
T6           
I4         123
T2        123
     I4 is used to print the value of b, which is 456.
     Thus, positions 2, 3, 4 and 5 will contain a space, 4, 5 and 6.
     The next available position is 6:
              1    1    2
     ....5....0....5....0
T6           
I4         123
T2         123
I4     456123
          Now all variables have been printed and the result is
         1    1    2
....5....0....5....0
  456 123
          T10 moves to position 10:INTEGER :: a = 123, b = 456, c = 789 WRITE(*,"(T10,I3,TL9,I3,TR5,I3)") a, b, c
              1    1    2
     ....5....0....5....0
T10           
          Then, I3 is used to print the value of a, which is
          123.  Thus, the output occupies positions 10 to 12 and the next
          position is 13:
              1    1    2
     ....5....0....5....0
T10           
I3            123
          TL9 moves backward 9 positions.  Since the next
          position is 13, moving backward 9 positions is position 13-9=4:
              1    1    2
     ....5....0....5....0
T10           
I3            123
TL9          123
     Then, I3 is used to print the value of b, which is 456.
     They occupy positions 4 to 6 and the next position becomes 7:
              1    1    2
     ....5....0....5....0
T10           
I3            123
TL9           123
I3      456  123
          TR5 moves forward five positions.  Since the  next
          position is 7, moving forward 5 positions is position
          7+5=12:
              1    1    2
     ....5....0....5....0
T10           
I3            123
TL9           123
I3      456   12
          Since position 12 already holds 3, we use a blue blinking 3 to
          remind you this fact.  Then, I3 is used to print the
          value of c, which is 789.  Thus, positions 12 to 14
          will hold 7, 8 and 9 and the original value in position 12 
          (i.e., 3) is overwritten:
              1    1    2
     ....5....0....5....0
T10           
I3            123
TL9           123
I3      456   12789
          Now all variables are printed and the actual output is
         1    1    2
....5....0....5....0
   456   12789
     Suppose we have the following input line:INTEGER :: a, b, c READ(*,"(T1,I5,T3,I5,T2,I5)") a, b, c
         1    1    2
....5....0....5....0
1234567890
          What are the values for a, b and
          c?  In what follows, we shall use a blinking character
          to indicate the next position to be read.
          The first edit descriptor is T1, which moves to position 1:
              1    1    2
     ....5....0....5....0
     1234567890
T1   234567890
          The next edit descriptor is I5, which is used to read the 
          next five positions for a.  Therefore, a receives
          12345 and the next position is 6:
              1    1    2
     ....5....0....5....0
     1234567890
T1   1234567890
I5   123457890
          Then, T3 moves back to position 3:
              1    1    2
     ....5....0....5....0
     1234567890
T1   1234567890
I5   1234567890
T3   124567890
          The edit descriptor I5 reads the value in the next five 
          positions  to variable b.  Therefore, b receives
          34567 and the next position becomes 8:
              1    1    2
     ....5....0....5....0
     1234567890
T1   1234567890
I5   1234567890
T3   1234567890
I5   123456790
          Then, T2 brings the position back to position 2:
              1    1    2
     ....5....0....5....0
     1234567890
T1   1234567890
I5   1234567890
T3   1234567890
I5   1234567890
T2   134567890
          Finally, I5 takes the content in positions 2 to 6 for
          c.  Thus, c receives 23456 and the next position
          is 7:
              1    1    2
     ....5....0....5....0
     1234567890
T1   1234567890
I5   1234567890
T3   1234567890
I5   1234567890
T2   1234567890
I5   123456890
          Since all variables have received values, the activity of this
          READ terminates.
          Suppose we have the following input line:INTEGER :: a, b, c, d READ(*,"(2X,I3,TR7,I4,TL5,I1,T18,I2)") a, b, c, d
         1    1    2
....5....0....5....0
12345678901234567890
          We shall determine the values in the variables.
          First, 2X skips the first two positions and the next available position is 3:
              1    1    2
     ....5....0....5....0
     12345678901234567890
2X   1245678901234567890
          Then, I3 reads 345 into variable a and the next
          position is 6:
              1    1    2
     ....5....0....5....0
     12345678901234567890
2X   12345678901234567890
I3   1234578901234567890
          TR7 moves the next position to 6+7=13:
              1    1    2
     ....5....0....5....0
     12345678901234567890
2X   12345678901234567890
I3   12345678901234567890
TR7  1234567890124567890
          Then, I4 reads 3456 into b and the next position
          is 17:
              1    1    2
     ....5....0....5....0
     12345678901234567890
2X   12345678901234567890
I3   12345678901234567890
TR7  12345678901234567890
I4   1234567890123456890
          TL5 moves backward 5 positions.  Thus, the next position
          is 17-5=12:
              1    1    2
     ....5....0....5....0
     12345678901234567890
2X   12345678901234567890
I3   12345678901234567890
TR7  12345678901234567890
I4   12345678901234567890
TL5  1234567890134567890
          I1 reads 2 into c and moves the next position to
          13:
              1    1    2
     ....5....0....5....0
     12345678901234567890
2X   12345678901234567890
I3   12345678901234567890
TR7  12345678901234567890
I4   12345678901234567890
TL5  12345678901234567890
I1   1234567890124567890
          T18 moves to position 18:
              1    1    2
     ....5....0....5....0
     12345678901234567890
2X   12345678901234567890
I3   12345678901234567890
TR7  12345678901234567890
I4   12345678901234567890
TL5  12345678901234567890
I1   12345678901234567890
T18  1234567890123456790
          I2 reads 89 into d and moves the next position to
          20:
              1    1    2
     ....5....0....5....0
     12345678901234567890
2X   12345678901234567890
I3   12345678901234567890
TR7  12345678901234567890
I4   12345678901234567890
TL5  12345678901234567890
I1   12345678901234567890
T18  12345678901234567890
I2   1234567890123456789
          Now every variable receives its value and the READ completes.