制限事項
---------------------------------

* 以下のFortran 95の構文要素/機能に対応していない.

  - ASSOCIATE構文
  - SELECT TYPE構文
  - 列挙体(enum)
  - 型パラメータ問い合わせ(type parameter inquiry)

* EQUIVALENCE文で宣言された変数に対して，異なるDATA文の記述を許している．

ex.)
      equivalence (a, b)
      data a /1/
      data b /2/

* ALLOCATE文，DEALLOCATE文において配列の上限・下限が同一の文の中で依存
  関係を持っている場合のエラーチェックをしていない．

ex.)
      allocate(a(size(b)), b(size(a)))

* 文番号が列挙された割り当て型GOTO文はSELECT CASE文と通常のGOTO文へ変換
  されるが，文番号が列挙されていない割り当て型GOTO文には対応していない．

ex.)
      goto jump (10,20) ... 対応している
      goto jump         ... 対応していない

* implicit 文の letter group の前後，(/) でなく，[/] を指定しても，
  error にならない．

ex.)
      implicit real [ah,o-z]

* INTERFACE文のブロックにおいて，FUNCTION/SUBROUTINE/MODULE PROCEDURE以
  外を記述できてしまう．

* MODULEを前方参照することはできない．

* 副プログラムの呼出しについて，引数の個数や型のエラーチェックを行わない．

* CASE文の場合式の型と範囲の重複をチェックしない．

* CASE文を飛び先文とするGOTO文が許される．

* WHERE文の条件式に論理配列式以外が記述できる．

ex.)
        where .TRUE. .and. .TRUE.
            A = 1
        end where

* WHERE文のブロックに代入文以外が記述できる．

ex.)
        where A > 1
            CALL SUBROUTINE()
        end where

* WHERE文のブロックの代入文左辺の形状と，条件式の論理配列式の形状の一致
  をチェックしない．

ex.)
        logical :: l(1:3)
        integer :: I(1:2,1:2)

        where l .and .TRUE.
            I = I + 1
        end where

* CASE文, DO文, IF文の構文名の一致のチェックを行わない．

ex.)
       label1: do expression
          if (i == 3) cycle label2
          sum = sum + i
          if (sum > 100) exit label2
          continue
        end do label1

* 代入文において型の整合性チェックを厳密に行っていない．

