- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, the following code snippet can be compiled but the compiler showed a warning messge that I didn't quite understand.
module test1 implicit none private public :: tp1 type, abstract :: tp1(length) private integer, len :: length = 10 character(length) :: s contains procedure(isub1), public, pass, deferred :: sub1 end type tp1 abstract interface subroutine isub1(this) import tp1 class(tp1(*)), intent(in) :: this end subroutine isub1 end interface end module test1 module test2 use test1, only: tp1 implicit none private public :: tp2 type, abstract, extends(tp1) :: tp2 end type tp2 end module test2
warning #7925: An interface-block in a subprogram that contains an interface-body for a procedure defined by that subprogram is non-standard. [TEST1^ISUB1]
If tp1 is not a parameterized type, the inheritance is just OK. So is there any restriction for extending an abstract parameterized derived type ?
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Looks like a false warning, suggest you submit this case to Intel support (OSC).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks FortranFan, I've reported it to the OSC.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page