- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When I recompile my OpenMP code in the new version 11 I get this error:
1>: 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.
1>in file C:\MODELS\SHAL2D_Xi_NG_Original\SHAL2D_HYDRO.F90, line 285, column 10
The piece of code where the error happens is this:
!$OMP PARALLEL PRIVATE(U_AM) ! this is line 285
!$OMP DO
DO K = 1, NNODOS
U_AM = 1./ AM(K)
UN(K) = UM(K) * U_AM
VN(K) = VM(K) * U_AM
ETAN(K) = EM(K) * U_AM
ENDDO ! K
!$OMP END DO
!$OMP END PARALLEL
The program was compiling fine in version 10.1. I checked the project properties and options are the same as in version 10.1.
Can someone help?
Thanks,
Reinaldo
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can you attach a small but complete sample that gets the error? If not, please submit a problem report to Intel Premier Support and provide the program there.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can you attach a small but complete sample that gets the error? If not, please submit a problem report to Intel Premier Support and provide the program there.
Steve:
This is the subroutine where the error happens.
R
SUBROUTINE
FEM_SWE(NNODOS, NELEM, UN, VN, ETAN, U, V, ETA, &AM, DTT, NODO, X, Y, AREA, H, T, EPSILON, XNMAN, MANNINGN)
! IN:
! NNODOS, NELEM, UM, VM, EM, U, V, ETA,
! DTT, NODO, X, Y, AREA, ETAN, H, AM, EPSILON, XNMAN
! LOCALS:
! SU, SV, SE
! UM, VM, EM
! OUT:
! UN, VN, ETAN
USE DFPORT
USE IFPORT
USE OMP_LIB
USE GLOBALSHAL2D
IMPLICIT NONE
INTEGER(4), INTENT(IN) :: NNODOS, NELEM
INTEGER(4), INTENT(IN) :: NODO(:,:)
REAL(8), INTENT(IN) :: DTT, T
REAL(8), INTENT(IN) :: EPSILON, XNMAN
REAL(8), INTENT(IN) :: AM(:)
REAL(8), INTENT(IN) :: X(:),Y(:)
REAL(8), INTENT(IN) :: AREA(:)
REAL(8), INTENT(INOUT) :: U(:), V(:), ETA(:), H(:)
REAL(8), INTENT(INOUT) :: UN(:),VN(:), ETAN(:)
REAL(8), INTENT(IN) :: MANNINGN(:)
REAL(8) :: UM(NNODOS), VM(NNODOS), EM(NNODOS)
REAL(8) :: SU(3), SV(3), SE(3) ! VECTORES ELEMENTALES PARA U, V, ETA
REAL(8) :: UME, DIAG, XNMAN2, DT24, AREA12, G6
REAL(8) :: B1, B2, B3, C1, C2, C3, E1, E2, E3
REAL(8) :: U1, U2, U3, V1, V2, V3, H1, H2, H3
REAL(8) :: UBAR, VBAR, HBAR, ARG, BDT, CDT
REAL(8) :: FACT, XFRIC_0, XFRIC_1, XFRIC_2, YFRIC_0, YFRIC_1, YFRIC_2
REAL(8) :: BIUI, CIUI, BIVI, CIVI, BIEI, CIEI, BIHI, CIHI, BUCV
REAL(8) :: G, U_AM
REAL(8) :: CV, GAMMAM, VISCDIN, ALFA1, BETA1, TY, ALFA2, BETA2
REAL(8) :: KF, SY, SVS, STD
real(8) :: rainfall, area3, rain, evap
INTEGER(4) :: I1, I2, I3, K, IM, IR, J, test
UM(1:NNODOS) = 0.
VM(1:NNODOS) = 0.
EM(1:NNODOS) = 0.
! SELECTIVE LUMPING
UME = 1. - EPSILON
DIAG = 2. * (EPSILON + 1.)
!XNMAN2 = XNMAN**2. ! RGM
DT24 = DTT/24.
G6 = 1.6333333 ! G / 6.
IF (IRAIN .EQ. 1) THEN
!determine rainfall and evaporation for time t!
call rainevapsource (t, rain, evap)
rainfall = (rain-evap)/1000./86400. ! daily (rainfall-evaporation) (mm/day) / (1000mm/m) / 86400 (s/day)
ELSE
RAINFALL = 0.
ENDIF
!$OMP PARALLEL PRIVATE(XNMAN2,I1,I2,I3,B1,B2,B3,C1,C2,C3,E1,E2,E3,AREA12,area3,UBAR,VBAR,HBAR,SU,SV,SE,IM,IR,ARG,FACT,XFRIC_0,XFRIC_1,XFRIC_2,YFRIC_0,YFRIC_1,YFRIC_2,BIUI,CIUI,BIEI,U1,U2,U3,BDT,BIVI,CIVI,CIEI,V1,V2,V3,CDT,H1,H2,H3,BIHI,CIHI,BUCV)
!$OMP DO REDUCTION(+:UM,VM,EM)
DO K = 1, NELEM
XNMAN2 = MANNINGN(K)**2.
I1 = NODO(K,1)
I2 = NODO(K,2)
I3 = NODO(K,3)
B1 = Y(I2) - Y(I3)
B2 = Y(I3) - Y(I1)
B3 = Y(I1) - Y(I2)
C1 = X(I3) - X(I2)
C2 = X(I1) - X(I3)
C3 = X(I2) - X(I1)
! FRICTION TERM
E1 = ETA(I1) + H(I1)
E2 = ETA(I2) + H(I2)
E3 = ETA(I3) + H(I3)
AREA12 = AREA(K) / 12.
area3 = area(k) /3.
UBAR = (U(I1) + U(I2) + U(I3)) / 3.
VBAR = (V(I1) + V(I2) + V(I3)) / 3.
HBAR = (E1 + E2 + E3) / 3.
!!!!!!!!!! ELIMINATE DRY ELEMENTS
!!!!!!!!!! NG 03/22/07
!test =1
If((E1 <= 0.01 .and. E2 <= 0.01 .and. E3 <= 0.01)) THEN ! .AND. TEST .EQ.1) then
! VELOCIDAD U
SU(1) = ( 4*U(I1)) * AREA12
SU(2) = ( 4*U(I2)) * AREA12
SU(3) = ( 4*U(I3)) * AREA12
! VELOCIDAD V
SV(1) = ( 4*V(I1)) * AREA12
SV(2) = ( 4*V(I2)) * AREA12
SV(3) = ( 4*V(I3)) * AREA12
! ELEVACIN ETA
SE(1) = ( 4*ETA(I1)) * AREA12
SE(2) = ( 4*ETA(I2)) * AREA12
SE(3) = ( 4*ETA(I3)) * AREA12
DO IM = 1, 3 ! DISTRIBUYE A LOS NODOS LAS CONTRIBUCIONES DE ELEMENTO K
IR = NODO(K,IM)
UM(IR) = UM(IR) + SU(IM)
VM(IR) = VM(IR) + SV(IM)
EM(IR) = EM(IR) + SE(IM)
ENDDO ! IM
!!!!!!!! NG aadido 03/22/07 Aqui termina la subrutina que elimina los elementos secos del calculo hidrodinmico
else
ARG = UBAR**2 + VBAR**2
IF (HBAR .GT. 0.05 .AND. ARG .GE. 0.) THEN ! RGM
! ESTOS PARAMETROS SE DEFINEN EN LA TABLA 2 DE LA REFERENCIA
! O'BRIEN, J. & JULIEN, P.Y.
! LABORATORY ANALYSIS OF MUDFLOW PROPERTIES
! J. HYD. ENG. ASCE. VOL. 114. NO.8 , AUG. 1988
!FACT = XNMAN2 * 9.81 * SQRT(ARG) / (HBAR**(4./3.))
G = 9.81
! CV = 0.20 ! VOLUMETRIC SEDIMENT CONCENTRATION
! GAMMAM = 1200. ! SPECIFIC WEIGHT
! ALFA1 = 3.02E-4 !5E-2
! BETA1 = 33.1 !0.1
! ALFA2 = 1.72E-3/98. ! 4.
! BETA2 = 29.5 !0.1
! VISCDIN = ALFA1 * EXP(BETA1 * CV) ! DINAMIC VISCOSITY
! TY = ALFA2 * EXP(BETA2 * CV) ! YIELD STRESS
! KF = 25.0 ! RESISTENCE PARAMETER = 24 FOR LAMINAR FLOW
! SY = G * TY / ( GAMMAM * HBAR) ! YIELD SLOPE
! SVS = G * KF * VISCDIN / ( 8. * GAMMAM * HBAR**2.) ! VISCOUS SLOPE
FACT = XNMAN2 * G * SQRT(ARG) / (HBAR**(4./3.)) ! TURBULENT DISPERSIVE SLOPE
!FACT = STD !+ SVS !OJO RGM
!SY = 0.0
ELSE
! WRITE(*,*) 'TIME K, HBAR, ARG = ', T, K, HBAR, ARG
FACT = 0.01
!SY = 0.0
ENDIF
FACT = FACT * AREA12
XFRIC_0 = FACT * ( 2*U(I1) + U(I2) + U(I3))! + SY * AREA12
XFRIC_1 = FACT * ( U(I1) + 2*U(I2) + U(I3))! + SY * AREA12
XFRIC_2 = FACT * ( U(I1) + U(I2) + 2*U(I3))! + SY * AREA12
YFRIC_0 = FACT * ( 2*V(I1) + V(I2) + V(I3))! + SY * AREA12
YFRIC_1 = FACT * ( V(I1) + 2*V(I2) + V(I3))! + SY * AREA12
YFRIC_2 = FACT * ( V(I1) + V(I2) + 2*V(I3))! + SY * AREA12
!FACT = AREA12 * G * XNMAN2* 4.
!XFRIC_0 = FACT *U(I1) * SQRT(U(I1)**2+V(I1)**2)/(ETA(I1)+H(I1))**(4./3.)
!XFRIC_1 = FACT *U(I2) * SQRT(U(I2)**2+V(I2)**2)/(ETA(I2)+H(I2))**(4./3.)
!XFRIC_2 = FACT *U(I3) * SQRT(U(I3)**2+V(I3)**2)/(ETA(I3)+H(I3))**(4./3.)
!YFRIC_0 = FACT *V(I1) * SQRT(U(I1)**2+V(I1)**2)/(ETA(I1)+H(I1))**(4./3.)
!YFRIC_1 = FACT *V(I2) * SQRT(U(I2)**2+V(I2)**2)/(ETA(I2)+H(I2))**(4./3.)
!YFRIC_2 = FACT *V(I3) * SQRT(U(I3)**2+V(I3)**2)/(ETA(I3)+H(I3))**(4./3.)
! VELOCIDAD U
BIUI = B1*UN(I1) + B2*UN(I2) + B3*UN(I3)
CIUI = C1*UN(I1) + C2*UN(I2) + C3*UN(I3)
BIEI = (B1*ETAN(I1) + B2*ETAN(I2) + B3*ETAN(I3))*G6
U1 = UN(I1)*BIUI + VN(I1)*CIUI
U2 = UN(I2)*BIUI + VN(I2)*CIUI
U3 = UN(I3)*BIUI + VN(I3)*CIUI
BDT = DTT * BIEI
SU(1) = ( DIAG*U(I1)+ UME*U(I2)+ UME*U(I3)) * AREA12 - DT24 * (2*U1 + U2 + U3)- BDT -DTT *XFRIC_0
SU(2) = ( UME*U(I1)+ DIAG*U(I2)+ UME*U(I3)) * AREA12 - DT24 * ( U1 + 2*U2 + U3)- BDT -DTT *XFRIC_1
SU(3) = ( UME*U(I1)+ UME*U(I2)+ DIAG*U(I3)) * AREA12 - DT24 * ( U1 + U2 + 2*U3)- BDT -DTT *XFRIC_2
! VELOCIDAD V
BIVI = B1*VN(I1) + B2*VN(I2) + B3*VN(I3)
CIVI = C1*VN(I1) + C2*VN(I2) + C3*VN(I3)
CIEI = (C1*ETAN(I1) + C2*ETAN(I2) + C3*ETAN(I3)) * G6
V1 = UN(I1)*BIVI + VN(I1)*CIVI
V2 = UN(I2)*BIVI + VN(I2)*CIVI
V3 = UN(I3)*BIVI + VN(I3)*CIVI
CDT = DTT * CIEI
SV(1) = ( DIAG*V(I1)+ UME*V(I2) + UME*V(I3)) * AREA12 - DT24 * (2*V1 + V2 + V3)- CDT-DTT *YFRIC_0
SV(2) = ( UME*V(I1)+ DIAG*V(I2) + UME*V(I3)) * AREA12 - DT24 * ( V1 + 2*V2 + V3)- CDT-DTT *YFRIC_1
SV(3) = ( UME*V(I1)+ UME*V(I2) + DIAG*V(I3)) * AREA12 - DT24 * ( V1 + V2 + 2*V3)- CDT-DTT *YFRIC_2
! ELEVACIN ETA
H1 = ETAN(I1) + H(I1)
H2 = ETAN(I2) + H(I2)
H3 = ETAN(I3) + H(I3)
BIHI = B1*H1 + B2*H2 + B3*H3
CIHI = C1*H1 + C2*H2 + C3*H3
BUCV = BIUI + CIVI
E1 = UN(I1)*BIHI + VN(I1)*CIHI + H1*BUCV
E2 = UN(I2)*BIHI + VN(I2)*CIHI + H2*BUCV
E3 = UN(I3)*BIHI + VN(I3)*CIHI + H3*BUCV
SE(1) = (DIAG*ETA(I1) + UME*ETA(I2) + UME*ETA(I3)) * AREA12- DT24 * (2*E1 + E2 + E3) + rainfall*area3*dtt
SE(2) = ( UME*ETA(I1) + DIAG*ETA(I2) + UME*ETA(I3)) * AREA12 - DT24 * ( E1 + 2*E2 + E3) + rainfall*area3*dtt
SE(3) = ( UME*ETA(I1) + UME*ETA(I2) + DIAG*ETA(I3)) * AREA12 - DT24 * ( E1 + E2 + 2*E3) + rainfall*area3*dtt
DO IM = 1, 3 ! DISTRIBUYE A LOS NODOS LAS CONTRIBUCIONES DE ELEMENTO K
IR = NODO(K,IM)
UM(IR) = UM(IR) + SU(IM)
VM(IR) = VM(IR) + SV(IM)
EM(IR) = EM(IR) + SE(IM)
ENDDO ! IM
endif !NG aadido 03/12/07
ENDDO ! K (LAZO SOBRE TODOS LOS ELEMENTOS)
!$OMP END DO
!$OMP END PARALLEL
! $OMP PARALLEL PRIVATE(U_AM)
! $OMP DO
DO K = 1, NNODOS
U_AM = 1./ AM(K)
UN(K) = UM(K) * U_AM
VN(K) = VM(K) * U_AM
ETAN(K) = EM(K) * U_AM
ENDDO ! K
! $OMP END DO
! $OMP END PARALLEL
END SUBROUTINE FEM_SWE
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
So far, I am unable to reproduce the problem. You did not supply the source of the module GLOBALSHAL2D so I made up my own with a declaration of IRAIN. What is the exact compile command line used?
Hint: When posting code here, please use the "Pencil" tool in the toolbar for best formatting.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
[cpp]MODULE GLOBALSHAL2D INTEGER(4) :: VERSIONNUMBER, IRAIN, ISED, IXSEC, IPROFILE, NMSTEPS, IVARDT, IINITIAL INTEGER(4) :: IODAT, IOTBA, IOFED, IOIFL, IOUVH, IOUVHE, IOOUT, IOOUTE, IOHHH, IOHHHE, IODVT INTEGER(4) :: IOREP, IOXSEC, IOXSECE, IOPRF, IOPRFI, IOPRFE, IOUVHB, IOVTP, IOTXT, IOSED, IORET INTEGER(4) :: IOOPENB, IOCLSDB, IOBC INTEGER(4) :: IOPLT REAL(8) :: INITIALTIME END MODULE GLOBALSHAL2D[/cpp]
So far, I am unable to reproduce the problem. You did not supply the source of the module GLOBALSHAL2D so I made up my own with a declaration of IRAIN. What is the exact compile command line used?
Hint: When posting code here, please use the "Pencil" tool in the toolbar for best formatting.
OK. THanks. THe GLOBALSHAL2D is irrelevant. You can comment it out as well as the if block tha uses IRAIN. I did it and the problem persists. Anyway it is included above.
The command line is:
/nologo /O3 /Qparallel /Qopenmp /warn:interfaces /iface:cvf /module:"Release/" /object:"Release/" /libs:qwin /winapp /4Yportlib /c
Reinaldo
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
[cpp]MODULE GLOBALSHAL2D INTEGER(4) :: VERSIONNUMBER, IRAIN, ISED, IXSEC, IPROFILE, NMSTEPS, IVARDT, IINITIAL INTEGER(4) :: IODAT, IOTBA, IOFED, IOIFL, IOUVH, IOUVHE, IOOUT, IOOUTE, IOHHH, IOHHHE, IODVT INTEGER(4) :: IOREP, IOXSEC, IOXSECE, IOPRF, IOPRFI, IOPRFE, IOUVHB, IOVTP, IOTXT, IOSED, IORET INTEGER(4) :: IOOPENB, IOCLSDB, IOBC INTEGER(4) :: IOPLT REAL(8) :: INITIALTIME END MODULE GLOBALSHAL2D[/cpp]
OK. THanks. THe GLOBALSHAL2D is irrelevant. You can comment it out as well as the if block tha uses IRAIN. I did it and the problem persists. Anyway it is included above.
The command line is:
/nologo /O3 /Qparallel /Qopenmp /warn:interfaces /iface:cvf /module:"Release/" /object:"Release/" /libs:qwin /winapp /4Yportlib /c
Reinaldo
Steve:
Maybe this helps.Bellow is the full message that I get when compiling the file. Note that lines 76 appears to have been processed before the error message.
Thanks again,
Reinaldo
Compiling with Intel Fortran 11.0.061 [IA-32]... ifort /nologo /O3 /Qparallel /Qopt-prefetch=1 /Qopenmp /warn:interfaces /iface:cvf /module:"Release/" /object:"Release/" /libs:qwin /winapp /4Yportlib /c /Qvc8 /Qlocation,link,"C:Program FilesMicrosoft Visual Studio 8VCbin" "C:MODELSSHAL2D_XiSHAL2D_HYDRO.F90" C:MODELSSHAL2D_XiSHAL2D_HYDRO.F90(78): (col. 8) remark: OpenMP DEFINED LOOP WAS PARALLELIZED. C:MODELSSHAL2D_XiSHAL2D_HYDRO.F90(76): (col. 7) remark: OpenMP DEFINED REGION WAS PARALLELIZED. C:MODELSSHAL2D_XiSHAL2D_HYDRO.F90(55): (col. 4) remark: FUSED LOOP WAS VECTORIZED0_1631 : 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. in file C:MODELSSHAL2D_XiSHAL2D_HYDRO.F90, line 76, column 7 . compilation aborted for C:MODELSSHAL2D_XiSHAL2D_HYDRO.F90 (code 3) SHAL2D - 1 error(s), 0 warning(s)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks - I can reproduce it now. Removing /iface:cvf eliminates the error. Do you really need that? Also, I see you have both /parallel and /Qopenmp. I'd suggest removing /parallel.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks - I can reproduce it now. Removing /iface:cvf eliminates the error. Do you really need that? Also, I see you have both /parallel and /Qopenmp. I'd suggest removing /parallel.
Steve:
Thanks for finding this. I need /iface:cvf for a graphic library I use. Is there a workaround? Was there a change from version 10.1?
Reinaodo
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Not a deliberate change. You have encountered a bug - anytime you get an error of the nature you did it's a compiler bug.
My preferred solution would be to write a module with a series of interface blocks for the graphics routines that require CVF conventions, adding the directive:
!DEC$ ATTRIBUTES STDCALL, REFERENCE, MIXED_STR_LEN_ARG, DECORATE, ALIAS:"ROUTINENAME" :: routinename
The name in the ALIAS needs to be uppercase.
If you do this and then USE the module, you won't need to compile the sources with /iface:cvf
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Not a deliberate change. You have encountered a bug - anytime you get an error of the nature you did it's a compiler bug.
My preferred solution would be to write a module with a series of interface blocks for the graphics routines that require CVF conventions, adding the directive:
!DEC$ ATTRIBUTES STDCALL, REFERENCE, MIXED_STR_LEN_ARG, DECORATE, ALIAS:"ROUTINENAME" :: routinename
The name in the ALIAS needs to be uppercase.
If you do this and then USE the module, you won't need to compile the sources with /iface:cvf
Steve:
Thanks! I will try that.
Reinaldo
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This has been reported as issue DPD200110137.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This has been reported as issue DPD200110137.
Steve:
Quick question. Is there a way I could follow up this issue? I would like to know when would it be resolved in a future compiler update.
Thnaks,
Reinaldo
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You could open an issue with Intel Premier Support and reference the above report number. I would do it for you but I can't find you with the email address you have for the forum. I do see a fiu.edu address that looks as if it may be yours - is it? (Please don't post your actual email address here.)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve:
I had reported the issue there, but I think they will appreciate your input. My email is [deleted]
Thanks,
Reinaldo
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok, great. I found the issue and will make sure you are notified of updates.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page