爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4306|回复: 4

[混合编程] 哪位大神帮帮忙把一个fortran程序编译为DLL吧,以供其他语言调用(我用的C#)

[复制链接]

新浪微博达人勋

发表于 2013-8-21 09:09:38 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

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




密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-8-21 15:27:30 | 显示全部楼层
我自己已经弄好了,
300001250258132032582122960_950.jpg

评分

参与人数 1金钱 +20 贡献 +1 收起 理由
kshxia + 20 + 1 给照片加个分。

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-8-21 17:31:46 | 显示全部楼层
我去啊。美女啊。吓cry了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-9-12 22:55:09 | 显示全部楼层
你是怎么做到的?求请教
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-9-19 21:30:07 | 显示全部楼层
又来打扰,我调用时提示找不到函数入口点,怎么解决啊
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表