Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(out), | optional | :: | unit |
integer function newunit(unit)
! https://fortranwiki.org/fortran/show/newunit
integer,intent(out),optional :: unit
! local
integer,parameter :: LUN_MIN = 10,LUN_MAX = 1000
logical :: opened
integer :: lun
! begin
newunit = -1
do lun = LUN_MIN,LUN_MAX
inquire(unit=lun,opened=opened)
if(.not. opened) then
newunit = lun
exit
endif
enddo
if(present(unit)) unit = newunit
endfunction newunit