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

[3. Fortran] 【求助】请问:如何在FORTRAN中调用C程序?

[复制链接]
发表于 2003-7-21 22:10:14 | 显示全部楼层 |阅读模式 来自 北京航空航天大学
向高手请教!!
发表于 2003-10-30 23:00:46 | 显示全部楼层 来自 北京航空航天大学

回复: 【求助】请问:如何在FORTRAN中调用C程序?

Simdroid开发平台
一般说来Fortran调C比较简单,因为Fortran是认函数名(文件名)的,
只需要注意一个问题,
将c的子程序接口名称变一下,这也只是Fortran和C定义习惯的不同
  
比如 有一个C的子程序
myc()
{
   ......
}
  
应该改为类似下面的形式
void myc_()
{
   myc1();
}
void myc1()
{
   ......
}
这里myc1()就是原来的myc(),
  
大概就是这样了,但形式可能有不同,可能编译系统定义有关,试试吧。

评分

1

查看全部评分

发表于 2003-10-30 23:02:17 | 显示全部楼层 来自 北京航空航天大学

回复: 【求助】请问:如何在FORTRAN中调用C程序?

在fortran中调用时,如下
call myc()
发表于 2003-10-31 09:16:54 | 显示全部楼层 来自 河北廊坊

回复: 【求助】请问:如何在FORTRAN中调用C程序?

看得不是很明白,
void myc_() 有什么作用?
为什么要把myc()改为myc1()?
能不能举个详细点的例子?
发表于 2003-10-31 12:48:43 | 显示全部楼层 来自 北京航空航天大学

回复: 【求助】请问:如何在FORTRAN中调用C程序?

void myc_()的作用主要是让C的函数定义习惯与Fortran的一致,在一些大型级上可能不需要这样,不过一般的编译器都需要这样写。
  
至于myc()->myc1()主要是防止函数名重复,可能不需要改的,你试试。
  
比如在Linux下,
按照上面所说的改好C子程序后,编译成.o的文件
再与主程序连接起来。
  
主程序调用时就和fortran子程序一样了,当然还要注意数据类型的问题。
发表于 2003-10-31 12:58:38 | 显示全部楼层 来自 北京航空航天大学

回复: 【求助】请问:如何在FORTRAN中调用C程序?

附一个例子

本帖子中包含更多资源

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

×
发表于 2003-10-31 13:01:49 | 显示全部楼层 来自 北京航空航天大学

回复: 【求助】请问:如何在FORTRAN中调用C程序?

另外,我也有一个问题
  
在C调Fortran子程序时,相应的头文件该如何写阿?
C是认函数的,我也看过一些例子,可是太乱了,
  
不知道谁有经验以及简单例子的,奉献出来吧,
万分感谢!
发表于 2008-3-19 15:17:04 | 显示全部楼层 来自 河北石家庄
很好的帖子,解了心头之惑
回复 不支持

使用道具 举报

发表于 2009-2-27 19:33:09 | 显示全部楼层 来自 湖北武汉
又学了一招,很不错呀
回复 不支持

使用道具 举报

发表于 2010-6-7 12:14:52 | 显示全部楼层 来自 重庆沙坪坝区
感谢高手出手解答
回复 不支持

使用道具 举报

发表于 2010-10-22 21:59:50 | 显示全部楼层 来自 陕西西安
谢谢!顶起来!
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 13:16 , Processed in 0.046880 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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