ファイルを開いて解析するライブラリを開発する必要があります。Fortran IO スタイルのため、ユニット番号は自分で決定する必要がありますが、クライアント コードで他のどのユニットが開いているかわかりません。のような標準機能はありgive_me_any_unit_number_that_is_free()
ますか?
6538 次
2 に答える
31
fortran 2008には、使用できるnewunit句があります。
integer :: myunit
..
open(newunit=myunit,file='file.dat')
...
close(myunit)
しかし、それは十分に新しいので、すべてのコンパイラがまだそれをサポートしているわけではありません。まだの場合は、自分でモックアップすることができます。fortranwikiに良い例があります。
于 2011-10-24T13:13:09.783 に答える
10
INQUIREを使用して、使用されていないユニット番号を見つけることができます。
integer*4 function get_file_unit (lu_max)
!
! get_file_unit returns a unit number that is not in use
integer*4 lu_max, lu, m, iostat
logical opened
!
m = lu_max ; if (m < 1) m = 97
do lu = m,1,-1
inquire (unit=lu, opened=opened, iostat=iostat)
if (iostat.ne.0) cycle
if (.not.opened) exit
end do
!
get_file_unit = lu
return
end function get_file_unit
于 2011-11-30T06:20:32.607 に答える