fortran语言程序设计能无损转成C语言吗

&主题:时代不同了,坛子里还有多少人还在用FORTRAN语言编程序?
泡网分: 21.222
帖子: 5285
注册: 2007年01月
时代不同了,坛子里还有多少人还在用FORTRAN语言编程序。想想很多LZ是工程师应该知道这个语言是科学计算的首选。现在工科学校的计算机语言教育已经改为C了,FORTRAN完蛋是早晚得事。微软已经不搞FORTRAN编译器了,谁知道WIN7的64位系统上用什么编译器?
微信扫一扫分享
&浏览:1653&&回帖:35 &&
泡网分: 2.875
帖子: 6276
注册: 2011年08月
我原以为都是搞管理的,最近发现交流里高级码农不少,不过大多是混海外的,要是能在内地搞10年软件开发我就服了。
泡网分: 0.427
注册: 2010年03月
FORTRAN做科学计算效率高啊,尤其是在多循环嵌套的时候,做声场计算的时候经常会用到FORTRAN,一般就用FORTRAN90。相比之下MATLAB是非常直观易懂。
泡网分: 9.062
注册: 2009年11月
只会用c和汇编的飘过,好多年没有用了
本帖由 motorola ME865 客户端发布
泡网分: 16.736
帖子: 1047
注册: 2007年06月
Win 64位的编译器:
1. MinGW for Win64里面的gfortran;
2. Intel Fortran Compilers
泡网分: 19.312
帖子: 2508
注册: 2006年11月
大学时用过FORTRAN77,计算数字滤波器的数据
泡网分: 31.225
帖子: 15039
注册: 2008年11月
搞普通的计算现在应该用Matlab更多更方便吧?
Matlab 2013b已经发布了,下载到了Win64的版本,还在等MacOS/Linux的64位版本。
泡网分: 23.984
帖子: 5358
注册: 2003年03月
对计算精度要求高的场合大部分还是用FORTRAN靠谱些,现在应该用FORTRAN 90的多一些。
泡网分: 20.935
帖子: 3153
注册: 2006年04月
上大学时考过证,当时我老师用它算电子轨道 本帖最后由 RiverC 于
11:54 编辑
泡网分: 31.958
帖子: 7785
注册: 2003年09月
wow514 发表于
搭车问一下想写点儿安卓上用的APP用什么工具。java~~~
泡网分: 17.673
帖子: 1213
注册: 2007年08月
搭车问一下想写点儿安卓上用的APP用什么工具。
泡网分: 31.987
帖子: 2109
注册: 2004年05月
正在用Intel的fortran compiler。对x86有非常强的优化。
泡网分: 21.222
帖子: 5285
注册: 2007年01月
无忌就是藏龙卧虎,还有一些用FORTRAN语言的DX呀。
泡网分: 21.222
帖子: 5285
注册: 2007年01月
暗贱难防 发表于
学过汇编, QBasic, Pascel, C, 甚至Foxbase+都用过2年, 就是没学过Fortran你应该是计算机专业的,不是机械,电气,化工,土木的。
泡网分: 0.044
注册: 2013年09月
我们专业搞数值模拟要用。还有MATLAB
泡网分: 0.111
注册: 2013年08月
学过汇编, QBasic, Pascel, C, 甚至Foxbase+都用过2年, 就是没学过Fortran
泡网分: 16.851
帖子: 1524
注册: 2007年10月
fisherwei 发表于
嗯,profiling 是必须的。有的时候,如果编译器够给力,代码可以写的更偏向可读性一些。
手工优化过的性能重灾区,即使不用asm,也是很难懂的,就好像id那个超级平方根算法?那个快速开方倒数算法是很牛逼的, 但是它也有它的问题, 就是精度, 具体多少我记不得了, 不过达不到22-23bit的分辨率, 所以一般用于需要性能但是不太需要高精度的地方, 比如游戏.
泡网分: 9.84
帖子: 8295
注册: 2012年02月
dhhd 发表于
LLVM比GCC略快吧,某些地方好点。Intel Compiler在自动向量化方面做的好,比LLVM和GCC都要好,学生和个人用户免费但是工业界收费很高,而且要求Intel处理器。Intel Compiler有Fortran。Intel编译器有个地方就是Xeon Phi只能是它来做,其他编译器暂时还不支持.
其实我觉得,真正高性能的地方,都是先编译,然后profile,然后找到花时间大的地方手动向量化做,编译器不行的。嗯,profiling 是必须的。有的时候,如果编译器够给力,代码可以写的更偏向可读性一些。
手工优化过的性能重灾区,即使不用asm,也是很难懂的,就好像id那个超级平方根算法?
泡网分: 16.851
帖子: 1524
注册: 2007年10月
fisherwei 发表于
有什么合理一些的 benchmark 评测么?
前一阵看过一篇文章,貌似是说 llvm 比较快,比gcc快。intel C compiler怎么样?好像是收钱的。
对了,说到intel,似乎他有 fortran compiler 啊。LLVM比GCC略快吧,某些地方好点。Intel Compiler在自动向量化方面做的好,比LLVM和GCC都要好,学生和个人用户免费但是工业界收费很高,而且要求Intel处理器。Intel Compiler有Fortran。Intel编译器有个地方就是Xeon Phi只能是它来做,其他编译器暂时还不支持.
其实我觉得,真正高性能的地方,都是先编译,然后profile,然后找到花时间大的地方手动向量化做,编译器不行的。
泡网分: 26.571
帖子: 1740
注册: 2004年04月
当年在学校里玩Fortran77,大三后再没玩过。
刚出来混的时候主要是用汇编和C。汇编主要写些逻辑和操作上的东西,要做计算的话要么找现成的资源,要么上C,自己写实在是累。
现在做的东西,有大量老资源都是Fortran77写的,只是不用去改了,只要会调用,可以无视For的存在。
泡网分: 56.168
帖子: 12630
注册: 2004年10月
30年没写了。参加过国家科技三等奖项目。
泡网分: 44.169
精华: 3帖子: 6091
注册: 2003年12月
我还在用Fortran,主要是沿用原学校积累的资源及习惯。现在改用C++,更全面更强大,可视化更便于使用。
Fortran的老资源非常丰富,做计算非常快捷,我挺喜欢。
泡网分: 21.481
帖子: 3259
注册: 2005年04月
最近用c#写程序了,呵呵。
但最爱还是c。
泡网分: 9.84
帖子: 8295
注册: 2012年02月
nahcooo 发表于
C的堆栈开销很大,函数调用时要进行各种堆栈操作,所以速度不如Fortran。有什么合理一些的 benchmark 评测么?
前一阵看过一篇文章,貌似是说 llvm 比较快,比gcc快。intel C compiler怎么样?好像是收钱的。
对了,说到intel,似乎他有 fortran compiler 啊。
泡网分: 9.84
帖子: 8295
注册: 2012年02月
gcc fortran 呢?还在更新么?
现在大学貌似都开始教java了,c对于90后大学生来说太难了。
自打不干码农之后,很久没碰过c了,前一阵研究过golang,最近倒是发现 lua 挺有意思。
泡网分: 0.484
注册: 2009年03月
十多年前考程序员的时候用过FORTRAN,考试嘛,哪道题简单选哪道做。真正写程序还是C++和PYTHON顺手。
本帖由安卓客户端发布
泡网分: 31.225
帖子: 15039
注册: 2008年11月
20年没写过了
本帖由 V2.5.0 iPad 客户端发布
泡网分: 29.411
帖子: 3467
注册: 2004年04月
大学考的就是这,现在都忘记了。
曾学过c,pascal,fortran。同事前几天还在用visual fortran 5.0 编程序计算。
泡网分: 21.222
帖子: 5285
注册: 2007年01月
FORTRAN语言常用来编写科学计算程序,如有限元程序,ANSYS,ADINA,MARC和SAP等。不知道FORTRAN淘汰后这些程序如何更新。另外高校不开FORTRAN了,人才不济呀。
泡网分: 22.045
帖子: 8691
注册: 2008年06月
mygod555 发表于
应该是C更快,它是中级语言,距离底层硬件更近。但到微软的visual C++就很难说了,谁知道微软夹了些什么私货。...C的堆栈开销很大,函数调用时要进行各种堆栈操作,所以速度不如Fortran。
本帖由 Nexus 4 客户端发布
泡网分: 32.278
帖子: 6139
注册: 2005年12月
mygod555 发表于
应该是C更快,它是中级语言,距离底层硬件更近。但到微软的visual C++就很难说了,谁知道微软夹了些什么私货。刚网上查了一下,说纯计算的话Fortran可能会比C快20%
Fortran的编译器对计算速度的优化也蛮明显的,记得过去自己编的同一个程序用VF5和VF6重新编译后均比之前的老版本编译出来的速度提升了不少,比一些普通的编程语言速度就快太多了,快了几十倍,吓死我了,呵呵。就是自己没跟C比过
&版权所有:&&&&在Windows上设置Fortran语言环境
G95是GNU Fortran语言多架构的编译器,用于建立Fortran语言在Windows中。 Windows版本的模拟使用MingW平台下的Windows UNIX环境。安装完成这个功能,并自动添加G95到Windows PATH变量。
可以从G95的稳定版这里得到:
如何使用G95
在安装过程中,G95会自动添加到PATH变量中,如果选择&RECOMMENDED&选项。这意味着,可以简单地打开一个新的命令提示符窗口,输入&G95&,弹出的编译器。找到一些基本的命令,我们现在就开始吧。
g95 &c hello.f90
编译hello.f 90到目标文件命名为hello.o
g95 hello.f90
编译hello.f 90并链接到生成可执行的a.out 文件
g95 -c h1.f90 h2.f90 h3.f90
编译多个源文件。如果一切顺利的话,目标文件h1.o,h2.o和h3.o创建
g95 -o hello h1.f90 h2.f90 h3.f90
编译多个源文件并将它们链接在一起,命名为'hello'的可执行文件
G95的命令行选项:
-c Compile only, do not run the linker.
-o Specify the name of the output file, either an object file or the executable.
多个源文件和目标文件可以一次指定。 Fortran文件由名称&.f&, &.F&, &.for&, &.FOR&, &.f90&, &.F90&, &.f95&, &.F95&, &.f03& and &.F03&.&。对于&结尾表示多个源文件可以被指定。目标文件可以被指定为良好,将被链接以形成一个可执行文件。
本站代码下载:&>&&>&&>&&>&f2c 很好的Fortran 转 C语言 工具
f2c 很好的Fortran 转 C语言 工具
上传大小:365KB
Fortran 转 C语言
简单易用 附有txt文档使用说明
综合评分:3.4(8位用户评分)
所需积分:3
下载次数:67
审核通过送C币
创建者:xiaxia95271
创建者:ioiyoyo
创建者:yuzhidao
课程推荐相关知识库
上传者其他资源上传者专辑
操作系统热门标签
VIP会员动态
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
f2c 很好的Fortran 转 C语言 工具
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:使用f2c将Fortran程序代码转换为C/C++程序代码
Fortran语言作为最为古老的高级程序设计语言,现在仍然在高性能科学计算领域中广泛使用。一方面Fortran语言适合数值计算,提供了高效的性能;另一方面,许多基础数学包如netlib中的lapack、linpack、blas等都是用Fortran语言编写的,将这些数学包翻译成其他编程语言的工作量十分巨大。
& 在开发软件系统时,Fortran语言由于缺乏类似MFC、.NET
Framework、GTK这样的系统框架而很少被采用。软件开发者通常使用C/C++、C#、Java等程序设计语言编写软件。这样就带来了一个问题,当软件系统中需要使用只有用Fortran语言实现的数学函数时,存在着如何集成的问题。
一种方法采用多语言混合编程的方式,即用每种语言相应的编译器(compiler)编译成目标文件,然后由连接器(linker)处理这些目标文件生成二进制程序代码。由于目标文件的内部格式复杂,这就要求不同编译器厂商的编译器之间相互兼容,但这谈何容易?因此实际中最好使用同一厂商的编译器。如在Linux下面使用GCC中的gcc和gfortran,或者Intel的icc和ifort。一般不混合使用。但当今开发Fortran编译器的厂商已经很少了。特别是在Windows平台下,只有Intel和PGI
Group提供Fortran编译器,而且均价格不菲。
另一种方法是把用Fortran语言编写的程序代码翻译软件系统开发语言(如C/C++、C#等)。但这需要即懂数学算法、又懂Fortran语言的专家,而且这种翻译代码的工作量十分巨大。幸运的是,有一个叫做f2c的小程序可以帮我们做这件事。
2 f2c的下载和安装使用
f2c该主页上()提供了f2c程序代码文件的下载链接,但一个一个地下载几十个小文件过于繁琐,不如用FTP客户端软件(如Filezilla)直接到FTP站点()下载。
在Unix中的终端下,进入到src目录下面,键入:
$ make -f makefile.u
在Windows的命令提示符(Command Prompt)下面,键入:
& nmake /f makefile.vc
f2c是一个不带图形界面的命令行程序。它提供了众多程序参数,下面的表格给出了其中一些比较重要的参数说明。
-A&生成ANSI
C代码,如不指定此参数则默认生成K&R形式代码。
-a&将函数定义中的变量设定为自动类型(automatic)而不是静态类型(static)。建议使用此参数。
-C++&生成C++代码。如果你的项目开发语言是C++而不是C的话,建议使用此参数。实际上f2c在代码中加入如下预编译宏:
#ifdef __cplusplus
extern “C” {
#ifdef __cplusplus
如果使用该参数,最好把生成文件的扩展名从.c改为.cpp。
-c&将原Fortran代码作为注释放到C源代码文件中。
-P&对每一个输入Fortran源代码文件file.f,将函数定义的原型(ANSI C
prototype)写入file.P文件中。可以将file.P改名为file.h以便导出函数定义。
-r8&将单精度浮点型变量提升为双精度浮点型。
f2c支持Unix命令参数标准,因此下面两种形式是等价的。
$ f2c -P -A -a -c -r8 *.f
$ f2c -PAacr8 *.f
此外,利用Unix的管道(pipe)功能,可以把多个Fortran源代码文件转换为一个C源代码文件。
$ cat *.f | f2c & mystuff.c
f2c生成的函数定义原型文件的扩展名是.P,在Linux下面可以用如下命令将所有的.P文件的扩展名改为.h。
$ for f in *.P; do mv “$f” “${f%.P}.h”; done
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 fortran和c语言 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信