fortran 语言总结
fortran
对大小写不敏感
语句以数字开始,表示语句的标号
fortran长项与数值计算
注意文件的后缀名
/=和.ne.都是表示不等于
规则:
保留字使用大写,如PROGRAM,READ,WRITE
程序的变量使用小写
fortran.f90
编译
[asc15@mic01 fortan]$ ifort fortran.f90
INTERGRE
REAL
LOGICAL
开始
“!”号后的字符均被视为注释.但字符串中的!除外.
注释行必须单独占一行,不能出现在其他语句的行尾.
续行的定义. 续行定义”&”
当一行的最后为”&”时,下一行与本行接续.
当一行的第一个字符是”&”时,本行与上一行接续.
**表示乘方
变量
默认式:
凡是以字母 I,J,K,L,M,N六个字母开头的,即认为是整型变量,其他为实型变量.
显示的声明变量:
INTERGR :: day,month
声明字符串:
CHARACTER (len=15) :: var1
CHARACTER (l15) :: var1
常量
REAL,PARAMETER :: PI=3.14
可以将某一字母开头的全部变量指定为所需类型.
变量名的声明和应用
类型说明语句 > IMPLICIT语句 > “I,J,K,L,M,N”规则
IMPLICIT NONE 语句,出现在PROGRAM 语句后和类型声明语句前
使fortran 默认提供的输入值的功能丢失.
没有出现在显示类型声明语句中的变量被认为是错的.
内置函数
输入输出
输入语句
READ(,) input_list
ERITE(,) output_list
数组
real,dimension(16) :: voltage
16个元素为实数型数组.
dimension属性来说明数组的大小.
下标从1开始
定义形式1
类型说明符 [::] 数组名 ([下标下界:]下标上界[,])[,]
real :: a(1;2,2:4)
integer b(10)
定义形式2
使用 dimension 说明数组
格式 dimension [::] 数组名(小标下界,下标上界) 省略默认为1
dimension :: a(10),b(2:11)
integer :: a
定义形式3
dimension ([下标下界],下标上界) [::] 数组名
dimension (10,4:10) :: a,b,n
integer :: a
real(8) :: n
定义形式4
[类型说明,] dimension [::] 数组名 ([下标下界:]下标上界[,..][,..])
[类型说明,] dimension ([下标下界:]下标上界[,..][,..])[::] 数组名 [,..]
real,dimension::i(10),m(10,5)
real,dimension(10),m(10,5) :: a,c
操作整个数组
如果两个数组有相同的结构,可以像普通的变量进行算术操作.
数组赋值
data 语句进行数组赋值
声明常量
parameter(PI=3.1415926)
种别和属性
种别参数来指定变量的存储空间,达到优化使用存储空间,防止精度丢失的目的.
取整函数
C=INT(X)
关系运算符
.gt. 大于
.ge. 大于等于
.lt. 小于
.le. 小于等于
.eq. 等于
.ne. 不等于
逻辑运算符
.and. 逻辑与
.or. 或
.not. 非
.eqv. 等价
.neqv. 不等价
IF语句
if (逻辑表达式) then
XX
else if (逻辑表达式) then
XX
else
XX
end if
SELECT CASE
INTEGER :: temp_c
temp : SELECT CASE (temp_c)
CASE (:-1)
..
CASE(1:20)
..
CASE DEFAULT
..
END SELECT temp
Do 循环规则
do
..
IF() EXIT
..
end do
WHILE
..
IF logical_expr EXIT
..
END OF WHILE
隐式循环
实际上一种带控制循环变量的do循环,简化成只有do循环
i=m1,m2[,m3]
m1 循环初值,m2循环的终值,m3表示循环的增量,省略默认为1
exit语句的作用是停止循环并使流程控制退出循环结构
exit [do构造名]
迭代或计数循环
DO index=istart,iend,incr
..
END Do
开始处istart赋值给index.如果index*incr<=iend*incr
每次执行过后
index+=incr
例子
DO i=1,10
ENDDO
程序结束 End
只能有一个end语句
程序单元最后一行
CYCLE 和 EXIT
cycle 在do循环体内执行,当前循环的执行终止,控制器返回到循环顶部.相当于
continue
exit 相当于break
程序终止stop
唯一作用便是终止程序
可以出现在程序的任意位置,且可以有多个
程序暂停 pause
fortran 按照列优先
IMPLICIT NONE
加入这个叙述之后,会把内定型态的功能关闭
外部过程
子程序,通过call语句中使用过程名来调用.并通过参数表来获取输入参数.
SUBROUTINE name (argument_list)
..
..
RETURN
END SUBROUTINE name
SUBROUTINE 标志着子程序的开始,定义了子程序名和相关参数表.
INTENT
地址传递方案.
real, INTENT(IN) :: y(*)
传递数组给子程序
多维数组
a(:,1) 选取第一列
a(1,:) 选取第一行
a(1:3,1:3:5) 选取第1到3行,第1,3,5列
where结构
WHERE(value>0)
logval=LOG(value)
ELSEWHERE
LOGVAL = -9999
END WHERE
forall结构
FORALL(i=1:n,j=1:m,work(I,j)/=0)
work(I,j)=1./work(i,j)
END FORALL
fortran 语言总结相关推荐
- f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码
f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码 分类: Python Numpy_Scipy fortran MinGW_GCC_Boost f2py 2012 ...
- 格子玻尔兹曼方法书中,计算机代码(Fortran语言)FDM的输出结果是什么,为什么显示程序“[25024] Console1.exe”已退出,返回值为 0 (0x0)。
格子玻尔兹曼方法书中,计算机代码(Fortran语言)FDM的输出结果是什么,为什么显示程序"[25024] Console1.exe"已退出,返回值为 0 (0x0).
- 【历史上的今天】12 月 3 日:世界上第一条短信;Fortran 语言之父诞生;百度贴吧上线
整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 12 月 3 日,在 20 年前的今天,电动平衡车(Segway)问世:电动平衡车是一种电力驱动.具 ...
- Fortran语言的入门与心得
实验室很多旧的程序是用Fortran语言编写的,因此,就学习了一下Fortran语言,下面是我的一些个人总结: 第一部分:第一个例子 1.1 Hello world 程序 program main ...
- Flow-3D的fortran语言简单科普,足够二次开发的入门
Flow-3D的fortran语言简单科普,足够二次开发的入门 直接看链接吧 直接看链接吧 B站的UP主 lglhit 视频 看这个链接: 如何编写焊接热源子程序(平面热源) 这个讲的是abaqus的 ...
- 【一天一门编程语言】Fortran 语言程序设计极简教程
文章目录 Fortran 语言程序设计极简教程 一.Fortran 语言的基本语法 1.1 注释 1.2 标识符 1.3 变量 1.4 语句 1.5 运算符 二.Fortran 语言程序的编写 2.1 ...
- 并行计算中的Fortran语言
Fortran入门 前言 一.Fortran题目 二.代码 1.第一题 2.第二题 3.第三题 4.第四题 5.第五题 6.第六题 总结 前言 Fortran语言是我接触过最古老的编程语言之一了,它很 ...
- 一台计算机安装了fortran语言,第一章计算机Fortran语言简介精要.ppt
第一章计算机Fortran语言简介精要.ppt 第1章 计算机与Fortran语言简介 知道计算机的基本构造 理解二进制系统 Fortran的历史和现状 内容简介: 1.1 计算机 CPU (cent ...
- fortran语言输入带空格字符串
Fortran语言输入含空格字符串 read(*,*) greeting write(*,*) greeting 使用默认输入格式的输出结果: 将默认输入read(*,*) 修改为read(*,'(a ...
- mpi学习1:以C语言和fortran语言为例简单的接收发送
mpi分为阻塞通信和非租塞通信两种.其中阻塞通信产生了等待时间的情况.(这个等待时间也是空闲时间)也可以说这个发送进程和接收进程需要相互等待对方. 以下为c语言和fortran语言的简单例子,并行为两 ...
最新文章
- iOS进阶之页面性能优化
- kernel logo到开机动画之间闪现黑屏(android 5.X)
- oracle SQL not in null,单列,复合列
- Vue中向js中传递参数并在js中定义对象并转换参数
- 分区partition是否只保存一部分数据?
- adb shell读取返回值_shell学习笔记03(函数amp;shell工具amp;面试题)
- 自动驾驶汽车自主决策与规划技术(一):里程定位于全局定位简介
- 7-56 互评成绩 (25 分) (排序题)
- Beta版本展示博客
- 更改图书信息c语言编码,图书管理系统C语言实现源代码.pdf
- Linux下载 安装cadenceIC617
- 阿里云技术专家入选Apache Member;百度Q1财报:营收241亿元;华为面向全球发布AI-Native数据库……...
- 外贸营销网站系统开发功能案例制作
- linux+硬盘rd5,BackTrack5(BT5)硬盘安装完美教程 亲测可用
- 腾讯云COS云存储入门(一)
- keil4单片机串口通信
- 电脑开不了机 ,怎么解决?
- vue UI(Vertify和Element)优缺点随录
- 元宇宙漫游指南-区块链构建元宇宙基础设施,一文搞清楚元宇宙和区块链
- 一些句子【未完待续】