fortran66のブログ

fortran について書きます。

IBM 7094 Emulator でFORTRAN II Compilerを動かして1958年のプログラムを走らせる。

Computer History Museumのサイトに、1958年に書かれたFORTRAN IIとおぼしきプログラムと実行結果があります。5*5のHilbert行列の逆行列を求めるものです(Matrix Inversion Order 5)。先日は、Intel Visual Fortran Ver.11.1で実行してみましたが、今回はIBM7094 Emulatorを用いて実行してみます。

IBM7094 Emulatorは、ここのThe Computer History Simulation ProjectWindows executablesの中に含まれています。その他必要なファイルは、Software KitsIBSYS for the IBM 7090/7094です。中のREADMEに使い方が書いてあります。

FORTRAN IIのマニュアルなどは、Computer History MuseumのサイトにPDFファイルとして保存してあります。

■実行結果



JOB CARDを流用したので、JOB名がPRIMEになってしまったw

FORTRAN II Compilerを稼動した場合、きちんとJOBが終了していないようです。元々のサンプルプログラムでもそうなってます。残念ながら私には解決法が分かりません。

■ソースプログラム

最終行にENDが無いとJOBカードの終わりにならず暴走するので加えておきました。

$JOB           PRIME NUMBERS
$EXECUTE       FORTRAN
*      ID      PRIME
*      LIST8
*      XEQ
C     MATRIX INVERSION ORDER 5
      FREQUENCY  6(2,1,2)
      DIMENSION  A(5,5)
      DO 1 I = 1, 5
      DO 1 J = 1, 5
    1 A(I,J) = 1.0/FLOATF(I+J-1)  
      DO 5 K = 1, 5
      D = A(K,K)
      A(K,K) = 1.0
      DO 2 J = 1, 5
    2 A(K,J) = A(k,J)/D
      DO 5 I = 1, 5 
    6 IF(I-K) 3,5,3
    3 D = A(I,K)
      A(I,K) = 0.0
      DO 4 J = 1, 5
    4 A(I,J) = A(I,J) - D * A(K,J)
    5 CONTINUE
      DO 246 I = 1,5
      DO 246 J = 1,5
  246 PRINT 247,I, J, A(I,J)
  247 FORMAT (3H A(I2,1H,I2,4H) = F10.1,I1)
           S     T     O     P
      END