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 语言总结相关推荐

  1. f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码

    f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码 分类: Python Numpy_Scipy fortran MinGW_GCC_Boost f2py 2012 ...

  2. 格子玻尔兹曼方法书中,计算机代码(Fortran语言)FDM的输出结果是什么,为什么显示程序“[25024] Console1.exe”已退出,返回值为 0 (0x0)。

    格子玻尔兹曼方法书中,计算机代码(Fortran语言)FDM的输出结果是什么,为什么显示程序"[25024] Console1.exe"已退出,返回值为 0 (0x0).

  3. 【历史上的今天】12 月 3 日:世界上第一条短信;Fortran 语言之父诞生;百度贴吧上线

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 12 月 3 日,在 20 年前的今天,电动平衡车(Segway)问世:电动平衡车是一种电力驱动.具 ...

  4. Fortran语言的入门与心得

    实验室很多旧的程序是用Fortran语言编写的,因此,就学习了一下Fortran语言,下面是我的一些个人总结: 第一部分:第一个例子 1.1  Hello world 程序 program main ...

  5. Flow-3D的fortran语言简单科普,足够二次开发的入门

    Flow-3D的fortran语言简单科普,足够二次开发的入门 直接看链接吧 直接看链接吧 B站的UP主 lglhit 视频 看这个链接: 如何编写焊接热源子程序(平面热源) 这个讲的是abaqus的 ...

  6. 【一天一门编程语言】Fortran 语言程序设计极简教程

    文章目录 Fortran 语言程序设计极简教程 一.Fortran 语言的基本语法 1.1 注释 1.2 标识符 1.3 变量 1.4 语句 1.5 运算符 二.Fortran 语言程序的编写 2.1 ...

  7. 并行计算中的Fortran语言

    Fortran入门 前言 一.Fortran题目 二.代码 1.第一题 2.第二题 3.第三题 4.第四题 5.第五题 6.第六题 总结 前言 Fortran语言是我接触过最古老的编程语言之一了,它很 ...

  8. 一台计算机安装了fortran语言,第一章计算机Fortran语言简介精要.ppt

    第一章计算机Fortran语言简介精要.ppt 第1章 计算机与Fortran语言简介 知道计算机的基本构造 理解二进制系统 Fortran的历史和现状 内容简介: 1.1 计算机 CPU (cent ...

  9. fortran语言输入带空格字符串

    Fortran语言输入含空格字符串 read(*,*) greeting write(*,*) greeting 使用默认输入格式的输出结果: 将默认输入read(*,*) 修改为read(*,'(a ...

  10. mpi学习1:以C语言和fortran语言为例简单的接收发送

    mpi分为阻塞通信和非租塞通信两种.其中阻塞通信产生了等待时间的情况.(这个等待时间也是空闲时间)也可以说这个发送进程和接收进程需要相互等待对方. 以下为c语言和fortran语言的简单例子,并行为两 ...

最新文章

  1. iOS进阶之页面性能优化
  2. kernel logo到开机动画之间闪现黑屏(android 5.X)
  3. oracle SQL not in null,单列,复合列
  4. Vue中向js中传递参数并在js中定义对象并转换参数
  5. 分区partition是否只保存一部分数据?
  6. adb shell读取返回值_shell学习笔记03(函数amp;shell工具amp;面试题)
  7. 自动驾驶汽车自主决策与规划技术(一):里程定位于全局定位简介
  8. 7-56 互评成绩 (25 分) (排序题)
  9. Beta版本展示博客
  10. 更改图书信息c语言编码,图书管理系统C语言实现源代码.pdf
  11. Linux下载 安装cadenceIC617
  12. 阿里云技术专家入选Apache Member;百度Q1财报:营收241亿元;华为面向全球发布AI-Native数据库……...
  13. 外贸营销网站系统开发功能案例制作
  14. linux+硬盘rd5,BackTrack5(BT5)硬盘安装完美教程 亲测可用
  15. 腾讯云COS云存储入门(一)
  16. keil4单片机串口通信
  17. 电脑开不了机 ,怎么解决?
  18. vue UI(Vertify和Element)优缺点随录
  19. 元宇宙漫游指南-区块链构建元宇宙基础设施,一文搞清楚元宇宙和区块链
  20. 一些句子【未完待续】

热门文章

  1. Caffe 与 Caffe2
  2. stm32 DA 数模转换
  3. 计算机动画专业好吗,【2人回答】学动画专业,买个什么样的电脑比较好啊?-3D溜溜网...
  4. 页眉、页脚及页码的设置(fancyhdr宏包的使用)
  5. 中国式造假之一-陕西华南虎事件今公布结果
  6. 生物信息:三维基因组,转录组,重测序,chip-seq 视频课程 24节全
  7. 易维帮助台如何“重新定义客户服务”?
  8. 90后80后70后60后50后的无奈
  9. iOS学习笔记--图片美白(二)
  10. 手机页面尺寸设置(一)