Skip to content

输入输出及声明

目录

输入与输出命令

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 用于删除字符串变量中最后的空格
  • 类似于 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 命令中,指定格式要求得以实现
格式字段说明
nXn 个空格,即把输出的位置向右跳过 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

基于 CC BY-NC-SA 4.0 许可发布