FORTRAN中的数组声明,适合初学者

时间:2015-03-04 19:38:57

标签: arrays fortran declaration

这是一个初学者问题,但我没有找到全面的答案。

以下声明有何不同(如果有)?

CHARACTER(5) :: a
CHARACTER, DIMENSION (5) :: b
CHARACTER(LEN=5) :: c
CHARACTER :: d(5)
CHARACTER :: e*5

并且:所有这些声明都可以与其他类型一起使用,例如REAL

2 个答案:

答案 0 :(得分:5)

无论类型如何,<type>,dimension(5) :: b<type> :: b(5)都相同,并且表示长度为5的数组。 <type>可以是例如characterintegerreallogical

character(5)character(len=5)的简写,声明了一个长度为5的字符串。如果省略长度,则假定它已打开。 character :: d(5)是一个包含五个长度为1的字符串的数组。

character :: e*5是指定字符串长度的旧版本。

len是字符串固有的(并且对于例如浮点数没有任何意义)。但是,您可以指定自己的派生类型,使其长度为len(&#34;参数化派生类型&#34;)。对于整数和浮点数(以及其他一些),您可以以类似的方式指定变量的kind

有关详情,请参阅Fortran 2008 Standard,Ch。 4.4.3.2 &#34;字符类型说明符&#34;

答案 1 :(得分:3)

其中三个声明一个包含5个字符的字符串的字符变量。其中两个声明了一个包含5个字符的数组,每个字符都能容纳一个字符。

声明5个元素数组的两个元素将以相同的方式声明5个实数的数组。声明长度为5的字符的三个在其他变量类型中没有模拟。然而,这三个子集的特定语法将被编译,但将用于选择不同的的实数,而不是表示字符长度。