LoginSignup
2
2

More than 3 years have passed since last update.

Fortran 90/95 のきまりごと【implicit none って何?】

Last updated at Posted at 2019-07-13

はじめに

ここでは、Fortranの初心者がつまづきそうなきまりのみをピックアップして記載しています。

「これも載せた方がいい!」や「間違ってるよ!」ということがあればコメント等で教えていただければと思います。

この記事の方針としては「厳密なきまりを全て載せる」のではなく、初心者が最低限知っておくべきことのみを取り上げている点をご了承いただければと思います。

こちらも参考にどうぞ!

前々回の記事:Fortran 90/95 で "Hello, world!"

前回の記事:Fortran 90/95 で コメントアウトをする & ループ処理で足し算

プログラムの構成

Fortran 90/95 におけるプログラムの構成はこんな感じです。

program プログラムの名称
    宣言文(変数の宣言 など)
    実行文
end program プログラムの名称

program文から始まり、end文で終わるプログラムを主プログラムと言います。
一般的なプログラムは、この主プログラムと副プログラムからなります(副プログラムについては後日)。
なお、宣言文は実行文よりも先に書かなければなりません。

program

program文には、プログラムの名称を記述します。
省略することもできますが、プログラムの可読性を良くするために、書いた方がbetter。

プログラム名と変数名のきまり

名称の決め方は、以下の決まりがあります。

  • 先頭の文字は英字のみが使える
  • 2番目以降の文字には英数字と下線記号_が使える
  • 大文字・小文字の区別はしない

特に、3番目については、例えば変数answerAnswerANSWERは同じものとして扱うということです。
気をつけましょう。

NGな名称の例

  • 2nd_answer :先頭に数字があるのでNG
  • Sum1-Sum2-(マイナス)は使えないのでNG
  • good.choice.(ピリオド)は使えないのでNG
  • こたえ :変数名として2バイト文字(日本語など)は使えないのでNG

implicit none って何?

さて、一旦数学の話をしましょう。
例えば、二次方程式の解の公式を思い出すと

ax^2 + bx +c =0

の解は

x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}

となります。
このとき、数学が得意な人は、無意識に「$a,b,c$は実数の定数、$x$は変数だな」と思います。

また、数列の和の公式

\sum_{i=1}^{n} k = \frac{1}{ \ 2 \ } \ n \ (n+1)

を見たときには「$i,k,n$は整数だな」と、あらかじめ指定されずとも暗黙の了解で思うわけです。

こんな風に、Fortran 90/95 (またはレガシーなFORTRAN) にも暗黙の了解があります。

それは、「暗黙の変数の型に関する規約」で

  • 変数の先頭がアルファベット順で i から n までの範囲の文字であれば整数
  • それ以外は実数

というものです。

この規約、昔は便利だったようです。
しかし、現在は思わぬエラーを防止するために、「暗黙の変数の型に関する規約」を無効にする宣言文を用いることが強く推奨されています。
それがimplicit noneです。

おわり

お疲れ様でした。
もし良ければ他の記事も見てみてください!

前々回の記事:Fortran 90/95 で "Hello, world!"

前回の記事:Fortran 90/95 で コメントアウトをする & ループ処理で足し算

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2