Fortran90(多次元配列)

Fortranで多次元配列を使ってみます。まずは二次元から。

takk@deb9:~$ cat arr1.f90
      program main
        integer a(2,3)
        data a /10,20,30,40,50,60/

        write(*,*) a(1,1)
        write(*,*) a(1,2)
        write(*,*) a(1,3)
        write(*,*) a(2,2)
        write(*,*) a(2,1)
        write(*,*) a(2,3)

        stop
      end
takk@deb9:~$

dataを使って、初期化をしていますが、どのような順番で格納されたのでしょうか。

takk@deb9:~$ gfortran arr1.f90
takk@deb9:~$ ./a.out
          10
          30
          50
          40
          20
          60
takk@deb9:~$

実行結果から、このように格納されているようです。

 (,1) (,2) (,3)
+----+----+----+
| 10 | 30 | 50 | (1,)
+----+----+----+
| 20 | 40 | 60 | (2,)
+----+----+----+

二次元配列も配列代入が使えるのでしょうか。試してみます。

takk@deb9:~$ cat arr2.f90
      program main
        integer a(2,3)

        a = 33

        do m=1,3
          do n=1,2
            write(*,*) a(n,m)
          end do
        end do

        stop
      end
takk@deb9:~$ gfortran arr2.f90
takk@deb9:~$ ./a.out
          33
          33
          33
          33
          33
          33
takk@deb9:~$

できました。1行の代入文ですべて初期化されました。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA