找回密码
 注册
查看: 2854|回复: 0

求助:哪位大虾能把UDF中如何调用Fortran子程序的方法告诉我啊

[复制链接]
发表于 2009-3-3 16:31:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
要在UDF程序中包括FORTRAN子程序,UDF必须采用编译方式。
除了需要C++编译器,同时还需要FORTRAN编译器。

1:获得FORTRAN子程序的object文件。采用FORTRAN编译器来编译程序得到OBJ文件,设置OBJ类型设置为动态连接库。

2:在UDF里面的调用格式
如:
DEFINE_INIT(init_function)
{
real x=1;
real y=2;
real z=0;

/* call to fortran routine that adds x & y and returns sum in z */
add_2_num(&x,&y,&z) ;

printf("x + y = %f\n",z);
}
在LINUX和UNIX系统下函数名无需写成下划线格式(i.e., add_2_num_(&x,&y,&z)),但是在WINNT下建议这样写。

3:建立合适编译UDF路径,但是不执行NMAKE命令。

4:1里面建立的OBJ文件复制到以下UDF库路径:ntx86\<solver> (i.e. ntx86\2d)

5:对makefile进行修改:
将OBJ文件名加入到如下地方"SRC_OBJECT = ....",比如:
SRC_OBJECT = $(SOURCES2:.c=.obj) add2num.obj
FORTRAN库必须加到LIBS列表中,比如:
LIBS = /Libpath(FLUENT_INC)\fluent$(RELEASE)\$(FLUENT_ARCH)\$(VERSION) fmath.lib

6:执行NMAKE命令。

我想问的是如何将Obj文件设置动态链接库,如果调用多个Fortran子程序,又该怎么做
怎么执行NMAKE命令?谢谢啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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