was an extension of the non IO parts of FORTRAN
with constructs that supported parallel computing
for theICL 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:
<pre>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(,)
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
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.
However, DAP FORTRAN fell between two conflicting objectives. It needed to effectively exploit the DAP facilities. But also had to be accessible to the scientific computing community whose primary... Read More