- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Consider the following simple example: the compiler (version 14 as well as 2015 BETA) allows a procedure pointer to an elemental procedure and based on what I understand, this is a violation of the standard. So I request Intel staff to take a look and do the needful; my apologies if this issue has already been identified and a tracking incident is already in effect.
MODULE m !.. IMPLICIT NONE !.. PRIVATE !.. Private fields INTEGER :: m_i1 = 1 PROCEDURE(GetAbstract), POINTER :: Get !.. Public methods PUBLIC :: Set !.. Abstract Interface for a getter method ABSTRACT INTERFACE PURE ELEMENTAL FUNCTION GetAbstract() RESULT(RetVal) !.. Function result INTEGER :: RetVal END FUNCTION GetAbstract END INTERFACE CONTAINS PURE ELEMENTAL FUNCTION get_i1() RESULT(RetVal) !.. Function result INTEGER :: RetVal !.. RetVal = m_i1 !.. RETURN END FUNCTION get_i1 SUBROUTINE Set(qName) !.. Argument list CHARACTER(LEN=*), INTENT(IN) :: qName !.. Get => NULL() IF (qName == "i1") THEN Get => get_i1 END IF !.. RETURN END SUBROUTINE Set END MODULE m
Thanks,
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
FWIW, gfortran 4.9 seems to flag this correctly as an error and gives sufficiently descriptive explanation:
gfortran.exe -JDebug\GNU\ -Wall -fall-intrinsics -g -std=f2008 -c sor\m.f90 -o Debug\GNU\sor\m.o sor\m.f90:11.44: PROCEDURE(GetAbstract), POINTER :: Get 1 Error: Procedure pointer 'get' at (1) shall not be elemental sor\m.f90:48.19: Get => get_i1 1 Error: Nonintrinsic elemental procedure 'get_i1' is invalid in procedure pointer assignment at (1) Process terminated with status 1 (0 minute(s), 0 second(s)) 2 error(s), 0 warning(s) (0 minute(s), 0 second(s))
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I did not find any previous defect report about this so I set this to Development (see internal tracking id below) and will keep you informed on what I hear back.
(Internal tracking id: DPD200358641)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks much, Kevin, for the follow-up.

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