I have a subroutine that call another subroutine.
The calling subroutine has this in it:
...
REAL(KIND=8), DIMENSION(7) :: CP = RESHAPE((/1.0D0/), SHAPE (/7/), PAD(/0.0D0/) )
REAL(KIND=8), DIMENSION(7) :: SP = RESHAPE((/1.0D0/), SHAPE (/7/), PAD(/0.0D0/) )
INTEGER(KIND=4), PARAMETER :: SIX = 6
LOGICAL(KIND=4) :: R_DeBug = .FALSE.
LOGICAL(KIND=4) :: S_DeBug = .FALSE.
INTERFACE
SUBROUTINE SICOJT(Call1, Call2, Call3, Call3, Call4, Call5)
INTEGER(KIND=4) :: Call1
REAL(KIND=8), DIMENSION(7) :: Call2
REAL(KIND=8), DIMENSION(7) :: Call3
REAL(KIND=8), DIMENSION(7) :: Call4
LOGICAL(KIND=4), OPTIONAL :: Call5
END SUBROUTINE SICOJT
END INTERFACE
IF(R_DeBug) THEN
D WRITE(*,*) 'RoutineX:1600'
CALL SICOJT(Siz, CP(2), SP(2), P2, R_DeBug)
ELSE
D WRITE(*,*) 'RoutineX:1600'
CALL SICOJT(Siz, CP(2), SP(2), P2, S_DeBug)
ENDIF
....
The compiler error says
ifort: warning #101082: disabling optimisation; runtime debug checks enabled ./mycode.for (1839): error #8000: There is a conflict between local interface block and external interface block.
The later subrouttine is as follows:
SUBROUTINE SICOJT(L, C, S, T, DBG)
IMPLICIT NONE
!RH IMPLICIT REAL*8 (A-H, O-Z)
!Args
INTEGER(KIND=4) , INTENT(IN ) :: L
REAL(KIND=8), DIMENSION(L), INTENT(INOUT) :: S
REAL(KIND=8), DIMENSION(L), INTENT(INOUT) :: C
REAL(KIND=8) ,INTENT(IN ) :: T
LOGICAL(KIND=4) , INTENT(IN ) :: DBG
compiler is composer_xe_2013 sp1. 1. 106 intel 64.
Just warning on composer_xe_2011 sp 1 .11.339 intel 64.
I would like to know what I am doing wrong. :)
Thanks,
RH aka ~Holmz