Quantcast
Channel: Intel® Fortran Compiler
Viewing all articles
Browse latest Browse all 3270

Segmentation fault + subroutine vs function interface

$
0
0

Dear all,

I have a Segmentation fault (core dumped) problem.

When I run my code and I use a function I get a segmentation fault, but only when I use a matrix and a vector with more than 90 elements. I have checked the code but I am not able to find the problem. Could it be the interface problem. Because I allocate some vector and matrix directly in the function. This is my code:

MODULE MOD_SOLVE_COMPLEX_LINEAR_SYSTEM
!------------------------------------------------------------------------------
!------------------------------------------------------------------------------
!------------------------------------------------------------------------------
INTERFACE
      FUNCTION SOLVE_COMPLEX_LINEAR_SYSTEM(A,B,m,n,trans) RESULT(X)
         USE lapack95
         IMPLICIT NONE
         COMPLEX , DIMENSION(M,N) , INTENT(IN) :: A      !matrix to solve
         COMPLEX , DIMENSION(N)   , INTENT(IN) :: B      !known term
         INTEGER,                   INTENT(IN) :: m      !
         INTEGER,                   INTENT(IN) :: n      !
         CHARACTER*1,               INTENT(IN) :: trans  !type solver
         COMPLEX , DIMENSION(N)                :: X      !solution
      ENDFUNCTION
ENDINTERFACE
!------------------------------------------------------------------------------
!------------------------------------------------------------------------------
!------------------------------------------------------------------------------
ENDMODULE MOD_SOLVE_COMPLEX_LINEAR_SYSTEM
!------------------------------------------------------------------------------
!------------------------------------------------------------------------------
!------------------------------------------------------------------------------
!------------------------------------------------------------------------------
FUNCTION SOLVE_COMPLEX_LINEAR_SYSTEM(A,B,m,n,trans) RESULT(X)
USE MOD_SOLVE_COMPLEX_LINEAR_SYSTEM
USE lapack95
IMPLICIT NONE
COMPLEX , DIMENSION(M,N) , INTENT(IN) :: A      !matrix to solve
COMPLEX , DIMENSION(N)   , INTENT(IN) :: B      !known term
INTEGER,                   INTENT(IN) :: m      !
INTEGER,                   INTENT(IN) :: n      !
CHARACTER*1,               INTENT(IN) :: trans  !type solver
COMPLEX , DIMENSION(N)                :: X      !solution

INTEGER, DIMENSION(N)   :: IPIV
COMPLEX, DIMENSION(M,N) :: LA
INTEGER   :: info

 LA=A
 X=B

! some operations......

ENDFUNCTION

What do you think? 

Thanks a lot

 

 


Viewing all articles
Browse latest Browse all 3270

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>