Очередное "три мира - три Фортрана"

18 views
Skip to first unread message

Leo B.

unread,
Jul 12, 2022, 7:38:37 PM7/12/22
to БЭСМ-6
Напишем программу на Фортране:

     program main
      dimension ia(9,9)
      do 1 i=1,9
      do 1 j=1,9
   1  ia(i,j)=10*i+j
      print 2,(ia(i,i),i=1,9)
   2  format(9i6)
      e=2.718281828
      pi=3.14159265
      i=ia(e,pi)
      j=ia(pi,e)
      print 2,i,j
      end

Что эта программа делает? Она объявляет целый массив 9х9, заполняет его числами от 11 до 99, печатает диагональ для проверки, а потом обращается к элементам массива с нецелыми индексами, чтобы посмотреть, как разные Фортран-компиляторы себя ведут.

У нас в системе "Дубна" есть 3 компилятора: Фортран БЭСМ-6 (переписанный из CDC-шного), Фортран-ГДР и Форекс ИПМ АН СССР.

Сумрачное германское изделие говорит

 Ф O P T P A H - Г Д P
      (24.04.81)
  001               PROGRAM MAIN
  002               DIMENSION IA(9,9)
  003               DO 1 I=1,9
  004               DO 1 J=1,9
  005            1  IA(I,J)=10*I+J
  006               PRINT 2,(IA(I,I),I=1,9)
  007            2  FORMAT(9I6)
  008               E=2.718281828
  009               PI=3.14159265
  010               I=IA(E,PI)
  011               J=IA(PI,E)
  012               PRINT 2,I,J
  013               END


          BESM FORTRAN DIAGNOSTIC RESULTS

          ERRORS: 2     WARNINGS: 0

 ERROR 054 IN 00011 SUBSCRIPT OF ARRAY  HAS NOT INTEGER TYPE
 ERROR 054 IN 00010 SUBSCRIPT OF ARRAY  HAS NOT INTEGER TYPE

Форекс более покладист: компилирует и печатает

    11    22    33    44    55    66    77    88    99
    23    32

как люди и ожидают.

А вот Фортран-Дубна, согласно с принципом "Вы этого хотели, вот вам", печатает 

    11    22    33    44    55    66    77    88    99
    33    92


Такие дела.

Michael Yaroslavtsev

unread,
Jul 12, 2022, 7:45:25 PM7/12/22
to be...@googlegroups.com
Хотелось бы *FULL LIST.

--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/f9617060-ea01-480b-94b3-f1910a8bc44an%40googlegroups.com.


--
Thanks,
-- Michael

Leo B.

unread,
Jul 12, 2022, 10:37:02 PM7/12/22
to БЭСМ-6
Full list где-то так:

FOREX, в релевантной части (операторы 8-11):

00040            CЧ    = .271828E 01
                 ЗП    E
00041            CЧ    = .314159E 01
                 ЗП    PI
00042            CЧ    E
                 PЖA   ′00007′
00043            BЧAБ  =     0
                 ЗHAK  E
00044            ЗП    T*0000
                 YИ    ′00006′
00045            MOДA  IA    +′00021′(′06′)
                 CЧ
00046            ЗП    I
                 PЖA   ′00006′
00047            CЧ    T*0000
                 YMH   = .900000E 01
00050            CЧM   PI
                 PЖA   ′00007′
00051            BЧAБ  =     0
                 ЗHAK  PI
00052            CЛ    (′17′)
                 CЛЦ   =A(IA    )
00053            YИ    ′00005′
                 CЧ    ′77766′(′05′)
00054            ЗП    J

Фортран-Дубна:

                        C*****HAЧAЛO  OПEPATOPA 5
 004107010 0004                     , XTA ,= 41126770 25054044
  -  07000 0010                     , ATX ,  E
                        C*****HAЧAЛO  OПEPATOPA 6
 004207010 0003                     , XTA ,= 41144417 66517106
  -  07000 0011                     , ATX ,  PI
                        C*****HAЧAЛO  OПEPATOPA 7
 004307005 0000                     , A-X ,= 64000000 00000001
  -  07017 0001                     , A*X ,= 64000000 00000011
 004407004 0010                     , A+X ,  E
  -  1624 40141                   14, VTM ,  *ERR00
 00451531 74007                     , CALL,  R*ST*I
  -  0022 00000
 004607010 0005                     , XTA ,  *ERR00
  -  07000 0012                     , ATX ,  N*ST01
 004700037 0003                     , NTR ,  3
  -  0023 40146                     , WTC ,  N*ST01
 00500124 00000                    1, VTM ,
  -  0122 40150                    1, UTC ,  IA-1
 005100010 0000                     , XTA ,
  -  07000 0006                     , ATX ,  I


В случае с J аналогично. 

Leo

Michael Yaroslavtsev

unread,
Jul 12, 2022, 10:49:03 PM7/12/22
to be...@googlegroups.com
У ФОРЕКСа, вроде, всё чистенько, а с ДУБНой ничего не понял. Намудрили они там что-то.
  1. Каков режим АУ вначале?
  2. Что такое R*ST*I?

Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/efea50ea-43ee-47c7-9b18-86f5674fb2d2n%40googlegroups.com.


--
Thanks,
-- Michael

Leo B.

unread,
Jul 12, 2022, 11:21:33 PM7/12/22
to БЭСМ-6
On Tuesday, July 12, 2022 at 7:49:03 PM UTC-7 BOPOHOK wrote:
У ФОРЕКСа, вроде, всё чистенько, а с ДУБНой ничего не понял. Намудрили они там что-то.
  1. Каков режим АУ вначале?
Как обычно ,NTR,18 - с нормализацией, без округления. Что с нормализацией - очевидно по отсутствию YTA после умножения.
  1. Что такое R*ST*I?

Преобразование real на сумматоре в integer и запись по указанному в M16 адресу.

Michael Yaroslavtsev

unread,
Jul 12, 2022, 11:37:25 PM7/12/22
to be...@googlegroups.com
Понятно. Вся адресная арифметика в плавающих, и лишь в конце преобразование в целое для индексации массива. Непонятно, зачем РЖА 3 делали.

--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/e6c637e5-20ff-4b73-8000-387c7e7360b6n%40googlegroups.com.


--
Thanks,
-- Michael
Reply all
Reply to author
Forward
0 new messages