Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.

catastrophic error with coarray and openmp

Zuodong_Y_
Beginner
336 Views

Compile following code with -qopenmp -coarray causes  010101_14921 catastrophic error on Version 18.0.1.163 Build 20171018. Any reason for it? Thanks!

module M_A
	implicit none
	integer :: ica
	type t_A
		integer :: map(10)
	contains
		procedure :: do_something
	end type
	complex(8) :: B(20,10)
  • contains subroutine do_something(self) class(t_A) :: self
  • integer :: i,n self%map=[10:1:-1] do i=this_image(),10,num_images() !$OMP PARALLEL DO do n=1,20 B(n,self%map(i))=1d0 enddo !$OMP END PARALLEL DO enddo end subroutine end module program main use M_A implicit none type(t_A) :: tp
  • call tp%do_something() end program
  •  

    0 Kudos
    8 Replies
    Steve_Lionel
    Black Belt Retired Employee
    336 Views

    Internal compiler error is always a compiler bug. It still fails on 19.1. Please report it through the Intel Online Service Center.

    JohnNichols
    Valued Contributor II
    335 Views

    Is it just my imagination or are there quite a few compiler bug errors in the last few months, I do not remember seeing so many in my scant years on this site. 

     

    Steve_Lionel
    Black Belt Retired Employee
    336 Views

    It's not unusual in my experience. They do come in waves - most often when a school semester starts. Another wave sometimes occurs when a new major compiler version is released and a lot of people jump in to try it, though this has decreased over the years.

    Zuodong_Y_
    Beginner
    336 Views

    I am not able to report the bug as I don't own license. Anyone help to report will be greatly appreciated. Thanks!

    Zuodong_Y_
    Beginner
    336 Views

    I further simplify the code a little bit. The problem seems to be referring member of coarray derived type inside of type-bound procedure in OMP scope. For now, a possible way to get rid of this is don't use type-bound procedure in coarray.

    module debug
    	implicit none
    	type t_A
    		integer :: a
    	contains
    		procedure :: set
    	end type
    contains
    	subroutine set(self)
    		class(t_A) :: self
  • integer :: i !$OMP PARALLEL DO do i=1,10 write(*,*)self%a enddo !$OMP END PARALLEL DO end subroutine end module
  •  

    Barbara_P_Intel
    Moderator
    336 Views

    Thank you for simplifying the problem.  Let me check this out.

     

    Barbara_P_Intel
    Moderator
    336 Views

    The Intel Fortran compiler does not yet support polymorphic variables inside OpenMP parallel regions. That feature is part of OpenMP 5.0 and we haven't implemented that yet.

     

    Zuodong_Y_
    Beginner
    336 Views

    I didn't know that. I used a lot of polymorphic variables inside of openmp before and it seems to be fine. Thanks for the information!

    Reply