Я разрабатываю интеграл, используя libcuba с Фортраном, но когда я запускаю программу, появляется эта ошибка
Backtrace for this error:
0x7ff80c55d31a
0x7ff80c55c503
0x7ff80bbd9f1f
0x55eb8a7eb281
0x55eb8a7ec8e1
0x55eb8a7c0b24
0x55eb8a7c1785
0x55eb8a7daf03
0x55eb8a7d7e8f
0x55eb8a7c34b1
0x55eb8a7c20a9
0x55eb8a7c1087
0x55eb8a7c1732
0x7ff80bbbcb96
0x55eb8a7bbc99
0xffffffffffffffff
Targeting failure (recorded core image)
Код программы:
PROGRAM Integral_E_ultra
IMPLICIT None
DOUBLE PRECISION NORM,VAL
CALL E_ultra(VAL)
STOP
END
SUBROUTINE E_ultra(VAL)
IMPLICIT NONE
DOUBLE PRECISION NORM,VAL,PI,VALG1
DOUBLE PRECISION INTEGRALG1(1),ERRORG1(1),PROBG1(1)
PARAMETER (PI=3.14159265358979D0)
C Parameters related to the CUBA numerical integration:
integer ndim,ncomp,mineval,maxeval,verbose,last
integer fail,nregions,neval
double precision epsrel,epsabs,userdata
parameter (ndim=1)
parameter (userdata=0)
parameter (ncomp=1)
parameter (epsrel=1D-3)
parameter (epsabs=1D-12)
parameter (verbose=0)
parameter (last = 4)
parameter (mineval=0)
parameter (maxeval=50000)
integer key1, key2, key3
parameter (key1 = 47)
parameter (key2 = 1)
parameter (key3 = 1)
integer nstart,nincrease
parameter (nstart = 1000)
parameter (nincrease = 500)
integer nnew
double precision flatness
parameter (nnew = 1000)
parameter (flatness = 25D0)
integer key
parameter (key =0)
EXTERNAL INTG1
CALL CUHRE(ndim,ncomp,INTG1,userdata,
+ epsrel,epsabs,verbose+last,mineval,maxeval,
+ KEY,NREGIONS,neval,fail,INTEGRALG1,ERRORG1,PROBG1)
VALG1=INTEGRALG1(1)
VAL=3D0*VALG1/(16*PI**3D0)
RETURN
END
SUBROUTINE INTG1(NDIM,X,NCOMP,RESULT)
IMPLICIT NONE
DOUBLE PRECISION X(NDIM),RESULT(NCOMP)
DOUBLE PRECISION VAR(1),RANGE,JACOBIAN,PI
DOUBLE PRECISION UPPER(1)
COMMON/UBOUND/ UPPER
DOUBLE PRECISION LOWER(1)
COMMON/UBOUND/ LOWER
INTEGER NDIM,NCOMP,I
PARAMETER (PI=3.14159265358979D0)
Result = 0
VAR = 0
RANGE=0D0
JACOBIAN=1D0
LOWER(1)=0D0
UPPER(1)=1D0
DO I=1,NDIM
RANGE=UPPER(I)-LOWER(I)
JACOBIAN=JACOBIAN*RANGE
VAR(I)=LOWER(I)+X(I)*RANGE
ENDDO
CALL INTEGRANDG1(RESULT,VAR)
RESULT(1)=RESULT(1)*JACOBIAN
RETURN
END
SUBROUTINE INTEGRANDG1(RESULT,VAR)
IMPLICIT NONE
DOUBLE PRECISION VAR(1),RESULT(*)
DOUBLE PRECISION NORM,LAMBDA,ALPHA,K,M,G1
LAMBDA = 1
K=1
G1 = 0
ALPHA = VAR(1)
G1= -(LAMBDA**2*K*M*ALPHA)/(K**2+LAMBDA**2)**2
RESULT(1) = G1
RETURN
END