目次

配列を使う基本的な演算

ベクトルの内積を求める

2次元平面内に位置ベクトルuvがあり、それらの成分がそれぞれ(u_1,~u_2)および(v_1,~v_2)であるとする。

この2つのベクトルの内積pを求める演算を考える。

p=u*v=sum{i=1}{2} {u_{i}}・{v_{i}} ・・・・・・・・・・・(2.2)

プログラム中では、配列を利用して、ベクトル成分を次のように表す。

u_1 , u_2 ~ right  ~ u(1),u(2)

v_1 , v_2 ~ right  ~ v(1),v(2)

矢印の右側にあるのが配列要素(array element)である。配列要素の括弧内の数値を添字( sibscript)という。数式表現されたベクトル成分x_iの添字と同様に、はいれるに整数型変数を用いて、iの値をdoループで変化させれば、内積計算は次のように書くことができる。

dotp = 0.00d0
do i = 1, 2
  dotp = dotp + u(i) * v(i)
end do

上記の例では、doループの終値が2であるが、仮に要素数が100になっても、2から100へ変更するだけで計算を行うことができる。

内積を計算する全体のプログラムは、list2_1.f90のように書くことができる。

list2_1.f90
program dotp1                         !プログラム文
  implicit none                       !暗黙の型宣言を無効にする。
  integer i                           !整数型変数iの宣言
  real(8) u(2), v(2), dotp            !倍精度型変数の宣言
  u(1) = 1.20d0                       !配列Uの要素の値
  u(2) = 3.40d0                       ! 
  v(1) = 4.10d0                       !配列vの要素の値
  v(2) = 2.60d0                       !
  write(*,*) (u(i),i=1, 2)            !
  write(*,*) (v(i),i=1, 2)            !
  dotp = 0.0d0                        !
  do i = 1, 2                         !内積計算するための反復回数
    dotp = dotp + u(i) * v(i)         !
  end do                              !
  write(*,*) 'ベクトルの内積 = ',dotp !結果の出力
end program dotp1                     !プログラム文終了

配列の基本的な宣言方法

上下値を数値で指定して配列を宣言する方法

real(8) u(-1:1)  !3つの倍精度実数型変数の配列要素 u(-1),u(0),u(1)
integer m(0:2)   !3つの整数型変数の配列要素 m(0),m(1),m(2)

配列要素の値の設定と出力

u(1:2) = (/ 1.2d0, 3.40d0 /)
v(1:2) = (/ 4.1d0, 2.60d0 /)

配列要素の値を入力ファイルから読み取る方法

配列の上下値を超えるアクセス

配列とスカラ