Segfault in MKL's dgesvx

I’m getting a segfault in the routine dgesvx using intel’s MKL. Here is a minimal working example. I can use dgesv, but not dgesvx which is a version that estimates the condition number of the matrix. I’m compiling with ifort dgesvx_tester.f90 -L/opt/intel/composer2020/mkl/lib/intel64 -lmkl_core -lmkl_intel_lp64 -lmkl_sequential -lpthread and the output of the program segfaults at the dgesvx routine, but dgesv works. Any help would be appreciated. Sample code output:

 dgesv solution: 
     2.1213203    -0.7071068     3.0000000     4.0000000     5.0000000
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source             
a.out              000000000040594A  Unknown               Unknown  Unknown
libpthread-2.27.s  00007FDB72F2A8A0  Unknown               Unknown  Unknown     00007FDB75B4DD7A  mkl_lapack_dgesvx     Unknown  Unknown
libmkl_intel_lp64  00007FDB74AE369D  DGESVX                Unknown  Unknown
a.out              0000000000404292  Unknown               Unknown  Unknown
a.out              0000000000403002  Unknown               Unknown  Unknown       00007FDB727AAB97  __libc_start_main     Unknown  Unknown
a.out              0000000000402EEA  Unknown               Unknown  Unknown

If I compile with debugging on then it does show that the traceback to my part of the code that originates the segfault is the call to dgesvx.

Welcome to the Discourse! I think it might be that you’ve passed a character literal (‘N’) to the EQUED argument when this is an output argument. Maybe try pass a character(1) variable there instead.

1 Like

This was indeed the problem. Thank you for your reply.