FORTRAN90程序设计
合集下载
FORTRAN90程序设计1[1]
![FORTRAN90程序设计1[1]](https://img.taocdn.com/s3/m/4d51e420bcd126fff7050be5.png)
程序设计举例
算法
算法是计算机软件中的一个基本概念,它是对解决实际问题的方法和步
骤的描述。设计算法是程序设计的核心,也是编写程序的基础。
正确的算法有以下几个显著特点:
(1)有穷性(flniteness)。 (2)确定性(certainty)。 (3)有效性(effcctivencss)。 (4)有零个或多个输入(input)。 (5)有一个或多个输出(output)。
简单的FORTRAN90程序分析
(6)空格并不是随处都可以使用的,一个像关键字、变量和常量名以 及操作符等的字符,其内部是不能使用空格的,空格会使字符失去其原 有的含义。 (7)FORTRAN90的注释语句是以感叹号为标志的,一行中感叹号后的 所有字符都被编译器作为注释语句而忽略。注释语句可以单独占一行, 也可在程序的其他语句后面出现。在FORTRAN90中,空行被作为注释 语句。 (8)如果遇到一条语句的长度超过了FORTRAN90所允许的行最大长度, 需要写成几行,FORTRAN90提供了一个续行符 ( & ) ,通过在语句末尾 添加续行符,编译器就会把下一行作为续行来处理。如果是把一个如关 键字这样的字符分成两行,那么需要在下行语句的开头再加一个续行符。
CHARACTER ( LEN = 10 ) :: STRING 子字符串是字符串中的若干个连续字符的集合。子字符
CHARACTER (LEN = 5 ) :: SUBSTRING 串的表示方法如下: CHARACTER (LEN = 1 ) :: CHAR STRING=’JANEJORDE’ 字符串变量名([FIRST-POSITION] : [END-POSITION]) ! SUBSTRING的值为“JANE” SUBSTRING=STRING ( :5 ) 缺省的开始位置是1,缺省的结束位置是字符串的长度。 SUBSTRING=STRING ( 5:6 ) ! SUBSTRING的值为“J” 如果开始位置大于结束位置则子字符串为空,即它的长 SUBSTRING=STRING ( 3:7 ) ! SUBSTRING的值为“NEJO” N=7 度为0。 CHAR=’ABCDEFGHIJK’ ( N:N ) ! CHAR的值为“G”
FORTRAN90用法总结

FORTRAN90用法总结
Fortran90是Fortran的最新标准程序设计语言,它是在Fortran77
基础上的新增功能,支持面向对象的功能,同时也支持可变参数,数据语
句和开发语句,使其具有更高的强大功能。
它也支持宏的使用,以帮助程
序编写者更好的实现一些高级程序功能,以提高程序性能,提高程序易用性。
下面将重点介绍Fortran90的五大用法。
第一,利用Fortran90进行函数的编写。
Fortran90的函数可实现参
数的多次组合,通过对用户函数的调用,就可达到想要的结果,而不用写
复杂的循环程序,这有助于提高程序的可管理性,降低程序的出错率。
第二,通过宏的使用来完成Fortran90的程序编写。
宏语言有助于程
序的复杂编写和优化,通过它可以大大提高程序的性能,节约程序的开发
时间,从而提高程序的可用性。
第三,Fortran90的数组操作功能。
Fortran90支持数组的多维操作,能够进行大数组操作,从而编写出简洁的程序,节约存储空间,提高程序
的执行效率。
第四,Fortran90的指针操作功能。
它可以完成复杂数据的指针操作,以实现数据的重排、排序、和传输,可以让程序编写者有效地运用指针操作,提高程序性能和稳定性。
最后,Fortran90的结构化编程功能。
引言

《程序设计语言(FORTRAN90)》前言
引言 选用教材 选用教材 教学安排 成绩评定 上机要求 《FORTRAN90程序设计》课是计算机基础教学第二层次的 FORTRAN90程序设计》 程序设计 一门重要课程,也是有关工科专业的一门必修课程 必修课程。 一门重要课程,也是有关工科专业的一门必修课程。 随着计算机科学技术的飞速发展, 随着计算机科学技术的飞速发展,计算机素质已成为高校 学生综合素质的重要组成部分。在当今乃至未来, 学生综合素质的重要组成部分。在当今乃至未来,如果不能熟 练使用计算机进行学习、工作、生活和思维, 练使用计算机进行学习、工作、生活和思维,就会严重影响其 自身的专业发展,就会面临被社会淘汰的威胁。 自身的专业发展,就会面临被社会淘汰的威胁。目前社会上的 计算机热经久不衰就是明证。 计算机热经久不衰就是明证。 各高校对计算机基础教学非常重视,把计算机、数学、 各高校对计算机基础教学非常重视,把计算机、数学、外 语确定为培养面向21世纪高素质人才的重要组成部分。 21世纪高素质人才的重要组成部分 语确定为培养面向21世纪高素质人才的重要组成部分。我院对 计算机基础教学工作非常重视, 计算机基础教学工作非常重视,长期实行三个层次的计算机基 础教学模式: 础教学模式: 1.第一层次: 1.第一层次:计算机文化基础 第一层次 2.第二层次:计算机技术基础(程序设计语言) 2.第二层次:计算机技术基础(程序设计语言) 第二层次 3.第三层次:计算机应用基础(CAD、数据库等) 3.第三层次:计算机应用基础(CAD、数据库等) 第三层次
1.1 程序设计语言/上机要求 程序设计语言/
《程序设计语言(FORTRAN90)》课
苏州科技大学计算中心
04/05第一学期 第一学期
程序设计语言/引言设计语言(FORTRAN90)》课
引言 选用教材 选用教材 教学安排 成绩评定 上机要求 《FORTRAN90程序设计》课是计算机基础教学第二层次的 FORTRAN90程序设计》 程序设计 一门重要课程,也是有关工科专业的一门必修课程 必修课程。 一门重要课程,也是有关工科专业的一门必修课程。 随着计算机科学技术的飞速发展, 随着计算机科学技术的飞速发展,计算机素质已成为高校 学生综合素质的重要组成部分。在当今乃至未来, 学生综合素质的重要组成部分。在当今乃至未来,如果不能熟 练使用计算机进行学习、工作、生活和思维, 练使用计算机进行学习、工作、生活和思维,就会严重影响其 自身的专业发展,就会面临被社会淘汰的威胁。 自身的专业发展,就会面临被社会淘汰的威胁。目前社会上的 计算机热经久不衰就是明证。 计算机热经久不衰就是明证。 各高校对计算机基础教学非常重视,把计算机、数学、 各高校对计算机基础教学非常重视,把计算机、数学、外 语确定为培养面向21世纪高素质人才的重要组成部分。 21世纪高素质人才的重要组成部分 语确定为培养面向21世纪高素质人才的重要组成部分。我院对 计算机基础教学工作非常重视, 计算机基础教学工作非常重视,长期实行三个层次的计算机基 础教学模式: 础教学模式: 1.第一层次: 1.第一层次:计算机文化基础 第一层次 2.第二层次:计算机技术基础(程序设计语言) 2.第二层次:计算机技术基础(程序设计语言) 第二层次 3.第三层次:计算机应用基础(CAD、数据库等) 3.第三层次:计算机应用基础(CAD、数据库等) 第三层次
1.1 程序设计语言/上机要求 程序设计语言/
《程序设计语言(FORTRAN90)》课
苏州科技大学计算中心
04/05第一学期 第一学期
程序设计语言/引言设计语言(FORTRAN90)》课
FORTRAN90程序设计1、2、3

[例2-1]
PROGRAM H_TO_C !Given the F temprature,to calculate the Centigrade REAL::TC,TH READ *,TH TC=5*(TH-32)/9 PRINT *,TH,TC END PROGRAM H_TO_C
[例2-2] PROGRAM CAL_M_SUM IMPLICIT NONE INTEGER::N,M REAL::T,A N=0;T=0 PRINT *,'Input number of data:' READ *,M DO READ *,A T=T+A ;N=N+1 IF(N>=M)EXIT END DO PRINT *,T END PROGRAM CAL_M_SUM
输出结果S
[例1-1]N-S图
FORTRAN 语言的发展 源程序及其构成
语言元素
程序单元概念
FORTRAN 是 FORmula TRANslation 的缩写 1954年 1978年 第一个FORTRAN文本的提出 推出FORTRAN77
1991年
FORTRAN90问世
几个简单的FORTRAN90程序 FORTRAN90程序的构成
PROGRAM CAL_FACTOR IMPLICIT NONE INTEGER::FACTOR,S=0,I DO I=4,8 S=S+FACTOR(I) END DO PRINT *,'S=',S END PROGRAM CAL_FACTOR
FORTRAN90程序的构成
1.FORTRAN90是分块形式的程序,一个程序含有 多个程序单元,每个程序有且仅有一个主程序单元。 2.各程序单元由若干行构成。程序行主要有: 说明语句行 可执行语句行 注释行(用!开始)
fortran99

9.1 派生类型的定义
说明 – 访问说明形式有PRIVATE、PUBLIC等, 访问说明形式有PRIVATE、PUBLIC等, 类型名为所定义派生类型的名称,它应符合 FORTRAN90标识符定义的规则。 FORTRAN90标识符定义的规则。 – 类型名禁止与任何固有类型的名字相同,也 不能与任何其它可访问的派生类型名相同。 – 派生类型定义中的成员类型,可以是前面介 绍过的固有类型、数组类型,也可以是一个 已定义的派生类型,还可以是指针类型。 – 成员列表可以包含一个或多个成员标识符, 各成员标识符之间用逗号隔开。
9.3.2 派生类型变量的赋值与运算
派生类型变量初始化
TYPE (STUDENT)::ZHANG=S_T(25, ‘YANG', ADD_T(856,‘HEFEI‘ ADD_T(856,‘HEFEI‘),(/87,93,82/) )
9.3.2 派生类型变量的赋值与运算
⒊ 同类型变量之间相互赋初值 – 对于同一派生类型的两个变量,可以进 行相互赋值 举例
FORTRAN90 语言程序设计
第9章 派生类型
06:16:22
主要内容
派生类型的概念与定义 派生类型变量的成员引用 派生类型的输入输出 派生类型数组及其应用
9.1 派生类型的概念和定义
概念:由用户根据实际的需要,将不同类型的 概念:由用户根据实际的需要, 数据组合成一个有机的整体的数据结构称为派 生类型。 生类型。 定义的一般形式 [,访问说明 访问说明[ ]]类型名 TYPE [,访问说明[ :: ]]类型名 类型::类型:: 成员列表 …… 类型:: 类型:: 成员列表 TYPE[类型名 类型名] END TYPE[类型名]
TYPE(STUDENT)::ZHANG, WANG
FORTRAN90程序设计教程 第1章 FORTRAN程序设计基础

例1.1 求
其中
2
x y u x y
2
a b x 2 2 a b
ab ab
a b a b y 4 a b
ab ab
这一题的算法并不难,可写成: (1)从键盘输入a、b的值。 ab x a b ,y (2)如果a<b,则 ab , 4 x a b , y 否则 。 ab (3)计算u的值。 (4)输出u的值。
3. N-S图
由于传统流程图的缺点,1973年美国学者 I.Nassi和B.Shneiderman提出了一种新的流程图工 具─N-S图。N-S图以三种基本结构作为构成算法 的基本元素,每一种基本结构用一个矩形框来表 示,而且取消了流程线,各基本结构之间保持顺 序执行关系。N-S图可以保证程序具有良好的结 构,所以N-S图又叫做结构化流程图。
例1.3的算法:
(1)输入m和n的值。 (2)求m除以n的余数r。 (3) 若r=0 ,则转至第 (6) 步,否则执行第 (4) 步。 (4)n→m,r→n。 (5)转第(2)步。 (6)输出n。
算法的五个特征:
(1) 有穷性。算法中执行的步骤总是有限次数的, 不能无止境地执行下去。 (2) 确定性。算法中的每一步操作必须具有确切 的含义,不能有二义性。 (3) 有效性。算法中的每一步操作必须是可执行 的。 (4) 要有数据输入。算法中操作的对象是数据, 因此应提供有关数据。 (5) 要有结果输出。算法的目的是用来解决一个 给定的问题,因此应提供输出结果,否则算法 就2没有实际意义。
1.2.2 算法的描述
算法的描述有许多方法,常用的有:自 然语言、一般流程图、N-S图等。前面例 1.1~例1.3的算法是用自然语言──汉语描述 的,其优点是通俗易懂,但它不太直观, 描述不够简洁,且容易产生二义性。在实 际应用中常用流程图表示算法。
Fortran90 第10章

2,file='my2.out'
(2,*),x
例:已知正切函数的一种展开式为
8x tg x 2 2 2 n 0 2n 1 4 x
将上式右端编写成外部过程。当级数通 项的绝对值小于eps=1E-10时停止计算。 在同一行上,x用F6.3,级数之和用 F10.5格式输出。用于计算的数据存放在 文件MYF2.DAT中,从该文件输入的x值 为: 0.358 0.593 -0.665 0.785 0.933 程序运行结果存于文件MYF2.OUT中。
写文件:从键盘输入5个数,写入文件
program main integer::x,i open(1,file='my1.dat') do i=1,5 read *,x write(1,*),x enddo end
读文件:将文件内容读出显示
program main integer::x,i open(1,file='my1.dat') do i=1,5 read (1,*),x print *,x enddo end
Visual Fortran 90 程序设计
第2 对文件的基本操作
10.4 直接文件的存取
10.5 INQURE语句
10.3 顺序文件的存取
10.6 无格式文件
一、引入文件的目的: 便于输入、输出数据的保存与维护
二、程序结构的变化:文件要先打开,再输入、输出
主程序:PROGRAM MAIN 说明部分
读写文件:从my1.dat中读出数据写入my2.out文件
program main integer::x open(1,file='my1.dat') open( ) do i=1,5 read (1,*),x print *,x write enddo end
FORTRAN90程序设计9

几点应该注意
(8) 一个辅程序中的接口块不允许含有一个被该辅程序定义的过程的接 口体。一个接口块中可以有多个接口体。
(9) 接口块还可用来说明一个外部过程或虚过程,并为之提供显式的调 用接口,这比EXTERNAL语句提供了更多的信息,因而也提高了程序 的可读性。例如:下面是没有类属说明的接口块:
接口块能将子程序中所需的信息精确的拷贝过来,通过它可 以为主调程序和被调用子程序指明一个显式接口。
几点应该注意
(1) 接口块以INTERFACE语句开始,以END INTERFACE 语句结束,块内只能取被调用过程中的说名部分,不允许出 现任何可执行语句。
(2) 类属说明的形式为:
类属名 或OPERATOR(定义的运算符) 或ASSIGNMENT(=) 其中,类属名用于定义类属过程、OPERATOR用于定义运算
USE语句
USE语句的最简单形式为: USE 模块名1,模块名2,……,模块名N
这条语句提供了对模块的所有公共的有名数据对象、派生类型、接口块、 过程等的访问。
在作用域单位内,USE语句必须出现在其他说明语句之前。 如果需要对两个或两个以上的模块进行访问,可能会在不同的模块中用
到了相同的名字,因此允许USE语句对被访问的对象重新命名,以解决 局部对象和模块中访问对象之间的名字的冲突问题。要重新命名时, USE语句应具有下列形式: USE 模块名,更名表 其中,更名表的形式为: 局部名=>使用名,局部名=>使用名,…… 例如:
END FUNCTION LOG_PLUS_LOG
括号时必须的,因为运算符“+”
END MODULE LOGICAL_PLUS PROGRAM TEST_LOGICAL_PLUS