Fortran 基础知识

Fortran 基础知识。```fortran IMPLICIT NONE

基础知识

1
2
3
IMPLICIT NONE
! 建议所有代码都加入此内容
! 加入这个叙述之后,会把内定型态的功能关闭

简单示例:

1
2
3
4
5
6
7
8
9
! Free Format
program main
IMPLICIT NONE
write(*,*) hello ! 打印出 hello 这个字
write(*,*) &
hello
wri&
te(*,*) hello
end

! 为注释标识符号

& 为换行标识符号

write(位置,格式) “字符串”

变量定义

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
! 变量定义

! 整数
integer a

! 浮点数
! 单精度浮点数
real a
rea*4 a
! 双精度浮点数
real*8 a

! 复数
complex a

! 字符及字符串
CHARACTER a    ! 单个字符
CHARACTER(10) a    ! 长度为10的字符串
CHARACTER*10 a
CHARACTER*(10) a
CHARACTER(LEN=10) a

DEMO 示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
! demo
PROGRAM xxxx
IMPLICIT NONE
INTEGER INT1, INT2 宣告区
REAL REAL1, REAL2
READ(*,*) INT1, INT2 程序主体
WRITE (*,*) INT1+INT2
……………………….
STOP
END

if

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
IF(逻辑判断式) THEN
执行动作 1
ELSE
执行动作 2
END IF

SAMPLE5.f90
PROGRAM MAIN
IMPLICIT NONE
REAL HIEGHT
REAL WEIGHT
READ(*,*) HEIGHT
READ(*,*) WEIGHT
IF (WEIGHT > HEIGHT-100) THEN
WRITE(*,*) TOO FAT!”
ELSE
WRITE(*,*) UNDER CONTROL
END IF
STOP
END
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
= = 相等
/ = 不相等
> 大于
> = 大于等于
< 小于
< = 小于等于
.AND. 如果两边式子都成立,整个条件就成立
.OR. 两边的式子只要有一个成立,整个条件就成立
.NOT. 如果后面的式子不成立,整个式子就算成立
.EQV. 两边式子的逻辑运算结果相同时,整个式子就成立
.NEQV. 两边式子的逻辑运算结果不同时,整个式子就成立

do

1
2
3
4
5
6
7
DO 起始值, 终止值, 累加值
执行程序代码
END DO

DO I=10, 5, -1
WRITE(*,*) I
END DO

do…while

1
2
3
DO 起始值, 终止值, 累加值
执行程序代码
END DO

数组

1
2
integer a(10) !宣告 a 这个数组有 10 个元素
integer , dimension(10) :: a ! 同上,另一种作法

主程序 子程序

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
PROGRAM MAIN
IMPLICIT NONE
INTEGER :: A=1
WRITE (*,*) A 的初始值是”, A
CALLADD(A)
WRITE(*,*) A 后来的值是”, A
STOP
END
SUBROUTINE ADD(NUM)
IMPLICIT NONE
INTEGER NUM
NUM = NUM + 1
RETURN
END SUBROUTINE
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
PROGRAM MAIN
IMPLICIT NONE
REAL, EXTERNAL:: TRIPPLE
 real:: A=1.38
 WRITE (*,*) "A的初始值是", A
 WRITE (*,*) "呼叫函数",TRIPPLE(A)
 WRITE(*,*) "A 后来的值是", A
 STOP
END
REAL FUNCTION TRIPPLE(NUM)
IMPLICIT NONE
 REAL NUM
 TRIPPLE = NUM * 3
 RETURN
END
Licensed under CC BY-NC-SA 4.0
Gear(夕照)的博客。记录开发、生活,以及一些不足为道的思考……