Fortran 95内在过程

合集下载

fortran95教程12

fortran95教程12

第三篇计算任务的剖分与组合从前,有两个表匠,一个叫霍拉,一个叫坦普斯。

两人都很受顾客的欢迎,他们各自的工场中的电话总是响个不停,因为老有新主顾上门。

不过,霍拉发了大财,坦普斯却越来越穷,最后连店铺都给亏没了。

这是为什么呢?他们做的表都是由1000个零件组成。

坦普斯做表的方式是连续地把一只表从头做到尾,如果尚未装完一只表就不得不中途放下(比如说要去接客户电话了),那么装了一半的表就会立刻散掉,又得从头装起。

顾客们越喜欢他的表,他的电话就越多,也就越难得到足够的不被打断的时间来装成一只表。

霍拉做的表并不比坦普斯的简单。

但他经过设计,用十个零件装成一个组件。

十个组件又可装成更大的组件。

十个大组件构成的系统就是整只表。

因此,当霍拉不得不放下装了一部分的表去接电话时,他只损失了一小部分活儿,他装表所用工时只是坦普斯所用工时的一个零头。

…在这个寓言里面,我的中心思想是,具有复杂性的系统最好是采取层级结构的形式,而层级结构有一些与系统的具体内容无关的共同性质。

我将论证说,层级结构是构造复杂事物的建筑师们所使用的主要结构方式之一。

----H.Simon[1]《The Sciences of the Artificial》一个计算任务可以很简单,使用几个语句进行描述,执行之后就可以得到结果,但是如果说我们人类使用计算机只是进行那种简单的计算,显然是浪费。

而复杂的计算任务,则和任何复杂事物一样,具有非常庞大的内部结构,人类解决复杂问题的一般思路,就是把一个大的结构分解为相对比较小的结构,如果可能就一直分解到非常简单的结构,分别解决了那些简单结构的问题,按照我们分解大问题的逻辑,也就解决了开始的复杂问题。

如何运用程序语言来表达这个解构的思路,就是本篇我们要讨论的主要论题。

首先我们讨论一个FORTRAN程序所可以具有的结构,按照这个语言对程序结构模本的规定,我们就可以规划相应的针对计算任务的问题解构方式。

所谓FORTRAN程序的结构,就是一个FORTRAN程序可以包含那些程序单位,然后这些单位又必须如何组装在一起。

fortran95的使用方法5

fortran95的使用方法5

第14章固有过程固然,我们已经能够做到运用FORTRAN 95来描述任何的计算任务,因为FORTRAN 95所提供的数据类型,固有运算,派生类型,自定义运算,以及构造函数与子例行程序的方法,都足以使得我们应付任何的计算问题。

不过FORTRAN 95标准还提供了大量的科学计算的常规计算与函数,都可以作为固有过程直接使用,而不需要我们自己来编写源码。

这就好像对于一个汽车装配师,除了给他提供螺栓,轴承之类的标准零件,还给他提供更高层次的标准配件,例如各种型号的发动机,电机之类。

因此熟练掌握固有过程,将给我们带来如虎添翼的感觉。

FORTRAN 95把固有过程作为标准来提出,就意味着任何的FORTRAN 95的编译器实现版本,都必须能够提供它们:115个固有过程,其中包括109个固有函数和6个固有子例行程序。

当然不排除很多的编译器还提供额外的固有过程。

正是由于固有过程是属于FORTRAN 95的标准内容,因此和固有运算,例如+,一样,总是“随叫随到”,无论在哪个程序单位内部,只要使用某个固有过程的名称,就等于调用了该固有过程。

不过,如果它的名称被用户定义的函数或子例行程序所“侵占”,那么在下面的情况下,被调用的将是用户自定义的函数或子例行程序而不是固有过程:●该自定义函数或子例行程序的界面是显式的;●该自定义函数或子例行程序出现在EXTERNAL语句当中;●该自定义函数属于语句函数。

当然上述的名称被侵权的有效范围只是该自定义函数或子例行程序的作用域。

相应的,固有过程也就只能在下面的情形下夺回被侵占的名称:●不存在使用该名称的语句函数;●它的名称出现在INTRINSIC语句当中;●相应的用户定义的过程的界面是隐式的。

例如在一个模块或一个内部过程里面,由于它的界面是显式的,那么固有过程的名称就能够被侵占,除非固有过程的名称出现在一个有效的INTRINSIC语句当中。

下面我们主要讨论固有过程的按照功能的分类,以及每个种类的固有过程所能够完成的计算任务。

Fortran95 简介-全文版

