Fortran 模块用法注意
- 格式:pdf
- 大小:197.38 KB
- 文档页数:2
Fortran编程的一些注意事项
1.变量的定义和命名
定义的完整性;
命名的简练性:(a) 见名知义:可用下划线“_”分割;(b) 数组的命名变量名中大小写的区分:l(L) & 1;O & 0
2. 空格及空行的使用
空格:a. 用在“,”之后,分隔不同变量;
b. Write 语句的括号内;
c. 在循环块中,调整结构,使语句、循环层次明了
空行:用于独立的语句组合(包括循环)前后,使整体具有层次性
3. 常量在循环中的位置
对于某一层循环(或嵌套的几个循环),
若某个量是常量,可将此量放在该循环外,以减少运算量
4. 语句的长度
在同一行中,语句的间隔应大一些,上下行注意对齐,以便于检查;
对于很长的语句,可以用“&”或中间变量转化为两行(或更多)
5. Pause 的使用
用于大量数据的观察&显示需要检查的数据
6. 换行
用中间变量避免过多的“()”及其嵌套,避免语句过长
7. GOTO 语句
使用原则:“往外”、“往前”(往行号更大的方向进行),以避免死循环8. 文件的OPEN 和CLOSE
open :在文件使用前或者循环外打开;也可重复操作,但尽量避免close :使用后一定要关掉
9. 模块(MODULE)的使用
先定义,到应用时再在主程序或子程序中说明即可
10. DATA 语句
在数组赋值时使用来增强程序的简洁性;注意数组定义时的数据类型
11.各种循环
在编辑DO循环、IF语句、多重括号或case语句时,应该先将基本框架写好。
fortran教程Fortran是一种编程语言,用于科学和工程计算。
它具有高性能和可靠性,适用于大规模的数值计算和数据处理。
Fortran的基本语法是由一系列语句组成的程序。
每个语句都以一个数字标签开头,可用于控制程序的执行顺序。
以下是Fortran的一些基本语法和常用功能。
1. 变量和数据类型Fortran支持多种数据类型,包括整数(Integer)、实数(Real)和字符(Character)。
变量声明可以在程序的开头部分完成,例如:```fortranINTEGER :: iREAL :: xCHARACTER(len=10) :: name```注意,每个变量声明必须以两个冒号(::)开头。
2. 数学运算Fortran提供了一系列的数学运算符,用于执行基本的算术和逻辑运算,例如加法(+)、减法(-)、乘法(*)、除法(/)和求余(MOD)。
运算符的使用与其他编程语言相似。
3. 控制结构Fortran支持常用的控制结构,例如条件语句(IF-ELSE)和循环语句(DO LOOP)。
条件语句可以根据条件来执行不同的代码块,例如:```fortranIF (i > 0) THENPRINT*, 'i is positive'ELSEPRINT*, 'i is non-positive'END IF```循环语句可以根据条件重复执行一部分代码,例如:```fortranDO i = 1, 10PRINT*, iEND DO```上述代码将打印出1到10的数字。
4. 数组和矩阵运算Fortran支持多维数组和矩阵运算。
声明数组时可以指定维度和元素类型,例如:```fortranREAL, DIMENSION(3,3) :: matrix```然后,可以使用多个索引访问数组元素,例如:```fortranmatrix(1,2) = 3.14```这将给数组中的第1行第2列的元素赋值为3.14。
fortran stop语句摘要:1.Fortran语言简介2.Fortran stop语句的作用3.如何使用Fortran stop语句4.Fortran stop语句的注意事项5.总结正文:fortran stop语句是Fortran(Formula Translation)语言中的一种控制结构,用于在程序执行过程中暂停程序的运行,并输出特定信息。
Fortran语言是一种高级编程语言,主要用于数值计算和科学计算。
下面将详细介绍Fortran stop语句的作用、使用方法及注意事项。
1.Fortran语言简介Fortran语言始于20世纪50年代,由IBM公司开发。
它是第一种专门为数值计算设计的编程语言,具有简洁、高效的特点。
Fortran语言中的控制结构包括if、else if、else、while、for等,这些结构可以帮助程序员实现复杂的逻辑控制。
2.Fortran stop语句的作用Fortran stop语句在程序执行过程中,可以用于暂停程序的运行,并输出特定信息。
这种语句通常用于以下情况:- 当程序遇到错误或异常情况时,可以使用stop语句暂停程序,以便开发人员排查问题。
- 当程序需要根据某些条件暂停执行时,可以使用stop语句实现这一功能。
- 当程序执行完毕或达到预期目标时,可以使用stop语句结束程序运行。
3.如何使用Fortran stop语句在Fortran语言中,stop语句的语法如下:```STOP "message"```其中,"message"是可选的参数,表示在停止程序时输出的信息。
如果不指定"message",则默认输出“STOP”字样。
例如:```fortranprogram mainimplicit noneinteger :: ido i = 1, 10print *, "Hello, world!"end doSTOP "Program execution completed"end program main```4.Fortran stop语句的注意事项- 使用stop语句时,建议附带相关信息,以便于调试程序。
我的Fortran基本用法小结周日, 10/14/2007 - 21:00 — gator一、说明二、概述三、数据类型及基本输入输出四、流程控制五、循环六、数组七、函数八、文件一、说明本文多数内容是我读彭国伦《Fortran 95 程序设计》的笔记。
只读到第九章,主要是3~9章,都是最基本的用法(原书共16章)。
这里主要摘录了我看书过程中总结的一些Fortran和C不同的地方,主要是语法方面。
希望这份笔记能够给学过C但没有接触过Fortran的同学带去一些帮助。
要想得更清楚些,推荐看一下原书,觉得作者真的写得很好,很清楚;如果有C语言的基础,看完前九应该很快的,花一两天就行了。
觉得如果耐心看完本文,基本功能应该也可以顺利用起来了。
外,由于我之前没有用过Fortran,这次为了赶文档看书又看得很粗浅,大多数东西看过之后都没得及仔细想,只是按着作者的意思去理解。
所以这份笔记还处于纸上谈兵的层次。
如果有不妥的方,希望大家指正。
谢谢!文中蓝色的部分是程序代码,!后面的内容为注释。
二、概述1、名词解释Fortran=For mula Tran slator/Translation一看就知道有什么特色了:可以把接近数学语言的文本翻译成机械语言。
的确,从一开始,IBM设计的时候就是为了方便数值计算和科学数据处理。
设计强大的数组操作就是为了实现这一目标。
ortran奠定了高级语言发展的基础。
现在Fortran在科研和机械方面应用很广。
2、Fortran的主要版本及差别按其发展历史,Fortran编译器的版本其实很多。
现在在广泛使用的是Fortran 77和Fortran90。
ortran 90在Fortran 77基础上添加了不少使用的功能,并且改良了77编程的版面格式,所以编程时推荐使用90。
鉴于很多现成的程序只有77版本,有必要知道77的一些基本常识,至少保证能够看77程序。
以下是77和90的一些格式上的区别。
【以下文字转载自D_Atmosphere 讨论区】【原文由superjyq 所发表】我的Fortran基本用法小结高级语言和算法组heavensky目录:一、说明二、概述三、数据类型及基本输入输出四、流程控制五、循环六、数组七、函数八、文件一、说明本文多数内容是我读彭国伦《Fortran 95 程序设计》的笔记。
只读到第九章,主要是3~9章,都是些最基本的用法(原书共16章)。
这里主要摘录了我看书过程中总结的一些Fortran和C不同的地方,主要是语法方面。
希望这份笔记能够给学过C但没有接触过Fortran的同学带去一些帮助。
要想弄得更清楚些,推荐看一下原书,觉得作者真的写得很好,很清楚;如果有C语言的基础,看完前九章应该很快的,花一两天就行了。
觉得如果耐心看完本文,基本功能应该也可以顺利用起来了。
另外,由于我之前没有用过Fortran,这次为了赶文档看书又看得很粗浅,大多数东西看过之后都没来得及仔细想,只是按着作者的意思去理解。
所以这份笔记还处于纸上谈兵的层次。
如果有不妥的地方,希望大家指正。
谢谢!文中蓝色的部分是程序代码,!后面的内容为注释。
二、概述1、名词解释Fortran=Formula Translator/Translation一看就知道有什么特色了:可以把接近数学语言的文本翻译成机械语言。
的确,从一开始,IBM设计它的时候就是为了方便数值计算和科学数据处理。
设计强大的数组操作就是为了实现这一目标。
Fortran奠定了高级语言发展的基础。
现在Fortran在科研和机械方面应用很广。
2、Fortran的主要版本及差别按其发展历史,Fortran编译器的版本其实很多。
现在在广泛使用的是Fortran 77和Fortran90。
Fortran 90在Fortran 77基础上添加了不少使用的功能,并且改良了77编程的版面格式,所以编程时推荐使用90。
鉴于很多现成的程序只有77版本,有必要知道77的一些基本常识,至少保证能够看懂77程序。
1.除字符型常量外,源程序中不区分字母的大小写,如语句ReaL a和real A是等价的。
2.Fortran 95字符集以外的可打印字符,只能出现在注释、字符常量、字符串编辑符和输入输出记录中。
3.Fortran 95规定标识符只能由字母、数字、下划线“”和$组成,且起始字符必须是英文字母。
(标识符即名称,用来在程序中标识有关实体,如变量、符号常量、函数、程序单元、公用块数组、模块和形参等)4.用“!”作注释标志符,“!”可以在一行的任一位置,注释延伸至程序行的结束。
5.数据类型——integer(整数类型)、real(实数类型)、complex(实数类型,如(1.2,3.5)表示1.2+3.5i)。
6.非数值型数据——character(字符类型,在程序中表示形式用…‟或“”,如…a‟,“hello!”)、logical(逻辑类型,表示判断的结果,只有两种值true、false)。
7.二至三十六进制表示,形式为:±r#数字如输出3994575的程序Print﹡,2﹟1111001111001111001111Print﹡,7﹟45644664Print﹡,8﹟17171717Print﹡,3994575Print﹡,﹟3cf3cf !16进制可以略去16Print﹡,36﹟2dm8fend8.非打印字符的表示形式9. 变量表示与赋值integer x,y ,z !定义x 、y 和z 是整型变量character *6 name !定义name 是字符变量,字符长度为6real a,b !定义a 和b 是实型变量complex ::s=(1.5,8.9) !定义s 是单精度复型变量,并对其赋值(1.5,8.9)integer (2)::c=1,d !定义c 和d 是短整型变量,并对a 赋值1real * 8 e !定义e 是双精度型变量注意:符号“::”在变量定义语句中可有可无,若有可对变量赋初值,否则不能赋初值。
1、source中未使用外部库链接的,直接执行:gfortran foo.f/f90 -o foo./foo如没有"-o"选项,生成a.out文件,这显然不是我想要的。
:D2、gFortran分两部分:compiler and library。
如果gFortran不是标准安装的,编译source后执行,可能找不到lib,这时可以加入"-static"选项:gfortran -static foo.f/f90 -o foogFortran会将库建在所生成程序内部。
3、FortranSource有77和90两种书写格式,gFortran默认根据后缀进行compile。
如果想自定义,例如foo.f是用90格式写的,可执行:gfortran -ffree-form foo.f -o foo大写的后缀名,gFortran会预执行该程序。
4、多source文件时,先compile不含PROGRAM语句段的source文件,各自生成foo1.o,foo2.o等。
再一起编译。
例如:gfortran -c foo1.f/f90gfortran -c foo2.f/f90gfortran main.f/f90 foo1.o foo2.o -o main5、foo.f95的,加选项"-std=f95",.f2003的,目前支持尚不完整。
顺便说,gFortran unstable版4.3.x将支持pointer。
下面还有一些可能常用到的options。
"-fbounds-check":检查列表序列脚标是否超出"-ffree/ffix-line-length-n":设置最大columns。
77默认:72;90默认:132。
n若设为"0"或"none",则不限有效行数"-fimplicit-none":等同于在f90每段sub中声明"IMPLICIT NONE",且source中implicit语句优先"-fmax-error-n":意义如词义"-fsyntax-only":不编译,只检查语法"-fexternal-blas":使用BLAS库函数,替代gFortran默认的函数感谢9楼。
fortran中module用法Fortran中的module用法Fortran是一种高级编程语言,它被广泛用于科学计算和工程应用。
Fortran的模块化编程是一种重要的编程技术,它可以帮助程序员更好地组织代码,提高代码的可读性和可维护性。
在Fortran中,module是一种重要的模块化编程工具,它可以将相关的变量、函数和子程序组织在一起,形成一个独立的模块。
module的定义在Fortran中,module是一种独立的代码单元,它可以包含变量、函数和子程序。
module的定义通常放在一个单独的文件中,文件名以.mod或.f90为后缀。
module的定义格式如下:module module_nameimplicit none! 声明变量、函数和子程序contains! 定义函数和子程序end module module_name在module中,可以声明和定义变量、函数和子程序。
变量的声明和定义方式与普通的Fortran程序相同。
函数和子程序的定义方式也与普通的Fortran程序相同,只是需要在module中使用contains关键字来定义。
module的使用在Fortran程序中,可以使用use语句来引用module中的变量、函数和子程序。
use语句的格式如下:use module_name在使用module之前,需要先编译module文件,生成.mod文件。
在编译Fortran程序时,需要将.mod文件和程序文件一起编译。
使用module的示例代码如下:program mainuse mymoduleimplicit none! 使用mymodule中的变量和函数end program main在程序中使用module时,需要先使用use语句引用module,然后就可以使用module中的变量和函数了。
module的优点使用module可以带来以下几个优点:1. 模块化编程:module可以将相关的变量、函数和子程序组织在一起,形成一个独立的模块,使程序更易于理解和维护。
Fortran的固定格式(Fixed Format)是指使用传统的Fortran语法和排版规则编写程序代码的方式。
以下是一些固定格式语法的基本规则:1.程序文件扩展名:固定格式程序的扩展名通常为.f或.for。
2.注释:在固定格式中,注释是通过在第一列放置一个C或*字符来标记的。
注释行将被编译器忽略。
3.行号:固定格式程序通常包含行号,这些行号用于标识程序中的特定行。
行号必须位于第6列之后,并且必须是连续的数字。
4.程序标识符:程序的第一行应该包含一个程序标识符,例如"PROGRAM"或"MODULE"。
该标识符必须位于第1-5列。
5.变量声明:在固定格式中,变量声明通常位于程序的开头部分,并且必须遵循一定的格式规则。
例如,整数变量应该使用I或J等字母开头进行声明,而实数变量应该使用R或F等字母开头进行声明。
6.语句分隔符:在固定格式中,语句之间必须使用逗号或分号进行分隔。
例如,在赋值语句中,等号前后都必须有一个语句分隔符。
7.语句顺序:在固定格式中,语句的顺序是有要求的。
例如,声明语句必须在程序的其他部分之前,而执行语句(如赋值语句、控制结构语句等)必须在声明语句之后。
8.输出格式:在固定格式中,输出格式也是有一定要求的。
例如,输出语句通常使用WRITE语句,并且必须遵循特定的格式规则。
需要注意的是,固定格式语法是Fortran语言的一种传统写法,现在许多Fortran 程序员更倾向于使用自由格式(Free Format)编写程序,因为自由格式更加灵活,易于阅读和维护。
但是,在一些特定情况下,如处理历史代码或遵循特定规范时,仍然需要使用固定格式语法。
Fortran Module用法一、引言Fortran是一种编程语言,特别适用于科学计算和工程应用。
它是一门古老但仍然广泛使用的编程语言,已经发展了数十年。
在Fortran中,模块(module)是一种重要的编程工具,用于封装和组织代码,提高代码的可读性和重用性。
本文将深入探讨Fortran中模块的使用方法和相关概念。
二、模块的概念和作用模块是Fortran中的一个重要概念,它将相关的子程序、变量和数据类型组织在一起。
模块的主要作用有: 1. 封装:模块可以封装一组相关的子程序和数据,将功能相似的代码组织在一起,增加代码的可读性和维护性。
2. 信息隐藏:模块可以通过私有(private)和公共(public)访问标记,控制外部程序对模块中程序和变量的访问权限,实现信息的隐藏和封装。
3. 重用:模块可以被其他程序引用和使用,实现代码的重用,避免重复编写相同的代码。
4. 相互依赖:模块可以相互调用和依赖,形成复杂的程序结构和层次关系。
三、模块的声明和使用在Fortran中,声明一个模块及其内容的语法如下:module module_name! 声明use module_name1use module_name2implicit none! 变量定义private :: variable_name1, variable_name2public :: variable_name3, variable_name4! 子程序定义private :: subroutine_name1public :: subroutine_name2! 数据类型定义private :: type_name1public :: type_name2! 其他内容contains! 函数定义private :: function_name1public :: function_name2end module module_name在使用模块前需要先声明(use)模块,如上述代码中的”use module_name1”和”use module_name2”。
1 MODULE基本用法
图 1
MODULE是关键字,模块定义以MODULE语句开始,END MODULE语句结束。
第一部分:类型说明部分。
可以是类型说明语句、派生类型定义及接口块等,但不能有执行语句、语句函数、ENTRY语句或FORMA T语句。
第二部分:以CONTAINS语句开始,执行模块的内部过程,这部分是可选的。
当模块有内部函数或子程序时,必须将整个过程完整地写入(必须要写CONTAINS)。
假设有几个子程序都用到了同一个变量,只需把变量放到一个模块中,这些子程序通过引用该模块,便相当于将该模块移到自己的说明部分中,从而实现共享数据。
2 说明与总结
MODULE用于封装程序模块,一般是把具有相关功能的函数及变量封装在一起,是面向对象设计的有用工具、用法简单。
在主程序中引用某一模块,相当于把MODULE中的类型说明语句直接移到主程序的声明部分中。
★★★注意:MODULE中定义过的变量,在MODULE里的函数(子程序)
中可直接使用,函数(子程序)之间也可以直接相互调用,不要在函数(子程序)中再次定义声明,可能导致程序出错。