Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

spurious(?) standards warning

andrew_4619
Honored Contributor II
293 Views

Not the biggest problem in the world but I experienced what seems to be an anomaly or maybe not! Consider the following file source1.f90 that uses the non-standard integer pointer.

module Ork
    implicit none
    interface 
        function Mork()
            integer :: Mork
        end function
    end interface
    pointer(lpMork,Mork)
end module Ork

And then consider a use of the same in file source2.f90:

subroutine nanu_nanu()
    use Ork, only: Mork
    implicit none
    integer :: Mindy
    Mindy = Mork()
end subroutine nanu_nanu

This gives rise to:

Source2.f90(2): warning #7372: Procedures as pointees is not supported in Fortran 2008 standard.   [MORK]

Is that a valid warning in this context given it is not referenced and particularly with use only ? Strangely in the real application I had such warnings that were non associated with any line number in the source.

0 Kudos
3 Replies
Steven_L_Intel1
Employee
293 Views

SHAZBOT! When I compile a source like this, I get duplicate warnings.

U697109.f90(8): warning #6477: Fortran 2008 does not allow this statement or dir
ective.
    pointer(lpMork,Mork)
----^
U697109.f90(8): warning #7028: Integer pointer is non-standard.
    pointer(lpMork,Mork)
----^
U697109.f90(4): warning #7372: Procedures as pointees is not supported in Fortra
n 2008 standard.   [MORK]
        function Mork()
-----------------^
U697109.f90(12): warning #7372: Procedures as pointees is not supported in Fortr
an 2008 standard.   [MORK]
    use Ork, only: Mork
-------------------^

Really, only one of them, about the integer pointer statement, makes any sense. The one you cited I can't see valid in any case, and there certainly shouldn't be duplicates. At least I got locators, though two of them are wrong. I will ask the developers to eliminate all but one of the first two. I'd prefer just 7028, I think. 7372 is, if you read it literally, incorrect since F2008 DOES have procedure pointers - just not with this syntax. Issue ID is DPD200414619.

0 Kudos
andrew_4619
Honored Contributor II
293 Views

Cheers, I like the fact in this example that Mork does indeed come from Ork and also that Mindy=Mork. OK too cheesy I admit but an old video clip appeared in my social media just before I make that post :-)

0 Kudos
Steven_L_Intel1
Employee
293 Views

So where would Orson fit in here? Not sure I want to know about Mearth.

0 Kudos
Reply