Fortran学习记录1(Fortran数据类型)


Fortran中的字符

A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9,+,-,*,/,(z左括号),(右括号),(撇号),(逗号),(小数点),(空格)

共47个。


Fortran中的常量

Fortran语言中有6种常量:整型常量、实型常量、双精度型常量、复型常量、逻辑型常量、字面常量。

  1. 整型常量没有误差。

  2. 实型常量有小数形式指数形式两种。小数形式有(10. ),(10.1), (.11)这三种形式。指数形式1.2E4.

  3. 双精度形式用指数表示,1.2D4。双精度常量0表示为:(0.0D0),(0.D0)

  4. 复型常量(-4.2,2.3)表示-4.2+2.3i;复型常量在内存中占两个实型常量的内存。实部和虚部各占一个。

  5. 双精度复型常量,实部和虚部都是双精度的实数。(1.44D+1,0.D0)

  6. 逻辑型常量:(.ture.),(.false.);逻辑型常量占内存的一个存储单元。

  7. 字面常量:Fortran规定字面常量中字符的个数不得大于计算机一个内存单元所能存放的最大字符的个数,在满足这个条件的时候,字面常量在内存中靠左存放,后面跟空格。字面常量的形式为:

    4Hx1x2xn��n


Fortran中的变量

Fortran中的变量其实指的是内存中的一块存储单元,变量名是这块单元的名称(地址标记),在参加运算的时候,只能是内存中的数值或者内存的地址参加运算,内存本身不参加运算。可以理解如下:变量就是一间屋子,变量名就是房间编号,这间屋子今天可以住这个人,明天可以住那个人,但是同一时间只能有一个人住在房子里面。所以,任何时候,房子里的状况都是清楚地,住了人,是哪一个人,或者没有住人。这些信息对于店主(程序员)都是很清楚地。

对于房间的命名——变量名的命名,Fortran要求第一个必须是字母,后面紧跟字母或数字组成的6个以内的字符串。在Fortran中,变量不但有名,而且有不同的类型。有整型变量、实型变量、双精度型变量、复型变量、双精度复型变量、逻辑型变量。(共6种)

Fortran的I-N规则

Fortran规定变量的第一个字母是I-N中的字母时,该变量为整型变量,其他字母时为实型变量。这是隐性说明的。可以通过implicit none语句去掉这条规则。

  • 整型变量 :integer y1,xvar,e47b
  • 双精度型变量 :double precision
  • 复型变量 :complex
  • 双精度复型变量 :double precision complex
  • 逻辑型变量 :logical

Fortran中的有效位数

  1. 单精度浮点数的有效位数为6位。双精度浮点数的有效位数为15位。
  2. 整型在Fortran中是严格精确地储存的。

Fortran中的申明

申明就是指在程序代码中,程序员向编译器要求预留一块存放数据的内存空间。

有下面面的三种方式来申明整型变量

integer(kind=4) a   ! Fortran 90添加
integer(4)   a      ! fortran77
integer*4    a      ! fortran77

下面是申明字符变量的方法

character(len=10) a   ! fortran90
character(10)     a   ! fortran90
character*10      a   ! fortran90
character*(10)    a   ! fortran90

Fortran申明时要注意的原则

  1. 变量名可使用字母,数字,下划线,但是开首字符必须是字母
  2. 变量名的长度:Fortran77为6个字符,Fortran90为31个字符。
  3. 变量名要避开关键字,保留字和函数名。
  4. Fortran程序不区分大小写。建议使用小写字母。

Fortran中的表达式

Fortran中有3类表达式:算术表达式、关系表达式、逻辑表达式

  • 算数表达式的基本元素

    常量、变量、数组元素、函数引用、运算符、括号。

  • Fortran中的算数运算符 有:+,-,,/,*

  • Fortran中的关系运算符:(.GT.)、(.GE.)、(.LT.)、(.LE.)、(.EQ.)、(.NE.)。Fortran规定关系表达式的两端数据类型必须一致。关系表达式的优先级低于算术表达式。

  • Fortran中的逻辑运算符:(.AND.)、(.OR.)、(.NOT.)优先级为:先.NOT.次.AND.后.OR.。

  • 分析

    已知A=3.5,B=4.0,C=4.5,求:A+B.EQ.C.AND.B+C.GT.A-B


