由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Computation版 - 关于C和Fortran: 一点儿个人观点
相关主题
<>全书下载关于adaptive grid size的问题
Write In Cwhere to down a standard Fortran90 complier?
偶也问一fortran问题fortran problem
visual fortran区别6位以上的变量名吗?Re: anyone know how to compile a libary coded in c which any be used b
problem about Fortran 77 in unix有软件可以自动给出c/c++程序之间调用图?谢谢!
fortran搞计算还是简单多了How to compile F77 file with C ?
请教Unix中怎么编译Fortun文件Fortran77中
Fortran code optimizationa question about data transfer in MPI
相关话题的讨论汇总
话题: fortran话题: write话题: f90话题: sunyy话题: matrix
进入Computation版参与讨论
1 (共1页)
S***y
发帖数: 186
1
关于C和Fortran: 一点儿个人观点
1. C和Fortran其实并不具可比性。C应该是算中级语言,而Fortran是高级语言。
也就是说,理论上上讲Fortran能干的事C全能干。我相信Fortran的compiler
很大部分应该是用C写的。所以,当你说Fortran支持Variable-size matrix时,
马上就有人能给你找出一个C的library来support这个功能。好,你说Fortran
支持复数计算,C高手立刻就能给你现写一个complex class支持所有你想要的
任何manipulations on complex numbers. 关键是你觉得那个更方便呢?
2. Fortran其实很容易学,有点编程语言基础的两三天就能上手用。再有多
两三个星期实践一下,Fortran的程序基本就能看懂了(当然前提是算法你已经
懂了)。这么简单,而且同行都在用,学学无防啊。
3. 这个有点老生长谈了。就是很多科学计算的老程序都是Fortran写的,都是
身经百战的,绝对bug-free。你非要用C把这些东西从写一遍,别人也没办法。
4. 再有就是performanc
c**z
发帖数: 1014
2
多谢多谢!
决定用fortran了.
感觉fortran对matrix操作不是很方便,是不是matrix不能作为function的参数啊?
这一点上没有matlab爽啊。

【在 S***y 的大作中提到】
: 关于C和Fortran: 一点儿个人观点
: 1. C和Fortran其实并不具可比性。C应该是算中级语言,而Fortran是高级语言。
: 也就是说,理论上上讲Fortran能干的事C全能干。我相信Fortran的compiler
: 很大部分应该是用C写的。所以,当你说Fortran支持Variable-size matrix时,
: 马上就有人能给你找出一个C的library来support这个功能。好,你说Fortran
: 支持复数计算,C高手立刻就能给你现写一个complex class支持所有你想要的
: 任何manipulations on complex numbers. 关键是你觉得那个更方便呢?
: 2. Fortran其实很容易学,有点编程语言基础的两三天就能上手用。再有多
: 两三个星期实践一下,Fortran的程序基本就能看懂了(当然前提是算法你已经
: 懂了)。这么简单,而且同行都在用,学学无防啊。

S***y
发帖数: 186
3

可以的。
爽不爽,这东西见仁见智。可能Fotran要用几十行干的事,Matlab里几行就干了。
从这个角度讲,Matlab当然爽。可是当你要解个PDE,要solve一个几万个unknowns
的线性代数方程组的时候,你就发现用Matlab会等的很不爽了。说实话,我基本就算
没用过Matlab。

【在 c**z 的大作中提到】
: 多谢多谢!
: 决定用fortran了.
: 感觉fortran对matrix操作不是很方便,是不是matrix不能作为function的参数啊?
: 这一点上没有matlab爽啊。

c**z
发帖数: 1014
4

