Sun Studio 12:Fortran 编程指南

7.6.3.1 条状提取

有些体系结构中的固定长度矢量寄存器可让程序员手动将循环中的数组计算条状提取成各个段。


  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

条状提取对现代编译器已不再适合;可按如下方式编写循环来大大降低模糊程度:


  DO IX = 1,N
    TX = AX(I)*BX(I)/2.
    QX(I) = TX**2
  END DO