http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53537

             Bug #: 53537
           Summary: Abstract interface with import interferes with
                    only-clause
    Classification: Unclassified
           Product: gcc
           Version: 4.6.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: arjen.mar...@deltares.nl


The program below gives errors on the use of the parameter wp. If the interface
is not present, the program gets compiled. It is probably possible 
to reduce it even further, but the error disappears when the "only: wp => dp" 
clause is commented out.

----

module select_precision
    implicit none

    integer, parameter :: sp = kind( 1.0 )
    integer, parameter :: dp = kind( 1.0d0 )

    integer, parameter :: wp = sp

end module select_precision

module ode_types
    use select_precision, only: wp => dp
    implicit none

    private
    public :: wp

    type, abstract, public :: ode_system_t
        real(wp), dimension(:), allocatable :: x, x1, x2, x3, x4
        real(wp)                            :: time, deltt
        integer                             :: size = 0
    end type ode_system_t

    interface
        function ode_derivative( this, x, time ) result(deriv)
            import                 :: ode_system_t, wp
            class(ode_system_t)    :: this
            real(wp), dimension(:) :: x
            real(wp)               :: time
            real(wp), dimension(size(x)) :: deriv
        end function ode_derivative
    end interface
end module ode_types

Reply via email to