首页 Fortran讲义 补充版

Fortran讲义 补充版

举报
开通vip

Fortran讲义 补充版计算物理主要内容 计算机、数值方法和物理的结合。 Fortran语言、计算方法、绘图 物理问题的计算机实现:分析物理、程序实现、 结果分析。 本门课程的目的 培养、提高物理计算能力。 熟悉并能灵活运用Fortran语言、掌握常用的一 些计算方法、分析解决具体物理问题。 课程特点及要求 各种教材、各学校具体内容差别很大 实际操作性很强、动手具体作 每次课都必须到,完成布置的作业 程序及文本每次课结束时保存 照顾大多数,同学之间相互讨论 考试  课程论文 20分 (有自己的问题、方法、计算、结果) 平时作业、讨论等...

Fortran讲义 补充版
计算物理主要内容 计算机、数值 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 和物理的结合。 Fortran语言、计算方法、绘图 物理问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 的计算机实现:分析物理、程序实现、 结果分析。 本门课程的目的 培养、提高物理计算能力。 熟悉并能灵活运用Fortran语言、掌握常用的一 些计算方法、分析解决具体物理问题。 课程特点及 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 各种教材、各学校具体内容差别很大 实际操作性很强、动手具体作 每次课都必须到,完成布置的作业 程序及文本每次课结束时保存 照顾大多数,同学之间相互讨论 考试  课程论文 20分 (有自己的问题、方法、计算、结果) 平时作业、讨论等 20分 考试    60分 (主要还是平时做过的方法、程序) 第一部分  Fortran语言简介 Fortran语言是目前国际上广泛流行的一种高级语言,主 要适用于科学计算,Fortran 是FORmula TRANslation的缩写。 现在Fortran语言的版本很多,功能也很强(也具有图形 功能)我们介绍标准Fortran (1966年),兼容于现在流行其他 版本。 Fortran语言有许多具体而繁琐的规定,我们从实例入手 学习,不要求死记硬背,不要求面面俱到,主要培养一种大 局观(思路是最重要的)。更多的语句、功能用到再学。积累 一些小程序,一些相对固定模块可以复制。 第1章  Fortran源程序的书写格式 源文件产生 源程序是以for或f为扩展名的文本文件,可以用任何纯 文本文件编辑器产生。 常用的有:edit、windows文本编辑器、word(存为纯文本)等 高级版本的编辑软件,高级版本的Fortran平台等。 补充: 两种格式的源程序在编译时可以用选项来指定,对应的默认文件扩展名为: 固定格式: .for 或 .f  自由格式: .f90 既然已经有了Fortran90,那么是否就不用学习Fortran77了?事实上,由于很多用户在Fortran程序上作了巨大的投资,许多大型科学计算Fortran程序(有些长达数十万条语句),如分子动力学模拟计算(C60-C240的碰撞:10eV,100eV,300eV)等程序仍在频繁地使用。在科技领域内某些标准程序库(International Mathematics and Statics Library, Numerical Algorithms Group)内有数千以上的子程序是用Fortran写的,特别是早期的程序都是用Fortran77编写的,这些程序库已通过长期使用验证了稳定性。科学研究经常需要使用或改编以前的程序,这时必须了解Fortran77的编程手法。 将Fortran77作为基础。 源文件格式要求 (严格、麻烦) 每个源程序包含若干行---〉不固定行数 每行最多80列,即每行最多写80个字符(汉字为2个字符) 列数有最大限制超过自动不认 每行分为三个区 1 标号区 标号区 1至5列  如果需要标号就写在这个区内,标号最 大5位数,1到99999。(注意不要超区,到6位以后) 注意: 标号不是行的编号,标号像“名字”,不像“学号”; 标号可以不连续,也不要求按照先后从小到大。 实质是为了  标明语句。 2 续行区 第6列为续行区。当一个语句在一行写不下时,可以在下 一行续写。这时在续行的第6列写上一个非零非空格的字符。 (建议用叹号!)最多可有19个续行(估计三个就够咧)。 注意:上一行不必写满,任意列都可转下一行; 续行可以从第7列后任意行开始; 续行的标号区(1至5列)必须空白,不能有 标号。 3 语句区 第7到72列填写语句内容。可以从第7列开始任意列写起。 最后几位73到80不能写程序作为程序员坐标志,一般写行号。 以上规则只对源程序的语句进行限制,数据行,注释行等例外 源程序的行的分类 1 注释行 第1列上写字母C. 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 明是注释,系统在编译时不予编译,为了程序好读,想写啥都行。 注释行可以在原程序的任意行写。 补充: F77注释行是以“C”或“*”作为该行第一个字符的,F90可在任意一行末以“!”开始作为注释符 2 起始行 一个完整的语句可以比较长,分若干行写完。语句的第一行为起始行。 3 继续行 一个的语句一行写不完时可以在下一行接着写。接着写的行叫做继续行,一个语句只有一个起始行,但可以有若干续行。 4 结束行 第7列后写上  END  表示程序块到此结束。 例 C===========================================C C  A  Program  for 1+1=?                          C C  Written by Lao Zhang                            C C  Date  2007.3.1                                C C===========================================C C        1        2        3        7        8 C5。。。1234567890 A=1.0                                      1 2        B=1.0                                    2 4  C=A                                        3 !    +B                                    4 Write(*,*) C                                  5 END                                        6 第2章  常数  变量  算术表达式 标准函数 常数 具体的数,标准Fortran规定可用6种类型的常数: 整型(Integer)实型(Real) 双精度型(Double Precision)复型(Complex) 逻辑型(Logical)文字型(Character) 1、整型常数 就是整数 注意范围  16位机  以16位2进制数表示一个整数 第一位放正负号标志 0正  1负 则范围为 -215到 +215-1  -32768到32767 32位机 则范围为 -231到 +231-1  -2147483648到2147483647 100  111  110  101  000  001  010  011 -4    -3    -2    -1    0    1    2    3  整数在计算机中没有任何误差。 2、实型常数 带小数点的数和(或)带指数的数 例如:1.23    -5.6E3    8E-6  1E3  2E+4  123. 注意  100  Fortran认为是  整数100 1E+2  Fortran 认为是  实数 100.0 实数因计算机系统的不同实数的范围  注意浮点溢出1038 3、变量名 每个变量在同一模块中只有唯一名字,以字母开头。 标准Fortran变量名最长识别5个字符 Fortran语言中的语句不能用例如: COS  READ  IF    WRITE  GOTO  等 建议:变量名给长点 用大写 补充: 变量名和程序名等使用的英文名是由(F77:6;F90:31)个字符(包含英文字母A-Z、数字0-9、F90:下划线_)构成,且第一个字符必须是字母。其英文名的有效使用范围原则上限于一个程序单位之内(内部过程除外)。如下面的语句是错误的: INTEGER :: 1A          ! 不是以字母开头 INTEGER :: A_name_made_up_of_more_than_31_letters  ! 太长 INTEGER :: China:0    ! 含有不允许的字符 INTEGER :: A-3        ! 减号在此是无意义的 Fortran没有规定保留字,即可以用函数名或语句定义符作变量名。但为了避免混淆,建议不要使用Fortran中已有特定含义的字作变量名。如SIN是正弦函数的名字,如果有以下语句: SIN=3.5 PRINT *,SIN 则语句中的SIN是变量名而不代表正弦函数。系统会根据它后面有无自变量而作出判断,又如: READ *,PRINT 此时PRINT是一个变量名而不代表“打印输出”的操作。系统会认定语句的第—个字READ为代表操作的语句定义符,而把PRINT作为READ语句中读数的变量。但在同一个程序单位(主程序或子程序分别是一个程序单位)中,变量名和函数名或语句定义符不能同名。以下是错误的: SIN=3.5 A=SIN*SIN(2.0) PRINT *,PRINT 4、变量类型 特别注意 !!!!! 隐含说明:以 I, J, K, L, M, N 开头的变量为整型变量 其余为实型变量    I-N规则 显式说明:INTEGER  ABC,I MAX,MIN,TIME REAL  ABC,I MAX,MIN,TIME IMPLICIT 隐含说明:    IMPLICIT  INTEGER(A,B,N) IMPLICIT  REAL(A,B,N) 或    IMPLICIT  INTEGER(A,B,N),REAL(K,M) 强行说明仅适用于所在模块,在执行语句之前。 补充: 类型指定:如果想改变“I—N规则”对变量类型的约束,可以用类型说明语句专门指定某些变量的类型。Fortran中有六个类型说明语句: (1)INTEGER语句 (整型说明语句) (2)REAL语句 (实型说明语句) (3)DOUBLE PRECISION语句 (双精度说明语句) (4)COMPLEX语句 (复型说明语句) (5)LOGICAL语句 (逻辑型说明语句) (6)CHARACTER语句(字符型说明语句) IMPLICIT语句(隐含说明语句)指定:可以用IMPLICIT语句将某一字母开头的全部变量指定为所需的类型,还可以用一个IMPLICIT语句同时指定几种类型。例如: IMPLICIT INTEGER (A,C,T-V) IMPLICIT REAL (I,J) IMPLICIT INTEGER (A,B),REAL(I,K),INTEGER (X-Z) 注:(1) 以上三种方法中,以类型说明语句最优先,IMPLICIT语句次之,“I—N规则”的隐含约定级别最低。如下程序中IMAX变量为整型,而其它以I、J开头的变量为实型: IMPLICIT REAL(I,J) INTEGER IMAX (2) 类型说明语句和IMPLICIT语句是非执行语句。 (3) 类型说明只在本程序单位内有效。 (4) IMPLICIT语句和类型说明语句应该出现在本程序单位中的所有执行语句之前,其中IMPLICIT语句又应在所有的类型说明语句之前。 5、算术运算 +(加) -(减) *(乘) /(除) **(乘方) 书写规则和其他语言相同 注意:a、两个算术运算符号不能相连 例如:A / -B    应写成A /(-B) b、优先顺序 括号  函数  乘方  乘除  加减 c、连续乘方    应写成2**(3**4) 应写成(2**3)**4 负数和零不能成方,例如:(-3.5)**2 d、乘号不能省略 (A+B)(C+D)应写成(A+B)*(C+D) e、标准Fortran不允许不同类型量混合运算 例如:10-X+0.3*6+I**N 现在大多数Fortran允许,但在编译时系统会先转换成同一类型,然后再计算,转换原则: F77作如下规定: ● 同类型的算术量之间运算的结果仍保持原类型。 同类转换保持原形不变  4*5  整型  4.*5.实型 特别注意: 15/5=3        15/4=3      65/10=6 -1/2=0        -8/6=-1        小数位去掉 5/3*6=6      5*6/3=10 15./5.=3.      15./4.=3.75    65./10.=6.5 -1./2.=-0.5    -8./6.=-1.333    小数位保留 5./3.*6.=10.  5.*6./3.=10. ● 不同型转换为高级类型 如果参加运算的两个算术量为不同类型,则编译系统会自动将它们转换成同一类型后进行运算。 转换的规律是:将低级类型转换成高级类型。类型的级别如下:整型(低)→实型(高)。类型的转换是从左向右进行的,在遇到不同类型的算术量时才进行转换。例如:1/2*1.0等于0,而1./2*1对于0.5。 建议:一只情况下直接用实型,不用整形再转换 需要转换时用转换函数 标准函数 标准函数 函数名      含义            函数      变量数    变量型  函数型 ABS      |a|            绝对值      1      实      实 AMAX0  Max(a1,a2,…)  最大值    大于2  整      实 AMAX1  Max(a1,a2,…)  最大值    大于2    实      实 AM I N0  Max(a1,a2,…)  最小值    大于2    整      实 AM I N1  Max(a1,a2,…)  最小值    大于2    实      实 ALOG10  Log10(a)    常用对数      1      实      实 ALOG    Ln(a)      自然对数      1      实      实 EXP      ea              指数        1      实      实 SQRT    a1/2                  平方根      1      实      实 SIN      Sin(a)        正弦        1      实      实 COS    Cos(a)        余弦        1      实      实 注意:三角函数自变量为弧度 a为角度时换成弧度    a*3.1415926 /180. 自变量可以是包含函数表达式。 补充: ● 一个内在函数可要求一个或多个自变量 例如,SQRT函数只能有一个自变量 MOD函数要求两个自变量, MAX和MIN函数要求两个以上自变量。 注意当自变量个数规定为2个时,自变量的顺序不应任意颠倒,如MOD(8,3)表示8被3除的余数,其值为2,而MOD(3,8)则表示3被8除的余数,其值为3。当自变量个数为>2时,自变量的顺序无关。 ● 函数的自变量是有类型的,函数值也是有类型的 例如MOD(8,3)中自变量8和3是整型,函数MOD(8,3)的值“2”也是整型,如果写成MOD(8.0,3.0),自变量是实型的,函数值也是实型的,其值为2.0。 ● 函数名分为“通用名”和“专用名” 例如求余函数的“通用名”为MOD,“专用名”有三个(MOD,AMOD,DMOD)。根据自变量的类型就自动确定了函数值的类型,如MOD(8,3)的值为整型,而MOD(8.0,3.0)的值为实型。当调用子程序时如果用内在函数作为自变量(实参),必须使用该内在函数的专用名。 编译连接 不同版本的FORTRAN、不同系统编译命令略有不同。 (1)FOR1  a.for,    产生a.obj 目标文件 FOR2  a.obj      产生a.exe 可执行文件 (2)UNIX系统 FOR  a.for,    产生a.obj 目标文件 LINK  a.obj      产生a.exe 可执行文 RUN  a (3) 微机Fortran77  编译 DOS状态命令格式: F77  abc.for      直接产生abc.exe (4) Fortran90  编译 DOS状态命令格式: F90  abc.for        直接产生abc.exe 或者  在其平台上编译、连接、运行 我们用Fortran77编译, 在机器上有G77 目录。 运行 G77setup.bat  对路径等进行设置; 然后 编译  DOS状态命令格式: G77  abc.for        产生 A.EXE  运行 可执行文件名字都固定为A.EXE。 补充: 第3章  最基本的FORTRAN语句 最基本的几个语句 简单赋值、输入、输出、结束 程序中赋值 X=10.0  Y=2.0 A=X+Y+SIN(X-5.0*Y) 注意:类型 键盘或其他方式输入,输出 输入:  READ(I1, I2)  输出:  WRITE(I1,I2) I1  通道号  可以对应于文件,键盘等, I2  格式定义行的行号。 例如  READ(5,20)A,B,K WRITE(6,30)A+B,K,A 20   FORMAT(F9.3,F7.2,I4) 30    FORMAT(F12.3, I8, E10.3)      READ(5,20)A,B,K 从通道5,以标号为20的format行给出的格式读入值, 输给程序中变量A,B,K WRITE(6,30)A+B,K,A 以标号为30的format行给出的格式输出A+B,K,A, 输出到通道6 指定的设备(文件、显示器、打印机等) 格式: 100 FORMAT(3x,2F8.4,6H@#$%^&,3I5, 5E16.6) 3x      表示3个空格; 2F8.4  表示2个长为8格,小数为4位的浮点数; 3I5    表示3个长为5位的整数;  5E16.6  表示5个长为16格,小数为6位的科学计数法数; 6H@#$%^&  表示输出6个字符,这6个字符为:@#$%^& FORMAT 语句必须有标号,以便和read ,write语句对应。 FORMAT 语句中的有关数数的类型、个数要和输入输出语句中的标量或常数对应(至少不能有冲突)。 建议: 输入用自有格式 READ(I1,*)  自由格式 READ(*,*)  键盘自由格式 输出用格式输出,结果整齐。 出现 ******* 时 注意数字太大,可用E格式 补充:程序单位 主程序 [PROGRAM  程序名]            ←语句可省略 ..... END [PROGRAM [程序名]]      ←END必须有 辅程序(过程) SUBROUTINE 子程序 FUNCTION  函数 BLOCK DATA 块数据 MODULE    模块 (F90) 内部过程  CONTAINS (F90) 小作业:写一小程序,计算某个同学的平时成绩。 卷面分 70%  最后成绩,计算平时分该给多少? 1卷面 50,最终60  平时多少? (直接在程序中输值) ; 2从键盘输值。 第4章 逻辑常数、变量、表达式 逻辑常数 逻辑常数只有两个 真(.TRUE.)或假 (.FALSE.) 3>2 的值为 .TRUE. 3=2 的值为 .FALSE.    两个点不能省略 逻辑变量 LOGICAL  A,B,QWERT,A123 定义 A,B,QWERT,A123 为逻辑变量 I-N规则不再起作用  A=.FALSE. B=.TRUE. A123=3.0.LT.2.0 算术关系表达式 X>Y,  ABC<3.0*SIN(A) .LT.  Less Than                小于 .LE.  Less than or Equal to      小于等于 .EQ.  Equal to                等于
本文档为【Fortran讲义 补充版】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_531654
暂无简介~
格式:doc
大小:48KB
软件:Word
页数:21
分类:理学
上传时间:2019-04-22
浏览量:7