https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61933

--- Comment #7 from Joost VandeVondele <Joost.VandeVondele at mat dot ethz.ch> 
---
Hi Jerry,

thanks for the fix, but this seems to break code to find a free unit, like
such:

MODULE M
CONTAINS
  FUNCTION get_unit_number(file_name) RESULT(unit_number)

    CHARACTER(LEN=*), INTENT(IN), OPTIONAL   :: file_name
    INTEGER                                  :: unit_number

    INTEGER                                  :: ic, istat, nc
    LOGICAL                                  :: exists, is_open

    ! Get a new unit number
    DO unit_number=10,100
       INQUIRE (UNIT=unit_number,EXIST=exists,OPENED=is_open,IOSTAT=istat)
       IF (exists.AND.(.NOT.is_open).AND.(istat == 0)) RETURN
    END DO

    unit_number = -1

  END FUNCTION get_unit_number
END MODULE

USE M
  write(6,*) "unit to use: ",get_unit_number("foo.dat")
END


This will now always return -1, while it used to return a free unit.

Reply via email to