目次
概要
fortranで配列を使いたい。
1次元配列の定義、代入、全要素の出力:
1 2 3 4 |
integer x(3) !配列としてxを宣言する。ただし要素数は3。 x = 3 !xの全ての要素に「3」を代入する。 x(1) = 2 !xの要素1に「2」を代入する。 print *, "x = ", x !xの要素を全て表示する。 |
出力:
1 |
x = 2 3 3 |
背景
今回はfortranで配列の使い方を紹介する。
背景は特にない!配列は数値計算の基本中の基本なので、これを知らずに数値計算は超大変。
課題
1次元配列、2次元配列を宣言して、適当に代入して表示出力する。
解決法
<array.f90>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
program array_1st implicit none !未宣言変数の使用禁止 integer x(3) !配列としてxを宣言する。ただし要素数は3。 integer y(3, 4) !2次元配列としてyを宣言する。 x = 3 !xの全ての要素に「3」を代入する。 x(1) = 2 !xの第1要素のみに「2」を代入する。 print *, "x = ", x !xの要素を全て表示する。 y = 4 !yの全ての要素に「4」を代入する。 print *, "y = ", y !yの要素を全て表示する。 y(1,2) = 5 !yの(1,2)の要素だけ「5」を代入する。 print *, "y = ", y !yの要素を全て表示する。 end program |
上記のプログラムによる出力:
1 2 3 |
x = 2 3 3 y = 4 4 4 4 4 4 4 4 4 4 4 4 y = 4 4 4 5 4 4 4 4 4 4 4 4 |
この出力では「配列」って感じがしないので、2次元配列の出力を階層の要素ごとに出力してみる。
下記がそのプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
program array_2nd implicit none !未宣言変数の使用禁止 integer x(3, 4) !2次元配列としてxを宣言する。 integer x_cont !xの中身 integer i, j !ループの変数としてi, jを宣言 !まずはxの中身に数字を代入していく。 x_cont = 1 !配列xの中に入れる内容。これがxに代入すると1ずつ大きくなっていく。 do i = 1, 3, 1 !配列xの1層目を指定する。 do j = 1, 4, 1 !配列xの2層目を指定する。 x(i, j) =x_cont !xの要素にx_contを代入する。 x_cont = x_cont + 1 !x_contを1だけ大きくして、次の代入に備える。 end do end do !次にxの中身を表示する。 do i = 1, 3, 1 !配列xの1層目を指定する。 print *, x(i, :) !指定された要素の中の全ての要素を出力表示する。 end do end program |
出力:
1 2 3 |
1 2 3 4 5 6 7 8 9 10 11 12 |
最初のブロックでは配列に数字を代入している。
後のブロックで配列xを出力している。ただし、要素を1個ずつではなく、1層目の要素1の中身を全て出力している。ここでポイントになっているのが、
1 |
x(i, :) |
というところで、これはxの1層目はiが指定しているが、2層目は:となっていて、「要素全て」を意味している。これによって出力表示している。
おススメのプログラミング独学方法はこちらの記事にまとめました!
参考
fortranとは:
あわせて読みたい

FORTRAN - Wikipedia
コメント