fortran 语言总结

fortran 语言总结fortran 对大小写不敏感 语句以数字开始 表示语句的标号 fortran 长项与数值计算 注意文件的后缀名 和 ne 都是表示不等于 规则 保留字使用大写 如 PROGRAM READ WRITE 程序的变量使用小写 fortran f90 编译 asc15 mic01 fortan ifort fortran f90 INTERGRE REAL

大家好,我是讯享网,很高兴认识大家。

fortran
对大小写不敏感
语句以数字开始,表示语句的标号
fortran长项与数值计算
注意文件的后缀名

/=和.ne.都是表示不等于

规则:
保留字使用大写,如PROGRAM,READ,WRITE
程序的变量使用小写
fortran.f90
编译
[asc15@mic01 fortan]$ ifort fortran.f90

INTERGRE
REAL
LOGICAL

开始
“!”号后的字符均被视为注释.但字符串中的!除外.
注释行必须单独占一行,不能出现在其他语句的行尾.
续行的定义. 续行定义”&”
当一行的最后为”&”时,下一行与本行接续.
当一行的第一个字符是”&”时,本行与上一行接续.

表示乘方

变量
默认式:
凡是以字母 I,J,K,L,M,N六个字母开头的,即认为是整型变量,其他为实型变量.

声明字符串:
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 ([下标下界:]下标上界[,..][,..])[::] 数组名 [,..]

数组赋值

data 语句进行数组赋值

声明常量
parameter(PI=3.)


讯享网

关系运算符
.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

迭代或计数循环
DO index=istart,iend,incr
..
END Do

开始处istart赋值给index.如果index*incr<=iend*incr
每次执行过后
index+=incr

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

小讯
上一篇 2025-03-16 11:44
下一篇 2025-03-17 19:58

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/12372.html