FORTRAN95 语法基础 - 图文

发布时间 : 星期一 文章FORTRAN95 语法基础 - 图文更新完毕开始阅读

FORTRAN 95 语法基础

目录: 一、应用程序的创建与运行/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 \\VB.com\\MSDEV98\\dfdev.exe Microsoft Developer Studio的界面如下图所示:

文档窗口

工作空间窗口

输出窗口

2) 建立工作空间(WorkSpace)

工作空间(WorkSpace)对应着windows资源管理器的一个文件夹。

从菜单栏 “File”\\“New”\\ 在弹出的“New”窗口选“WorkSpace”卡,在“Location”栏指定保存工作空间的位置(即工作空间的上一层文件夹);在“WorkSpace Name”栏指定工作空间名称。 建立完工作空间即生成工作空间文件 *.dsw 3) 建立项目(Project)

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

从菜单栏 “File”\\“New”\\ 在弹出的“New”窗口选“Project”卡,在列表中选“Fortran Console Application(Fortran 应用程序)”;填写Project Name(项目名称,即文件夹名) 与 “Location”(默认为工作空间);选取单选钮“Add to current WorkSpace”(将该项目添加到当前工作空间) 建立完项目即生成项目文件 *.dsp 4) 编辑程序文本

无论是程序的源文件还是如数据文件或说明文件等相关的文本虽然可以在任一文本编辑器中进行编辑,但最好是在这个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) 使用功能键 Ctrl+F7 (Build) F7 (Execute Program) Ctrl+F5 编译 Compile 连接 Build 执行 Execute

1-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 NONE

1) 隐式声明语句:

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=75

表:整型变量的存储开销及取值范围

kind值 1 2 4 8 字节数 1 2 4 8 取值范围 有符号 -128~127 ;无符号 0~258 有符号 -32768~32767; 无符号 0~65535 有符号 -2147483648~2147483647 无符号0~4294967295 有符号 -9223372036854775808~9223372036854775807

4) 实型变量

REAL [(n)|(kind=n)| *n] [::] <变量名表> n—kind值

<变量名表> = <变量>[=<变量值>][{,<变量>[=<变量值>]}]

Kind取值:4,8,缺省值为4。Kind=4为单精度;kind=8为双精度。 表:实型变量的存储开销及取值范围

kind值 字节数 取值范围 -3.40282347E+38 ~ -1.17549435E-38, 0, +1.17549435E-38 ~ +3.40282347E+38 精度 7位有效数字 4 8 4 8 -1.7976931348623158D+308 ~ -2.2250738585072013D-308, 0, 15位有+2.2250738585072013D-308 ~ +1.7976931348623158D+308 效数字 5) 复型变量

复数虚、实部要用一对圆括号括起来。表示为:(<实部>,<虚部>)。 声明复型变量的语法为:

COMPLEX [(n)|(kind=n) [::] <变量名表> n—kind值

<变量名表> = <变量>[=<变量值>][{,<变量>[=<变量值>]}]

Kind取值:4,8,缺省值为4。Kind=4为单精度,单精复数占用8字节;kind=8为双精度,

双精复数占用16字节。

例: complex*4::cox=(38.8745, -8563.98) , ca 6) 字符型变量

CHARACTER [(k)|(len=k)| *k] [::] <变量名表> k—字符串长度,默认为1 <变量名表>=<变量名>[*k][= 字符串]

例: character*4 a,b,c*6 定义了a,b两个字符变量的长度为4, C的长度为6

character*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=3

logical,parameter:: L1=.True., L2=.false. 1-4-2 隐式声明

PARAMETER <名称>=<表达式>[{,<名称>=<表达式>}]

例: parameter pi = 3.1415926, num=86

1-5 表达式与运算符 返回目录 1-5-1 算术表达式与运算符 算术运算符及其优先级

运算符 ** *,/ 单目 +,- 双目 +,- 幂 乘、除 加、减 功能 2 3 4(低) 优先级 1(高) 结合规则 右结合 左结合 无结合规则 左结合 ? 当运算式中含有不同类型或KIND值的操作数时,低KIND值或低级类型的操作数要转换为高级的。其结果也是高级类型及相应的高KIND值的。在赋值时,若左侧变量与右侧表达式的类型不同,则先将表达式值转换为左侧变量的类型,再赋值给左侧的变量。实型数截去小数转换为整型数。

1-5-2 字符表达式与运算符 求子串操作符:(I:j)—— 截取从第I 个字符到第 j个字符的子串 。i,j为整型表达式。 连接操作符: //

1-5-3 关系表达式运算符 运算符 功能 操作数类型 .LT. 或 < 小于 .LE. 或 <= 小于或等于 .EQ. 或 = = 等于 .NE. 或 /= .GE. 或 >= 不等 大于或等于 .GT. 或 > 大于 实、整、字符 实、整、字符 实、整、复、实、整、复、实、整、字符 实、整、字符 字符 字符 1-5-4 逻辑表达式与运算符

.not.(非,单目) .and.(与).or.(或) .xor.(异或) .eqv. (相等).neqv.(不等)

表:逻辑运算符的功能

联系合同范文客服:xxxxx#qq.com(#替换为@)