====== 配列を使う基本的な演算 ====== ===== ベクトルの内積を求める ===== 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のように書くことができる。 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 /) ====== 配列要素の値を入力ファイルから読み取る方法 ====== ====== 配列の上下値を超えるアクセス ====== ====== 配列とスカラ ======