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 |