如何从vb.net向intel fortran编的dll传递数组参数?(附代码)

去者 2005-08-13 10:10:14
fortran程序:
real function OrderPars(delta, deltam, omiga, v, length)

! Expose function OrderPars to users of this DLL
!
!DEC$ ATTRIBUTES DLLEXPORT::ORDERPARS

! 变量
integer length
real, allocatable :: delta(:)
real, allocatable :: deltam(:)
real, allocatable :: omiga(:)
real, allocatable :: v(:)
! allocate (delta(length), deltam(length), omiga(length), v(length))
! 函数体
! i = 5
OrderPars = v(1)

end function OrderPars
vb.net调用fortran动态库的程序:
Imports System.Runtime.InteropServices
......
<DllImport("CoreDll.dll", EntryPoint:="ORDERPARS")> Public Shared Function ORDERPARS(ByRef delta() As Single, ByRef deltam() As Single, ByRef omiga() As Single, ByRef v() As Single, ByRef Length As Integer) As Single
' Leave function empty - DllImport attribute forces calls
End Function
......
Dim result As Single = ORDERPARS(delta, deltam, omiga, v, Length)
执行到上面最后一局后出现对话框,上有下面所示的错误:
forrtl: severe (408): fort: (3): Subscript #1 of the array V has value 1 which is less than the lower bound of 2033201000.
......
Stack trace terminated abnormally.

请问这是什么原因?是fortran语言错了还是vb.net调用的时候错了?多谢了。
...全文
173 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
syy64 2006-01-23
  • 打赏
  • 举报
回复
mark

3,422

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