面向初学者的 FORTRAN 中的数组声明
Array declaration in FORTRAN for beginners
这是一个初学者问题,但我还没有找到全面的答案。
以下声明有何不同(如果有)?
CHARACTER(5) :: a
CHARACTER, DIMENSION (5) :: b
CHARACTER(LEN=5) :: c
CHARACTER :: d(5)
CHARACTER :: e*5
并且:是否所有这些声明都可以与其他类型一起使用,例如 REAL
?
其中三个声明了一个包含 5 个字符的字符串的字符变量。其中两个声明了一个包含 5 个字符的数组,每个字符可以容纳一个字符。
声明 5 个元素数组的两个与声明 5 个实数数组的方式相同。声明长度为 5 的字符的三个在其他变量类型中没有类似物。然而,这三个子集的特定语法将编译,但将用于 select 不同的 种类 实数,而不是表示字符长度。
无论类型如何,<type>,dimension(5) :: b
和<type> :: b(5)
是相同的,表示长度为5
的数组。 <type>
可以是例如character
、integer
、real
、logical
等
character(5)
是 character(len=5)
的缩写,声明了一个长度为 5
的字符串。如果省略长度,则假定为打开。 character :: d(5)
是五个长度为 1 的字符串的数组。
character :: e*5
是指定字符串长度的旧变体。
len
是字符串固有的(并且对于例如浮点数没有意义)。不过,您可以指定自己的派生类型的长度为 len
("Parameterized derived types")。对于整数和浮点数(以及其他一些),您可以以类似的方式指定变量的 kind
。
有关详细信息,请参阅 Fortran 2008 Standard,Ch。 4.4.3.2 "Character type specifier"。
这是一个初学者问题,但我还没有找到全面的答案。
以下声明有何不同(如果有)?
CHARACTER(5) :: a
CHARACTER, DIMENSION (5) :: b
CHARACTER(LEN=5) :: c
CHARACTER :: d(5)
CHARACTER :: e*5
并且:是否所有这些声明都可以与其他类型一起使用,例如 REAL
?
其中三个声明了一个包含 5 个字符的字符串的字符变量。其中两个声明了一个包含 5 个字符的数组,每个字符可以容纳一个字符。
声明 5 个元素数组的两个与声明 5 个实数数组的方式相同。声明长度为 5 的字符的三个在其他变量类型中没有类似物。然而,这三个子集的特定语法将编译,但将用于 select 不同的 种类 实数,而不是表示字符长度。
无论类型如何,<type>,dimension(5) :: b
和<type> :: b(5)
是相同的,表示长度为5
的数组。 <type>
可以是例如character
、integer
、real
、logical
等
character(5)
是 character(len=5)
的缩写,声明了一个长度为 5
的字符串。如果省略长度,则假定为打开。 character :: d(5)
是五个长度为 1 的字符串的数组。
character :: e*5
是指定字符串长度的旧变体。
len
是字符串固有的(并且对于例如浮点数没有意义)。不过,您可以指定自己的派生类型的长度为 len
("Parameterized derived types")。对于整数和浮点数(以及其他一些),您可以以类似的方式指定变量的 kind
。
有关详细信息,请参阅 Fortran 2008 Standard,Ch。 4.4.3.2 "Character type specifier"。