爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 18206|回复: 51

[经验总结] fortran学习心得

  [复制链接]

新浪微博达人勋

发表于 2015-8-9 19:23:46 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x

1Fortran不区分大小写

2 Fortran5种基本数据类型,integerreal,character, logical, complex

3fortran fixed format格式中的变量赋初值一般用DATA,因为它不能用::

4real(kind=8) a这种格式只使用于Fortran90Fortran77中要使用real*8real(8)

5 FORTRANFREEFIXED两种格式do循环的区别:Fortran95使用end do来结束循环。Fortran 77使用DO循环要麻烦一点,它不使用END DO来结束循环,而是使用行号来结束循环,程序代码要在DO的后面写清楚这个循环到哪一行程序代码结束。Fortran 77中,经常会使用CONTINUE这个命令来结束循环。因为CONTINUE这个命令没有实际的用途,刚好可以拿来做封装使用。

6 循环的流程控制:循环中的cycle命令相当于c++里的continue命令,用于结束一次循环。

循环中的exit命令好比c里面的break,用于结束循环

7 不使用do循环,单纯用GOTO语句也能设计循环程序,但不推荐使用GOTO语句

7 fortran有等价声明:即用equivalence(a,b),这样使得a,b使用同一块内存,这样可以节省内存,有时可精简代码。

8 fortran77中只能用单引号。(还有疑问,因为fixedformat能用双引号)

9 逻辑运算符

==  /= >  >=  < <=  !Fortran90用法

.EQ. .NE. .GT. .GE. .LT. .LE.  !Fortran77用法

9 PAUSE,CONTINUESTOP

pause暂停程序执行,按enter可继续执行

continue 貌似没什么用处,可用作封装程序的标志

STOP 命令用来结束程序,要谨慎使用

10 数组元素之间要用逗号分隔,而不能像matlab一样既可以用逗号也可以用空格,fortran的数组元素之间不能用空格。

11 数组的声明:Fortran 77中数组的声明,必须使用DIMENSION命令

Integer a; !先声明a是整型

Dimension a(10) !再声明a是大小为10的数组

Fortran 95中可以用简单的方法:

Integer a(10) !最简单的方法

Integer,dimension(10):: a !另一种方法

12 数组的赋值:

Fortran 77中数组的声明,可以使用DATA命令或隐含式循环来赋初值;

Fortran 95中可以直接设置初值;如:integer ::a(5)=(/1,2,3,4,5/);此时,括号和除号之间不能有空格;

13 C不同,Fortran数组索引值默认从1开始,而且可以在声明时改变该规则,如integer a(-3:1) !索引值为-3-2-1 01

13 数组在内存中的存放顺序也与C不同(正好相反),如a(2,2)在内存中的存放顺序为a(1,1),a(2,1),a(1,2),a(2,2);原则是放低维的元素,再放高维的元素,此规则称为column major 矩阵输出时也是按列输出。。

14 Fortran的特色:隐含式循环

15 a,b都为数组,则可以这样用a=sin(b),(内部函数都可以这样用)

16 数组专用:

where命令形式上类似于if,但只用于设置数组

where.....elsewhere...elsewhere...endwhere(没有then)

FORALLFortran95添加的功能,只能用于数组操作

forall可以嵌套使用,还可以在forall中使用where,但where中不能使用forall

15 Fortran中传递参数的原理与c++不同,Fortran中是传址调用,就是传递时用参数和子程序接受时用的参数使用一个地址,尽管命名可以不同。

16 调用自定义函数前需要做声明,调用子程序则不需要。

17 Module中有函数时必须在contains命令之后

点评

刚好需要: 5.0 谢谢共享: 5.0
刚好需要: 5 谢谢共享: 5
最近正在看fortran,总结得很棒!  发表于 2017-12-8 09:01
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-9 23:44:47 | 显示全部楼层
{:eb502:}{:eb502:}好像很厉害的样子
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-10 07:33:41 | 显示全部楼层
总结的很好,很强大
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-10 08:02:18 | 显示全部楼层
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2015-8-10 08:40:28 | 显示全部楼层
很不错,总结的很完整
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-10 09:17:18 | 显示全部楼层
总结的很好,好好学习
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-10 09:34:28 | 显示全部楼层
{:eb502:}{:eb502:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2015-8-12 22:03:24 | 显示全部楼层
不错的帖子!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-14 17:42:46 | 显示全部楼层
赞!多总结,多学习!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-14 17:56:55 | 显示全部楼层
不错,有心得就好。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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