【Fortran基礎⑥】部分配列

Fortran

Fortran90から配列の扱いに関して、任意範囲の配列要素を一括で操作できる部分配列を扱えます。部分配列について簡単に紹介します。

部分配列を利用して値を代入する

部分配列による値の代入方法

一次元配列を例に説明します。

整数型の一次元配列をary(5)とします(配列の要素はary(1)~ary(5))。この配列に対して部分配列を利用して任意範囲の要素の値を代入します。

部分配列の記述では、配列要素の範囲にコロン(:)を用いて指定します。また、異なる値を代入する場合はスラッシュ(/)で挟んだ状態で括弧()に記述します。

例えば、配列要素ary(1)~ary(3)の範囲に対して値を代入する場合

一律の値を代入する: ary(1:3)=3
異なる値を代入する: ary(1:3)=(/1,2,3/)

コロン(:)を使うことですべての配列要素に一括で同じ値を代入することができます。

全ての配列要素に同じ値を代入する: ary(:)=10

また、制御文を利用した次のような書き方もできます。

制御文を利用して値を代入する: ary(1:5)=(/(i,i=2,10,2)/)

制御文を利用した記述

なお、配列代入する値は数式に変更することも可能です。例えば、

ary(1:5)=(/(3*i,i=2,10,2)/)

とすれば、配列に代入される値は iを3倍した数値が代入されます。

まとめると

任意の範囲で同じ値を代入する
 配列名(始値:終値)= 代入する値
任意の範囲で配列要素を代入する
 配列名(始値:終値)=(/○,・・・,○/)

 ※○は代入する値
すべての配列要素に同じ値を代入する
 配列名(:)= 代入する値

部分配列を利用して初期値を設定する

部分配列を利用した初期値の設定は次のようにします。

配列要素ごとに異なる値を代入する
 データ型::配列名(始値:終値)=(/○,・・・,○/)

 ※○は代入する値
同じ値を代入する
 データ型::配列名(始値:終値)= 代入する値
全ての配列要素に同じ値を代入する
 データ型::配列名(配列の大きさ)= 代入する値

なお、初期値の設定においても制御文を利用できます。

部分配列を利用して四則計算を行う

部分配列を利用して配列要素全体もしくは任意範囲の配列要素に対して四則演算を行うことができます。

部分配列を利用して値を書き出す

部分配列を利用することでwrite文で配列の一部要素もしくは全要素を一括で出力できます。

任意の範囲で配列要素を書き出す
 write(*,*) 配列名(始値:終値)
配列要素すべてを書き出す
 write(*,*) 配列名(:)

任意の範囲で配列要素を書き出す場合は、始値と終値に書き出す範囲の配列のインデックス番号を記述します。

全てを書き出す場合は、上記ですべての配列要素の範囲を指定するか、コロン(:)を指定します。

コメント

タイトルとURLをコピーしました