这个怎么用啊?
我问实验室师兄说fortran不支持这样的用法,:(

【在 S***y 的大作中提到】
:
: 可以的。
: 爽不爽,这东西见仁见智。可能Fotran要用几十行干的事,Matlab里几行就干了。
: 从这个角度讲,Matlab当然爽。可是当你要解个PDE,要solve一个几万个unknowns
: 的线性代数方程组的时候,你就发现用Matlab会等的很不爽了。说实话,我基本就算
: 没用过Matlab。

y**********a
发帖数: 16
5
F77 can't, F90 can.

【在 c**z 的大作中提到】
:
: 这个怎么用啊?
: 我问实验室师兄说fortran不支持这样的用法,:(

S***y
发帖数: 186
6

Program testing
real A(2,2)
A(1,1)=1.0
A(1,2)=0.0
A(2,1)=0.0
A(2,2)=1.0
D=Determinant(A)
Print *, D
End
Function Determinant(A)
real A(2,2)
Determinant=A(1,1)*A(2,2)-A(1,2)*A(2,1)
Return
End
[sunyy@17-25 sunyy]$ g77 testing.f -o testing
[sunyy@17-25 sunyy]$ ./testing
1.
不知道是不是误会你的意思了。你要是问Variable-size matrix,
你非得用F90不可了。

【在 c**z 的大作中提到】
:
: 这个怎么用啊?
: 我问实验室师兄说fortran不支持这样的用法,:(

x*****u
发帖数: 3419
7
Fortran 的最大问题是用的人越来越少。这跟几个因素有关。
1。F77简单好学,但是过旧,濒临淘汰;
2。F90更现代丰富,不那么简单好学,而要命的是,不免费,难以potable;
3。相比之下,C/C++虽显得更复杂(其实绝非难以掌握),但随之而来的是功能更加强大,
表现更加丰富,而更要命的是,完全免费!加上无比丰富的学习资源,不断涌现的各种li
brary(包括scientific computation),以及更活跃的编译器升级换代。。。。你多花几
个礼拜啃一啃C,面对你的将是整个世界。Fortran做计算是绝对胜任,但是你就被圈住在F
ormula Transformation,享受不到编程的真正快乐。

【在 S***y 的大作中提到】
: 关于C和Fortran: 一点儿个人观点
: 1. C和Fortran其实并不具可比性。C应该是算中级语言,而Fortran是高级语言。
: 也就是说,理论上上讲Fortran能干的事C全能干。我相信Fortran的compiler
: 很大部分应该是用C写的。所以,当你说Fortran支持Variable-size matrix时,
: 马上就有人能给你找出一个C的library来support这个功能。好,你说Fortran
: 支持复数计算,C高手立刻就能给你现写一个complex class支持所有你想要的
: 任何manipulations on complex numbers. 关键是你觉得那个更方便呢?
: 2. Fortran其实很容易学,有点编程语言基础的两三天就能上手用。再有多
: 两三个星期实践一下,Fortran的程序基本就能看懂了(当然前提是算法你已经
: 懂了)。这么简单,而且同行都在用,学学无防啊。

c**z
发帖数: 1014
8
你这里的D是一个数字,我想要的是能返回一个数组的,
不知道行不行?

【在 S***y 的大作中提到】
:
: Program testing
: real A(2,2)
: A(1,1)=1.0
: A(1,2)=0.0
: A(2,1)=0.0
: A(2,2)=1.0
: D=Determinant(A)
: Print *, D
: End

s***x
发帖数: 24
9
有一定的道理!

【在 x*****u 的大作中提到】
: Fortran 的最大问题是用的人越来越少。这跟几个因素有关。
: 1。F77简单好学,但是过旧,濒临淘汰;
: 2。F90更现代丰富,不那么简单好学,而要命的是,不免费,难以potable;
: 3。相比之下,C/C++虽显得更复杂(其实绝非难以掌握),但随之而来的是功能更加强大,
: 表现更加丰富,而更要命的是,完全免费!加上无比丰富的学习资源,不断涌现的各种li
: brary(包括scientific computation),以及更活跃的编译器升级换代。。。。你多花几
: 个礼拜啃一啃C,面对你的将是整个世界。Fortran做计算是绝对胜任,但是你就被圈住在F
: ormula Transformation,享受不到编程的真正快乐。

s***x
发帖数: 24
10
可以.

【在 c**z 的大作中提到】
: 你这里的D是一个数字,我想要的是能返回一个数组的,
: 不知道行不行?

相关主题
fortran搞计算还是简单多了关于adaptive grid size的问题
请教Unix中怎么编译Fortun文件where to down a standard Fortran90 complier?
Fortran code optimizationfortran problem
进入Computation版参与讨论
S***y
发帖数: 186
11

直接返回数组没那么直接,要用到F90的东西。
可是我自己认为没必要非要用function,
Fortran里还有个东西叫subroutine。
Program testing
real A(2,2),B(2,2)
A(1,1)=0.0
A(1,2)=1.0
A(2,1)=-1.0
A(2,2)=0.0
1000 Format('Matrix A:')
1100 Format('Transpose of Matrix A:')
Write(*,1000)
Write(*,'(2F5.1)') A(1,1),A(1,2)
Write(*,'(2F5.1)') A(2,1),A(2,2)
Call Transpose(A,B)
Write(*,1100)
Write(*,'(2F5.1)') B(1,1),B(1,2)
Write(*,'(2F5.1)') B(2,1),B(2,2)
End
Subrouti

【在 c**z 的大作中提到】
: 你这里的D是一个数字,我想要的是能返回一个数组的,
: 不知道行不行?

S***y
发帖数: 186
12

持保留意见。应该说用Fortran和C的人都在增多,不过用C的增加更快。
但还是那句话,这没可比性,因为C应用领域广的多。
应该是已经淘汰了吧,没人再用F77写专业程序了,我想。
F90是比F77复杂多了,但其实把Module和Allocatable Array整明白,
再把那些增加的Intrinsic Functions记住,就差不多了。
Intel有免费的F90/95的编译器啊,性能不错。
你要是买更牛的机器,这compiler的成本应该是占很小的比例吧。
关于Portability, 我用过的commercial packages, 用Fortran写的都可以
在我所有的机器上编过,IBM, SGI, Alpha, Itanium, Pentium ...
C的我没用过。但我想实际上很少有C的程序是在ANSI Standard下写的,
都或多或少的使用了compiler-dependent extensions,所以这portability
反而会有问题。纯属个人愚见。:)
免费的Fortran写的library就更多到我都不想说了,当然都是做计算的。:(
当你面向整个世界时,

【在 x*****u 的大作中提到】
: Fortran 的最大问题是用的人越来越少。这跟几个因素有关。
: 1。F77简单好学,但是过旧,濒临淘汰;
: 2。F90更现代丰富,不那么简单好学,而要命的是,不免费,难以potable;
: 3。相比之下,C/C++虽显得更复杂(其实绝非难以掌握),但随之而来的是功能更加强大,
: 表现更加丰富,而更要命的是,完全免费!加上无比丰富的学习资源,不断涌现的各种li
: brary(包括scientific computation),以及更活跃的编译器升级换代。。。。你多花几
: 个礼拜啃一啃C,面对你的将是整个世界。Fortran做计算是绝对胜任,但是你就被圈住在F
: ormula Transformation,享受不到编程的真正快乐。

c**z
发帖数: 1014
13
非常感谢!

【在 S***y 的大作中提到】
:
: 持保留意见。应该说用Fortran和C的人都在增多,不过用C的增加更快。
: 但还是那句话,这没可比性,因为C应用领域广的多。
: 应该是已经淘汰了吧,没人再用F77写专业程序了,我想。
: F90是比F77复杂多了,但其实把Module和Allocatable Array整明白,
: 再把那些增加的Intrinsic Functions记住,就差不多了。
: Intel有免费的F90/95的编译器啊,性能不错。
: 你要是买更牛的机器,这compiler的成本应该是占很小的比例吧。
: 关于Portability, 我用过的commercial packages, 用Fortran写的都可以
: 在我所有的机器上编过,IBM, SGI, Alpha, Itanium, Pentium ...

x*****u
发帖数: 3419
14

真的? Intel真是我最佩服的公司了。公司不想着赚钱,却出免费版本,还是成系列的出
。。。这样的公司,不知道有几个?
这点我想的有点走题。我是想如果编译器要钱,那程序就得跟这份钱绑在一起,如果谁要
用这程序,还要花这份钱,从这个角度来看,portable的问题。
大,
种li
花几
住在F
:) 有专业精神,这我是敬佩的。记得从前有个同学跟我讲起,说Fortran比起C来太差了
,云云。。。我当时啥都不懂,但就觉得,做不同的事情,用不同的工具,看你的要求了
,Fortran应该更适合做计算。我现在也仍是这样认为。我所想表达的意思是,如果可能
,最好不要只局限于一个Fortran,哪怕只做计算,而Fortran也足足够用。了解了解C,了
解了解底层,并能在适当的时候做适当的选择,应该也是一个对科学计算工作者的基本要
求。说道快乐,老实说,仅从编程角度来说,编Fortran程序的确没有编C程序来的快乐,
在windows下编程序没有在linux下编程序来的快乐。 当然这只是愚识,见笑。

【在 S***y 的大作中提到】
:
: 持保留意见。应该说用Fortran和C的人都在增多,不过用C的增加更快。
: 但还是那句话,这没可比性,因为C应用领域广的多。
: 应该是已经淘汰了吧,没人再用F77写专业程序了,我想。
: F90是比F77复杂多了,但其实把Module和Allocatable Array整明白,
: 再把那些增加的Intrinsic Functions记住,就差不多了。
: Intel有免费的F90/95的编译器啊,性能不错。
: 你要是买更牛的机器,这compiler的成本应该是占很小的比例吧。
: 关于Portability, 我用过的commercial packages, 用Fortran写的都可以
: 在我所有的机器上编过,IBM, SGI, Alpha, Itanium, Pentium ...

x*****u
发帖数: 3419
15

我当然不是拿这个跟C比。我只是有这样的感觉。有一次,我问一个美国同学,工程专业
,本科居然不学Fortran,学C++,现在自己学Fortran因为要用。我的一个印度同学,完
全不懂Fortran,也不要学。而且,我这里大都只教C,不知道大家都是什么情况?
大,
种li
花几
住在F

【在 S***y 的大作中提到】
:
: 持保留意见。应该说用Fortran和C的人都在增多,不过用C的增加更快。
: 但还是那句话,这没可比性,因为C应用领域广的多。
: 应该是已经淘汰了吧,没人再用F77写专业程序了,我想。
: F90是比F77复杂多了,但其实把Module和Allocatable Array整明白,
: 再把那些增加的Intrinsic Functions记住,就差不多了。
: Intel有免费的F90/95的编译器啊,性能不错。
: 你要是买更牛的机器,这compiler的成本应该是占很小的比例吧。
: 关于Portability, 我用过的commercial packages, 用Fortran写的都可以
: 在我所有的机器上编过,IBM, SGI, Alpha, Itanium, Pentium ...

q*****g
发帖数: 1568
16

ft, 你也太容易被感动了。Intel的命根子是什么?是写编译器吗?呵呵。

【在 x*****u 的大作中提到】
:
: 我当然不是拿这个跟C比。我只是有这样的感觉。有一次,我问一个美国同学,工程专业
: ,本科居然不学Fortran,学C++,现在自己学Fortran因为要用。我的一个印度同学,完
: 全不懂Fortran,也不要学。而且,我这里大都只教C,不知道大家都是什么情况?
: 大,
: 种li
: 花几
: 住在F

c******m
发帖数: 599
17
u can learn Fortran in 3 days ya , if u aldreaday learned some c/c
++

【在 x*****u 的大作中提到】
:
: 我当然不是拿这个跟C比。我只是有这样的感觉。有一次,我问一个美国同学,工程专业
: ,本科居然不学Fortran,学C++,现在自己学Fortran因为要用。我的一个印度同学,完
: 全不懂Fortran,也不要学。而且,我这里大都只教C,不知道大家都是什么情况?
: 大,
: 种li
: 花几
: 住在F

x*****u
发帖数: 3419
18
they have non-commercial version for linux.
free for ever...

列的出
果谁要
x*****u
发帖数: 3419
1 (共1页)
进入Computation版参与讨论
相关主题
a question about data transfer in MPIproblem about Fortran 77 in unix
something strange in fortran90fortran搞计算还是简单多了
How to read data written my MPI_WRITE?请教Unix中怎么编译Fortun文件
matlab里subplot问题Fortran code optimization
<>全书下载关于adaptive grid size的问题
Write In Cwhere to down a standard Fortran90 complier?
偶也问一fortran问题fortran problem
visual fortran区别6位以上的变量名吗?Re: anyone know how to compile a libary coded in c which any be used b
相关话题的讨论汇总
话题: fortran话题: write话题: f90话题: sunyy话题: matrix