FORTRAN77,C,C++和FORTRAN90的比较.doc
《FORTRAN77,C,C++和FORTRAN90的比较.doc》由会员分享,可在线阅读,更多相关《FORTRAN77,C,C++和FORTRAN90的比较.doc(11页珍藏版)》请在三一办公上搜索。
1、转载Fortran 77, C, C+ 和 Fortran 90 的比较收藏发信人: quasar (飞贼克斯), 信区: Fortran标 题: Fortran 77, C, C+ 和 Fortran 90 的比较(转载)发信站: 南京大学小百合站 (Tue Jun 1 10:59:14 2004)瀚海星云 - 文章阅读 讨论区: MathTools发信人: HuiCai (老灰菜), 信区: SciComp标 题: Fortran 77, C, C+ 和 Fortran 90 的比较(转载)发信站: 瀚海星云 (2002年12月19日10:40:38 星期四), 站内信件【 以下文字转载自
2、 Fortran 讨论区 】【 原文由 HuiCai 所发表 】Fortran 77, C, C+ 和 Fortran 90 的比较三十年来, 从 Fortran 77 开始, Fortran 成为了计算科学的主要语言.在这段时间里, Fortran 的数值能力变得非常稳定 而且优于其它计算机语言; 最大的改变来自于不断增长的各种可靠的数值过程库的种类. Fortran 联合(union), 它的使用技巧, 扩充的数值库为计算科学赋予了良好的基础.可是在过去十几年中, 动态数据结构(特别是动态数组)的重要性不窜上升, UNIX 工作站, 复杂的交互式可视化工具, 以及更近的并行体系结构-For
3、tran 77 都没有实现-刺激了其它语言作为计算语言的使用, 最明显的一个例子是C. 最近C+ 也已经引起人们的兴趣, Fortran 通过发展到 Fortran 90来弥补它在现代科学计算方面的不足. 这部分的一个通常的工作是比较四种语言对科学计算的适应性的, 这四种语言是两个C 的代表(C, C+) 和两个Fortran的代表(Fortran 77, Fortran 90). 下面的表格总结了这种比较, 后面的内容试图合理地解释这种等级排序, 从最好(1)到最差(4).功能 - F77 - C - C+ - F90数值健壮性 - 2 - 4 - 3 - 1数据并行性 - 3 - 3 -
4、3 - 1数据抽象 - 4 - 3 - 2 - 1面向对象编程 - 4 - 3 - 1 - 2函数型编程 - 4 - 3 - 2 - 1平均等级 - 3.4 - 3.2 - 2.2 - 1.21 数值健壮性Numeric Polymorphism(数值多态性)中是一个给定一个通用名称的几种版本的图形平滑过程的例子. 这里描述的通用能力是作为Fortran 90提供的一种额外的数值健壮性超过Fortran 77和C的特性. Fortran 77, Fortran 90 , 和 C 版本的SMOOTH子过程也在下面给出, 用于比较. (注意, Fortran 90版使用了第4部分描述的并行性)数值
5、多态性, 加上实际类型的参数, 小数精度选择, 和数字环境变量检查等, 证明了Fortran 90排在这四种语言中的第一位. Fortran 77 列在第二为的原因在于它支持复杂变量, 这在很多计算科学应用中是很重要的. C+ 把 C 挤出了第三位是由于它在通常领域多态性上的能力.2 数据并行化部分在这四种语言中, 只有Fortran 90具有对科学计算有价值的数据并行能力; 其它三种语言在这方面的特性基本上是一样的, 即全都没有. 这解释了四种语言在这个方面的排名.这里是完成高斯消去的一套Fortran 77 和 C 过程:* 编程决定正确的子过程处理过程: pivot.f , triang
6、.f , 和 back.f. * 子过程决定一系列同步方程的解*234567 PROGRAM testg INTEGER IMAX, JMAX PARAMETER (IMAX = 3, JMAX = 4) REAL matrix(IMAX, JMAX) REAL matrix(IMAX) INTEGER i, j, n DATA ( ( matrix(i,j), j = 1, JMAX), i = 1, IMAX) + /-1.0, 1.0, 2.0, 2.0, 3.0, -1.0, 1.0, 6.0, + -1.0, 3.0, 4.0, 4.0/ n = IMAX write(*,*) Th
7、e original matrix,n,by,n=1,: call wrtmat(matrix, n, n +1) call pivot(matrix, n) write(*,*) The matrix after pivoting: call wrtmat(matrix, n, n +1) call triang(matrix, n) write(*,*) The matrix after lower triangulation: call wrtmat(matrix, n, n + 1) call back(solvec, matrix, n) write(*,*) The solutio
8、n vector after back substitution: write(*,*) * write(*,*) (solvec(i), i = 1, n) write(*,*) * end*子过程决定第一列系数矩阵的最大值, 把最大值所在的行和第一行交换, *处理器然后重复对其他的行和列做这种处理, 对于每一次叠代, 列的位置*和行的位置增加一(即, 第1行-第1列, 然后第2行-第2列, 然后第3行-第 *3列, 等 *234567 SUBROUTINE pivot(matrix, n) INTEGER i, j, k, n REAL matrix(n, n + 1), maxval,
9、tempval do 10, j = 1, n maxval = matrix(j,j) do 20, i = j + 1, n if (maxval .lt. matrix(i,j) then maxval = matrix(i,j) do 30, k = 1, n + 1 tempval = matrix(i,k) matrix(i,k) = matrix(j, k) matrix(j,k) = tempval 30continue endif 20 continue 10 continue end*完成一个输入矩阵的低级分解的子过程 *234567 SUBROUTINE triang(m
10、atrix, n) INTEGER i, j, k, n REAL matrix(n, n + 1), pivot, pcelem do 10, j = 1, n pivot = matrix(j,j) do 20, k = j + 1, n + 1 matrix(j,k) = matrix(j,k) / pivot20 continue do 30, i = j + 1, n pcelem = matrix(i,j) do 40, k = j + 1, n + 1 matrix(i,k) = matrix(i,k) - pcelem * matrix(j,k)40 continue30con
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FORTRAN77 C+ FORTRAN90 比较
链接地址:https://www.31ppt.com/p-2388357.html