-Fortran- if文とstop文

偶数と奇数の和を反復計算によって求めるプログラム例を以下に示します.

PROGRAM loop_OE
  IMPLICIT NONE
  INTEGER i, sum0, sum1       !integer type
    sum0 = 0                  !zero-clear
    sum1 = 0                  !zero-clear
    DO i = 1, 100             !repeated operation by DO loop
      IF (MOD(i, 2) == 0) then
        sum0 = sum0 + i
      ELSE IF (MOD(i, 2) == 1) then
        sum1 = sum1 + i
      ELSE
        stop 'Something is wrong!!'
      ENDIF
    ENDDO
  WRITE(*,*)  'The sum of the even-number: ', sum0  !output
  WRITE(*,*)  'The sum of the odd-number:  ', sum1  !output

 

END PROGRAM loop_OE
 
上記のプログラムにおいては,組込み関数である余り関数 "MOD(a, p)"をif文内で利用して,条件判定を行っています.
余り関数 "MOD(a, p)"は,"a"と"p"に整数を用いると,"a"を"p"で除したときの余りを整数で返す関数です.これを利用して,"MOD(i, 2)"が0であれば偶数,"MOD(i, 2)"が1であれば奇数と判定して,偶数の和"sum0",奇数の和"sum1"に加算しています.
 
if文の基本的な記述形式
      IF (論理式 athen
        実行文 A (aが真であればAを実行)
      ELSE IF (論理式 bthen
        実行文 B (bが真であればBを実行)
      ELSE
        実行文 C (a, bが真でないときにCを実行)
      ENDIF

なお,実行文は,複数の実行文を記述することができます.

また,if文において関係演算子を用いて判定を行っています.

      IF (a > b)   aがbより大きければ真
      IF (a >= b)  aがbより大きいか,等しいとき真
      IF (a < b)   aがbより小さければ真
      IF (a <= b)  aがbより小さいか,等しいとき真
      IF (a == b)  aとbが等しければ真

 

      IF (a /= b)  aがbと等しくなければ真


上記のプログラムをコンパイル,実行すると以下のようになります.

$ gfortran loop_OE.f90
$ ./a.out
 The sum of the even-number:         2550
 The sum of the odd-number:          2500