Fortran Coder

查看: 307|回复: 6

[数学库] 调用imsl的 DN2QNJ出现错误

[复制链接]

21

帖子

4

主题

0

精华

入门

F 币
87 元
贡献
50 点
发表于 2018-6-14 20:33:58 | 显示全部楼层 |阅读模式

test.txt (12.46 KB, 下载次数: 4)
回复

使用道具 举报

618

帖子

0

主题

0

精华

大师

F 币
614 元
贡献
378 点

规矩勋章元老勋章新人勋章水王勋章

QQ
发表于 2018-6-15 07:49:44 | 显示全部楼层
[Fortran] 纯文本查看 复制代码
  subroutine fcn(X,F,N)
    integer, intent(in) :: n    
    real(kind(1d0)), intent(in) :: x(n)  
    real(kind(1d0)), intent(out) :: f(n) 

subroutine lsjac(n,X,fjac)
  integer::i1,j1
  integer, intent(in) :: n                                                         
  real(kind(1d0)), intent(in) :: x(n)                                              
  real(kind(1d0)), intent(out) :: fjac(n,n) 

21

帖子

4

主题

0

精华

入门

F 币
87 元
贡献
50 点
 楼主| 发表于 2018-6-15 09:56:57 | 显示全部楼层
N0ASEHUDV2P@4XB8@HC0806.png vvt 发表于 2018-6-15 07:49
[mw_shl_code=fortran,true]  subroutine fcn(X,F,N)
    integer, intent(in) :: n   
    real(kind(1d0 ...

谢谢回复,貌似是能成功调用函数了,但是又出现了新的问题。也没有错误提示。您知道C:\Users\wenv\Desktop\zhao是什么意思吗?

618

帖子

0

主题

0

精华

大师

F 币
614 元
贡献
378 点

规矩勋章元老勋章新人勋章水王勋章

QQ
发表于 2018-6-15 10:41:34 | 显示全部楼层
这个问题需要精细的单步调试才能找到原因。

21

帖子

4

主题

0

精华

入门

F 币
87 元
贡献
50 点
 楼主| 发表于 2018-6-15 15:45:41 | 显示全部楼层
vvt 发表于 2018-6-15 10:41
这个问题需要精细的单步调试才能找到原因。

谢谢回复。问题解决了,出错是数组越界。但我有一点不明白。
我有两台电脑,一个mac,一个windows。都装的ivf。mac用终端运行,windows用vs。
一模一样的代码,mac能运行,windows就会出问题。
比如数组
integer::i
real::a(3)


do i=1,3
a(i+2)=i
end do

在mac会出结果a(3)=1,a(4)=2,a(5)=3
但在windos就会报错,说数组越界。
您知道这个是什么原因吗?

618

帖子

0

主题

0

精华

大师

F 币
614 元
贡献
378 点

规矩勋章元老勋章新人勋章水王勋章

QQ
发表于 2018-6-15 15:54:42 | 显示全部楼层
本帖最后由 vvt 于 2018-6-15 15:58 编辑

跟操作系统没关系呀,主要是编译器的默认参数不一样。
ivf 用VS编译,会默认检查数组越界,而命令行则不会

命令行可以加选项 -check:bounds 使其增加越界检查。

21

帖子

4

主题

0

精华

入门

F 币
87 元
贡献
50 点
 楼主| 发表于 2018-6-16 22:58:06 | 显示全部楼层
vvt 发表于 2018-6-15 15:54
跟操作系统没关系呀,主要是编译器的默认参数不一样。
ivf 用VS编译,会默认检查数组越界,而命令行则不会
...

谢谢回复,解决了我很大的困惑。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2018-12-17 11:08

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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