Fortran Coder

查看: 84|回复: 2

[数学库] fortran无法调用imsl

[复制链接]

17

帖子

6

主题

0

精华

入门

F 币
95 元
贡献
49 点
发表于 2020-10-12 08:38:17 | 显示全部楼层 |阅读模式
环境和编译器用的是vs2019和ivf2020,imsl用的是2018;编译路径也都按网上说的填写好了,
前后一共出现过两种情况:
1.最开始时语句
[Fortran] 纯文本查看 复制代码
include 'link_fnl_shared.h'
编译没错,但语句
[Fortran] 纯文本查看 复制代码
use lin_sol_gen_int
use rand_gen_int
use error_option_packet
会提示平台不对,且有“模块计算机类型“X86”与目标计算机类型“x64”冲突”的警告。
按网上的提示稀里糊涂一顿骚操作之后出现下述情况2
2.现在的错误提示为can not open,如下面图片所示。

我的完整程序为:(即imsl手册中的第一个例子)
[Fortran] 纯文本查看 复制代码
include 'link_fnl_shared.h'
use lin_sol_gen_int
use rand_gen_int
use error_option_packet
implicit none
! This is Example 1 for LIN_SOL_GEN.
integer, parameter :: n=32
real(kind(1e0)), parameter :: one=1e0
real(kind(1e0)) err
real(kind(1e0)) A(n,n), b(n,n), x(n,n), res(n,n), y(n**2)
! Generate a random matrix.
call rand_gen(y)
A = reshape(y,(/n,n/))
! Generate random right-hand sides.
call rand_gen(y)
b = reshape(y,(/n,n/))
! Compute the solution matrix of Ax=b.
call lin_sol_gen(A, b, x)
! Check the results for small residuals.[attach]2905[/attach]
res = b - matmul(A,x)
err = maxval(abs(res))/sum(abs(A)+abs(b))
if (err <= sqrt(epsilon(one))) then
write (*,*) 'Example 1 for LIN_SOL_GEN is correct.'
end if
end


ps:同样的配置和设置方法在其他电脑上就没问题,不知为何现在出现这么多问题,跪求大神相助!!

回复

使用道具 举报

838

帖子

0

主题

0

精华

宗师

F 币
1360 元
贡献
758 点

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

QQ
发表于 2020-10-13 08:34:49 | 显示全部楼层
看本论坛视频教程
http://v.fcode.cn/video-use_library.html

17

帖子

6

主题

0

精华

入门

F 币
95 元
贡献
49 点
 楼主| 发表于 2020-10-13 18:33:06 | 显示全部楼层
感谢,把32位的imsl安装并添加路径以后,可以编译了,但是出现了这个问题: 屏幕截图 2020-10-13 183217.png
请问该怎么解决呢?
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2020-10-28 01:50

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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