Fortran95 简介-全文版

Fortran95简介-全文版By陈鲸太FORTRAN的演进FORTRAN的起源,要追溯到1954年IBM公司的一项计划。

由JOHN BACKUS 领导的一个小组,尝试着在IBM 704计算机上面发展一套程序,它可以把使用接近数学语言的文字,翻译成机械语言。

这个计划在刚开始并不被大家看好,但他们在1957年交出了成果,也就是第一套FORTRAN编译器,FORTRAN语言也就因此诞生了。

FORTRAN语言的执行效率普遍的令各界满意,它证明了这项计划的可行性,也成为第一个被广泛使用的高级语言。

FORTRAN的名字来自于英文的FORMULA TRANSLATOR这两个字,而这两个字恰是数学公式翻译器的意思。

旧版的FORTRAN77是在1978年由美国国家标准局(ANSI)所正式公布的,之后改版有1992年提出的FORTRAN90以及1997年的FORTRAN95,本文是为了FORTRAN 95所撰写。

编译器简介1、VISUAL FORTRANVISUAL FORTRAN一开始是起源于MICROSOFT的FORTRANPOWERSTATION 4.0,这套工具后来卖给DIGITAL公司来继续发展,下一个版本称为DIGITAL VISUAL FORTRAN 5.0,DIGITAL后来被COMPAQ合并,所以接下来的6.0及6.5版就称为COMPAQ VISUAL FORTRAN。

而COMPAQ目前又跟HP合并,也许下一个版本会称为HP VISUALFORTRAN。

VISUAL FORTRAN被整合在一个叫作MICROSOFT VISUAL STUDIO的图形接口开发环境中,VISUAL STUDIO提供一个统一的使用接口,这个接口包括文书编辑功能,PROJECT的管理、除错工具等等,所以在使用上其实跟上学期的VISUAL C++满类似的,同学们上课用过VISUAL C++,对VISUAL FORTRAN应该不会陌生。

第1章 Fortran95概述

第1章 Fortran95概述


四、Fortran95编译环境与上机步骤
明德笃志、博学创新
学再学习的能力、学愿学习的习惯
三、Fortran语言特点、程序设计引例(看书)
【例1-1】输入三个数据,计算它们的算数平均值 和几何平均值。
分析:假设用a,b,c分别表示三个数,在数学 上,要计算这三个数的算数平均值和几何平均值, 采用以下公式:
明德笃志、博学创新
学再学习的能力、学愿学习的习惯
一、程序设计、程序设计语言
【例1-1】输入三个数据,计算它们的算数平均值 和几何平均值。
分析:假设用a,b,c分别表示三个数,在数学 上,要计算这三个数的算数平均值和几何平均值, 采用以下公式:
算术平均值 = a + b + c 3
几何平均值 = 3 a × b × c
算法设计是程序设计的主要步骤。算法是指为 解决给定问题而需要计算机去一步一步执行的有穷 操作过程的描述。
一个算法必须具有以下特征: (1)有穷性 (2)确定性 (3)可执行性 (4)数据输入 (5)数据输出
明德笃志、博学创新
学再学习的能力、学愿学习的习惯
一、程序设计、程序设计语言
从根本上讲,程序就是用计算机语言描述的算
力和对基础知识的良好掌握。
明德笃志、博学创新
学再学习的能力、学愿学习的习惯
一、程序设计、程序设计语言
程序的处理对象是数据,每个数据都有一定的 特性和关联,因此为了更好的处理和操作,要研究 数据,对数据进行有规律的组织和构造。在算法设 计中,数据的组织和构造都有其基本方式和规律, 这种组织和构造方式称为数据结构。
明德笃志、博学创新
学再学习的能力、学愿学习的习惯
一、程序设计、程序设计语言

第1章 Fortran95概述

第1章  Fortran95概述

