Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
26753 Discussions

Weird warning #8893 with intrinsic module

circuitbreaker
Beginner
488 Views

Dear users,

I suspect there is a bug in the Intel Fortran compiler (19.1.1.217 20200306).
I found out there has been an unsual warning popping up as, for good practice, I changed my ISO_C_Binding declaration of

USE ISO_C_Binding, ONLY : C_DOUBLE_COMPLEX

to

USE, INTRINSIC :: ISO_C_Binding, ONLY : C_DOUBLE_COMPLEX

which yielded the following warning

mod_parameters.F90(8): warning #8893: The procedure used from a standard intrinsic module is not a standard intrinsic module procedure. [C_DOUBLE_COMPLEX]

whereas that variable is definitely included in ISO_C_Binding.

Sorry if I can't provide more information, as the warning does not appear with a simple minimal working example, where C_DOUBLE_COMPLEX imported either in a module or directly in the main program. The warning does not appear with gfortran-9 or the NAG compiler with aggressive debug flags.

 

0 Kudos
8 Replies
Mark_Lewy
New Contributor III
474 Views

I believe I have had the same issue as you, I reported it to Intel Support as issue 04649346.

circuitbreaker
Beginner
448 Views

For the record, the warning does not appear with ifort 19.0.4.243 20190416

Mark_Lewy
New Contributor III
321 Views

This is still an issue in ifort 2021.3; for some reason, my support issue 04649346 was closed without comment.

andrew_4619
Honored Contributor I
316 Views

Do you have a simple reproducer you can post? To be able to fix something being able to reproduce the problem is a huge first step. 

Barbara_P_Intel
Moderator
287 Views

Your case should not have been closed.  The issue has not been fixed.  I re-opened 04649346.

One of the Fortran developers writes, "There is a workaround. Remove the only clause and it compiles without warnings."

 

Mark_Lewy
New Contributor III
311 Views

Hi Andrew - I did have a simple reproducer attached to the support issue.  I can attach it here if you want?

Mark_Lewy
New Contributor III
301 Views

Here you go:

 

    module m
        use, intrinsic :: iso_c_binding
    end module

    program XE2020U1_2
    ! Compile with /stand:f18 -> warning #8893
    use, intrinsic :: iso_c_binding, only: c_form_feed
    use m

    implicit none

    ! Body of XE2020U1_2
    Write(*,"(a)") c_form_feed

    end program XE2020U1_2

Mark_Lewy
New Contributor III
299 Views

There is a workround for this - add a private iso_c_binding statement to module m so that its entities aren't exported.

Reply