版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、FORTRAN 笔记2014.10.07目录第七讲 _FORTRAN 的基本知识.ppt 2FORTRAN 语言程序设计初步 2FORTRAN 源程序的书写格式(以77 为例) 2变量 2变量类型 2算术运算符和运算优先级 3赋值语句 3参数语句(PARAMETER 语句) 3END 语句 3PAUSE 语句 3逻辑运算和选择结构 4关系表达式 4FORTRAN 中数组的定义及使用 4其他 51. fortran 语言定义CHARACTER*6 TTL(14,3),CNAM(400) 是什么意思? 52. fortran 里character*10 是什么意思 53. Fortran 中kin
2、d是什么函数? 5第七讲 _FORTRAN 的基本知识.pptFORTRAN 语言程序设计初步FORTRAN 是 Formula Translation 的缩写,意为“公式翻译”,它是为科学、工程问题或企事业管理中的那些能够用数学公式表达的问题而设计的,其数值计算的功能较强。常用的是FORTRAN77 和 FORTRAN90 两种标准。1、一个程序由若干个程序单位组成。主程序和每一个子程序分别是一个独立的程序单位。2、每一个程序单位都是以“END ”结束的。3、一个程序单位包括若干行。1) 语句行 。由一个FORTRAN 语句组成。2) 非语句行,即 注释行 。4、 FORTRAN 程序中的语
3、句可以没有标号,也可以有标号,根据需要而定。标号的作用是标志一个语句以便被其他语句引用。5、一个程序单位中各类语句的位置是有一定规定的。6、 FORTRAN 源程序必须按一定的格式书写。FORTRAN 源程序的书写格式(以77 为例)每一行有80 列,分别如下:1、第 1-5 列为标号区。一行中第一列为“C”或“*”,该行即被认为是注释行。2、第6 列为“续行标志区 ”,如果在一行的第 6 列上写一个非空格和非零的字符,则该行作为其上一行的续行。3、第7-72 列为语句区。4、第73-80 列,注释区。变量变量名:一个变量需要用一个名字(变量名)来识别。在同一个程序单位中不能用同一个变量名代表
4、两个不同的变量。FORTRAN 的变量名按以下规则选定:1)第一个字符必须是字母,即变量名必须以字母开头;2)在一个字母后面可以跟1-5 为数字或字母。如果选定的变量名超过6 个字符,则只有前面6 个字符有效。注:在变量名中大写与小写字母是等价的。变量类型整型变量Integer、实型变量Real、双精度变量Double Precision 、复型变量Complex、逻辑型变量Logical 和字符型变量Character。1、 隐含约定(I-N 规则)FORTRAN 规定:在程序中的变量名,凡以字母I, J, K, L, M, N 六个字母开头的,即认为该变量为整型变量。在程序中,凡是变量名以
5、字母I,J,K,L,M,N,i,j,k,l,m,n 开头的变量被默认为整型变量,以其他字母开头的变量被默认为实型变量。2、用类型说明语句确定变量类型1) INTEGER 语句(整型说明语句)2) REAL 语句(实型说明语句)3) DOUBLE PRECISION 语句(双精度说明语句)4) COMPLEX 语句(复型说明语句)5) LOGICAL 语句(逻辑型说明语句)6) CHARACTER 语句(字符型说明语句) 内部数据类型分为两类:数值型(整型、实型和复型)和非数值型(字符型和逻辑型)3、用IMPLICIT 语句(隐含说明语句)指定变量类型例: IMPLICIT INTEGER(A,
6、C,T -V)以上三种方法中,以类型说明语句最优先,IMPLICIT 语句次之,“ I-N 规则”的隐含约定级别最低。类型说明只在本程序单位内有效。IMPLICIT 语句和类型说明语句应该出现在本程序单位中的所有执行语句的前面,其中, IMPLICIT 语句又应在所有的类型说明语句的前面。算术运算符和运算优先级算术运算符和运算优先级:+表示“加”(或正号)* 表示“减”(或负号)* 表示“乘”/表示“除”* * 表示“乘方” 优先级次序:* * 最高* , /次之+, -最低注:同类型的算术量之间运算的结果仍保持原类型。如果参加运算的两个算术量为不同类型,则编译系统会自动将它们转换成同一类型然
7、后进行运算。转换的规律是:将低级类型转成高级类型。赋值语句赋值语句的作用是将一个确定的值赋给一个变量。其一般格式为:V=e* 代表一个变量名,e 代表一个表达式。参数语句(PARAMETER 语句)PARAMETER 语句与赋值语句不同,它是非执行语句,在程序定义一个符号常量后,不能再改变它的值。它应写在所有执行语句之前,符号常量的定名规则与定变量名相同。在一个参数语句中可以定义多个符号常量。优点:如果需要改变某一常数时,不需一一改变这个常数,只需改变参数语句中符号常量的值即可。END 语句作用: 1)结束本程序单位的运行;2)作为一个程序单位的结束标志。PAUSE 语句暂停语句,在程序中假如
8、几个PAUSE 语句,即设几个“断点”,把程序分成几段,调试程序时一段一段地检查,在调试完成后再将所有的PAUSE 删去。一般形式:PAUSE( n)N 是输出信息,程序员可以由此辨认程序的流程。逻辑运算和选择结构 用块 IF 结构来实现选择结构,其形式为:IF(条件)THENthen 块ELSEelse块ENDIFthen 块” ,否则,执行“else块” 。它的执行逻辑为:如果给定的条件成立则执行“关系表达式 关系表达式是最简单的一种逻辑表达式。其形式:<算术量> <关系运算符> <算术量>关系运算符:>(.GT.)>= (.GE.)<
9、(.LT.)<= (.LE.)= = (.EQ.)/= (.NE.)注意:1)关系运算符的两个字母的两侧各有一个句点。2)在一个关系表达式中可能包括算术运算符和关系运算符,它们的运算次序为:先进行算术运算,然后进行关系运算。3)关系表达式是将两个数值进行比较,这两个数值量可以是不同类型的量。例:整型和实型。4)关系表达式的值不是一个数值,而是一个逻辑量。FORTRAN 中数组的定义及使用From: Fortran 95 程序设计彭国伦1.基本使用:一维数组:datatype name (size)datatype: integer, real, complex, logical, 或 t
10、ype 自定义出来的类型。integer, parameter : students = 5integer : student (students)其他定义方法:integer a(10) ! 最简单的integer, dimension (10) : a ! 另外的方法integer, dimension (10) : a,b,c ! 一起定义integer a !f77 先声明 a 是整型,dimension a(10) !再声明a是大小为10 的数组或 typetype : personreal :height, weightend typetype (person) : a(10)a(
11、2)%height = 180.0二维数组:integer a(3, 3)a(1,1) = 3定义方法:integer a(10,10)integer, dimension (10, 10) : a,b,cinteger adimension a(10,10) ! f77, 先定义类型二维数组常用来当作矩阵使用。多维数组:fortran 最多可声明高达七维的数组。integer a(D1,D2,.,Dn) ! n 维一般说来,越高维数组读数据越慢。另类声明方法:integer a(5) 可使用的是a(1), a(2), a(3), a(4), a(5)integer a(0:5) 下标可使用的
12、是0 5, a(0),a(1),.,a(5)六个元素。integer a(-3: 3) 可以使用的是a(-3), a(-2), a(-1), a(0),.,a(3)七个元素。integer a (5,0:5) 可用 a(15, 05)integer b(2:3, -1:3) 可用 b(23, -13)其他1. fortran 语言定义CHARACTER*6 TTL(14,3),CNAM(400) 是什么意思?表示定义字符串,每个字符串长度是6。一共定义两个该长度字符串的数组,一个叫TTL ,二维数组,14 * 3 个元素。另一个叫CNAM ,一维数组,400个元素。2. fortran 里 c
13、haracter*10 是什么意思就是限定最大为 10 个字符3. Fortran 中 kind 是什么函数?查看变量所占内存空间的字节数。声明整型数、浮点数变量所占用的内存字节4. bytes 字节1byte 有 8 位,可以表示一个字母、数字或符号(一个汉字占两字节)1 byte = 8 bit1 KB = 1024 bytes =210 bytes1 MB = 1024 KB = 220 bytes1 GB = 1024 MB = 230 bytes5. Fortran 声明变量(经典)大家好:我刚刚接触Fortran, 看见个代码中用了dimension 这个东西,我在书里翻了一下,没
14、看到 dimension 可以声明变量。请问这个是什么意思呢?谢谢!Program Main_hydrusdouble precision P,R,S,Q,RTime1,t,tInit,tOld,RTime,tMax,tAtm,tPrint1,tAtm1,tAtm2,tAtmOld,tAtmN,tAtm2O, TPrint,tPrintIntcharacter cFileName*260,cDataPath*260,ccname*260dimension x(NumNPD),hNew(NumNPD),hOld(NumNPD),hTemp(NumNPD)dimension 在 fortran 是
15、定义数组,楼主的程序段中,dimension x(NumNPD),hNew(NumNPD),hOld(NumNPD),hTemp(NumNPD)定义了x, hNew, hOld, hTemp 四个一位数组,括号内的变量代表了数组的大小。需要注意的是在 fortran 中默认以 a-h 和 o-z 开头的变量为实型变量,而其他的均为整型变量,所以在这里NumNPD 是一个整型变量。例如: dimension x(100)即定义了一个容量了100 的一维数组,记为x(100),上述四个数组含义类似。fortran 语言对语法要求相对严格一些,祝学习顺利!以上愚见,如有不当之处,请见谅 dimens
16、ion 是声明数组大小用的。比如:real adimension a(10)fortran90 的新语法可以写成:real a(10)不过我看lz 的代码前面都有缩进,所以估计是旧语法。新语法向前兼容,但是老板看不懂6. Fortran 里面的 return 语句怎么用?目前遇到遇到如何把C 语言代码转换成Fortran 语句的问题。因为 C 语言里面有return, 返回值给主调函数。Fortran里面也有return 语句,但是用法含义是否与C 语言相同呢?求助高手!本人菜鸟,刚刚开始Fortran,不知道retrun 语句怎么用。 。 。而且也不知道哪个语句具有与C 中的 return
17、中相同的功能。 。 。 。找了一些书,也没有找到介绍。 。求助! Fortran 里面也有return 语句, 但是用法含义是否与C 语言相同呢?哪个语句具有与C 中的 return 中相同的功能呢?谢谢! ! ! !Fortran 中可以不用return 啊。如果是子程序,返回值都直接写在子程序的参数序列中了如果是函数,函数名本身就是返回值所依附的变量不明白你为什么要把C 转为Fortran,有什么特别的理由吗? "Return" is used in a subroutine for conditionally exiting the subroutine.retrur
18、n 语句如果放到子程序的末尾(即 end 之前的话,跟不用 return 没有什么区别,这种情况可以不用); 如果不是上面的这样,放在子程序其它位置的,表示程序执行到return 语句的时候就返回到主程序中。7. 开方 SQRT 函数SQRTElemental Intrinsic Function (Generic): Derives the square root of its argument. 单元内部函数Syntax 语法result = SQRT (x)x(Input) must be of type real or complex. If x is type real, its v
19、alue must be greater than or equal to zero.输入的 x 必须为实型或复型。假如x 的类型为实型,x 的值必须大于或等于0Results:The result type is the same as x. The result has a value equal to the square root of x. A result of type complex is the principal value, with the real part greater than or equal to zero. When the real part of th
20、e result is zero, the imaginary part is greater than or equal to zero.开平方函数的类型与x 一样。其结果是x 的开平方值。复型的开平方是个主值,实部大于或等于0。当实部等于0时,虚部大于或等于08. 空格Fortran77 会忽略行中的空格,关键字和变量中可以有空格。Free Format(自由格式)Fortran90 与 95 格式空格: 在语句名和变量名中间不能有空格。需要空格的地方必须有一个以上空格( GOTO 和 GO TO , ELSEIF 和 ELSEIF, END 构造名(构造名有:DO, PROGRAM, F
21、UNCTION, MODULE, SUBROUTINE) 等有两种写法的除外),如关系运算符=, <= 不能写成= =, < =。这与 F77 有很大不同之处,因为F77 的设计中将编译源程序的空格忽略。9. 双精度若指数标识为D 或 d,则表示该实数为双精度实数,等价于kind 值为8,但不能指定kind 值,即 D 指数不允许指定实型 kind 值。表 实数的存储空间、精度及取值范围实型类型名字节数精度(有效数字)取值范围单精度46-7± 3.40282347E38-± 1.17549435E-38双精度815-16± 2.225073858507
22、2013D308-± 1.7976931348623158 D -308表 整数的存储空间及取值范围整型类型名字节数取值范围integer(1)1-128127短整型integer(2)2-3276832767长整型integer4-21474836482147483647integer(8)8-263263-1 ( Alpha 系统)Fortran 95 程序设计(书籍彭国伦编著)Chapter 3 Fortran 程序设计基础3-1 字符集“字符集”是指编写 Fortran 程序时,所能使用的所有字符及符号。26 个英文字母(不区分大小写)0-9 数字22 个特殊符号3-2 书面
23、格式Fixed Format(固定格式),扩展名为*.F 或 *.FOR 文件Fixed Format 是为了配合早期使用穿孔卡片输入程序所发明的格式。Free Format(自由格式),扩展名为*.F90 文件3-3 Fortran 的数据类型数据类型:使用Fortran 在计算机内存中记录文本、数值等数据的最小单位及方法整数(Integer) 、浮点数(Real) 、复数(Complex) 、字符(Character) 、逻辑判断(Logical )3-4 Fortran 的数学表达式Chapter 4 输入输出及声明1. Implicit 命令Fortran 标准中, 变量不一定要经过程序的声明才能使用,编译器会根据变量名称的第一个字母来自动决定这个变量的类型。第1 个字母为I、 J、 K、 L、 M、 N 的变量被视为整数类型,其他的变量则被当成浮点数来使用。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中华女子学院《传统及现代手工艺制作》2023-2024学年第一学期期末试卷
- 郑州信息工程职业学院《工业控制网络》2023-2024学年第一学期期末试卷
- 长沙航空职业技术学院《数字电路设计及实践》2023-2024学年第一学期期末试卷
- 云南国防工业职业技术学院《品牌形象专项设计一》2023-2024学年第一学期期末试卷
- 新型材料在电池储能中的应用
- 共建文化 发展未来模板
- 市场营销领导力实践述职
- 业务操作-房地产经纪人《业务操作》模拟试卷4
- 房地产交易制度政策-《房地产基本制度与政策》预测试卷4
- 农学成果答辩报告模板
- 物业项目服务进度保证措施
- (隐蔽)工程现场收方计量记录表
- DB22T 5005-2018 注塑夹芯复合保温砌块自保温墙体工程技术标准
- 医院手术室医院感染管理质量督查评分表
- 称量与天平培训试题及答案
- 超全的超滤与纳滤概述、基本理论和应用
- 2020年医师定期考核试题与答案(公卫专业)
- 2022年中国育龄女性生殖健康研究报告
- 各种静脉置管固定方法
- 消防报审验收程序及表格
- 教育金规划ppt课件
评论
0/150
提交评论