以梦为马,不负韶华

搜索
查看: 2991|回复: 17
收起左侧

Aspen子程序导入后运行找不到子程序怎么回事

[复制链接]
发表于 2020-9-15 16:49:11 显示全部楼层 |阅读模式
SEVERE ERROR
      ERROR DURING DYNAMIC LINK OF USER ROUTINE(S) OR IN-LINE FORTRAN
      PLEASE CHECK FILE _0320fqd.ld FOR LINKER MESSAGES.
  *** SEVERE ERROR
      COULD NOT RESOLVE USER OR IN-LINE FORTRAN SUBROUTINE(S):
      SUBROUTINE "USRMTRFC" IS MISSING
  *** SEVERE ERROR
      ERROR DURING DYNAMIC LINK OF USER ROUTINE(S) OR IN-LINE FORTRAN
      PLEASE CHECK FILE _0320fqd.ld FOR LINKER MESSAGES.
      SUBROUTINE "USRINTFA" IS MISSING
  *** SEVERE ERROR
      PROGRAM TERMINATED DUE TO UNRESOLVED ROUTINES
! Errors while processing input specifications


我按照步骤一步步将Fortran转化为dll文件,然后变成opt文件,最后倒入aspen  却说找不到子程序怎么回事


1600159612(1).png
发表于 2020-9-15 16:49:11 显示全部楼层
USRFC_LOC_DLL.opt里面写USRFC.dll的绝对路径,然后把Aspen文件放在这个文件夹中,在运行设置的连接器选择项中输入“USRFC_LOC_DLL.opt”

评分

参与人数 1韶华币 +2 收起 理由
1057527606 + 2

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-15 16:49:11 显示全部楼层
liu_jia_tao 发表于 2020-9-16 09:30
USRFC_LOC_DLL.opt里面写USRFC.dll的绝对路径,然后把Aspen文件放在这个文件夹中,在运行设置的连接器选择 ...


还是那个问题,你看看还有哪里有问题吗

这个是绝对路径吗

这个是绝对路径吗

把运行文件放进去了

把运行文件放进去了

运行结果

运行结果
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-15 16:49:11 显示全部楼层
liu_jia_tao 发表于 2020-9-16 09:30
USRFC_LOC_DLL.opt里面写USRFC.dll的绝对路径,然后把Aspen文件放在这个文件夹中,在运行设置的连接器选择 ...

能留个联系方式吗

点评

你再看看编译的fortron文件中子程序的名字(非文件名)和你Aspen里面填写的子程序名字是否一致,不一致的话肯定会报错的,或者你把模拟文件发上来  详情 回复 发表于 2020-9-16 13:15
回复 支持 反对

使用道具 举报

发表于 2020-9-15 16:49:11 显示全部楼层
学习学习,谢谢分享
回复 支持 反对

使用道具 举报

发表于 2020-9-15 16:49:11 显示全部楼层
1057527606 发表于 2020-9-16 11:37
能留个联系方式吗

你再看看编译的fortron文件中子程序的名字(非文件名)和你Aspen里面填写的子程序名字是否一致,不一致的话肯定会报错的,或者你把模拟文件发上来
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-15 16:49:11 显示全部楼层
liu_jia_tao 发表于 2020-9-16 13:15
你再看看编译的fortron文件中子程序的名字(非文件名)和你Aspen里面填写的子程序名字是否一致,不一致的 ...


这是模拟的文件和FORTRAN子程序,


脱正己烷灵敏度分析$backup.bkp

167.96 KB, 下载次数: 10

USRFC.for

10.24 KB, 下载次数: 13

回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-15 16:49:11 显示全部楼层
liu_jia_tao 发表于 2020-9-16 13:15
你再看看编译的fortron文件中子程序的名字(非文件名)和你Aspen里面填写的子程序名字是否一致,不一致的 ...

哥,能跑起来了    我把文件名和程序名弄混了,谢谢啦
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-15 16:49:11 显示全部楼层
liu_jia_tao 发表于 2020-9-16 13:15
你再看看编译的fortron文件中子程序的名字(非文件名)和你Aspen里面填写的子程序名字是否一致,不一致的 ...

怎么同时将两个子程序外嵌到ASPEN

点评

分别编译成两个dll,在opt文件里面写上这两个dll的路径  详情 回复 发表于 2020-9-17 19:54
回复 支持 反对

使用道具 举报

发表于 2020-9-15 16:49:11 显示全部楼层
1057527606 发表于 2020-9-17 19:32
怎么同时将两个子程序外嵌到ASPEN

分别编译成两个dll,在opt文件里面写上这两个dll的路径

点评

哥,请问如果有5个子程序,该怎么同时编译导入aspen中运行呢?是要生成5个.dll文件还是只需要生成5个.obj文件就行?把5个obj写在一个文本文件,最后只编译成一个.dll行吗?  详情 回复 发表于 2022-1-23 21:19
借宝地一问: Plus自带例子“Urea Synthesis and Granulation”,其中的管式反应器带有子程序,想学学如何编写,但例子所在文件夹内只有apwz文件与一个pdf,去哪里能看到子程序文件呢?  详情 回复 发表于 2021-3-3 17:14

评分

参与人数 1韶华币 +1 收起 理由
1057527606 + 1

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2020-9-15 16:49:11 显示全部楼层
liu_jia_tao 发表于 2020-9-17 19:54
分别编译成两个dll,在opt文件里面写上这两个dll的路径

