C 入力を求めるメッセージを標準出力に書き出す。 WRITE(6,*) 'a x^2 + b x + c = 0:' WRITE(6,*) 'a, b, c?' C READ文で値を読みこむ。 READ(5,*) A,B,C C 判別式(根号の中身)を計算する。 D = B**2 - 4. * A * C C ここからIF文が始まる。 C (...)の中に書かれた条件を満たす場合だけ C ENDIFまでの範囲に書かれた命令を実行する。 C ここでは、判別式Dの値が0以上の場合に限って、 C 二次方程式の解を計算する。 C IF文の条件の指定の中で、 C '.EQ.'は等しい、'.NE.'は等しくない、 C '.GT.'は大きい、'.LT.'は小さい、 C '.GE.'は以上、'.LE.'は以下という意味である。 IF (D.GE.0.) THEN C 二次方程式の2つの解を計算する。 C 関数SQRTで平方根を求めている。 X1 = (- B - SQRT(D)) / (2. * A) X2 = (- B + SQRT(D)) / (2. * A) C 結果を標準出力に書き出す。 C このWRITE文もIF文の中にあるので、 C 判別式Dが負で方程式に実数解が存在しない場合には、 C このプログラムでは何も出力されない。 WRITE(6,*) 'x = ',X1,',',X2 C ここでIF文が終了する。 ENDIF STOP END