この教材では、ひとつのプログラムが複数のファイルからなる場合に、 プログラム言語の include 機能を使っている。 プログラムをコンパイルする際には、Includeされているファイルも 自分のところに用意しておく必要がある。 また、include文のファイル名のところにパス指定(ディレクトリ名) がついているときは、自分がそれを置いた場所に応じて修正してから コンパイルすること。
INCLUDE 'ファイル名'ファイル名には、Cシェルの場合と違って、「~」による指定は使えない。
#include "ファイル名"ただし、コンパイラあるいは共用ライブラリ(この教材では NCAR Graphics)とともに 用意されているヘッダファイルを取りこむ場合は
#include <ファイル名>である。後者の形のものについては、ファイルを自分のところに用意する 必要はない。
Include機能のおもな趣旨は、別の項目で述べるように、 変数や手続きの宣言などを書いたプログラムの断片(ヘッダファイル)を プログラム単位間で共通にすることである。
わたしの例文では、
Unix上では複数のプログラム単位(Fortranのサブルーチン、Cの関数) は別々にコンパイルして(コンパイラのコマンドに -c をつける)、 あとでリンク(結合)して実行可能プログラムにするのがふつうである。 そのために、makeコマンドを使う(makeコマンドへの指示を書くファイル にはMakefileという名前をつけるのがふつうである)。 しかし、わたしの例文では、便宜上、includeで取り込んでいっしょに コンパイルすることにした。 includeされる対象の、{.f, .c}で終わるファイル名はこの種のものである。
プログラムを複数の手続きに分けて開発すると、同じ変数の宣言などが それぞれの手続きごとに出てくることがある。多くの場合、同じ名前の変数は 同じ型や値で使いたいのだが、別々に書いておくと、プログラムの修正の 過程で食い違ってしまうおそれがある。そこで、そういった宣言はプログラム 本体とは別に書いておき、コンパイル時に取りこんだほうがよいという考え方 が出てきた。特にC言語では、このような取り込みをしないとプログラムが 書けないことが多い。取り込まれるのを目的に用意されたプログラムの断片を ヘッダファイル(header file)という。他の言語ではこのような取り込み機能 が言語の標準として備わっているとは限らないが、それぞれのコンパイラが そういう機能を提供しているのがふつうである。
しかし、このような取り込み機能では、ヘッダファイルは取り込まれて はじめてプログラム言語の文法に合っているかどうかを検査されるので、 ヘッダファイルとプログラム本体の開発が独立にできない。 「モジュール化」の考えの進んだプログラム言語では、ソースプログラム での取り込みではなく、共通の変数などは別にモジュールとしてコンパイル しておき、プログラム本体からそのモジュールを参照する方式がよいとされる。 たとえば、Fortranの90年標準では、取り込み機能のINCLUDE文があるものの、 あまり勧められないとされ、モジュール機能が勧められている。