Fortran77-90-95入门
- 格式:doc
- 大小:892.00 KB
- 文档页数:38
fortran⼊门Fortran95简介-全⽂版By陈鲸太FORTRAN的演进FORTRAN的起源,要追溯到1954年IBM公司的⼀项计划。
由JOHN BACKUS 领导的⼀个⼩组,尝试着在IBM 704计算机上⾯发展⼀套程序,它可以把使⽤接近数学语⾔的⽂字,翻译成机械语⾔。
这个计划在刚开始并不被⼤家看好,但他们在1957年交出了成果,也就是第⼀套FORTRAN编译器,FORTRAN语⾔也就因此诞⽣了。
FORTRAN语⾔的执⾏效率普遍的令各界满意,它证明了这项计划的可⾏性,也成为第⼀个被⼴泛使⽤的⾼级语⾔。
FORTRAN的名字来⾃于英⽂的FORMULA TRANSLATOR这两个字,⽽这两个字恰是数学公式翻译器的意思。
旧版的FORTRAN77是在1978年由美国国家标准局(ANSI)所正式公布的,之后改版有1992年提出的FORTRAN90以及1997年的FORTRAN95,本⽂是为了FORTRAN 95所撰写。
编译器简介1、VISUAL FORTRANVISUAL FORTRAN⼀开始是起源于MICROSOFT的FORTRANPOWERSTATION 4.0,这套⼯具后来卖给DIGITAL公司来继续发展,下⼀个版本称为DIGITAL VISUAL FORTRAN5.0,DIGITAL后来被COMPAQ合并,所以接下来的6.0及6.5版就称为COMPAQ VISUAL FORTRAN。
⽽COMPAQ⽬前⼜跟HP合并,也许下⼀个版本会称为HP VISUALFORTRAN。
VISUAL FORTRAN被整合在⼀个叫作MICROSOFT VISUAL STUDIO的图形接⼝开发环境中,VISUAL STUDIO提供⼀个统⼀的使⽤接⼝,这个接⼝包括⽂书编辑功能,PROJECT的管理、除错⼯具等等,所以在使⽤上其实跟上学期的VISUALC++满类似的,同学们上课⽤过VISUAL C++,对VISUAL FORTRAN应该不会陌⽣。
FORTRAN90学习指导一、FORTRAN90基础知识1.源程序及其构成书写格式:主程序定义语句、结束语句注意:在没有程序名称的时候,程序开头的PROGRAM也不要出现。
如果使用了程序名称且在END语句中出现,则END语句中的PROGRAM不能省略。
语句行可以是0~132个字符;除赋值语句外,每个语句都要使用关键字开头。
如果希望一行中出现多个语句,语句一定要用分号隔开。
空格不能随便使用,关键字、变量和常量名以及操作符中的空格会使字符失去其原有的含义。
但它们之间一定要加空格。
注释行:以感叹号为标记,或“C”、“*”(FORTRAN90中不提倡此用法)续行标记:在句末尾添加续行符&,如果将关键字分成两行,则下一行开头也要加续行标记。
如果续行符出现在注释语句中,则失去了续行的功能。
2.FORTRAN90字符集126个英文字母(大小写字母等价)210个阿拉伯数字3下划线421个特殊字符:空格= + - * / (),. ‘ :!“% & ;< > ? $5其他字符(只可以出现在字符常量、字符串编辑描述符、注释和输入输出记录中)3.基本数据类型1 整型KIND值可以为1、2、4类型说明关键字:INTEGERKIND值决定数据的范围。
对于整数没有误差。
I=3/2=1;I=1/2=0INTEGER(KIND=4)::AINTEGER*4::AINTEGER(4)::A2 实型KIND值可以为4(单精度7位有效数字)、8(双精度15~17位有效数字)类型说明关键字:REAL小数表示形式、指数表示形式(规格化的指数形式)错误表示形式:E34、.E34、0.14E2.38开3次方:8.0**(1.0/3.0)3 复型KIND值为4、8是实数的有序对,将两个实数中间用逗号分隔,然后放在一对括号中类型说明关键字:COMPLEX复数的运算:+、—、*、/4 字符型KIND值为国家语言种类由一对单撇号或一对双撇号之间的字符序列组成。
1F O R T R A N77四则运算符+ - */ ** (其中**表示乘方)在表达式中按优先级次序由低到高为:+或-→*或/→**→函数→()2 FORTRAN77变量类型隐含约定:I-N规则凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。
如IMPLICIT REAL (I,J)三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。
数组的说明与使用使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例:DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(-1:0),A(0:2,0:1,0:3)REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如WRITE(*,10) ('I=',I,'A=',A(I),I=1,10,2)10FORMAT(1X,5(A2,I2,1X,A2,I4))使用DATA语句给数组赋初值变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如DATA A,B,C/,,DATA A/,B/,C/DATA A,B,C/3*CHARACTER*6 CHN(10)DATA CHN/10*''/INTEGER NUM(1000)DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/3 FORTRAN77程序书写规则程序中的变量名,不分大小写;变量名称是以字母开头再加上1到5位字母或数字构成,即变更名字串中只有前6位有效;一行只能写一个语句;程序的第一个语句固定为PROGRAM 程序名称字符串某行的第1个字符至第5个字符位为标号区,只能书写语句标号或空着或注释内容;某行的第1个字符为C或*号时,则表示该行为注释行,其后面的内容为注释内容;某行的第6个字符位为非空格和非0字符时,则该行为上一行的续行,一个语句最多可有19个续行;某行的第7至72字符位为语句区,语句区内可以任加空格以求美观;某行的第73至80字符位为注释区,80字符位以后不能有内容。
Fortran:[转]FORTRAN9095语法概述来源:⽬录:⼀、说明⼆、概述三、数据类型及基本输⼊输出四、流程控制五、循环六、数组七、函数⼋、⽂件⼀、本⽂说明本⽂多数内容是我读彭国伦《FORTRAN 95 程序设计》的笔记。
[]只读到第九章,主要是3~9章,都是最基本的⽤法(原书共16章)。
这⾥主要摘录了我看书过程中总结的⼀些Fortran和C不同的地⽅,主要是语法⽅⾯。
希望这份笔记能够给学过C但没有接触过Fortran的同学带去⼀些帮助。
要想得更清楚些,推荐看⼀下原书,觉得作者真的写得很好,很清楚;如果有C语⾔的基础,看完前九应该很快的,花⼀两天就⾏了。
觉得如果耐⼼看完本⽂,基本功能应该也可以顺利⽤起来了。
外,由于我之前没有⽤过Fortran,这次为了赶⽂档看书⼜看得很粗浅,⼤多数东西看过之后都没得及仔细想,只是按着作者的意思去理解。
所以这份笔记还处于纸上谈兵的层次。
如果有不妥的⽅,希望⼤家指正。
谢谢!⽂中蓝⾊的部分是程序代码,!后⾯的内容为注释。
⼆、FORTRAN90语法概述2.1、名词解释FORTRAN = Formula Translator/Translation⼀看就知道有什么特⾊了:可以把接近数学语⾔的⽂本翻译成机械语⾔。
的确,从⼀开始,IBM设计的时候就是为了⽅便数值计算和科学数据处理。
设计强⼤的数组操作就是为了实现这⼀⽬标。
FORTRAN奠定了⾼级语⾔发展的基础。
现在Fortran在科研和机械⽅⾯应⽤很⼴。
2.2、Fortran的主要版本及差别按其发展历史,Fortran编译器的版本其实很多。
现在在⼴泛使⽤的是Fortran 77和Fortran90。
ortran 90在Fortran 77基础上添加了不少使⽤的功能,并且改良了77编程的版⾯格式,所以编程时推荐使⽤90。
鉴于很多现成的程序只有77版本,有必要知道77的⼀些基本常识,⾄少保证能够看77程序。
以下是77和90的⼀些格式上的区别。
1 FORTRAN77四则运算符+ - * / ** (其中**表示乘方)在表达式中按优先级次序由低到高为: +或-→*或/→**→函数→()2 FORTRAN77变量类型2.1 隐含约定:I-N规则凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。
2.2 用类型说明语句确定变量类型:可以改变I-N规则2.3 用IMPLICIT语句将某一字母开头的全部变量指定为所需类型如 IMPLICIT REAL (I,J)三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。
2.4 数组的说明与使用使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例:DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(-1:0),A(0:2,0:1,0:3)REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如WRITE(*,10) ('I=',I,'A=',A(I),I=1,10,2)10FORMAT(1X,5(A2,I2,1X,A2,I4))2.5 使用DATA语句给数组赋初值变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如DATA A,B,C/-1.0,-1.0,-1.0/DATA A/-1.0/,B/-1.0/,C/-1.0/DATA A,B,C/3*-1.0/CHARACTER*6 CHN(10)DATA CHN/10*' '/INTEGER NUM(1000)DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/3 FORTRAN77程序书写规则程序中的变量名,不分大小写;变量名称是以字母开头再加上1到5位字母或数字构成,即变更名字串中只有前6位有效;一行只能写一个语句;程序的第一个语句固定为PROGRAM 程序名称字符串某行的第1个字符至第5个字符位为标号区,只能书写语句标号或空着或注释内容;某行的第1个字符为C或*号时,则表示该行为注释行,其后面的内容为注释内容;某行的第6个字符位为非空格和非0字符时,则该行为上一行的续行,一个语句最多可有19个续行;某行的第7至72字符位为语句区,语句区内可以任加空格以求美观;某行的第73至80字符位为注释区,80字符位以后不能有内容。
Fortran⼊门:Windows平台的Fortran编译器安装和使⽤因为课程需要,今年开始学习FORTRAN语⾔。
之前学校的计算概论⽤的是C,后来⼜学了C++和Python作为⾯向对象的⼯具,数值计算⽅⾯主要通过学校的许可证⽤的MATLAB。
因为专业侧重数值模拟和反演问题,对于FORTRAN这⼀门上古的数值计算语⾔早有⽿闻,在学习Scientific Computing的时候也经常讲到⼀些原本是基于FORTRAN优化的⼦程序和底层设计模块。
上⽹查了⼀下,FORTRAN的社区⾮常少,⽽且可能是因为使⽤者都已经是富有经验的程序设计者,⾃学⼊门的新⼿不多,很多地⽅还是需要⾃⼰摸索,就决定索性在博客上记录⼀下摸索的过程。
FORTRAN,原意为Formula Translation(公式翻译器),是出现很早的⼀门⾼级语⾔。
FORTRAN的主要⾯向科学计算、数值计算,虽然在FORTRAN-2003版本中逐渐引⼊了更加丰富的⾯向对象(Object Oriented)设计思维,但是其主要的功能仍然是数值计算领域;某种意义上,使⽤FORTRAN的⼈⼀般不需要过于复杂的⾯向对象策略,需要使⽤复杂完整的⾯向对象策略的⼈也并不会选择FORTRAN。
最近还发现⾮常⾟酸的⼀点,CNBlogs上的代码插⼊不⽀持Fortran的语法⾼亮,也没有找到⽀持的插件。
⼀. FORTRAN 编译器的安装查了⼀下,⽬前相对常见的Fortran编译器版本是Fortran77或者Fortran90/95,进⼊新世纪的修正版本Fortran2003反⽽⽤的⽐较少。
流⾏的免费FORTRAN编译器实现⽅案包括GCC的GFortran,Intel的Intel Fortran Compiler等。
我这⾥使⽤的是G95,是GFortran对应Fortran95的⼀款编译器。
Windows系统上如果已经安装了MinGW体系(如果你使⽤过gcc的C语⾔或者C++编译器,⼀般都已经装了),那么⼀个.exe ⽂件就可以帮忙搞定安装G95的全部操作!⾮常⽅便!g95 --version然后cmd会返回⼀个G95的版本信息,如下所⽰。
fortran90/95/20031.把Fortran90/95/2003当成一门新的语言学习(虽然和Fortran77有关系!);2.直接学习Fortran90或Fortran95或Fortran2003,不要只学Fortran773.初学者最好先看《Fortran 95程序设计【彭国伦】》,不要因为FORTRAN95很难而转向Fortran77,即使我们自己是初学者;4.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;5.会用Fortran 77,能解决很多问题;会用Fortran90,能更加简单的解决更多问题;6.学习如何编写和使用module,type,allocate并不难,point,函数重载,binding(c)也是如此——难的是长期坚持实践和不遗余力的博览群书;7.学Fotran90是为了解决实际的数学、物理等问题的,不是用来编漂亮的界面的8.看Fortran77的书,是学不会Fortran90语言的;9.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!?10.浮躁的人容易问:我到底该学什么;——别问,学就对了;11.浮躁的人容易问:XX有钱途吗;——建议你去抢银行;12.浮躁的人容易说:我要中文版!我英文不行!——不行?学呀!13.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行;14.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人;15.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;16.Fortran90也是支持面向对象的程序设计语言;17.学习编程最好的方法之一就是阅读源代码;18.在任何时刻都不要认为自己手中的书已经足够了;19. 请深入理解IEEE浮点数,至少读读《What Every Computer Scientist Should Know About Floating- Point Arithmetic》或是《IEEE Standard 754 Floating Point Numbers》20.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;21.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍、第N遍;22. Fortran90也可以设计windows程序,也可以链接数据库,但请牢牢记住,Fortran 被设计的目的是用最简单的语言(与数学语言最接近的语言)来做科学计算的23. 请看《Fortran 90-95 Explained》,《Object-Oriented Programming Via F95》和《Numerical Recipes In Fortran 77 & 90》,以及《Introduction to FORTRAN90》和《Fortran90 Course Notes》;24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序;25.和别人一起讨论有意义的Frotran90知识点,而不是争吵XX行不行或者YY与ZZ哪个好;26.请看《程序设计实践》,并严格的按照其要求去做;27. 请经常上Fortran的论坛了解Fortran的最新进展和讨论Fortran的有关问题,国内可以上/club/bbs.asp?bbsid=16,国外可以上http: ///Top/Computers/Programming/Languages/Fortran/;http: ///ISN/Community/en-US/forums/1005 /ShowForum.aspx ,最好的老师是网络,不会的问题问请记住以下名言:在外边有问题找google解决,在家里有问题找老婆(老公)解决。
Fortran77-90-95入门来源于:/yourtommy/article/details/7036301Fortran语言的历史Fortran是英文FORmula TRANslation的缩写, 意为"公式翻译". 为科学, 工程问题中那些能够用数学公式表达的问题而设计的语言, 主要用于数值计算. Fortran至今已经有四十多年历史. 第一代Fortran是1954年提出来的, 称为FortranI. 它于1956年在IBM 704计算机上实现的. 是由IBM的John Backus提出并开发的一种容易理解, 简单易学而又像汇编一样高效运行的语言. 1958年出现的FortranII对FortranI进行了很多扩充(如引进了子程序). FortranII在很多机器上实现了. 其后出现的FortranIII因为存在严重的缺陷, 所以没有在任何计算机上实现. 1962年出现的FortranIV并不与FortranII完全兼容.由于Fortran满足现实需要,所以传播很快, 从而出现了很多的Fortran的版本. 各种版本间语法和语义并不完全一致,所以给用户造成极大不变. 为此, 1962年5月, 当时的美国标准化协会ASA(American Standard Association, 后面改名为ANSI -- American National Standard Institute, 现名为NIST -- National Institute of Standard and Technology)成立工作组开始统一各个版本, 并于1966年正式公布了两个美国标准文本: 标准基本FortranX3.10-1966(相当于FortranII) 和标准FortranX3.9-1966(相当于FortranIV).由于Fortran在国际上的广泛使用, 1972年国际化标准组织ISO(International Standard Organization)公布了ISO Fortran标准, 即<程序设计语言FortranISO 1953-1972>. 它分为三级: 一级相当于FortranIV,二级介于FortranII和FortranIV之间,三级相当于FortranII.FortranIV(即Fortran66)流行了十几年,几乎统治了所有的数值计算领域。
但它不是结构化语言,没有实现三种基本结构的语句,程序中需要使用GOTO语句来实现特定的算法,美国标准化协会在1976年对FortranX3.9-1966进行修订,把各个版本有效的功能都加入了进来,并加入了新的功能。
并在1978年正式公布为美国国家标准ANSI X3.9-1978 Fortran,称作Fortran77。
1980年Fortran77被接受成为国际化标准。
Fortran77扩充了一些结构化的语句,但不是完全的结构化语言。
由于扩充了字符处理功能,Fortran77不仅适用于数值领域,还适用于非数值领域。
之后经过十多年的标准化过程,1991年通过了Fortran90的新标准ANSI X3.198-1991,相应的国际化标准为ISO/IECI1539:1991。
Fortran90保证了Fortran77的兼容性,Fortran77是Fortran90的严格子集。
现在有各种程序设计语言,而且在一些特殊领域使用其它语言会更为合适,但在数值计算、科学和工程领域,Fortran仍然具有强大的优势。
随着巨型计算机(向量机和并行机)的异军突起,出现了新的高性能Fortran语言(HPF)。
它是Fortran90的一个扩展子集,主要用于分布式内存计算机上的编程,以减轻用户编写消息传递程序的负担。
HPF-1.0的语言定义在1992年的超级计算国际会议作出的,正式文本在1993年公布的。
1997年发布了HPF-2.0语言定义。
Fortran95包含了许多HPF的新功能。
在Fortran90出现之前,在并行机上运行程序需要结合专门的矢量化子程序,或者信赖Fortran编译系统进行自动矢量化。
而Fortran90之后,程序员可在程序中有目的地控制并行化。
Fortran90具有C++的所有重要功能,然而C语言主要用于微机上的廉价开发,而Fortran的目的是产生高效最优化运行的可执行程序。
用Fortran编写的大型科学软件较C语言编写的通常要快一个量级。
当今不仅大型机,微机和工作站也有了多处理器。
高性能并行计算已成必然,串行机上的线性内存模式已不再适用。
Fortran作为具有处理相应问题的标准并行化语言,其独特的数组操作充分体现了它的先进性。
第一个Fortran程序Fortran的程序用.f后缀表示(表示固定格式),下面是一个求算术平均数与几何平均数的代码:[plain]view plaincopyprint?1. C-----Fortran固定格式用C开头(必须在行首)表示注释------2. C每行必须用tab缩进,否则编译错误(严格来说是6个空格)3. C程序大小写不分4. C用PROGRAM表示程序开头5. PROGRAM first_program6. C定义四个实数7. real a, b, av1, va28. C从标准输入中得到a和b的值9. READ (*,*) a, b10. C--av1为a和b的算术平均数11. av1 = (a+b)/212. C--av2为a和b的几何平均数13. av2 = sqrt(a*b)14. C在标准输出中显示结果15. WRITE(*,*) av1, av216. C用END表示程序结尾17. END1. !-----Fortran自由格式中只能用!开头表示注释,C不能用于注释------2. PROGRAM first_program !行前不必用tab缩进,但缩进仍然合法3. REAL a, b, av1, va24. rEAd (*,*) a, b !大小写不分5. av1 = (a+b)/26. av2 = sqrt(a*b)7. WRITE(*,*) av1, av28. END卡片上明示了0~9行,在0行上面为第11行,再上面为第12行。
卡片的编码方式与机器以及应用有关。
此处11行和12行都不打孔时,0~9行中的一个孔表示一个数字;第11,12,0行中打一个孔以及1~9行中打一个孔表示一个大写字母;第11,12,0行中打一个孔或不打孔、2~7行中打一个孔同时第8行也打一个孔表示一个特殊字符;不打任何孔的列被视为一个空格。
正是因为早期的卡片只支持大写字母,所以如今Fortran程序中不区分大小写。
从上面的打孔卡片可以看到,一行Fortran程序(即一张卡片)代表了一条Fortran语句。
有时会出现一张卡打不下一行语句,这时再第二张卡片的第6列打一个非0的孔,可以表示该程序行是上一个程序行的续行。
前5列是标号区,可以输入5位整数,通常情况下标号区是不允许输入非数字的,但注释除外,第一列为C的语句不会被编译器处理。
第7~72列是语句区。
而最后8列是在卡片时代方便程序员查找的注释区,不会被编译器处理。
之后的Fortran90格式更加自由。
它一行有132列,可以有多条语句,语句之间用分号隔开,语句也没有固定位置的限制。
在程序行中字符“!”后的内容都被视为注释(字符串中的“!”除外)。
空格也变得有意义了(Fortran77会忽略行中的空格,关键字和变量中可以有空格)。
此外如果132列还写不完一行语句的话,可以在末尾加“&”字符表示有续行,续行的开始则用“&”字符来承接上一行。
F77里前面5列的10进制整型数由来表示编号,可用于之后的跳转;F90里还可以用英文名加冒号来表示标签,用于跳转。
文件名后缀.f或.for表示固定格式,而.f90表示自由格式。
一个Fortrant程序的组成结构有:主程序[PROGRAM 程序名] ←语句可省略.....END [PROGRAM [程序名]] ←END必须有辅程序(过程)SUBROUTINE 子程序FUNCTION 函数BLOCK DATA 块数据MODULE 模块(F90)内部过程CONTAINS (F90)常量与变量Fortran的常量类型有整型、实型、复型、逻辑型和字符型:[plain]view plaincopyprint?1. PROGRAM VARIABLES2. INTEGER I !整型声明语句3. REAL F !实型声明语句4. DOUBLE PRECISION D !双精度声明语句5. COMPLEX C !复型声明语句6. LOGICAL B !逻辑型声明语句7. CHARACTER S !字符型声明语句8. !整型常量9. I = -1234 !整型默认为4字节10. I = -324_8 !8字节整型。
下划线加数字表示精度,只允许1,2,4,8个字节11. I = 123_1 !1字节整型12. I = 2343_2 !2字节整型13. I = 238_4 !4字节整型14. !实型常量15. F = 23. !以小数点表示实型数,默认为4字节16. D = 87234.42343256_8 !8字节实型,只允许4或8个字节17. F = 32.16_4 !4字节实型18. F = 7.8E9 !指数表示(E字母)19. D = 8.2384D12 !双精度的指数表示(D字母)20. !复型常量(C语言里没有的)21. C = (8.3, 98) !括号里面分别表示实部与虚部22. !逻辑型常量23. B = .TRUE. !只能有.TRUE.和.FALSE.两个值24. B = .FALSE.25. !字符型常量26. S = 'a'27. S = "x" !Fortran90开始允许使用双引号28. END上面的代码中可以看到变量的显式声明,在不显式声明的时候,变量名遵循I~N规则,即以I、J、K、L、M、N开头的(未声明的)变量都视为整型变量;其它未声明的变量都被视为实型。
比如:[plain]view plaincopyprint?1. program implicit_type2. imax = 85; ! i开头的变量被视为整型3. nmin = 23; ! n开头的变量也被视为整型4. phigh = 28.8 ! 其它变量都被视为实型5. end1. program implicit_type2. implicit real (i-k) !i,j,k开头的变量都会被视为实型3. implicit integer (a,d,x-z) !a,d,x,y,z开头的变量都会被视为整型4. implicit complex (c) !c开头的变量会被视为复型5. end1. read *, iValue2. !单行if语名3. if (iValue > 0) print *, iValue, " is greater than 0"4. !if then else语句块5. if (ivalue > 5) then6. iValue = 57. else if (ivalue > 0) then8. iValue = 09. else10. iValue = -511. end if12. print *, iValue1. !整型case,不支持实型case和复型case2. read *, iValue3. select case (iValue)4. case (3) !当值为3时5. print *, "It's 3!"6. case (6:) !当下界为6时(大于等于)7. print *, "above 6"8. case (:0) !当上界为0时(小于等于)9. print *, "below 0"10. case (4:5) !当在4到5之间时(小于等于下界大于等于上界)11. print *, "between 4 and 5"12. case default !其它情况13. print *, "default"14. end select15. !字符型case16. read *, cValue17. select case (cValue)18. case ("x")19. print *, "it's x!"20. case ("a":"g")21. print *, "between a~g"22. case default23. print *, "other"24. end select25. !逻辑型case26. read *, iValue27. select case (iValue > 0)28. case (.true.)29. print *, "positive"30. case (.false.)31. print *, "negtive or zero"32. end select1. !固定循环次数的do循环2. !不带标号的do3. do i=1, 20, 1 !类似于C里的for(i=1,i<=20,i+=1)4. print *, i5. end do6. !省略最后的增量7. do i=1, 20 !仍然每次递增18. print *, i9. end do10. !带标号的do11. do 123, i=20, 0, -2 !do后是标号,即从123处开始循环12. print *, i13. 123 continue !循环终端。