基本结构不一定只限于以上三种,凡满足以上四个特点的 结构都可以作为基本结构。如:多分支选择结构。
什么是程序设计?
从根本上讲,程序就是用计算机语言描述的算法。算
法是程序设计的核心和基础。
算法构造的思维方法与一般数学系统的思维方法有所 不同,理解、熟悉和习惯算法构造的思维方法,是学习计 算机程序设计的基本内容、主要难点与重点。从某种意义 上说,算法设计能力的培养实际上就是对合理进行计算能 力的培养,而要发现这种合理性,寻得“简捷算法”,首 先就必须要有很好的观察能力和对基础知识的良好掌握。
2.
上机步骤
从原理上讲,Fortran程序上机运行要经过编辑、编
译、连接和运行四个步骤。具体操作如下: (1) 创建工作空间 (2) 建立一个工程(Project)。 (3) 建立源程序文件。 (4) 编译源程序文件 (5) 构建可执行程序
(6) 运行程序
思考题:
求圆锥的体积和表面积
V
h r
程序设计与程序设计语言
通常,完成一项复杂的任务,需要进行一系列的具体 工作。这些按照一定的顺序安排的工作即操作序列,就称 为程序。例如,下面是某一个学校颁奖大会的程序: ① 宣布大会开始
② 介绍出席大会的领导
③ 校长讲话 ④ 宣布获奖名单
⑤ 颁奖
⑥ 获奖代表发言 ⑦ 宣布大会结束
什么是程序?
程序是计算机为完成某一个任务所必需执行的一
据设备公司(Digital Equipment Corp, 简称DEC)合 作研究,开发和推出了Digital Visual FORTRAN 5.0, 1998年1月,DEC与Compaq公司合并,DEC成为Compaq公 司的全资子公司,其后又推出Compaq Visual Fortran

Fortran95简介-全文版

Fortran95简介-全文版

Fortran95简介-全文版Fortran95簡介-全文版By陳鯨太FORTRAN的演進FORTRAN的起源,要追溯到1954年IBM公司的一項計畫。

由JOHN BACKUS 領導的一個小組,嘗試著在IBM 704電腦上面發展一套程式,它可以把使用接近數學語言的文字,翻譯成機械語言。

這個計畫在剛開始並不被大家看好,但他們在1957年交出了成果,也就是第一套FORTRAN編譯器,FORTRAN語言也就因此誕生了。

FORTRAN語言的執行效率普遍的令各界滿意,它證明了這項計畫的可行性,也成為第一個被廣泛使用的高階語言。

FORTRAN的名字來自於英文的FORMULA TRANSLATOR這兩個字,而這兩個字恰是數學公式翻譯器的意思。

舊版的FORTRAN77是在1978年由美國國家標準局(ANSI)所正式公布的,之後改版有1992年提出的FORTRAN90以及1997年的FORTRAN95,本文是為了FORTRAN 95所撰寫。

編譯器簡介1、VISUAL FORTRANVISUAL FORTRAN一開始是起源於MICROSOFT的FORTRAN POWERSTATION 4.0,這套工具後來賣給DIGITAL公司來繼續發展,下一個版本稱為DIGITAL VISUAL FORTRAN 5.0,DIGITAL後來被COMPAQ合併,所以接下來的6.0及6.5版就稱為COMPAQ VISUAL FORTRAN。

而COMPAQ目前又跟HP合併,也許下一個版本會稱為HP VISUAL FORTRAN。

VISUAL FORTRAN被整合在一個叫作MICROSOFT VISUAL STUDIO的圖形介面開發環境中,VISUAL STUDIO提供一個統一的使用介面,這個介面包括文書編輯功能,PROJECT的管理、除錯工具等等,所以在使用上其實跟上學期的VISUAL C++滿類似的,同學們上課用過VISUAL C++,對VISUAL FORTRAN應該不會陌生。

FORTRAN95第一章

FORTRAN95第一章

三、流程图 上述算法可以用文字表达,也可以用流程 图来表示。有时用流程图表示算法更有利于 编写程序,可以减少编程过程中的错误。 最简单的流程图也称“框图” 最简单的流程图也称“框图”,即用一个 一 个特定的“ 个特定的“框”代表某些动作,框内写出各 个步 骤,然后用带箭头的线把它们连结起来,以 表示其执行的先后顺序。例如计算平均值的 流程图如图1 流程图如图1-2所示。
1.2.3 FORTRAN程序的组成 FORTRAN程序的组成 一、FORTRAN程序结构 一、FORTRAN程序结构 FORTRAN程序是一种段式结构( FORTRAN程序是一种段式结构(或称 为块结构)。每个FORTRAN程序由一个主程 为块结构)。每个FORTRAN程序由一个主程 序段和若干个子程序段及模块组成。 主程序 段有且仅有一个, 子程序段和模块根据需要 可用零个或多个。每个程序段可以独立编写, 可用零个或多个。每个程序段可以独立编写, 实现不同的功能,程序运行总是从主程序段 开始。每个程序段都有自己的段头语句,但 主程序段的段头语句可以省略。
用高级语言编写程序: 用高级语言编写程序: 高级语言是接近人们使用的自然语言和数 学语言的编程语言,通常说的“程序设计语 学语言的编程语言,通常说的“ 言” 所指的就是这类语言。 用高级语言编写的程序通常称为源程序 用高级语言编写的程序通常称为源程序。 源程序。 计算机不能直接识别和执行源程序,必须把 它们先翻译成机器指令程序,称“ 它们先翻译成机器指令程序,称“目标程 序”, 然后再由计算机执行目标程序。这个“翻译” 然后再由计算机执行目标程序。这个“翻译” 工 作是由一个称为“编译程序”的软件完成的, 作是由一个称为“编译程序”的软件完成的,
1.2.2FORTRAN字符集 1.2.2FORTRAN字符集 “字符集”是指编写程序时所能使用的全部 字符集” 字符 和符号。FORTRAN语言的字符集包括的字符 和符号。FORTRAN语言的字符集包括的字符 及符号有: 26个英文字母:A~Z及a~z(在FORTRAN程 26个英文字母 A~Z及a~z(在FORTRAN程 个英文字母: 序中英文字母不分大小写) 序中英文字母不分大小写) 数字: 数字:0~9 22个特殊符号: : = + - * / ( ) , . ‘ “ ! 22个特殊符号 个特殊符号: % & ; < > ? ¥ _ └┘ 其中的特殊符号除了做为数学运算符号外, 其中的特殊符号除了做为数学运算符号外,还 有其他用法

