Fortran 95における廃止事項および廃止予定事項 |
Fortran 95は本ページ作成時点においてFortranの最新規格です.これはISO/IEC 1539-1:1997(E)で規定されており,本ページもこれをベースに作成されています.本ページはFortran 90のマイナーバージョンアップであるFortran 95における廃止事項および廃止予定事項についてまとめたものです. |
2004年8月 |
廃止事項および廃止予定事項について |
まず最初に言っておきたいことは、廃止になる機能は決して使わない、そして廃止予定の機能についても絶対に使わないということです。理由は簡単,これらの機能を使用しているコードは将来、コンパイラを通らなくなるからです.新規にコードを書く場合はもちろんのこと,既存のコードの修正も早めに行いましょう! (「面倒臭い」は,理由として認められません) |
廃止事項 |
Fortran 95における廃止事項は以下の5項目です.絶対に使わないようにしましょう.
|
(1) 実数型 及び 倍精度実数型のDO変数 |
|
【解説】 |
省略 |
(2) IF構文の外部からEND IF文への飛越し |
|
【解説】 |
省略 |
(3) PAUSE文 |
|
【解説】 |
省略 |
(4) ASSIGN文,割当て形GO TO文および文番号割当てによるFORMAT文の指定 |
|
【解説】 |
省略 |
(5) H形編集記述子 |
|
【解説】 |
省略 |
廃止予定事項 |
廃止予定事項は下記の9項目です.確かにコンパイラは通るかも知れません.しかし,絶対に使わないようにしましょう.
|
(1) 算術IF文 |
|||
【対策】 |
|
||
【解説】 |
処理内容が直感的に掴みにくいが故に,コードの解読が困難および修正時にバグが入りやすいという問題があります. |
||
(2) DO構文での端末文の共有及びEND DO文でもCONTINUE文でもない端末文 |
|||
【対策】 |
多重ループでは面倒くさがらずに,一つのDO文に対して一つのEND DO文を用いること.あと,CONTINUEはもう使わないこと! |
||
【解説】 |
端末文の共有は,ループ構造が分かりづらい,解読が困難およびプログラムを拡張する際にバグが入りやすい等の問題があります.具体的に下のようにちゃんと対応をとること.
また,END DOあるいはCONTINUEを用いないループ端末の使用は禁止です.
|
||
(3) 選択戻り |
|||
【対策】 |
リターンコードを用いて,CASE構文にて実装するなどして下さい. |
||
【解説】 |
文法上の統一性を著しく乱しており,なおかつ処理内容が直感的に掴みにくいが故にコードの解読が困難および修正時にバグが入りやすいという問題があります.
下記のようにリターンコードをもちいてCASE構文で書くようにして下さい.
|
||
(4) 計算形GO TO文 |
|||
【対策】 |
|
||
【解説】 |
処理内容が直感的に掴みにくいが故に,コードの解読が困難および修正時にバグが入りやすいという問題があります. |
||
(5) 文関数 |
|||
【対策】 |
|
||
【解説】 |
代入文と見分けがつきにくいので,コードが読みづらくなってしまい,修正時の障害となります. |
||
(6) 実行文の間のDATA文 |
|||
【対策】 |
|
||
【解説】 |
コードが読みやすくなり,DATA文を捜しまわる・見落とす・書き忘れるということが少なくなります. |
||
(7) 文字長引継ぎ文字関数 |
|||
【対策】 |
|||
(8) 固定形式 |
|||
【対策】 |
えっ? 手作業でやるつもり??? |
||
【解説】 |
今まで残っていたのがおかしい.固定形式にまつわる歴史的経緯については…(以下略) |
||
(9) CHARACTER*の形の文字型宣言 |
|||
【対策】 |
CHARACTER(LEN=長さ)::変数名リスト または |
||
【解説】 |
例えば
|
最後に |
上記に挙げられた廃止対象事項は,?な文法に起因した項目がほとんどです.昔はソースレベルにおいて一行でも,また1文字でもコードを少なくしたかったという事情があったために,これらはやむなく導入されたものと思われます.しかし,現在はスクリーンエディタでコードを書くのはあたり前.多少長くなっても読みやすいコードを書くことが,メンテナンスの観点から非常に重要です.コードをゴミにしてしまわないためにも,早速アップデートを開始しましょう. |
参考文献 |
1) Information technology-Programming languages-Fortran- Part 1:Base language, ISO/IEC1539-1, First edition, 1997-12-15. |
2) プログラム言語Fortran ― 第1部:基底言語, JIS X 3001-1:1998 . |
3) FORTRAN77入門 改訂版,浦昭二,培風館,1982 |