Hi, if a call the NAG-subroutine D01AJF directly from the main program it works well. But an 'Access Violation' is accured if D01AJF called from Qd-sig. The problem is to give the name of the function 'Fst' via Qd-sig to D01AJF.
PROGRAM MAINEW
IMPLICIT NONE
! --- Input / Output ---
Real*8 Fst, a, b ,RESU ! I: Integrand & Grenzen
! --- Locals of D01AJF ---
Real*8 EPSAB, EPSRE ! Abs.&Rel. Genauigk.: sig
Parameter ( EPSAB = 0.D0, EPSRE = 1.D-4 )
Integer LW, LIW, IFAIL
Parameter ( LW = 800, LIW = LW/4 )
Real*8 W(LW), ABSE
Integer IW(LIW)
! --- External ---
External Fst, D01AJF, Qd_sig ! Integrand
! --- Settings ---
IFAIL = 1
a = 0.D0
b = 2 * 3.14D0
! --- Integration ---
Call D01AJF(Fst, a, b, EPSAB, EPSRE, RESU, ABSE, W, LW, IW, LIW, IFAIL)
PRINT*,'D01AJF-RESU =',RESU
Call Qd_sig(Fst, a, b, EPSAB, EPSRE, RESU)
PRINT*,'Qd_sig-RESU =',RESU
END
Subroutine Qd_sig (Fkt, a, b, EPSAB, EPSRE, RESU)
IMPLICIT NONE
Real*8 Fkt, a, b ! I: Integrand & Grenzen
Real*8 EPSAB, EPSRE ! I: Abs.& Rel. Genauigk.
Real*8 RESU ! O: Integrations Resultat
! --- Locals of D01AJF ---
Integer LW, LIW, IFAIL
Parameter ( LW = 800, LIW = LW/4 ) !Zu Testzwecken
Real*8 W(LW), Fkt, ABSE
Integer IW(LIW)
! --- External ---
External Fkt, D01AJF ! Integrand
! --- Settings ---
IFAIL = 1
Call D01AJF(Fkt, a, b, EPSAB, EPSRE, RESU, ABSE, W, LW, IW, LIW, IFAIL)
Return
END
How can I solve my problem? Thanks in advance for any idea.
regards Martin