Fortran中的过程

Fortran中的过程

用)时才能用哑过程。如果要用外部过程名作实元,则过程名必须出现在一个EXTERNAL语句 中,或被该作用范围中的一个类型语句指明具有EXTERNAL属性,或在该作用范围中被一个接口
块INTERFACE声明为一个过程。这就是说,在主调程序中,除了把一个实际存在的过程名作实
元与哑过程名结合外,还需对该实过程名作特别说明,以便让编译系统明白,该实元不是一般 的简单变量,而是一个函数(或子程序),或者用接口块来通知编译系统。
号:函数名()。系统在该位置上返回以该实元为自变量的函数结果值,参加表达式的运算。
例如,下面都是合CTION FUN2()
INTEGER FUNCTION FUN3(A,B)
RECURSIVE FUNCTION FUN4(X,Y,Z)
REAL RECURSIVE FUNCTION FUN5(M,N) RESULT(R_FUN5)
END
/docs/…/Sec6-2.htm
3/18
2011/5/23
Sec6-2
在本例中,函数值是赋给函数名的,如果要将值赋给非函数名的另一结果名,则 FUNCTION hex(n) RESULT(hx) CHARACTER(LEN=8)::hx … hx(j:j)=
子程序名只是用来作标识,不代表任何值。哑元列表是子程序与调用单元之间进行数据传 送的主要渠道,当有一个以上哑元时,它们之间用逗号隔开,如果没有哑元,则一对括号可以 省略。从SUBROUTINE语句后面一直到END语句则是子程序体。它的说明部分应包括对哑元和子 程序中所用变量、数组等的说明,它的执行语句部分完成运算和操作功能。其中的END语句或 RETURN语句使执行流程返回到调用单元。
例:将一个4字节的整数用16进制表示出来。[e_622_01.f90]

30分钟快速学习Fortran_95

30分钟快速学习Fortran_95

Fortran 95: 函数和子程序
• Function add(a,b) implicit none real, intent(in) :: a, b real :: add add = a + b end function 主程序调用: b = 2.0 x = add(23.1,b)
Note: 1. 所有输入的变量都用 intent(in)或intent(inout)显式 或 显式 限定, 限定,说明改动不改动 2. 返回变量只能是单一变量, 也要说明类型,但不用制定 intent 3. 保持function的独立性是非 常重要的 4. 主程序中用一般函数方法调 用
read(unit=1,fmt=*) a, b, c write(unit=2,fmt=“(f3.1,i5,a5)”) x,I,name
2. 3.
Fortran的格式字符串很灵 活,请参加其它资料 请不要用Fortran77中的 请不要用 中的 format语句!严重降低程 语句! 语句 序可读性
Fortran 95: I/O
Fortran 95: I/O
简单的I/O • Read *, a, b • Print *, a, b, “hello” 复杂的格式化I/O • Read “(f5.1, f8.2)”, x1, x2 • Print “(f5.1, f8.2)”, x1, x2
Note: 1. 若配合文件读写,则需要 制定“设备”,则要用
• 运行:
Fortran 95: 格式
• • • • • • 自由格式 大小写不分 &为换行连写 !为注释语句 ! 程序中任何地方用stop可推出程序 建议每个域(program、module、function、 subrouting)第一行都写implicit none

《FORTRAN-95程序设计》学习笔记

