dram.me

Fortran中字符串和数组声明

补遗

  1. 从标准文档B.3.8节可以看到,字符串声明第二种形式是在FORTRAN 77引入的,现在已经弃用了,而第一种形式是在Fortran 90引入的。—— 2018-04-07

可能因为Fortran发展历史较长,同时也是对向后兼容性的重视,导致很多特性可以通过多种方式实现,这在一定程度上增加了语言的复杂性。

这里主要说明Fortran在字符串和数组声明的多种处理机制,基于Fortran 2018标准文档草稿(N2146)解读。

标准在8.2 Type declaration statement中集中说明了类型声明的语法。其中可以看出,对于字符串长度的声明,可以包括两种格式,且第二种优先级更高(如果N是数值字面值,括号可以省略):

character(len=N) :: s
character :: s * (N)

而对数组维度的声明,同样包括两种格式,且第二种优先级更高:

integer, dimension(N) :: A
integer :: A (N)

至于具体的历史沿革,这些特性分别是在什么时候出于什么原因引入的,后续可以再做研究。