我正在使用:
open(iunit,file=dexfile,status='old',iostat=status)
if(status /= 0)then
write(*,*) 'Unable to open dex file'
endif
在 Geany 中,但出现此错误:
Warning: 'iunit' is used uninitialized in this function [-Wuninitialized]
最佳答案
如果您的编译器有此选项,您可以在函数 open
中使用 newunit
命令在打开时将标志返回到可用单元 ID:
open(newunit=iunit,file=dexfile,status='old',iostat=status)
在这种情况下,open
命令将返回一个 iunit
值作为该调用的输出,而不是输入.
否则,您可以编写一个为您执行此操作的代码片段,例如:
! Find a logical unit which is not currently in use
integer function first_available_unit() result(iunit)
logical :: is_open
do iunit=10,999 ! Skip units 1-10 as they're sometimes system reserved
inquire(unit=iunit,opened=is_open)
if (.not.is_open) return
end do
end function first_available_unit
然后运行:
iunit = first_available_unit()
open(unit=iunit,file=dexfile,status='old',iostat=status)
关于fortran - 什么是 : 'iunit' is used uninitialized in this function [-Wuninitialized],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64826183/