実験物理と計算機
3学期
Fortran Tips 2
参考書
「
Unix
計算機を使った物理学実験」(新井/板倉)
第2章、変数の周辺
戻る
次へ
2-1、FORTRANの変数の種類
構造としては
スカラー
配列
に分類される。
型としては
整数型
実数型
複素数型
文字型
論理型
に分類される。
FORTRANの変数は必ず<特定の構造と型>を持つ。
2-2、変数の構造とその定義
スカラー
スカラー量を表す
整数型や実数型の変数は、プログラムの任意の行で定義/設定できる
変数名に関する暗黙の取り決めに従う!
複素数型、文字型、論理型はプログラムの先頭部分で定義する
最初の実行文以前;COMPLEX文、CHARACTER文、LOGICAL文
配列
ベクトル/テンソル量(多次元/多数成分を持つ量)を表す
次数に対応した添字(整数)を持つ
プログラムの先頭部分(最初の実行文以前)で定義
最初の実行文以前;DIMENSION文、COMPLEX文、CHARACTER文、LOGICAL文
2-3、変数の型とその定義
整数型
整数値を格納する変数
暗黙の取り決め
変数名がI〜Nで始まる場合、自動的に整数型となる
プログラムの先頭部分で定義
INTEGER I, J
INTEGER K(10,10), L(100)
DIMENSION M(1000)
実数型
実数値を格納する変数
暗黙の取り決め
変数名がA〜H、O〜Zで始まる場合、自動的に実数型となる
プログラムの先頭部分で定義
REAL X, Y
REAL U(10,10), V(100)
DIMENSION R(1000)
複素数型
複素数値を格納する変数
プログラムの先頭部分で定義
COMPLEX C, D
COMPLEX E(10,10), F(100)
文字型
文字を格納する変数
プログラムの先頭部分で定義
CHARACTER*80 LINE1, LINE2
論理型
論理値("真"または"偽")を格納する変数
プログラムの先頭部分で定義
LOGICAL T, F
2-4、変数の値の設定
DATA文で設定
設定する前に変数を定義する
プログラムの先頭部分で設定
INTEGER COUNT(3)
DATA COUNT/ 0, 100, 1/
=文で設定
左辺:変数
右辺:参照値
定数、他の変数の値、それらを用いた計算結果を参照
計算のいろいろ(2項演算)
加減乗除(+, -, *, /)、巾乗(**)、剰余(%)、その他
計算のいろいろ(標準関数)
三角関数(sin, cos, tan)、平方根(sqrt)、 対数関数(alog)、指数関数(exp)、その他
プログラムの任意の場所で設定
INTEGER COUNT(3)
...
...
COUNT(1)=0
COUNT(2)=100
COUNT(3)=1
2-5、変数のスコープ(有効範囲)
一般の変数
各構成単位の内部でのみ有効
メインプログラム、サブルーチン、関数はそれぞれ独立の変数空間を持つ
同じ名前でも所属する構成単位が違えば、全く異なる変数
引数
サブルーチンや関数を呼び出すときに引き渡す変数
呼び出し側の変数と一時的に同一になる「変数の窓」
サブルーチンや関数の中で引数の値を変えると、対応する呼び出し側 の変数も変わる!
引数と呼び出し側の変数は構造と型を同一にする
例
PROGRAM MAIN
...
...
CALL ADD(A, B, S)
...
...
END
SUBROUTINE ADD(X, Y, Z)
Z=X+Y
RETURN
END
共通変数
COMMON文によって定義された変数
各構成単位の間で共用できる
各構成単位毎に、先頭部分で必要な共通変数を定義する
COMMONブロック名が同じであれば、変数名は異なっていてもよい
例
PROGRAM MAIN
COMMON /ADD/ A, B, S
...
CALL ADD()
...
...
END
SUBROUTINE ADD()
COMMON /ADD/ X, Y, Z
Z=X+Y
RETURN
END