大学院情報処理演習 第 3 回 (行列 ) 「Fortran での組み込み関数の紹介」 講義ノート目次

Fortran にも Ruby の method と同じように、 もともと計算が可能になっている関数が定義されている。 これを組み込み関数と呼ぶ。100 × 100 の行列に、 ランダムな数字を入れ、最大と最小の値と位置を調べるプログラムで示す。

	
      program intrin
      implicit none
      integer, parameter :: n = 100
      real(8) s, m1, m2, b(0:n-1,0:n-1)
      integer i, j, i1(0:1) ,i2(0:1)
      call random_seed
      call random_number(b(:,:))
      s = 0.0d0
      m1 = b(0,0)
      m2 = m1
      do j = 0, n - 1
         do i = 0, n - 1
            s = s + b(i, j)
            if (b(i,j) < m1) then
               m1 = b(i,j)
               i1(0:1) = (/i, j/)
            end if
            if (b(i,j) > m2) then
               m2 = b(i,j)
               i2(0:1) = (/i, j/)
            end if
         end do
      end do
      write(*,*) m1, m2, s, i1(0:1), i2(0:1)
      write(*,*) minval(b(0:n-1,0:n-1)), maxval(b(0:n-1,0:n-1)), sum(b) 
      write(*,*) minloc(b) -1 , maxloc(b) -1
      end program intrin

表示している行で使っている組み込み関数が、計算させたものと同じ働きをすることを確かめよう。 配列のみを指定する場合と、配列の要素の範囲を指定する場合がある。

Ruby や C 言語に合わせるため、Fortran の要素のラベルを 0 から開始させていることに注意しよう。 他の言語に合わせる場合は組み込み関数でラベル部分から 1 を引く必要がある。