《FORTRAN-95程序设计》学习笔记

《FORTRAN-95程序设计》学习笔记《FORTRAN 95程序设计》学习笔记66RPG gg★目录★《FORTRAN 95程序设计》学习笔记 (2)基础知识(基础、字符串、FORMAT、隐式、TYPE)............................. 错误!未定义书签。

流程与控制(if、select、do) (8)数组(声明、隐式循环、整体操作、可变数组) (10)函数与子程序(子程序、函数、全局变量)13MODULE与面向对象(重载操作符、虚函数) (18)文件相关(OPEN、WRITE、READ) (20)指针(指向变量、数组、函数) (22)Visual Fortran 编译器(DLL,VB调用) (24)数值算法与IMSL(数值算法插件) (28)常用库函数(数学、数组、零碎、子程序) (30)◆10^10⏹复数:complex :: a=(2,3)◆实部:real(a) ;虚部:imag(a)⏹布尔型:Logical,.true. 和.false.★【语法与函数】字符串:character(20) string ⏹注意理解,fortran的弱智字符串就是一个长度不能变的一维的东西,极其猥琐,和Java、Ruby不能相提并论的⏹string(13:13) = “a”:对第13个字节的读、存⏹string(2:3) = “go”⏹string(6) = “我的妈呀”:从第6个位置开始设置为“我的妈呀”⏹a = string_a // string_b:用“//”连接两个字符串⏹【常用函数】char(num),ichar(char):ASCII码的转换相关功能⏹【常用函数】len(string),len_trim(string):长度,去掉尾部空格后的长度⏹【常用函数】index(string,key):找key在string首出现的位置⏹【常用函数】trim(string):返回去掉尾部空格的字符串(用途不大)⏹【函数】repeat(char,int):返回一个重复int次的char串⏹character(len=20) string 普通声明;character(len=*) string 接收的时候可自动长度★【规范格式】FORMAT格式化⏹e.g.◆w rite (*,100) A◆100 format(I4) ←这里是100号标识调用的格式⏹参数控制符(前面加数字为重复次数,如4I6或<a>I6。

fortran95的使用方法6

fortran95的使用方法6

第15章通讯计算的过程除了指令的序列之外,还有一个极端重要的部分,就是通讯。

试想一下人工的计算过程,几乎每做一个计算步骤,都有可能需要引用很多东西,例如其他计算的结果,问题的初始值,其他的现成公式,或已经推导出来的公式,或者引用别人的计算成果等等,这种引用在本质上就是通讯,即一个相对独立的计算步骤,或计算过程,都不可能是真正独立的,它总是需要得到来自外部的信息,无论是外部的数据,还是外部的计算,只要是叫得出名字的东西,都有可能被用到。

而该计算步骤或计算过程本身,不也是有可能被别的计算所使用吗!当然这一切都是通过草稿纸,通过我们的记忆,通过论文来进行的。

这就是计算当中的通讯,通过所有这些通讯才能使得计算成为一个整体,才能使得计算真正是面向了本来是一个整体的真实世界的问题。

相应的,当我们使用FORTRAN语言来描述计算任务的时候,它同样需要描述其中的通讯过程,而且还得是严格地把一切通讯过程都毫无遗漏地描述出来。

同样地,一个FORTRAN程序正是通过这些通讯而把所有程序单位,乃至所有的语句或指令单位,都连接起来,才能构成一个能够解决问题的计算过程。

那么这种通讯利用FORTRAN语言是如何进行的呢?还是让我们回到人工计算的过程,因为本质上,一个FORTRAN计算程序描述的就是一个人工计算过程。

首先我们需要对想使用的对象命名,才能称呼它们,然后才谈得上进行引用。

然而我们不能够指望给世界上的每一个具体对象都给予一个唯一的名称,那么做既不现实,也忽略了事物之间所具有的紧密联系。

因此在同一个名称可以称呼不同的对象的情况下,我们需要一个约定,就是一个名称必定跟随有关该名称的有效范围的说明。

在给所有的对象起了合适的名称之后,就需要考虑建立在不同的场合里面出现的对象之间的联系,例如在波函数里面出现的正弦函数与在交流电电流公式里面出现的正弦函数,因为它们的名称一样,就可以认为是同一个函数。

而波函数里面的振幅和交流电电流公式里面的振幅,尽管名称一样,却不能够应用于同样的公式,例如波函数里面的振幅可以引用到几率幅公式里面,而几率幅公式对于交流电却没有任何意义。

Fortran77_90_95

