Fixed-length vector registers on some architectures led programmers to manually “strip-mine” the array computations in a loop into segments:
REAL TX(0:63)
...
DO IOUTER = 1,NX,64
DO IINNER = 0,63
TX(IINNER) = AX(IOUTER+IINNER) * BX(IOUTER+IINNER)/2.
QX(IOUTER+IINNER) = TX(IINNER)**2
END DO
END DO
|
Strip-mining is no longer appropriate with modern compilers; the loop can be written much less obscurely as:
DO IX = 1,N
TX = AX(I)*BX(I)/2.
QX(I) = TX**2
END DO
|