如何在Fortran中声明可分配标量数组?

SOU*_*ser 8 arrays fortran character

在Fortran 90及更高版本中可以使用可分配的阵列.

INTEGER, ALLOCATABLE, DIMENSION(:) :: test_int_array
Run Code Online (Sandbox Code Playgroud)

Fortran 2003中可以使用可分配的标量,例如可分配的字符.

CHARACTER(LEN=:), ALLOCATABLE :: test_str
Run Code Online (Sandbox Code Playgroud)

我想知道是否有可能声明一个可分配字符的数组,固定或可分配?(可能就像下面的东西,不幸的是不能编译.)

CHARACTER(LEN=:), ALLOCATABLE, DIMENSION(4) :: test_str_array
Run Code Online (Sandbox Code Playgroud)

M. *_* B. 8

    program test_alloc

   character (len=:), allocatable :: string

   character(len=:), allocatable :: string_array(:)

   type my_type
      character (len=:), allocatable :: my_string
   end type my_type
   type (my_type), dimension (:), allocatable :: my_type_array

   string = "123"
   write (*, *) string, len (string)
   string = "abcd"
   write (*, *) string, len (string)

   allocate(character(5) :: string_array(2))
   string_array (1) = "1234"
   string_array (2) = "abcde"
   write (*, *) string_array (1), len (string_array (1))
   write (*, *) string_array (2), len (string_array (2))

   allocate (my_type_array (2))
   my_type_array (1) % my_string = "XYZ"
   my_type_array (2) % my_string = "QWER"
   write (*, *) my_type_array (1) % my_string, len (my_type_array (1) % my_string)
   write (*, *) my_type_array (2) % my_string, len (my_type_array (2) % my_string)

end program test_alloc
Run Code Online (Sandbox Code Playgroud)

我在http://software.intel.com/en-us/forums/showthread.php?t=77823找到了语法.它适用于ifort 12.1但不适用于gfortran 4.6.1.尝试创建用户定义类型的工作也不起作用.