显式格式需要使用与数据类型对应的编辑描述符。A处理字符,I处理整数,L处理逻辑值;描述符中的宽度决定数据占用的字符位置。
语法结构
A
Aw
Iw
Lw
- A不写宽度时按字符表达式自身的长度输出;Aw使用宽度为w的字段。
- Iw在宽度为w的字段中输出整数,字段有剩余时在左侧填充空格。
- Lw输出逻辑值,通常显示为T或F。
本文代码
! A、I和L分别格式化字符、整数和逻辑值。
program characterIntegerLogicalDescriptorsDemo
implicit none
character(len=*), parameter :: componentName = "resistor"
integer :: componentCount
logical :: isAvailable
componentCount = 42
isAvailable = .true.
print "(A,A)", "A :", componentName
print "(A,I8)", "I8 :", componentCount
print "(A,L8)", "L8 :", isAvailable
end program characterIntegerLogicalDescriptorsDemo
编译运行
(base) hong@hongdeMacBook-Pro 034.characterIntegerLogicalDescriptors % gfortran exampleCharacterIntegerLogicalDescriptors.f90
(base) hong@hongdeMacBook-Pro 034.characterIntegerLogicalDescriptors % ./a.out
A :resistor
I8 : 42
L8 : T
现象分析
第一个值由不带宽度的A输出,因此resistor按自身长度紧接在标签之后。整数42和逻辑值T分别放入宽度为8的字段,未使用的位置在左侧表现为空格。
核心知识点
- 字符、整数和逻辑值应分别使用A、I和L。
- 字段宽度用于对齐输出,不会改变变量本身的值。
- 字段必须足以容纳数据,否则无法得到正常的字段内容。