Fortran77_90_95
常量与变量
Fortran 的常量类型有整型、实型、复型、逻辑型和字符型:
[plain] view plaincopyprint?
1. PROGRAM VARIABLES 2. INTEGER I !整型声明语句 3. REAL F !实型声明语句 4. DOUBLE PRECISION D !双精度声明语句
从上面的打孔卡片可以看到,一行 Fortran 程序(即一张卡片)代表了一条 Fortran 语句。 有时会出现一张卡打不下一行语句,这时再第二张卡片的第 6 列打一个非 0 的孔,可以表 示该程序行是上一个程序行的续行。前 5 列是标号区,可以输入 5 位整数,通常情况下标 号区是不允许输入非数字的,但注释除外,第一列为 C 的语句不会被编译器处理。第 7~ 72 列是语句区。而最后 8 列是在卡片时代方便程序员查找的注释区,不会被编译器处理。 之后的 Fortran90 格式更加自由。它一行有 132 列,可以有多条语句,语句之间用分号隔开, 语句也没有固定位置的限制。在程序行中字符“!”后的内容都被视为注释(字符串中的“!”除外)。 空格也变得有意义了(Fortran77 会忽略行中的空格,关键字和变量中可以有空格)。此外 如果 132 列还写不完一行语句的话,可以在末尾加“&”字符表示有续行,续行的开始则用“&” 字符来承接上一行。F77 里前面 5 列的 10 进制整型数由来表示编号,可用于之后的跳转; F90 里还可以用英文名加冒号来表示标签,用于跳转。 文件名后缀.f 或.for 表示固定格式,而.f90 表示自由格式。
在 1992 年的超级计算国际会议作出的,正式文本在 1993 年公布的。1997 年发布了 HPF-2.0 语言定义。Fortran95 包含了许多 HPF 的新功能。 在 Fortran90 出现之前,在并行机上运行程序需要结合专门的矢量化子程序,或者信赖 Fortran 编译系统进行自动矢量化。而 Fortran90 之后,程序员可在程序中有目的地控制并 行化。Fortran90 具有 C++的所有重要功能,然而 C 语言主要用于微机上的廉价开发,而 Fortran 的目的是产生高效最优化运行的可执行程序。用 Fortran 编写的大型科学软件较 C 语言编写的通常要快一个量级。当今不仅大型机,微机和工作站也有了多处理器。高性能并 行计算已成必然,串行机上的线性内存模式已不再适用。Fortran 作为具有处理相应问题的 标准并行化语言,其独特的数组操作充分体现了它的先进性。

fortran95程序的设计实验

fortran95程序的设计实验

输出处理后 的数组
结束
三 . 程序
! 班级:核工程 11 ! 名字:薛院院 ! 日期: 4.2 program main parameter(n=4) integer::x(n)
.
.
.
print*,' 请输入 ',n,' do i=1,n read*,x(i) enddo print 100,x do i=1,n
人 , 占总人数比例 ',f8.2,'%')
四 . 实验结果
.
.
.
实验六
一 . 实验容
输入 4 个整数放在 4 个数组中,数组向左循环位移 1,2,3,4 个位置, 第一个元素移动到最后一个元素, 结果放在数组中, 输出移除前后的 4 个整数。
二 . 问题分析(流程图)
开始
输入 4 个整数
对数组进行处理
.
.
.
一 . 实验容
实验五
计算学生的平均成绩, 每门课的平均成绩, 三门课的平均成绩以及统
计高于每门课的成绩和三门平均成绩的学生人数和占总人数的比例
二 . 问题分析(流程图)
开始
输入学生人数
输入每个人学生的学 号,三门成绩
计算每个学 生的平均成
计算每门课 平均成绩
计算 3 门课 平均成绩
统计高于每门课平均成绩和三 门课平均成绩的人数及比例
t=x(1) do j=2,n x(j-1)=x(j) enddo x(n)=t print 100,x enddo 100 format(4i2) end
个整数 '
四 . 实验结果
.
.
.
实验七
一 . 实验容

FORTRAN95程序设计实验指导[定稿]

FORTRAN95程序设计实验指导[定稿]

