【fortran】配列の使い方

PCを見つめるハリネズミの画像
  • URLをコピーしました!
※当ブログではアフィリエイト広告を表示しています
目次

概要

fortranで配列を使いたい。

1次元配列の定義、代入、全要素の出力:

integer x(3)         !配列としてxを宣言する。ただし要素数は3。
x = 3                !xの全ての要素に「3」を代入する。
x(1) = 2             !xの要素1に「2」を代入する。
print *, "x = ", x   !xの要素を全て表示する。

出力:

x =            2           3           3


背景

今回はfortranで配列の使い方を紹介する。

背景は特にない!配列は数値計算の基本中の基本なので、これを知らずに数値計算は超大変。

課題

1次元配列、2次元配列を宣言して、適当に代入して表示出力する。

解決法

<array.f90>

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

上記のプログラムによる出力:

 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次元配列の出力を階層の要素ごとに出力してみる。

下記がそのプログラム

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           4
           5           6           7           8
           9          10          11          12

最初のブロックでは配列に数字を代入している。

後のブロックで配列xを出力している。ただし、要素を1個ずつではなく、1層目の要素1の中身を全て出力している。ここでポイントになっているのが、

x(i, :)

というところで、これはxの1層目はiが指定しているが、2層目は:となっていて、「要素全て」を意味している。これによって出力表示している。

おススメのプログラミング独学方法はこちらの記事にまとめました!

参考

fortranとは:

https://ja.m.wikipedia.org/wiki/FORTRAN

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

関連記事

応援よろしくお願いします☆

この記事を書いた人

天文の博士号をもつ理系パパ。
3歳の娘を子育て中。
最近はダイエットに挑戦中!

コメント

コメントする

目次