複数の手続での変数の共有

fortranで複数のサブルーチンから同じデータ(変数、配列)を参照したいときに MODULE や COMMON ではなくENTRYという解決法もなくはない。宣言と実行がソース上で近いし、ファイルも一個なので便利な場面もあるとは思う:

SUBROUTINE a
  REAL(8),SAVE::b,... ! 使いまわす変数
  REAL(8):: d,f,g,... ! 引数あるいは使い捨て変数(副作用注意)
  ENTRY c(d)   ! 外から呼び出すルーチン
    b= d+1.d0
    ...
  ENTRY e(f,g) ! 外から呼び出すルーチン
    g= b + f
    ...
END SUBROUTINE