FORTRANでサブルーチンを書く時,    
いろいろな場合を想定して,    
なるべく汎用的なサブルーチンにしようとすると,    
引数がどんどん増えて困ることがある.    
大事な引数は2-3個なのに,    
どうでもよいような引数がずらずらと並んでいると,    
それだけで CALL .... と書く手が重くなってくる.    
   
     
   
そのような時にENTRY文を使うと解決できる場合がある. ENTRY文とは, サブルーチンの途中から実行を始めるための文である.
*−−−−−- main program −−−−−-
      REAL X(10)
      .......
      CALL TABLE(X, 10)
      .......
      END
*−−−−−−−−−−−−−−−-
      SUBROUTINE TABLE(X,N)
      REAL       X(N)
      DATA       IOU /6/
      SAVE
      WRITE(IOU,'(10F12.4)') X
      RETURN
      ENTRY IOUSET(IOU0)
      IOU = IOU0
      RETURN
      END
  
   
このサブルーチンTABLEは   
1次元配列Xを出力するものであるが,    
TABLEだけを呼べば,    
DATA文で指定されたIOUの機番(6)に出力される.    
ファイルなど別の機番に出力させたい場合は,    
TABLE を呼ぶ前にIOUSET を呼んで,    
IOUを書き換えておけばよい.    
つまり, 1つのサブルーチンに,    
印刷すべき変数だけを与える入口と,    
その他のパラメータを設定する入口の, 2つの入口を作るわけである.    
   
     
   
ここで, 注意すべきことはSUBROUTINE文またはENTRY文で指定された引数は, そのSUBROUTINE文またはENTRY文から入った時でないと使えないことである. 例えば, このプログラムのENTRY文から入った時(IOUSETが呼ばれた時), 変数N を引用することはできない. 同じように, TABLEが呼ばれた時にIOU0を引用することはできないので, IOUSETが呼ばれたときにIOUに代入しておかなければならない. また, このようなプログラムでもSAVE文とDATA文は不可欠である.