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

Weird warning #8893 with intrinsic module

circuitbreaker
Beginner
851 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
837 Views

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

circuitbreaker
Beginner
811 Views

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

Mark_Lewy
New Contributor III
684 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 II
679 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
651 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
675 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
665 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
663 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