如何在fortran中添加双标签?

时间:2019-04-01 11:05:45

标签: fortran

这样的代码行:

write(*,*) a,b

将会作为输出ab并以一个制表符分隔。如何编写ab由两个标签分开的输出?

2 个答案:

答案 0 :(得分:3)

您的行通常不会产生任何制表符,但会产生一些空白(空格)字符。如果要使用两个制表符,则必须使用其ASCII码9。

write(*,'(4g0)') a, achar(9), achar(9), b

请注意用于避免不必要的空白字符的显式格式'(4g0)'。借助g0描述符,它将适用于任何类型的ab

答案 1 :(得分:2)

字符不是Fortran字符集的一部分。因此,当您将其添加到源代码中时,大多数编译器应 抱怨[Cfr. Section 3 Fortran 2008 Standard]。

如果要将其添加到输出中,则必须创建一个 代表该特定字符的所请求种类的字符 字符。为此,您可以使用ACHAR(I [, KIND]) 将ASCII代码I转换为该特定类型的字符 KIND;如果未指定KIND,则为默认种类。为了 <tab>-character的内容为:

ACHAR(9)

另一种方法(但较不受欢迎)是利用 ISO_C_BINDING模块,用于定义常量 C_HORIZNTAL_TAB。这代表\t,是 C字符类型C_CHAR。如果C_CHAR=-1,则转换常量 到ACHAR(9) [Cfr. Section 15.2 Fortran 2008 Standard]

有关如何操作,请参见Vladimir's answer