- 积分
- 38
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-8-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
就是下面的程序,我用C#写了一个控制台应用程序,然后提示出错,不能正常调用,请大家帮帮忙啊,我实在是找不出来哪里出错了这是C#的
class Program
{
[DllImport("testDLL.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi)]
public static extern void A111();
[DllImport("testDLL.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi)]
public static extern void FCN( double XA, double F, int N);
static void Main(string[] args)
{
//A111();
}
这是fortran的函数
subroutine A111()
!DEC$ ATTRIBUTES DLLEXPORT::A111
use IMSL
implicit none
external FCN
real, parameter :: ERRREL = 0.0001
integer, parameter :: N = 3
integer, parameter :: ITMAX = 100
real :: XGUESS(N) = (/ 0.0, 1.0, 2.0 /)
real X(N), FNORM
CALL NEQNF (FCN, ERRREL, N, ITMAX, XGUESS, X, FNORM)
open(unit=11,file='result.txt',status='replace')
write(11,*) x
write(*,*) x
close(11)
end subroutine
subroutine FCN (XA, F, N)
!DEC$ ATTRIBUTES DLLEXPORT::FCN
implicit none
integer N
real, target :: XA(N)
real F(N)
real, pointer :: x,y,z
! 在计算时使用x,y,z看起来比较清楚
x=>XA(1)
y=>XA(2)
z=>XA(3)
F(1) = x*x + y*y + z*z -3
F(2) = x*y + y*z + x*z -3
F(3) = exp(x) + exp(y) + exp(z) -3*exp(1.0)
return
end subroutine
|
|