FORTRAN95程序设计实验指导[定稿] FORTRAN95程序设计实验指导第一节 Compaq Visual FORTRAN 6.5快速入门 1.1 安装Compaq Visual FORTRAN 6.51.1.1 系统要求)需要具备以下软硬件条件:安装Compaq Visual FORTRAN 6.5(以下简称为CVF, 80586或以上处理器,运行Windows 98//NT/2000或以上操作系统。

, 具有光盘驱动器。

, 64MB或以上内存。

, 足够的硬盘空间。

安装程序根据安装选项提示所需的硬盘空间。

专业版的典型安装需要约300MB硬盘空间。

, SVGA显示器。

, 鼠标。

1.1.2 安装步骤下面以Windows 2000操作系统为例,对于其他Windows 操作系统,安装过程与此类似。

首先,将含CVF的光盘插入光盘驱动器,在资源管理器中运行Setup程序,屏幕显示Compaq VisualFORTRAN Setup窗口;单击【istall Visual Fortran】按钮;当出现询问是否查看README.TXT文件的对话框时单击【否】按钮;安装程序自动搜索已有组件,单击【Continue】(继续)按钮,并按提示输入用户名、公司名、产品系列号后,安装程序会显示安装选项对话框(图1.1);如果要改变安装CVF的文件夹,单击【Change Folder...】(改变文件夹)按钮,选择或输入所需的文件夹名;如果输入的文件夹不存在,安装程序会自动生成该文件夹,并生成几个下级文件夹以存放相应的各类文件。

图1.1还显示了各安装选项的简短说明和安装时所需的硬盘空间。

选择下列四个安装选项之一继续安装:Typical(典型)Custom(定制)Run from CD-ROM(从光盘运行) Typical(典型)安装选项将安装最常用的部分,约需298MB硬盘空间。

Custom(定制)安装选项将允许用户选择安装自己需要的组件(约需350MB空间)。

FORTRAN95程序设计实验

FORTRAN95程序设计实验

FORTRAN95程序设计实验FORTRAN95程序设计实验本文档涉及附件。

本文所涉及的法律名词及注释。

⒈简介本文档旨在提供一个完整的FORTRAN95程序设计实验的指南。

它包括实验的背景、目的、实验步骤、程序代码和测试结果等内容。

⒉实验背景在本节中,将介绍该实验的背景信息。

这可能包括与程序设计相关的概念、算法、问题陈述等。

⒊实验目的在本节中,将明确说明该实验的目的。

这可以包括学习特定的FORTRAN95编程技术、理解特定算法的实现、解决特定问题等。

⒋实验步骤本节将详细说明完成该实验所需的步骤。

每个步骤都应该清晰明了,并包括必要的代码片段和解释。

⑴实验准备在本段中,将列出完成该实验所需的软件和硬件准备,例如安装FORTRAN95编译器、准备输入文件、设置运行环境等。

⑵实验步骤1:任务1在本段中,将详细介绍实验中的第一个任务。

这可以包括问题描述、算法设计、需要编写的FORTRAN95代码等。

⑶实验步骤2:任务2在本段中,将详细介绍实验中的第二个任务。

同样,包括问题描述、算法设计、FORTRAN95代码等。

⒌程序代码在本节中,将提供实验中使用的完整FORTRAN95程序代码。

代码应该经过清晰的注释,以便读者理解。

⒍测试结果本节将展示每个任务的测试结果。

这可能包括输入和输出示例,以及对结果的说明和分析。

⒎总结在本节中,将对整个实验进行总结。

包括实验过程中遇到的困难、得到的经验教训、对FORTRAN95编程的理解等。

⒏附件该文档包含以下附件:实验说明书、FORTRAN95代码文件、输入文件、输出文件等。

⒐法律名词及注释在本节中,将列出在文档中使用到的法律名词,并提供相应的注释。

这有助于读者更好地理解涉及法律方面的内容。

第2章 Fortran95程序设计基础

第2章 Fortran95程序设计基础

n代表整数部分,m代表小数部分,不允许出现非 数值字符(如逗号、顿号和空格等)。
实型常量
对于实数,通过实型kind值确定实数的存储空 间大小、取值范围和最大有效位数(精度)。 实型kind值有两种4、8(缺省值为4)分别 表示单精度实数和双精度实数 。
实型常量
【例2-4】 判定下列实数,哪些是合法实数?哪些是非法 实数?说明原因。
% & < > ? $ _ 空格(Tab)
Fortran95的字符集
Fortran的源程序就是上述字符及符号按照词法、 语法和语义的规定对算法的描述。
在编写源程序时需要注意的是:
(1)除字符型常量外,源程序中不区分字母的大小 写,如语句 “ReaL a” 和 “real A”是等价的。 (2)字符集以外的可打印字符,只能出现在注释、 字符常量、字符串编辑符和输入输出记录中。
空间
字符类型可以表示的东西非常广,从键盘输入的 任何内容,不论是数字、字母、文本或任何特殊符号 都可以。
教材附录A的ASCII字符集里的字符就是这个类型
所能表示的所有字符。
逻辑类型 (logical)
表示逻辑判断的结果 ,只能有两种值:
“是”(true)
“否”(false) 也可以翻译成“对”、“错”,或 “真”、“假” 等等。
程序设计基础
——Fortran 95
第二章 Fortran95 程序设计基础 本章将介绍:
•字符集、标识符和关键字
•程序的书写格式
•数据类型
•常量和变量
•算术运算符和算术表达式 •标准函数
学习目标:
了解字符集、标识符和关键字
了解程序的固定书写格式
掌握程序的自由书写格式
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

附录B Fortran 95内在过程
FORTRAN 95标准提供了115个内在过程,其中包括109个内在函数和6个内在子例行子程序。

很多编译系统还提供额外的内在过程。

按照形式,内在过程分为如下两类:通用过程;专用过程。

所谓通用过程是一个集合名称,通用过程与专用过程是一个集合与其元素的关系。

一个通用过程由两个或多个专用过程组成。

在所有的115个内在过程当中,除了如下4个内在函数外,其他都是通用过程:LGE、LGT、LLE和LLT。

专用过程针对具体类型与种别的变量。

例如,求一个变量的绝对值的通用过程为ABS(X),而求一个整型变量的绝对值的专用过程为IABS(X),求一个复型变量的绝对值的专用过程为CABS(X),如此等等。

所以,每个通用过程属下的专用过程都必定具有相应的类型,种别,甚至维的属性。

这些专用过程的名称的主要用途是作为实元来传递,这时就必须使用专用过程名称。

注意,在表中注明了少数专用过程不能作为实元。

按照功能,FORTRAN 95的内在过程主要分为如下5类:查询与数字操作函数;转换,置空以及传递函数;计算函数;数组函数;内在子例行程序。

如果从功能的角度来对内在过程分类,那么除了上面的比较具体的5类之外,还可以从内在过程对数组的作用方式的角度,把内在过程分为两大类:逐元过程和变换过程。

所谓逐元过程,就是从数学的观点来看,这些专用过程的计算对象并不是数组,但是可以运用一种自然的方式使得这专用过程能够作用于数组对象,并且得到相同形状的数组结果。

也就是使得该过程分别作用于数组的每个元素,把所有的过程结果再集合起来作为结果数组。

内在过程当中的大部分都属于逐元过程,包括:转换函数;计算函数(除了REPEA T,TRIM,DOT_PRODUCT,MA TMUL之外);子例行程序MVBITS。

其他的所有内在过程就都不是逐元过程了。

所谓变换过程,就是内在过程里面逐元过程之外的所有过程都称为变换过程,因为从它们的定义的实质上看,就是作用于一个数组数据对象,得到一个标量或者数组结果,也就是一个变换的过程,而不是单独地作用于每个元素。

因此除了函数NULL之外,所有的变换过程或者是具有一个取数组值的哑元,或者是具有一个取数组值的实元,它们对数组的作用都是某种整体变换作用。

例如对于向量的乘积,就不能逐个元素地进行。

内在过程的引用正如一般过程的引用一样,可以使用关键词变量。

由于某些内在过程的变量是可选项,因此使用关键词能够省略相应的实元。

常见的关键词哑元名称含义如下:
● DIM:DIM主要用于数组简化函数以及其他一些数组函数,表示在函数的作用对象不是整个数组的情况下,数组的哪个维被过程作用。

DIM取值为标量整型值,并且常常是可选变量。

●KIND:KIND一般用于转换函数,说明转换结果的种别参数。

KIND实元必须是一个标量整型初始化表达式,一般是可选的。

●BACK:BACK作为一个可选的逻辑型变量用来表示逆序过程,即它所出现的内在过程的对于数据对象的反方向操作。

例如,如果在内在过程INDEX当中出现了BACK=.TRUE.,那么INDEX的搜索操作就必须与正常方向相反,即从字符串的右端开始。

注意内在函数的非指针哑元都具有INTENT(IN)的属性,而指针哑元则不能改变其关联的实元或目标。

注1:该函数没有相应的通用过程名称,它的结果为默认整型。

注2:该函数没有相应的通用过程名称,它的结果为默认实型。

注3:标注星号*的函数不能用作实元。

注4:某些专用过程名称与其通用过程名称一样。

注:表B2中哑元名表示其类型:I 整型; R 实型; C 复型; S 字符型; L 逻辑型; X 多种类型; CH 单字符;
A 数组;M 矩阵; P 指针; V 向量; LA 逻辑型数组; IA 整型数组。

相关文档
最新文档