fortran fortran中文资料网
手气不错
Article

037.formatTextAndRepeat_格式中的文本与重复

格式不仅能描述数据,也能直接包含固定文本。多个数据使用相同布局时,可以重复单个编辑描述符,也可以重复由括号包围的整个格式组。

两种重复方式

3I5
2(1X,F6.2)
  • 3I5中的3是重复次数,I是整数描述符,5是每个整数字段的宽度;它等价于连续写三个I5
  • 2(1X,F6.2)中的2重复括号内的整个格式组,每组包含一个空格和一个宽度为6、保留2位小数的实数字段。
  • 资料中常用r表示重复次数、w表示字段宽度;它们是语法说明中的占位符,实际代码需要写成3、5等整数。
  • 格式中的字符字面量直接成为输出内容,不会消耗输出列表中的数据。

本文代码

! 格式可以包含固定文本,并重复使用描述符或格式组。
program formatTextAndRepeatDemo
  implicit none

  integer :: firstValue
  integer :: secondValue
  integer :: thirdValue
  real :: xCoordinate
  real :: yCoordinate

  firstValue = 3
  secondValue = 12
  thirdValue = 105
  xCoordinate = 1.25
  yCoordinate = -2.5

  print "('values:',1X,3I5)", firstValue, secondValue, thirdValue
  print "('point:',2(1X,F6.2))", xCoordinate, yCoordinate
end program formatTextAndRepeatDemo

编译运行

(base) hong@hongdeMacBook-Pro 037.formatTextAndRepeat % gfortran -Wall -Wextra -std=f2018 exampleFormatTextAndRepeat.f90
(base) hong@hongdeMacBook-Pro 037.formatTextAndRepeat % ./a.out
values:     3   12  105
point:   1.25  -2.50

现象分析

values:point:来自格式中的固定文本。3I5依次处理3、12和105,每个整数都占5列;2(1X,F6.2)依次处理两个坐标,使它们具有相同的间隔、字段宽度和小数位数。

核心知识点

  • 格式中的固定文本不会与输出列表中的表达式一一对应。
  • 重复次数写在描述符前,例如3I5;数字3和5的作用不能混淆。
  • 重复次数也可以作用于括号包围的格式组,例如2(1X,F6.2)
  • 重复格式适合结构相同的数据,能减少错误并突出输出布局。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注