Fortran基本用法
- 格式:pdf
- 大小:586.64 KB
- 文档页数:9
fortran 语言编程Fortran 语言编程Fortran(Formula Translation)是一种面向科学计算和工程计算的高级编程语言。
它于1957年诞生于IBM,是最早被广泛采用的科学计算语言之一,目前已经发展到第四个版本(Fortran 2018)。
Fortran是一种编译型语言,它通过编写源代码并使用编译器将其转换成机器语言来执行。
本文将详细介绍Fortran语言的基础知识、语法规则和常用的编程技巧,以帮助读者了解和掌握这门强大的科学计算语言。
第一步:安装Fortran编译器要开始编写和运行Fortran程序,首先需要安装Fortran编译器。
有多种Fortran编译器可供选择,其中最常用的是GNU Fortran(gfortran)和Intel Fortran Compiler(ifort)。
可以从官方网站或其他可信的来源获得这些编译器的安装程序,并按照提示进行安装。
第二步:编写并编译Fortran程序在开始编写Fortran程序之前,需要了解Fortran的基本语法规则。
Fortran使用固定格式或自由格式,固定格式的源代码按照列格式排列,每行的前6列被保留用于行号和注释,从第7列开始是可执行代码。
自由格式没有列格式的限制,更加灵活,但在编译阶段需要指定自由格式。
下面是一个简单的Fortran程序示例,用于计算并输出两个数的和:fortranprogram additionimplicit noneinteger :: a, b, sumprint *, "Enter two numbers:"read *, a, bsum = a + bprint *, "The sum is:", sumend program addition将以上代码保存为一个以.f90为后缀名的文件(例如addition.f90),然后使用编译器将其编译成可执行程序。
fortran 条件编译Fortran 条件编译Fortran 是一种广泛应用于科学计算领域的编程语言,它具有强大的数值计算能力和高效的执行速度。
为了适应不同的计算环境和需求,Fortran 提供了条件编译的功能,可以根据不同的条件选择性地编译代码。
在本文中,我们将探讨 Fortran 条件编译的用法和一些常见的应用场景。
一、条件编译的基本语法在 Fortran 中,条件编译使用预处理指令来实现,这些指令以 `#` 开头。
常见的条件编译指令有 `#ifdef`、`#ifndef`、`#else` 和`#endif`。
下面是一个简单的例子:```fortran#ifdef DEBUGwrite(*,*) "Debug mode"#elsewrite(*,*) "Release mode"#endif```在上面的例子中,如果在编译时定义了 `DEBUG` 宏(使用 `-DDEBUG` 编译选项),则会输出"Debug mode";否则,会输出"Release mode"。
通过条件编译,我们可以根据需要在代码中插入或排除特定的语句块,从而实现灵活的代码控制。
二、条件编译的应用场景1. 调试模式和发布模式在软件开发过程中,我们通常会将代码分为调试模式和发布模式。
调试模式下,我们可以输出更多的调试信息,以便于定位问题;而发布模式下,我们希望代码更加精简和高效。
通过条件编译,我们可以在调试模式下输出调试信息,在发布模式下禁用这些信息,从而实现两种不同的编译版本。
2. 平台兼容性由于不同的操作系统和硬件平台的差异,我们可能需要针对不同的平台进行编译和优化。
通过条件编译,我们可以根据不同的平台定义不同的宏,然后根据这些宏来编写平台特定的代码。
这样,我们就可以在不同的平台上编译出适应性更强的程序。
3. 功能选择在某些情况下,我们可能希望根据用户的需求选择性地编译代码中的某些功能。
fortran基本用法不大熟悉fortran,保存下来备查。
转自:/node/45目录:一、说明二、概述三、数据类型及基本输入输出四、流程控制五、循环六、数组七、函数八、文件一、说明本文多数内容是我读彭国伦《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的一些格式上的区别。
FORTRAN90用法总结
Fortran90是Fortran的最新标准程序设计语言,它是在Fortran77
基础上的新增功能,支持面向对象的功能,同时也支持可变参数,数据语
句和开发语句,使其具有更高的强大功能。
它也支持宏的使用,以帮助程
序编写者更好的实现一些高级程序功能,以提高程序性能,提高程序易用性。
下面将重点介绍Fortran90的五大用法。
第一,利用Fortran90进行函数的编写。
Fortran90的函数可实现参
数的多次组合,通过对用户函数的调用,就可达到想要的结果,而不用写
复杂的循环程序,这有助于提高程序的可管理性,降低程序的出错率。
第二,通过宏的使用来完成Fortran90的程序编写。
宏语言有助于程
序的复杂编写和优化,通过它可以大大提高程序的性能,节约程序的开发
时间,从而提高程序的可用性。
第三,Fortran90的数组操作功能。
Fortran90支持数组的多维操作,能够进行大数组操作,从而编写出简洁的程序,节约存储空间,提高程序
的执行效率。
第四,Fortran90的指针操作功能。
它可以完成复杂数据的指针操作,以实现数据的重排、排序、和传输,可以让程序编写者有效地运用指针操作,提高程序性能和稳定性。
最后,Fortran90的结构化编程功能。
fortran关系运算符Fortran关系运算符Fortran是一种编程语言,它经常用于科学计算和数值分析。
在Fortran中,关系运算符用于比较两个值之间的关系,并返回一个逻辑值(真或假)。
本文将介绍Fortran中常用的关系运算符及其用法。
1. 等于运算符(==)等于运算符(==)用于判断两个值是否相等。
如果两个值相等,则返回真(.TRUE.),否则返回假(.FALSE.)。
例如:```INTEGER :: a, ba = 10b = 20IF (a == b) THENWRITE(*,*) "a等于b"ELSEWRITE(*,*) "a不等于b"ENDIF```2. 不等于运算符(/=/)不等于运算符(/=/)用于判断两个值是否不相等。
如果两个值不相等,则返回真(.TRUE.),否则返回假(.FALSE.)。
例如:```INTEGER :: a, ba = 10b = 20IF (a /= b) THENWRITE(*,*) "a不等于b"ELSEWRITE(*,*) "a等于b"ENDIF```3. 大于运算符(>)大于运算符(>)用于判断一个值是否大于另一个值。
如果第一个值大于第二个值,则返回真(.TRUE.),否则返回假(.FALSE.)。
例如:```INTEGER :: a, ba = 10b = 20IF (a > b) THENWRITE(*,*) "a大于b"ELSEWRITE(*,*) "a不大于b"ENDIF```4. 小于运算符(<)小于运算符(<)用于判断一个值是否小于另一个值。
如果第一个值小于第二个值,则返回真(.TRUE.),否则返回假(.FALSE.)。
例如:```INTEGER :: a, ba = 10b = 20IF (a < b) THENWRITE(*,*) "a小于b"ELSEWRITE(*,*) "a不小于b"ENDIF```5. 大于等于运算符(>=)大于等于运算符(>=)用于判断一个值是否大于或等于另一个值。
fortran中do循环用法Fortran中的do循环是一种非常常见的循环结构,用于重复执行一段代码块。
do循环有多种用法,下面将详细介绍。
1. 基本用法do循环最基本的用法是指定一个循环变量和一个循环范围,例如:```do i = 1, 10! 待执行的代码块end do```上述代码表示从1到10依次对i进行赋值,并执行待执行的代码块。
在每次循环中,i的值都会自动递增1。
2. 指定步长有时候需要指定循环变量每次递增或递减的步长,可以使用step参数实现,例如:```do i = 1, 10, 2! 待执行的代码块end do```上述代码表示从1到10以步长2依次对i进行赋值,并执行待执行的代码块。
在每次循环中,i的值都会自动递增2。
3. 循环嵌套在实际应用中,经常需要在一个循环内部再嵌套另一个循环来完成更复杂的任务。
例如:```do i = 1, 10do j = 1, 5! 待执行的代码块end doend do```上述代码表示先对i进行循环,每次循环内部再对j进行循环,执行待执行的代码块。
在每次循环中,i和j的值都会自动递增1。
4. 循环控制有时候需要在循环内部根据一些条件来控制循环的执行。
Fortran提供了break和cycle语句来实现。
break语句用于跳出当前循环,例如:```do i = 1, 10if (i == 5) thenexit ! 跳出当前循环end if! 待执行的代码块end do```上述代码表示当i等于5时跳出当前循环。
cycle语句用于跳过当前迭代,直接进入下一次迭代,例如:```do i = 1, 10if (mod(i,2) == 0) thencycle ! 跳过偶数迭代end if! 待执行的代码块end do```上述代码表示当i为偶数时跳过当前迭代,直接进入下一次迭代。
以上就是Fortran中do循环的详细用法介绍。
通过合理使用do循环和相关语句可以使程序更加简洁高效。
fortran class用法Fortran中的类(class)是面向对象编程的重要组成部分,它允许程序员创建包含数据和方法的自定义数据类型。
以下是关于Fortran中类的用法的全面解释:1. 类的声明:在Fortran中,我们可以使用`TYPE`关键字来声明一个类,该类可以包含数据成员和方法。
例如:TYPE :: Person.CHARACTER(LEN=20) :: name.INTEGER :: age.CONTAINS.PROCEDURE :: SetName.PROCEDURE :: SetAge.PROCEDURE :: PrintInfo.END TYPE Person.在上面的示例中,我们声明了一个名为Person的类,它包含了名为name和age的数据成员,以及名为SetName、SetAge和PrintInfo的方法。
2. 方法的定义:在Fortran中,我们可以使用`PROCEDURE`关键字来定义类的方法。
方法可以被用来修改数据成员或执行其他操作。
例如:SUBROUTINE Person::SetName(newName)。
CLASS(Person) :: this.CHARACTER(LEN=20), INTENT(IN) :: newName.this%name = newName.END SUBROUTINE SetName.SUBROUTINE Person::SetAge(newAge)。
CLASS(Person) :: this.INTEGER, INTENT(IN) :: newAge.this%age = newAge.END SUBROUTINE SetAge.SUBROUTINE Person::PrintInfo()。
CLASS(Person) :: this.PRINT , "Name: ", this%name.PRINT , "Age: ", this%age.END SUBROUTINE PrintInfo.在上面的示例中,我们定义了SetName、SetAge和PrintInfo方法来修改和打印Person类的数据成员。
在Fortran中,双冒号(::)用于表示变量的类型声明或数组的索引。
1. 类型声明:双冒号用于指定变量的数据类型。
例如,在定义一个整型变量时,可以使用双冒号后跟数据类型的名称,如下所示:
```fortran
integer :: variable_name
```
上述代码声明了一个名为`variable_name` 的整型变量。
2. 数组索引:双冒号用于指定数组的索引。
在Fortran中,数组的索引通常在数组名后面使用双冒号和索引值来表示。
例如:
```fortran
array(1:n) = values
```
上述代码将`values` 赋值给数组`array` 的第`1` 到第`n` 个元素。
需要注意的是,双冒号在不同的上下文中可能有不同的用途。
以上是双冒号在Fortran中的常见用法,具体用法取决于代码的语境和编写者的意图。
我的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程序。