Fortran学习笔记1

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规定字面常量中字符的个数不得大于计算机一个内存单元所能存放的最大字符的个数,在满足这个条件的时候,字面常量在内存中靠左存放,后面跟空格。字面常量的形式为:
    $ 4H \underbrace{x_1x_2\cdots x_n}_{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. INTEGER\REAL\COMPLEX\LOGICAL语句
  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值可以不给定
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容