输入输出及声明
目录
输入与输出命令
write: 输出命令
- 格式:
write(UNIT=*,FMT=*) 要输出的内容
,括号中的各参数不可缺少,否则会产生编译错误或运行错误。UNIT
为输出位置,FMT
为输出格式
UNIT 的值 | 说明 |
---|---|
星号 “*” | 将要输出的内容,按照指定的格式要求,输出到屏幕 |
0 或 6 | 将要输出的内容,按照指定的格式要求,输出到已打开的相同 unit 文件,当未打开文件时,输出到屏幕 |
0 和 6 以外的正整数 | 将要输出的内容,按照指定的格式要求,输出到已打开的相同 unit 文件;当未打开时(此时 unit 值不能是 5),会输出到 fort.* ,其中 * 为 unit 值 |
字符串变量 | 将要输出的内容,按照指定的格式要求,输出到字符串变量;字符串变量需要足够长,否则会运行出错 |
unit=5 是键盘输入的值,在未绑定文件的情况下接到输出时,会导致运行错误
建议:不要把 unit 值设为负整数,以免导致运行错误,unit 具有全局性,最好不要修改 0、5、6 等值
- 要输出的内容是由若干字符串和变量构成的序列,之间通过逗号 “,” 间隔,变量的类型可以是字符串、整数、浮点数、逻辑、复数,也可以是数组和自定义类型变量
trim
用于删除字符串变量中最后的空格
print 命令
- 类似于 write 命令,print 也是输出命令,但是 print 后面没有括号,只有一个星号 (“*”),且与要输出的内容之间,通过逗号 “,” 间隔。
- print 只能将信息输出到屏幕
Fortran
! print.f90
program main
implicit none
integer :: a
a = 1
print *, "value 'a'=", a
end program main
以下为编译输出过程
bash
$ gfortran -g print.f90
(Linux)$ ./a.out
(Windows)$ .\a.exe
value 'a'= 1.00000000
read: 输入命令
Fortran 默认以空格作为分隔符,输入时,输入的数据之间可以用空格隔开,输入完毕后,按回车键结束输入
格式化输入输出
- 通过在 write 和 print 命令中,指定格式要求得以实现
格式字段 | 说明 |
---|---|
nX | n 个空格,即把输出的位置向右跳过 n 个位置 |
A | 以字符串长度的字符宽度来输出/输入字符串 |
Aw | 以 w 个字符宽度来输出/输入字符串 |
Dw.d | 以 w 个字符宽来输入/输出指数类型的浮点数,小数点后部分占 d 个字符宽;通常要求 w-d 不少于 7;有效数部分大于等于 0.1 且小于 1 |
Ew.d[Ee] | 以 w 个字符宽来输出指数类型的浮点数,小数点后部分 d 个字符宽,指数部分占 e 个字符宽;通常要求 w-d 不少于 7,w-d-e 不少于 5;有效数部分大于等于 0.1 且小于 1 |
ENw.d[Ee] | 以 w 个字符宽来输出指数类型的浮点数,小数点后部分占 d 个字符宽,指数部分占 e 个字符宽;通常要求 w-d 不少于 7,w-d-e 不少于 5;指数值是 3 的整数倍,有效数部分大于等于 1 且小于 1000 |
ESw.d[Ee] | 以 w 个字符宽来输出指数类型的浮点数,小数点后部分占 d 个字符宽,指数部分占 e 个字符宽;通常要求 w-d 不少于 7,w-d-e 不少于 5;有效数部分大于等于 1 且小于 10 |
Fw.d | 以 w 个字符宽来输出浮点数(非指数类型),通常要求 w-d 大于整数部分的数位;w 可以是 0,表示自动匹配字符宽度 |
Gw.d[Ee] | 以 w 字符宽度输出任何类型数据。当被输出的数是字符串时,其等同于 Aw;当被输出的数是整数时,其等同于 Iw;当被输出的数是浮点数时,其等同于 Ew.d[Ee] |
Iw[.m] | 以 w 字符宽度输出整数,最少输出 m 个数字。通常要求 w>d;当 d 大于整数的数位时,高位会补 0;I0 表示输出整数的所有数位且左边没有空格;当 w 小于整数的数位时,会输出若干星号 |
Lw | 以 w 个字符宽来输出 T 或 F 真假值 |
声明
自定义数据类型
使用 type
命令来自定义数据类型,其格式为:
Fortran
type Name
type declaration
end type Name
! for example
type student
character(len=10) :: name
character(len=10) :: id
integer :: age
real :: score
end type student