当前位置:文档之家› (完整)Fortran经典编程语言笔记(你值得拥有)

(完整)Fortran经典编程语言笔记(你值得拥有)

FORTRAN笔记2014.10.07目录第七讲_FORTRAN的基本知识.ppt (2)FORTRAN语言程序设计初步 (2)FORTRAN源程序的书写格式(以77为例) (2)变量 (2)变量类型 (2)算术运算符和运算优先级 (3)赋值语句 (3)参数语句(PARAMETER语句) (3)END语句 (3)PAUSE语句 (3)逻辑运算和选择结构 (4)关系表达式 (4)FORTRAN中数组的定义及使用 (4)其他 (5)1. fortran语言定义CHARACTER*6 TTL(14,3),CNAM(400)是什么意思? (5)2. fortran里character*10 是什么意思 (5)3. Fortran中kind是什么函数? (5)第七讲_FORTRAN的基本知识.pptFORTRAN语言程序设计初步FORTRAN是Formula Translation的缩写,意为“公式翻译”,它是为科学、工程问题或企事业管理中的那些能够用数学公式表达的问题而设计的,其数值计算的功能较强。

常用的是FORTRAN77和FORTRAN90两种标准。

1、一个程序由若干个程序单位组成。

主程序和每一个子程序分别是一个独立的程序单位。

2、每一个程序单位都是以“END”结束的。

3、一个程序单位包括若干行。

1)语句行。

由一个FORTRAN语句组成。

2)非语句行,即注释行。

4、FORTRAN程序中的语句可以没有标号,也可以有标号,根据需要而定。

标号的作用是标志一个语句以便被其他语句引用。

5、一个程序单位中各类语句的位置是有一定规定的。

6、FORTRAN源程序必须按一定的格式书写。

FORTRAN源程序的书写格式(以77为例)每一行有80列,分别如下:1、第1-5列为标号区。

一行中第一列为“C”或“*”,该行即被认为是注释行。

2、第6列为“续行标志区”,如果在一行的第6列上写一个非空格和非零的字符,则该行作为其上一行的续行。

3、第7-72列为语句区。

4、第73-80列,注释区。

变量变量名:一个变量需要用一个名字(变量名)来识别。

在同一个程序单位中不能用同一个变量名代表两个不同的变量。

FORTRAN的变量名按以下规则选定:1)第一个字符必须是字母,即变量名必须以字母开头;2)在一个字母后面可以跟1-5为数字或字母。

如果选定的变量名超过6个字符,则只有前面6个字符有效。

注:在变量名中大写与小写字母是等价的。

变量类型整型变量Integer、实型变量Real、双精度变量Double Precision、复型变量Complex、逻辑型变量Logical和字符型变量Character。

1、隐含约定(I-N规则)FORTRAN规定:在程序中的变量名,凡以字母I,J,K,L,M,N六个字母开头的,即认为该变量为整型变量。

在程序中,凡是变量名以字母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,C,T-V)注:以上三种方法中,以类型说明语句最优先,IMPLICIT语句次之,“I-N规则”的隐含约定级别最低。

类型说明只在本程序单位内有效。

IMPLICIT语句和类型说明语句应该出现在本程序单位中的所有执行语句的前面,其中,IMPLICIT语句又应在所有的类型说明语句的前面。

算术运算符和运算优先级算术运算符和运算优先级:+ 表示“加”(或正号)-表示“减”(或负号)* 表示“乘”/ 表示“除”** 表示“乘方”优先级次序:** 最高*,/ 次之+,-最低注:同类型的算术量之间运算的结果仍保持原类型。

如果参加运算的两个算术量为不同类型,则编译系统会自动将它们转换成同一类型然后进行运算。

转换的规律是:将低级类型转成高级类型。

赋值语句赋值语句的作用是将一个确定的值赋给一个变量。

其一般格式为:V=eV代表一个变量名,e代表一个表达式。

参数语句(PARAMETER语句)PARAMETER语句与赋值语句不同,它是非执行语句,在程序定义一个符号常量后,不能再改变它的值。

它应写在所有执行语句之前,符号常量的定名规则与定变量名相同。

在一个参数语句中可以定义多个符号常量。

优点:如果需要改变某一常数时,不需一一改变这个常数,只需改变参数语句中符号常量的值即可。

END语句作用:1)结束本程序单位的运行;2)作为一个程序单位的结束标志。

PAUSE语句暂停语句,在程序中假如几个PAUSE语句,即设几个“断点”,把程序分成几段,调试程序时一段一段地检查,在调试完成后再将所有的PAUSE删去。

一般形式:PAUSE(n)N是输出信息,程序员可以由此辨认程序的流程。

逻辑运算和选择结构用块IF结构来实现选择结构,其形式为:IF(条件)THENthen块ELSEelse块ENDIF它的执行逻辑为:如果给定的条件成立则执行“then块”,否则,执行“else块”。

关系表达式关系表达式是最简单的一种逻辑表达式。

其形式:<算术量> <关系运算符> <算术量>关系运算符:> (.GT.) >= (.GE.)< (.LT.) <= (.LE.)= = (.EQ.) /= (.NE.)注意:1)关系运算符的两个字母的两侧各有一个句点。

2)在一个关系表达式中可能包括算术运算符和关系运算符,它们的运算次序为:先进行算术运算,然后进行关系运算。

3)关系表达式是将两个数值进行比较,这两个数值量可以是不同类型的量。

例:整型和实型。

4)关系表达式的值不是一个数值,而是一个逻辑量。

-------------------------------------------------------FORTRAN中数组的定义及使用From: 《Fortran 95 程序设计》彭国伦1.基本使用:一维数组:datatype name (size)datatype: integer, real, complex, logical,或type自定义出来的类型。

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(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) 下标可使用的是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(1~5, 0~5)integer b(2:3, -1:3) 可用b(2~3, -1~3)其他1. fortran语言定义CHARACTER*6 TTL(14,3),CNAM(400)是什么意思?表示定义字符串,每个字符串长度是6。

一共定义两个该长度字符串的数组,一个叫TTL,二维数组,14 * 3 个元素。

另一个叫CNAM,一维数组,400个元素。

2. fortran里character*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这个东西,我在书里翻了一下,没看到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是定义数组,楼主的程序段中,dimension x(NumNPD),hNew(NumNPD),hOld(NumNPD),hTemp(NumNPD)定义了x,hNew,hOld,hTemp四个一位数组,括号内的变量代表了数组的大小。

需要注意的是在fortran中默认以a-h和o-z开头的变量为实型变量,而其他的均为整型变量,所以在这里NumNPD是一个整型变量。

相关主题