@@ -32,7 +32,7 @@ contains
3232 integer :: unit_, width_#{if r1 == 2}#, max_elem_len#{endif}#
3333 logical :: brief_
3434 character(len=:), allocatable :: format_, sep_
35- #{if r1 != 0 or (r1 == 1 and k1 ! = "string_type")}#integer :: i#{endif}#
35+ #{if r1 != 0 and not (r1 == 1 and k1 = = "string_type")}#integer :: i#{endif}#
3636 #{if r1 == 2 and k1 != "string_type"}#integer :: j#{endif}#
3737 #{if k1 != "string_type"}#type(string_type), allocatable :: x_str${ranksuffix(r1)}$#{endif}#
3838 #{if r1 != 0}#type(string_type) :: array_info#{endif}#
@@ -51,7 +51,7 @@ contains
5151
5252 #! Prints header
5353 if (present(header)) then
54- write(unit_, * ) format_output_string([string_type(header)], width_, brief_, "", len(header))
54+ write(unit_, "(A)" ) format_output_string([string_type(header)], width_, brief_, "", len(header))
5555 end if
5656
5757 #:if k1 != "string_type"
@@ -63,7 +63,7 @@ contains
6363
6464 #:elif r1 == 1
6565 array_info = array_info_maker(size(x, 1))
66- write(unit_, * ) format_output_string([array_info], width_, brief_, "", len(array_info))
66+ write(unit_, "(A)" ) format_output_string([array_info], width_, brief_, "", len(array_info))
6767
6868 allocate(x_str(size(x, 1)))
6969 do i = 1, size(x, 1)
@@ -74,7 +74,7 @@ contains
7474 #:elif r1 == 2
7575
7676 array_info = array_info_maker(size(x, 1), size(x, 2))
77- write(unit_, * ) format_output_string([array_info], width_, brief_, "", len(array_info))
77+ write(unit_, "(A)" ) format_output_string([array_info], width_, brief_, "", len(array_info))
7878
7979 allocate(x_str(size(x, 1), size(x, 2)))
8080 do i = 1, size(x, 1)
@@ -110,14 +110,14 @@ contains
110110
111111 #:elif r1 == 1
112112 array_info = array_info_maker(size(x, 1))
113- write(unit_, * ) format_output_string([array_info], width_, brief_, "", len(array_info))
113+ write(unit_, "(A)" ) format_output_string([array_info], width_, brief_, "", len(array_info))
114114
115115 write(unit_, "(*(A))") format_output_string(x, width_, brief_, sep_, maxval(len(x)))
116116
117117 #:elif r1 == 2
118118
119119 array_info = array_info_maker(size(x, 1), size(x, 2))
120- write(unit_, * ) format_output_string([array_info], width_, brief_, "", len(array_info))
120+ write(unit_, "(A)" ) format_output_string([array_info], width_, brief_, "", len(array_info))
121121
122122 max_elem_len = maxval(len(x))
123123
@@ -146,7 +146,7 @@ contains
146146 #:endfor
147147
148148 !> Format output string
149- pure module function format_output_string(x, width, brief, sep, max_elem_len) result(str)
149+ pure function format_output_string(x, width, brief, sep, max_elem_len) result(str)
150150
151151 type(string_type), intent(in) :: x(:)
152152 integer, intent(in) :: width
@@ -204,7 +204,7 @@ contains
204204 num1 = merge(width/elem_len, 1, elem_len <= width)
205205 num2 = size(x, 1)/num1
206206
207- if (num2 > 1 .or. size(x, 1) /= 0 ) then
207+ if (num2 > 1 .or. size(x, 1) > 1 ) then
208208 allocate(str(merge(num2, num2 + 1, mod(size(x, 1), num1)==0)))
209209
210210 do i = 1, size(str) - 1
@@ -262,8 +262,8 @@ contains
262262
263263 end function format_output_string
264264
265- !> Print array infomation
266- pure type(string_type) module function array_info_maker(m, n) result(info)
265+ !> Print array information
266+ pure type(string_type) function array_info_maker(m, n) result(info)
267267 integer, intent(in) :: m
268268 integer, intent(in), optional :: n
269269
0 commit comments