当前位置:文档之家› FORTRAN 95 语法速查

FORTRAN 95 语法速查

FORTRAN 95 语法速查----------白云、李学哲、陈国新、贾波编著《FORTRAN95程序设计》读书笔记目录:一、应用程序的创建与运行/FORTRAN 95所用的字符/ 变量类型及其声明,常量声明/表达式与运算符二、输入与输出:表控、有格式三、选择语句与结构:IF语句、CASE结构四、DO循环结构五、数组:数组的声明,数组的引用,数组的算术运算,数组的输入、输出,给数组赋初值,动态数组,WHERE、FORALL语句六、子程序:语句函数,内部子程序,调用子程序时的虚实结合:形参为数组、非定界数组、子程序名、星号,递归子程序,外部子程序,纯子程序,逐元子程序七、派生数据类型与结构体八、指针与动态链表九、文件:存取方式,基本操作语句,各类文件的读写操作十、接口、模块十一、公用区、存储关联、数据块子程序十二、绘图:坐标系、设置图形颜色、创建图形程序/ 常用过程:设置线型、绘一像素点、设置当前位置、绘直线、绘弧线、绘矩形、绘多边形、绘制扇形(圆、椭圆)/ 文字信息的显示附/录:标准函数与标准子例行程序一、基础部份1-1 FORTRAN 95 应用程序的创建与运行创建或运行FORTRAN 95程序必须在Microsoft Developer Studio平台上进行。

尽管程序文本及相关文件的编辑可以在任一文本编辑器上进行,然后再拷到Studio的文档窗口中。

但最好还是一开始就进入Studio环境。

创建FORTRAN 95 程序的步骤大致如下:1)启动Microsoft Developer Studio可以通过不同方式运行dfdev.exe程序以启动Microsoft Developer Studio[开始] \ Compaq Visual Fortran 6 \ Developer Studio \ dfdev.exe:或……\CVF66 \\MSDEV98\dfdev.exeMicrosoft Developer Studio的界面如下图所示:文档窗口工作空间窗口输出窗口2)建立工作空间(WorkSpace)工作空间(WorkSpace)对应着windows资源管理器的一个文件夹。

从菜单栏“File”\“New”\ 在弹出的“New”窗口选“WorkSpace”卡,在“Location”栏指定保存工作空间的位置(即工作空间的上一层文件夹);在“WorkSpace Name”栏指定工作空间名称。

建立完工作空间即生成工作空间文件*.dsw3)建立项目(Project)项目是工作空间的下一层文件夹,一个项目只能保存一个主程序及其可执行文件(.exe文件)以及相应的若干辅助文件,如外部子程序、数据文件、说明文件等。

从菜单栏“File”\“New”\ 在弹出的“New”窗口选“Project”卡,在列表中选“Fortran Console Application(Fortran 应用程序)”;填写Project Name(项目名称,即文件夹名) 与“Location”(默认为工作空间);选取单选钮“Add to current WorkSpace”(将该项目添加到当前工作空间)建立完项目即生成项目文件*.dsp4)编辑程序文本无论是程序的源文件还是如数据文件或说明文件等相关的文本虽然可以在任一文本编辑器中进行编辑,但最好是在这个Studio平台上编辑。

从菜单栏“File”\“New”\ 在弹出的“New”窗口选“Files”卡。

在列表中选“fortran Free Format Source File(Fortran 自由格式源文件)”。

钩选“Add to project”;在“File”栏填入文件名;在“Location”栏默认是项目地址。

Fortran 95的源文件扩展名为.f90。

◆若是编辑数据文件或说明文件则可在“New”窗口的“Files”卡的列表中选“Text File”,或者在“New”窗口选“Other Documents”卡建立其他类型的文档。

5)编译、连接生成可执行文件(.exe文件)源程序文件编辑完成后要进行编译,此时系统将对源程序进行语法检查,若有错误将在输出栏显示相关信息,此时可按功能键F4还可提供更详细的信息。

编译通过后即生成后缀为.obj的目标文件。

当本项目所有的程序都通过编译后即可进行连接生成可执行文件(.exe)。

进行编译、连接、执行的指令可通过下表所列方法发出:编译连接执行通过菜单Build--- Compile Build Execute击工具栏按钮(Compile)(Build)(Execute Program)使用功能键Ctrl+F7 F7 Ctrl+F51-2 FORTRAN 95所用的字符:FORTRAN 95中使用的英文字母除字符串外,均不区分大小写。

所有名称均须用英文字母起头,后面可跟着总数不超过31个字符的英文字母、数字、下划线。

关键字也可以作为变量、数组、函数、程序等实体的名称。

一个命令行允许编写132个字符,可以书写多条语句,各语句间以分号‘;’分隔。

长语句可以分行,以‘&’为续行符。

前导行的末尾必须有‘&’号,后续行行首可以有‘&’号也可以没有。

