DAP FORTRAN был расширением частей FORTRAN, не относящихся к IO , с конструкциями, которые поддерживали параллельные вычисления для ICL Distributed Array Processor (DAP). DAP имел архитектуру Single Instruction Multiple Data (SIMD) с 64x64 однобитными процессорами.
DAP FORTRAN имел следующие основные особенности:
В объявлении можно опустить один или два экстента, например:
C Умножить вектор на матрицу REAL M (,), V (), R () R = SUM ( M * MATR ( A )) C Сходимость к потенциалу Лапласа в области REAL P (,), OLD_P (,) LOGICAL INSIDE (,) DO 1 K = 1 , ИТЕРАЦИЙ OLD_P = P P ( INSIDE ) = 0,25 * ( P (, + ) + P (, - ) + P ( + ,) + P ( - ,)) IF ( MAX ( ABS ( P - OLD_P )) . LT . EPS ) ВОЗВРАТ 1 ПРОДОЛЖИТЬ
Пропущенное измерение было принято за 64, размер одной стороны DAP. Скорость арифметических операций сильно зависела от количества бит в значении. INTEGER*n зарезервировал 8n бит, где n от 1 до 8, а REAL*n зарезервировал 8n бит, где n от 3 до 8. LOGICAL зарезервировал один бит.
Однако DAP FORTRAN оказался между двумя конфликтующими целями. Он должен был эффективно использовать возможности DAP. Но также должен был быть доступным для научного вычислительного сообщества, основным языком которого, с дизайном, тесно связанным с последовательными архитектурами, был FORTRAN. Используемым диалектом был FORTRAN серии 2900 компании ICL, который был основан на ранней версии стандарта FORTRAN 77 и имел несоответствия как с FORTRAN 77, так и со старым стандартом FORTRAN 66 .
DAP FORTRAN значительно отличался от любого стандартного FORTRAN, и машина не могла принимать или оптимизировать стандартные программы FORTRAN. С другой стороны, по сравнению с другими современными языками, которые по своей сути были расширяемыми (особенно ALGOL-68 ), FORTRAN был не слишком хорошо приспособлен для этой задачи. Результат был заметно неэлегантным и требовал большого количества нового обучения. С точки зрения эксплуатации, были накладные расходы на передачу вычислительных данных в массив и из него, а проблемы, которые не укладывались в матрицу 64x64, налагали дополнительную сложность на обработку границ (65x65, возможно, был наихудшим случаем!) – но для проблем, которые подходили архитектуре, он мог превзойти текущие архитектуры конвейеров Cray на два порядка.
Более поздняя версия DAP использовала Fortran-Plus, который был основан на FORTRAN 77 и имел более гибкую индексацию. В частности, он автоматически отображал пользовательские массивы на базовое оборудование.