Fortran中的语句、注解、行和标行

  • Fortran语句有可执行语句和非执行语句
  • Fortran语句写在一行内,一行不能写几个语句。行是72个字符的序列。
  • Fortran的行分为:始行、续行、注解行、结束行。Fortran77规定有19个续行。注解行的开始写星号或者字母C。注释行不能插在始行和续行的中间。
  • Fortran规定在一行的前1-5列用1-5个数字的序列来标记,成为语句标号。

Fortran中的过程和过程引用

Fortran中过程包括函数和子程序。有四种过程:内在函数、语句函数、外部函数、子程序。

  • 这部分的内容比较繁杂,等以后补充

Fortran语句详解

Fortran中的可执行语句:

  1. 算数、逻辑、字符赋值语句,语句标号赋值语句
  2. 无条件goto、赋值goto、计算goto语句
  3. 算数if和逻辑if
  4. 块if、else if、 else、end if语句
  5. continue语句
  6. stop和pause语句
  7. do语句
  8. read和write语句
  9. rewind、backspace、endfile、open语句
  10. call、return语句
  11. end语句

Fortran中的非执行语句

  1. program、function、subroutine语句
  2. dimension、common、equivalence、implicit、external、intrinsic、save语句
  3. integer、real、complex、logical语句
  4. data语句
  5. format语句
  6. 语句函数语句
说明语句

说明语句是非执行语句,他们是:

  1. DIMENSION语句
  2. EQUIVALENCE语句
  3. COMMON语句
  4. INTEGERREALCOMPLEXLOGICAL语句
  5. IMPLICIT语句
  6. EXTERNAL语句
  7. INTRINSIC语句
  8. SAVE语句

类型语句的一边形式:

typ V[,v]...

例子:

COMPLEX COMPA,COMPB
REAL*8:: I(15,20,30),IJIM,NET
INTEGER:: AT(10,10,20),HIT,OTT(10,20)
LOGICAL SWITCH,CODE,LIGHT
DOUBLE COMPLEX Z12,23
CHARACTER[*LEN[,]]NAM[,NAM]...
IMPLICIT语句

Fortran标准中有一项看起来不太好的功能(个人之见),它的变量不经定义就可以使用,编译器会根据变量名的首字母来判断变量的类型。第一个字母是I、J、K、L、M、N的变量会被自动认为是整型变量,其他的变量会被认为是实数型。

implicit命令的功能是设置默认类型。如:

implicit integer(a,b,c)  !将以A,B,C开头的变量认为是整形变量
implicit real*8(a-z)     !将所有变量都认为是双精度实型变量
implicit none            !关闭默认类型功能,所有变量都要事先申明

Fortran中的格式控制

Fortran命令中可以使用很多的格式控制描述,下面列出了所有格式命令的表格,括号( [ ] )中的东西可以省略。

Aw 以w个字符宽度来输出字符串
BN 定义文本框中的空位为没有东西,在输入时才需要使用
BZ 定义文本框中的空位代表0,在输入时才需要使用
Dw.d 以w个字符宽度来输出指数型的浮点数,小数部分占d个宽度
Ew.d[Ee] 以w个字符宽度来输出指数型的浮点数,小数部分占d个宽度,指数部分占e个字符
ENw.d[Ee] 以指数类型来输出浮点数
Fw.d 以w个字符宽度来输出浮点数,小数部分占d个宽度
Gw.d[Ee] 以w个字符来输出任何类型的数据
Iw[.m] 以w个字符宽度来输出整数,最少输出m个数字
Lw 以w个字符宽度来输出T或F的真假值
nX 把输出的位置向后跳n个位置
/ 代表换行
: 在没有更多的数据的时候结束输出
kP K值控制输入输出的SCALE
Tn 输出的位置移动到本行的第n列
TLn 输出的位置相左相对移动n个
TRn 输出的位置相右相对移动n个
SP 在数字值为正时加上正号
SS 取消SP
Bw[.m] 把整数转换成二进制来输出,输出会占w个字符宽度,固定输出m个数字。m值可以不给定
Ow[.m] 把整数转换成八进制来输出,输出会占w个字符宽度,固定输出m个数字。m值可以不给定
Zw[.m] 把整数转换成十六进制来输出,输出会占w个字符宽度,固定输出m个数字。m值可以不给定
原文地址:https://www.cnblogs.com/baowee/p/9556835.html