Fortran では外部ファイルの unit 番号の決定が問題になります。そもそも unit 番号が何番まで使えるのか、何番がシステムに予約されているのかすら、規格に定められていないためによくわかりません。
Fortran2008 では、その問題を解決するために、open 文で自動的に空いている unit 番号を割り振ってくれる機能が導入されました。
ここでは、newunit を用いた場合、何番のファイルが割り当てられるのかを見てみることにします。結果を見てみると、Intel Visual Fortran では、-129(-2^7-1) から -16384(-2^14) までが循環的に順に割り当てられるようです。
ソース・プログラム
program main implicit none integer :: i, m do i = 1, 2**14 open(newunit = m, file = 'test.txt', status = 'unknown') if (i > 2**14 - 2**7 - 10) print *, i, m write(m, *) ' test', i, m close(m) end do stop end program main