-->
プログラミングに関するメモ

ここでは、いくつかのプログラミング言語について入門書にあまり書いていないことや、自分でプログラムを書いてはまったこと、よく忘れることをメモ的に載せます。間違いなどを見つけたら連絡してください。なお、ここに書いてあることを実行して何らかの不都合が生じても責任は負いません。


FORTRANに関するメモ

1: COMMON変数を使うときの注意(その1)
いくつかのCOMMON変数を同じブロック内で宣言するとき、そのCOMMON変数を使用するすべてのプログラム単位で変数を宣言する順番が一致していなければならない。例えば、MAINプログラムで

      COMMON/TEST/VAR_1,VAR_2
と書いてある場合、このCOMMONブロックを使うすべてのサブルーチンで
      SUBROUTINE EXAMPLE
      COMMON/TEST/VAR_1,VAR_2
のようにCOMMON変数を宣言しなければならない。この順番を間違えた場合、コンパイルではエラーにならないが、変数の値がデタラメになる可能性がある。

2: COMMON変数を使うときの注意(その2)
一つのCOMMONブロック内で整数型の変数と倍精度実数型の変数を一緒に宣言するとき。例えばプログラムの中に次のように書かれていたとする。

      COMMON/TEST/VCOM_I,VCOM_D
      INTEGER VCOM_I
      REAL*8 VCOM_D
これをコンパイルするとと次のようなwarningが出る。
fort: Warning: xxxx.f, line N: Alignment of variable or array
 is inconsistent with its data type
(xxxx.fというプログラムをコンパイルし、N行目に警告が出た場合の例)

これを避けるには、整数型の変数と倍精度実数型の変数を次の例のように別のCOMMONブロックで宣言する。

      COMMON/TEST1/VCOM_I
      COMMON/TEST2/VCOM_D
      INTEGER VCOM_I
      REAL*8 VCOM_D

3: FORTRAN90方式のコメントについて
本来、FORTRAN77ではコメント文は行の先頭に"C"または"*"をつけることになっているが、たいていのコンパイラではFORTRAN90式のコメント(文中に"!"が出てきたらその行に限り"!"以降はコメントとなる)が使える。
ただし、muleのFORTRANモードではコメント扱いされなず(赤表示にならない)、 !のあとにFORTRANの命令(IFやCALLなど)があるとそこだけ色が変わる。

4: 標準入出力及び標準エラー出力
論理装置番号(LUN)として5を指定すると標準入力、6を指定すると標準出力、 0とすると標準エラー出力になる。ただし、OPEN文でこれらのLUNにファイルを割り当てるとOPEN文で書いた方が優先される。


MORTRANに関するメモ

1: 一行に書ける文字数について
MORTRANでは、一行に書く文字が概ね80文字(正確には知らない)を越えるとそこから先は無視される。 (FORTRANで一行に72文字しか書けないのと同じようなもの?)

2: プログラムの終わりについて
MORTRAN単独(EGS内での使用ではない)でプログラムを書く場合、プログラムの一番最後(ファイルの末尾)に

%%
をつける必要がある(理由は知らないが)。


C言語に関するメモ

1:printf()やscanf()などで変数を入出力するとき
int 整数 %d
long 整数 %ld
float 実数 %f
double 実数 %lf
char 文字 %c
char配列 文字列 %s

注意
printf()などでdoubleをつかうときは%fにする。
また、%5.2fなどとすると表示する桁を制御できる。この例は、「全部で6桁,そのうち小数点以下を2桁」という意味になる。

2:主なエスケープコード
\n 改行
\r 復帰(改行しない)
\t 水平タブ
\b 一字もどる
\a ビープを鳴らす

3:UNIXのC言語に関する注意
UNIXのC言語で数学的な関数(math.hを使う関数)を使った場合は、次のようにコンパイルする必要がある。

gcc -o exec_file source_file.c -lm
こうしないとmath.hをリンクできないらしい


トップへ戻る