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

Catastrophic error in logical comparison

Daniel_Dopico
New Contributor I
231 Views

The following error appears:  catastrophic error: **Internal compiler error: internal abort** Please report this error along with the circumstances in which it occurred in a Software Problem Report.  Note: File and line given may not be explicit cause of this error.

I guess that the third "if" is not correct from the Fortran language point of view (even if Intel fortran tolerates this sintax most of the time), but despite of this fact the error shows up. 

!CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
    MODULE tipos_derivados
    IMPLICIT NONE
    TYPE PUNTO_VECTORBASE
    CONTAINS
        PROCEDURE,PASS::integrable=>PUNTO_VECTORBASE_Integrable
    END TYPE PUNTO_VECTORBASE

    CONTAINS

    FUNCTION PUNTO_VECTORBASE_Integrable(pt)
        CLASS(PUNTO_VECTORBASE),INTENT(IN)::pt
        LOGICAL PUNTO_VECTORBASE_Integrable
        
        PUNTO_VECTORBASE_Integrable=.false.
    END FUNCTION PUNTO_VECTORBASE_Integrable
    END MODULE tipos_derivados
!****************************************************************************

    program Catastrophic
    USE tipos_derivados
    implicit none

    ! Variables
    TYPE(PUNTO_VECTORBASE) pt
    
    ! Body of Catastrophic
    
    if(.not.pt%integrable()) print *,'this sentence works'
    if(pt%integrable().eqv..false.) print *,'this sentence also works'
    if(pt%integrable.eqv..false.) print *,'this sentence generates the error'

    end program Catastrophic
!CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

0 Kudos
1 Reply
Arjen_Markus
Honored Contributor I
231 Views

Your third if-statement is indeed non-conforming - you are comparing a type-bound procedure to a logical value. But internal compiler errors are always a problem of the compiler itself, not the code it is trying to process. I suggest you report this to Intel themselves.

0 Kudos
Reply