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

Internal Compiler Error with type-bound procedure called from submodule in IFX

Daniel_Dopico
New Contributor I
409 Views

I managed to create this reproducer of an ICE I am getting with IFX 2025 and IFX 2024.

Small variations in some parts make the ICE vanish, i.e., using the variable inside the TYPE state_vector seems important; the submodule seems important too and the type-bound  call tind=list_ObjFunc%gq() instead of !tind=gq(list_ObjFunc) seems important as well.

MODULE ESTADO
    IMPLICIT NONE
    TYPE state_vector
        INTEGER,PUBLIC::DIM
    END TYPE state_vector
    TYPE(state_vector)::natcoord
END MODULE ESTADO
    
!CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
MODULE objective_functions
    IMPLICIT NONE
    
    !> Tipo de lista de restricciones
    TYPE lista_funciones_objetivo
        INTEGER::NOBJ=0
    CONTAINS
        PROCEDURE,PASS::gq
    END TYPE lista_funciones_objetivo

    TYPE(lista_funciones_objetivo),PUBLIC::list_ObjFunc

CONTAINS

    FUNCTION gq(LSFO)
        USE ESTADO,ONLY:natcoord
        CLASS(lista_funciones_objetivo),INTENT(INOUT)::LSFO
        REAL(8),DIMENSION(LSFO%NOBJ,natcoord%DIM)::gq
    END FUNCTION gq

END MODULE objective_functions
!CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

!CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
MODULE formulacion
    USE ESTADO,ONLY:natcoord
    USE objective_functions,ONLY:list_ObjFunc
    IMPLICIT NONE

    INTERFACE
        MODULE SUBROUTINE adjoint_proyec_ALI3P(mu_fip)
            REAL(8),DIMENSION(list_ObjFunc%NOBJ,natcoord%DIM)::mu_fip
        END SUBROUTINE adjoint_proyec_ALI3P
    END INTERFACE
END MODULE formulacion

!CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
SUBMODULE (formulacion) SUBformulation
    IMPLICIT NONE
CONTAINS
    MODULE PROCEDURE adjoint_proyec_ALI3P
        REAL(8),DIMENSION(list_ObjFunc%NOBJ,natcoord%DIM)::tind

        tind=list_ObjFunc%gq()
        !tind=gq(list_ObjFunc)
    END PROCEDURE adjoint_proyec_ALI3P
END SUBMODULE SUBformulation

I filled a ticket with this, in case you want to provide any feedback for the developers. 

 

 

0 Kudos
1 Reply
Deeksha_S_Intel
Moderator
392 Views

Hello David,

 

Please be informed that we are closing this community thread to avoid duplication, as you have already created a ticket via OSC. Since you are also a priority support customer, we will continue providing ongoing assistance via email to ensure you receive the best support.

 

If you have any further queries, please reply to our emails, as this thread will no longer be monitored by Intel®.  


0 Kudos
Reply