借宝地一问:
       Plus自带例子“Urea Synthesis and Granulation”,其中的管式反应器带有子程序,想学学如何编写,但例子所在文件夹内只有apwz文件与一个pdf,去哪里能看到子程序文件呢?

点评

把apwz文件打开,会在文件所在目录出现一个同名文件夹,文件夹里面的*.f是源代码,*.dll是编译好的动态链接文件  详情 回复 发表于 2021-3-3 23:15
回复 支持 反对

使用道具 举报

发表于 2020-9-15 16:49:11 显示全部楼层
VTman 发表于 2021-3-3 17:14
借宝地一问:
       Plus自带例子“Urea Synthesis and Granulation”,其中的管式反应器带有子程序, ...

把apwz文件打开,会在文件所在目录出现一个同名文件夹,文件夹里面的*.f是源代码,*.dll是编译好的动态链接文件
回复 支持 反对

使用道具 举报

发表于 2020-9-15 16:49:11 显示全部楼层
你好,前辈,请问一下你是怎么一步步编译和链接fortran代码的啊,都用到哪些软件了呢,我现在下了Simply Fortran和Aspen Plus V9这两个软件够用吗,我照着一本书上准备使用Aspen内置编译器aspcomp和链接器asplink来编译和链接fortran代码,但是到编译步骤就出错了,如图所示,没有生成。obj文件,不知道哪里出了问题,如果前辈知道的话,能告诉我怎么解决吗,还是说还必须要下载配套的VS和IVF软件才可以啊,希望前辈能指点一二,谢谢了
编译遇错误.png

点评

请问问题解决了吗? 我的编译界面也是像你这样的  详情 回复 发表于 2022-2-5 20:42
回复 支持 反对

使用道具 举报

发表于 2020-9-15 16:49:11 显示全部楼层
liu_jia_tao 发表于 2020-9-17 19:54
分别编译成两个dll,在opt文件里面写上这两个dll的路径

哥,请问如果有5个子程序,该怎么同时编译导入aspen中运行呢?是要生成5个.dll文件还是只需要生成5个.obj文件就行?把5个obj写在一个文本文件,最后只编译成一个.dll行吗?

点评

有两种方法:1. 用asplink *.obj XXX(XXX为dll文件名)命令可以把所有obj编译到一个dll文件中,再把这一个dll文件写到文本文件中。2. 把5个子程序的obj文件分别编译到各自的dll中,在文本文件中把这5个dll路径都写  详情 回复 发表于 2022-1-24 09:22
[发帖际遇]: 独孤伊人 乐于助人,帮助不愿意过马路的老奶奶过马路,奖励 2 个 韶华币. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

发表于 2020-9-15 16:49:11 显示全部楼层
独孤伊人 发表于 2022-1-23 21:19
哥,请问如果有5个子程序,该怎么同时编译导入aspen中运行呢?是要生成5个.dll文件还是只需要生成5个.obj ...

有两种方法:1. 用asplink *.obj XXX(XXX为dll文件名)命令可以把所有obj编译到一个dll文件中,再把这一个dll文件写到文本文件中。2. 把5个子程序的obj文件分别编译到各自的dll中,在文本文件中把这5个dll路径都写上,一个一行。
我本人更推荐第一种方法,因为生成的文件数目更少,体积也更小

点评

大哥,我发现我的我的set compiler里的下面一行显示 Not set for current machine in HKEY_LOCAL_MACHINE registry。我输入数字按enter之后再次打开还是这样。请问大哥知道是什么原因吗?是否与环境变量设置有关?  详情 回复 发表于 2022-1-26 19:04
[发帖际遇]: liu_jia_tao 成功获得红包 10 个 韶华币. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

发表于 2020-9-15 16:49:11 显示全部楼层
liu_jia_tao 发表于 2022-1-24 09:22
有两种方法:1. 用asplink *.obj XXX(XXX为dll文件名)命令可以把所有obj编译到一个dll文件中,再把这一 ...

大哥,我发现我的我的set compiler里的下面一行显示 Not set for current machine in HKEY_LOCAL_MACHINE registry。我输入数字按enter之后再次打开还是这样。请问大哥知道是什么原因吗?是否与环境变量设置有关?

点评

只要编译的过程中不报错设置的就没问题  详情 回复 发表于 2022-1-27 09:42
回复 支持 反对

使用道具 举报

发表于 2020-9-15 16:49:11 显示全部楼层
独孤伊人 发表于 2022-1-26 19:04
大哥,我发现我的我的set compiler里的下面一行显示 Not set for current machine in HKEY_LOCAL_MACHINE ...

只要编译的过程中不报错设置的就没问题
回复 支持 反对

使用道具 举报

发表于 2020-9-15 16:49:11 显示全部楼层
想不出来 发表于 2021-3-5 10:53
你好,前辈,请问一下你是怎么一步步编译和链接fortran代码的啊,都用到哪些软件了呢,我现在下了Simply Fo ...

请问问题解决了吗? 我的编译界面也是像你这样的
[发帖际遇]: 独孤伊人 乐于助人,帮助不愿意过马路的老奶奶过马路,奖励 7 个 韶华币. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

不想打字就选择快捷回复吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|以梦为马,不负韶华

GMT+8, 2025-4-14 08:20

Powered by 以梦为马,不负韶华

© 2024-2099 Meng.Horse

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