DAP FORTRAN

From Wikipedia, the free encyclopedia

DAP FORTRAN was an extension of the non IO parts of FORTRAN 66 with constructs that supported parallel computing for the ICL Distributed Array Processor (DAP). The DAP had a Single Instruction Multiple Data (SIMD) architecture with 64x64 single bit processors.

DAP FORTRAN had the following major features:

  • It had matrix and vector operations.
  • Assignments could be performed under a logical mask so only some elements in the target of an assignment were changed.
  • On the negative side - operations were performed using the side of the underlying hardware i.e. on a 64x64 matrix or 64 element vector.

In a declaration either one or two extents could be omitted as in:

C     Multiply vector by matrix
      REAL M(,), V(), R()
      R = SUM(M*MATR(A))

C     Converge to a Laplace potential in an area
      REAL P(,), OLD_P(,)
      LOGICAL INSIDE(,)
      DO 1 K = 1, ITERATIONS
      OLD_P = P
      P(INSIDE) = 0.25*(P(,+)+P(,-)+P(+,)+P(-,))
      IF (MAX(ABS(P-OLD_P)) .LT. EPS) RETURN
    1 CONTINUE

The omitted dimension was taken as 64, the size of one side of the DAP. The speed of arithmetic operations depended strongly on the number of bits in the value. INTEGER*n reserved 8n bits where n is 1 to 8, and REAL*n reserved 8n bits where n is 3 to 8. LOGICAL reserved a single bit.

A later version of the DAP used Fortran-Plus instead which was based on FORTRAN 77 and had more flexible indexing. In particular it automatically mapped user sized arrays onto the underlying hardware.

[edit] External links

ICL DAP Fortran