I do not know whether the problem I encountered belongs here (compiler error) or to MKL forum (call to MKL solvers), so I apologize if it does not belong here.
I am compiling the same code in VS 2010 with IPS XE 2017 Update 2 and in VS 2015 with IPS XE 2016 Update 4. I am using Debug-x64 configuration with following compiler options:
/nologo /debug:full /MP /Od /I"%MKLROOT%" /I"\include" /fixed /extend_source:132 /Qopenmp /fpscomp:general /debug-parameters:all /warn:declarations /warn:truncated_source /warn:noalignments /warn:interfaces /assume:byterecl /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc140.pdb" /traceback /check:pointer /check:bounds /check:uninit /check:format /check:output_conversion /check:arg_temp_created /check:stack /libs:dll /threads /dbglibs /Qmkl:parallel /c
While everything is OK in IPS 2016 U4, I am getting internal compiler error in IPS 2017 U2, no matter if I use x64 or Win32 platform. The error message is:
fortcom: Fatal: There has been an internal compiler error (C0000005).
ifort: error #10298: problem during post processing of parallel object compilation
By commenting out lines of the corresponding source code file, I found out that calls to dgetrs and dgerfs, see lines 272 and 281 of the source file solver_matrix_general.for in the solution I am going to attach later, are both causing the same ICE. This is how the corresponding code snippet looks like:
subroutine solveLinearSystemGeneral ( ) integer(4) :: info ! Backup matrix A and B call backupLinearSystemMatrixAndRHS ( ) ! LU factorization - matrix A is overwritten by LU factorization call dgetrf( nDimension, nDimension, Amat, nDimension, iPivot, info ) ! Solution - matrix B of right hand sides is overwritten by solution to Amat*Xmat = Bmat call dgetrs( 'N', nDimension, numberOfRHS, Amat, nDimension, iPivot, Bmat, nDimension, info ) ! Solution evaluation (copy to its own variable) call evaluateLinearSystemSolution ( ) ! Solution refinement call dgerfs( 'N', nDimension, numberOfRHS, AmatOrig, nDimension, Amat, nDimension, + iPivot, BmatOrig, nDimension, Xmat, nDimension, + ferr, berr, work, iWork, info ) return end subroutine solveLinearSystemGeneral
What am I doing wrong?