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

[子程序] Fortran90编写的子程序

[复制链接]
发表于 2015-6-2 16:55:53 | 显示全部楼层 |阅读模式 来自 天津
请教:我的abaqus是6.11的,与Intel(R) Visual Fortran Compiler Professional Edition 11.1的配套,做二次开发,以前用的一直是Fortran77,扩展名是.for    现在由于功能需要,想要用Fortran90或以上,扩展名是.f90。
      但是调用的时候报错了,错误提示是“user subroutine file name must have a .for or .obj extension”
      abaqus只能使用F77版本?还是可以通过其他方式调用F90?
      
发表于 2015-6-2 18:54:07 | 显示全部楼层 来自 北京
Simdroid开发平台
你按照f90的格式写,写完之后,把后缀改成.for,然后提交运算就行了。
回复 不支持

使用道具 举报

发表于 2015-6-3 10:40:42 | 显示全部楼层 来自 中国
一个是需要使用f90格式编写,然后更改后缀名为.f
另外你找到C:\SIMULIA\Abaqus\6.11-1\site\abaqus_v6.env这个文件中有一行是控制fortran编译的,在末尾加上一个'/free'这样就可以识别F90格式了,不知道你是不是这个问题
compile_fortran=['ifort', '/c','/DABQ_WIN86_64',
                 '/recursive', '/Qauto-scalar', '/QxW', '/nologo', '/Od', '/include:%I','/free']
回复 不支持

使用道具 举报

 楼主| 发表于 2015-6-3 21:30:27 | 显示全部楼层 来自 天津
wufan3924 发表于 2015-6-2 18:54
你按照f90的格式写,写完之后,把后缀改成.for,然后提交运算就行了。

版主,按照您给的方法,不对abaqus环境进行任何更改,只是该后缀名,我还是没有行得通
   我觉得这样改后缀名的话,默认就是77版的了,我的提示的错误也是一些与77不符的语法错误。
回复 不支持

使用道具 举报

 楼主| 发表于 2015-6-3 21:34:39 | 显示全部楼层 来自 天津
asosk1 发表于 2015-6-3 10:40
一个是需要使用f90格式编写,然后更改后缀名为.f
另外你找到C:\SIMULIA\Abaqus\6.11-1\site\abaqus_v6.env ...

您好,新朋友。我按照您给的方法改了一下,调用的时候还是说只能是.for文件,于是我把子程序的后缀名改为了.for提交,显示了一些语法错误(我是按照f90编的)。
       我在搜了一些同样问题的帖子,也按照他们的方法尝试了一下,但是无一成功啊!这是什么鬼呢?
回复 不支持

使用道具 举报

发表于 2015-6-3 22:12:34 | 显示全部楼层 来自 清华大学学生宿舍
我的经验与2#、3#完全相同,编译完全取决于你的编译器,现在的IVF完全支持Fortran 90的语法,只不过Abaqus只识别后缀为.for,直接把后缀改过来就行了。
注意一下,Fortran 77中要求用C进行注释,而且还有缩进的规定,一行的字符也有限制(超过的话会自动提醒,颜色变绿)。经常使用Abaqus子程序的人都熟悉这个习惯。这不是一个大问题。
相信只需要几分钟就可以把一个Fortran 90的程序改写成“形式上”满足Fortran 77要求的。注意,只需要改形式,不需要改语法规则。
回复 不支持

使用道具 举报

 楼主| 发表于 2015-6-7 15:54:33 | 显示全部楼层 来自 天津
zho123855 发表于 2015-6-3 22:12
我的经验与2#、3#完全相同,编译完全取决于你的编译器,现在的IVF完全支持Fortran 90的语法,只不过Abaqus ...

      我的f90终于也行得通了,之前出错的原因是,子程序中用来连接上一行与下一行的“&”连接符,我放在下一行的开头了(难道这样不符合语法?书上有说放在一行的开头或末尾都是起连接作用的啊)。看到帖子中有位坛友写的f90将&连接符放在行尾处,于是我也这样修改之后就可以运行了(同时辅助修改后缀与环境文件)
回复 不支持

使用道具 举报

发表于 2015-6-11 11:10:44 | 显示全部楼层 来自 山东青岛
你好  我的是6.12的   编辑子程序需要什么配套软件啊   我是新手  请指教
回复 不支持

使用道具 举报

 楼主| 发表于 2015-6-11 15:49:23 | 显示全部楼层 来自 天津
平凡牛 发表于 2015-6-11 11:10
你好  我的是6.12的   编辑子程序需要什么配套软件啊   我是新手  请指教

你的意思是做abaqus二次开发需要的配套软件?
6.12的可以和IVF11.1、vs2008组合
回复 不支持

使用道具 举报

发表于 2015-6-11 22:25:36 | 显示全部楼层 来自 湖北武汉
记住,支不支持自由格式的fortran 语言 与编译器有关,与abaqus 无关,abaqus 只需要obj 文件,
而编译选项是在abaqus_v6.env中设置的.但是abaqus需要输入以for为后缀的代码

MSC.Marc与abaqus 都是一样的,都可以通过修改配置文件,支持自由格式的fortran 代码
usually Marc does not support f90 files. I think free form is not really the problem, but rather the file extension.
回复 不支持

使用道具 举报

发表于 2015-6-15 14:52:48 | 显示全部楼层 来自 山东青岛
ynn201314 发表于 2015-6-11 15:49
你的意思是做abaqus二次开发需要的配套软件?
6.12的可以和IVF11.1、vs2008组合 ...

恩  谢谢啊
回复 不支持

使用道具 举报

发表于 2015-7-8 16:01:10 | 显示全部楼层 来自 北京
原来f90也可以啊,学习了
回复 不支持

使用道具 举报

发表于 2015-8-13 17:38:01 | 显示全部楼层 来自 江苏苏州
ynn201314 发表于 2015-6-7 15:54
我的f90终于也行得通了,之前出错的原因是,子程序中用来连接上一行与下一行的“&”连接符,我放在 ...

有没有学习性的简单f90例子,学习下?
回复 不支持

使用道具 举报

 楼主| 发表于 2015-8-24 10:00:08 | 显示全部楼层 来自 天津
sunkingf 发表于 2015-8-13 17:38
有没有学习性的简单f90例子,学习下?

如果会for77的话,那么按照书上给的规则进行格式转换,就可以了。
回复 不支持

使用道具 举报

发表于 2015-8-25 08:55:09 | 显示全部楼层 来自 四川成都
ynn201314 发表于 2015-6-7 15:54
我的f90终于也行得通了,之前出错的原因是,子程序中用来连接上一行与下一行的“&”连接符,我放在 ...

感谢楼主悉心指导,之前我一直用fortran77语法格式写的,原来fortran90也行,非常感谢
回复 不支持

使用道具 举报

发表于 2018-12-20 09:36:47 | 显示全部楼层 来自 中国
我想问一下,我在程序里面用了MODULE这是Fortran90才有的,格式改成了77格式,现在还是编译错误咋办
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-10-3 06:28 , Processed in 0.039315 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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