找回密码
 注册
Simdroid-非首页
查看: 213|回复: 12

[子程序] 在子程序中使用module

[复制链接]
发表于 2015-9-24 15:44:01 | 显示全部楼层 |阅读模式 来自 湖北武汉
module 必须跟源文件放在一起么,难道不能放在别的文件么,这样可以大幅压缩子程序篇幅,还方便调试。
试了几个路径放置module文件,在umat中 use 模块,都会报错:
Error in opening the compiled module file.  Check INCLUDE paths.
懂的大神来讲讲吧,不胜感激··
 楼主| 发表于 2015-9-25 22:50:06 | 显示全部楼层 来自 湖北武汉
Simdroid开发平台
自己顶!!大神快出现啊!!!
回复 不支持

使用道具 举报

发表于 2015-9-26 09:24:08 | 显示全部楼层 来自 北京
可以放在不同的文件里,需要include。否则,也有办法,但是比较麻烦,include最简单
回复 不支持

使用道具 举报

 楼主| 发表于 2015-9-26 14:33:44 | 显示全部楼层 来自 湖北武汉
wufan3924 发表于 2015-9-26 09:24
可以放在不同的文件里,需要include。否则,也有办法,但是比较麻烦,include最简单 ...

谢谢大神的回复。
能否在描述的细致一些,比如我把module存成f90文件放在了跟umat同一个路径。
这个时候我在umat中include那个文件名,include 语句放在umat内还是umat外面呢,这个时候还需要use模块么
回复 不支持

使用道具 举报

发表于 2015-9-26 14:38:46 | 显示全部楼层 来自 北京
口渴的青蛙 发表于 2015-9-26 14:33
谢谢大神的回复。
能否在描述的细致一些,比如我把module存成f90文件放在了跟umat同一个路径。
这个时候 ...

放在umat外面,需要use。这些都是fortran的语法。。。。
回复 不支持

使用道具 举报

 楼主| 发表于 2015-9-26 17:38:16 | 显示全部楼层 来自 湖北武汉
wufan3924 发表于 2015-9-26 14:38
放在umat外面,需要use。这些都是fortran的语法。。。。

好的  , 感谢大神~~临表涕淋
回复 不支持

使用道具 举报

 楼主| 发表于 2015-9-26 18:20:35 | 显示全部楼层 来自 湖北武汉
wufan3924 发表于 2015-9-26 14:38
放在umat外面,需要use。这些都是fortran的语法。。。。

大神的办法果断行,歌颂一下~!
但是原本用自由格式写的module文件必须空6列,因为umat文件是固定格式···
有没有办法不用强行 固定格式的 办法 ,自由格式多舒服
回复 不支持

使用道具 举报

发表于 2015-9-26 22:14:27 | 显示全部楼层 来自 北京
口渴的青蛙 发表于 2015-9-26 18:20
大神的办法果断行,歌颂一下~!
但是原本用自由格式写的module文件必须空6列,因为umat文件是固定格 ...

有办法,可以看一下我录的这个视频:
abaqus用户子程序技巧及调试方法(视频)
回复 不支持

使用道具 举报

 楼主| 发表于 2015-9-28 08:52:34 | 显示全部楼层 来自 湖北武汉
wufan3924 发表于 2015-9-26 22:14
有办法,可以看一下我录的这个视频:
abaqus用户子程序技巧及调试方法(视频) ...

超级感谢!!原来是清华航院的学神啊!!
顶礼膜拜~~
回复 不支持

使用道具 举报

发表于 2016-4-9 15:11:27 | 显示全部楼层 来自 清华大学
wufan3924 发表于 2015-9-26 09:24
可以放在不同的文件里,需要include。否则,也有办法,但是比较麻烦,include最简单 ...

版主,问一下module可以直接在放在umat文件里生成全局数组吗?像这样,
module xx
real s1(a,b,c)
end module xx
subroutine umat()
.....
use xx
.........
end
是应该这样的调用模式嘛?还是要直接在subroutine中定义module?
我尝试了一下,不知为什么,都行不通,说是没是s1没有定义
回复 不支持

使用道具 举报

发表于 2016-4-9 16:32:45 | 显示全部楼层 来自 北京
胆小鬼 发表于 2016-4-9 15:11
版主,问一下module可以直接在放在umat文件里生成全局数组吗?像这样,
module xx
real s1(a,b,c)

是这样使用的,module放在subroutine外面。
把use xx放在紧接着subroutine umat()下面那行,试试看
回复 不支持

使用道具 举报

发表于 2020-10-23 10:43:21 | 显示全部楼层 来自 香港
大神解决了这个问题了吗,我也遇到了一样的子程序UEL中引入module,也出现了error inopening the compiled...,试了很多方法不行啊
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-2 01:33 , Processed in 0.043310 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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