‘!’为注释符,可以出现在一行的任意位置。

注释符后的所有字符都是注释文本,注释文本可以包括汉字在内的任何字符。

◆符号说明<……> 必须填入尖括号中指定的相应内容[……] 可以填入也可以不填入在方括号中指定的内容选项1 | 选项2 | 选项3 |…可以有选择地填入某一选项{……} 可重复地按花括号中指定格式填入相应内容1-3 变量类型及其声明变量未经声明即认为遵从I-N规则,即:以变量名以字母I、J、K、L、M、N开头的均默认为4字节整型变量,其他的为4字节实型变量。

下面的隐式声明语句将取消I-N规则:IMPLICIT NONE1)隐式声明语句:IMPLICIT <隐式声明表><隐式声明表>=<类型名称>(<字母>{[,|-]<字母>}){,<类型名称>(<字母>{[,|-]<字母>})<类型名称>=Integer|Real|Logical|Complex|Character◆圆括号‘(’、‘)’本身为语法成分,方括号对‘[……]’为可选项,花括号对’{……}’为可重复的可选项。

例:implicit real(a,s,i-k),integer(p,q,r),character(c) 定义了以a,s,i,j,k为首字母的变量为单精实型;以p,q,r为首字母的变量为4字节整型;以c为首字母的变量为字符型。

◆隐式声明语句应放在所有声明语句及可执行语句之前。

2)显式声明语句<变量类型> <变量名>[{,变量名} ]例: real name1,name2; real*8 res1声明name1、name2 为单精(4字节)实型变量,res1为双精(8字节)实型变量。

◆显式声明语句的优先级高于隐式声明。

3)整型变量Integer [(n)|(kind=n)| *n] [::] <变量名表> n—kind值<变量名表> = <变量>[=<变量值>][{,<变量>[=<变量值>]}]Kind取值:1,2,4,8,缺省值为4。

◆有双冒号‘::’的声明语句可同时进行赋值,否则不能进行赋值。

例: integer*4::c1, c2, b1=89, b2=754)实型变量REAL [(n)|(kind=n)| *n] [::] <变量名表> n—kind值<变量名表> = <变量>[=<变量值>][{,<变量>[=<变量值>]}]Kind取值:4,8,缺省值为4。

Kind=4为单精度;kind=8为双精度。

5)复数虚、实部要用一对圆括号括起来。

表示为:(<实部>,<虚部>)。

声明复型变量的语法为:COMPLEX [(n)|(kind=n) [::] <变量名表> n—kind值<变量名表> = <变量>[=<变量值>][{,<变量>[=<变量值>]}]Kind取值:4,8,缺省值为4。

Kind=4为单精度,单精复数占用8字节;kind=8为双精度,双精复数占用16字节。

例:complex*4::cox=(38.8745, -8563.98) , ca6)字符型变量CHARACTER [(k)|(len=k)| *k] [::] <变量名表> k—字符串长度,默认为1<变量名表>=<变量名>[*k][= 字符串]例:character*4 a,b,c*6 定义了a,b两个字符变量的长度为4,C的长度为6character*4::a,b=’hd7g’,c*6 对变量b进行了赋值。

7)逻辑型变量LOGICAL [(n)|(kind=n)] [::] <变量名表> n—kind值,可取1,2,4,8,默认为4。

逻辑型变量的取值范围只有.TRUE. 与.FALSE. 两个值。

.TRUE. 等价于-1;.FALSE.等价于0。

已定义的逻辑变量其默认值为.FALSE.。

1-4 常量的声明: 常量有整型、实型、复型、字符型、逻辑型。

常量的类型像变量一样,可以隐式声明或显式声明。

1-4-1 显式声明<类型>,PARAMETER::<名称>=<表达式> [,<名称> = <表达式>]例:integer,parameter:: a=2, b=3logical,parameter:: L1=.True., L2=.false.1-4-2 隐式声明PARAMETER <名称>=<表达式>[{,<名称>=<表达式>}]例:parameter pi = 3.1415926, num=861-5 表达式与运算符返回目录1-5-1 算术表达式与运算符的。

其结果也是高级类型及相应的高KIND值的。

在赋值时,若左侧变量与右侧表达式的类型不同,则先将表达式值转换为左侧变量的类型,再赋值给左侧的变量。

实型数截去小数转换为整型数。

1-5-2 字符表达式与运算符求子串操作符:(I:j)——截取从第I 个字符到第j个字符的子串。

i,j为整型表达式。

连接操作符://1-5-4 逻辑表达式与运算符.not.(非,单目) .and.(与).or.(或).xor.(异或).eqv. (相等).neqv.(不等)返回目录二、输出与输入语句返回目录2-1 表控输入输出语句表控输入:READ* [, <输入项列表>]输入项列表中各项以逗号分隔。

相关主题