В книге Мазного про МС "Дубна" в разделе
6.1.4 Использование динамической памяти в языке фортранописана
подсистема SYDAK (SYstem DAta Keeping), предназначенная для хранения большого объёма числовых данных в собственной динамической памяти объёмом до 256 К.Я всю сознательную жизнь мечтал попробовать, как это работает, но то руки не доходили (на ВЦ АН), то оказывалось, что система отсутствует в организации (в ИТМ и ВТ). Наконец, руки дошли. На диске 2048 из ИТМ и ВТ SYDAK-а, как и ожидалось, нет, а на диске из С. Бора - есть, в *library:2.
Попробуем объявить массив размером 500х500 слов, расписать его элементы (i, j) значениями i*j, а потом проверить, правильно ли получилось.
Работает это так:
*NАМЕ
*LIВRА:2
*САLL СRЕАТЕ*
ВIG(500,500) { так объявляется большой массив }
*ЕND SЕGМЕNТ { в результате создается процедура DRUMCAT с описанием массивов }
Ф О Р Т Р А Н
/16.07.73/
РRОGRАМ МАIN
СОММОN IР(1) { база для работы с массивами }
DО 10 I= 1,500
2 САLL GIVЕ(’ВIG’, I, L) { запрашиваем строку I, в L будет смещение к базе}
3 DО 20 J=1,500
4 20 IР(L+J) = I*J { фактически BIG(I, J) = I*J }
5 САLL ТАКЕ(’ВIG’, I) { закончили работу со строкой I, будет упрятана на барабан когда надо }
6 10 СОNТINUЕ
7 К = 0
8 КК = 0
9 DО 30 I = 1,500
10 САLL GIVЕ(’ВIG’, I, L)
11 DО 40 J=1,500
12 К = К + I*J
13 КК = КК + IР(L+J)
14 40 СОNТINUЕ
15 САLL ТАКЕ(’ВIG’, I)
16 30 СОNТINUЕ
17 РRINТ 50,К,КК
50 FОRМАТ(1Х2I15)
ЕND
*ЕХЕСUТЕ
ОТ 18.01.79 ==
ПОДПРОГРАММЫ ИЗ БИБЛИОТЕКИ 02 04.10.84 М1
ТАКЕ GIVЕ SТАТISТ SDRUМ* GIVЕSТRN РRIОRIТУ ЕХСНАNGЕ WRSЕСТ*
NЕХТSЕСТ
ОТ 18.01.79 ==
15687562500 15687562500
Кто-нибудь их присутствующих этим судаком когда-нибудь польовался?
Leo