1057527606 发表于 2020-9-15 16:49:11

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

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却说找不到子程序怎么回事


liu_jia_tao 发表于 2020-9-15 16:49:11

USRFC_LOC_DLL.opt里面写USRFC.dll的绝对路径,然后把Aspen文件放在这个文件夹中,在运行设置的连接器选择项中输入“USRFC_LOC_DLL.opt”

1057527606 发表于 2020-9-15 16:49:11

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


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

1057527606 发表于 2020-9-15 16:49:11

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

能留个联系方式吗

zxz2004 发表于 2020-9-15 16:49:11

学习学习,谢谢分享

liu_jia_tao 发表于 2020-9-15 16:49:11

1057527606 发表于 2020-9-16 11:37
能留个联系方式吗

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

1057527606 发表于 2020-9-15 16:49:11

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


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


1057527606 发表于 2020-9-15 16:49:11

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

哥,能跑起来了    我把文件名和程序名弄混了,谢谢啦

1057527606 发表于 2020-9-15 16:49:11

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

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

liu_jia_tao 发表于 2020-9-15 16:49:11

1057527606 发表于 2020-9-17 19:32
怎么同时将两个子程序外嵌到ASPEN

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

VTman 发表于 2020-9-15 16:49:11

liu_jia_tao 发表于 2020-9-17 19:54
分别编译成两个dll,在opt文件里面写上这两个dll的路径

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

liu_jia_tao 发表于 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软件才可以啊,希望前辈能指点一二,谢谢了

独孤伊人 发表于 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行吗?

liu_jia_tao 发表于 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路径都写上,一个一行。
我本人更推荐第一种方法,因为生成的文件数目更少,体积也更小

独孤伊人 发表于 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之后再次打开还是这样。请问大哥知道是什么原因吗?是否与环境变量设置有关?

liu_jia_tao 发表于 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 ...

请问问题解决了吗? 我的编译界面也是像你这样的
页: [1]
查看完整版本: Aspen子程序导入后运行找不到子程序怎么回事