@@ -32,7 +32,7 @@ contains
32
32
integer :: unit_, width_#{if r1 == 2}#, max_elem_len#{endif}#
33
33
logical :: brief_
34
34
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}#
36
36
#{if r1 == 2 and k1 != "string_type"}#integer :: j#{endif}#
37
37
#{if k1 != "string_type"}#type(string_type), allocatable :: x_str${ranksuffix(r1)}$#{endif}#
38
38
#{if r1 != 0}#type(string_type) :: array_info#{endif}#
@@ -51,7 +51,7 @@ contains
51
51
52
52
#! Prints header
53
53
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))
55
55
end if
56
56
57
57
#:if k1 != "string_type"
@@ -63,7 +63,7 @@ contains
63
63
64
64
#:elif r1 == 1
65
65
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))
67
67
68
68
allocate(x_str(size(x, 1)))
69
69
do i = 1, size(x, 1)
@@ -74,7 +74,7 @@ contains
74
74
#:elif r1 == 2
75
75
76
76
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))
78
78
79
79
allocate(x_str(size(x, 1), size(x, 2)))
80
80
do i = 1, size(x, 1)
@@ -110,14 +110,14 @@ contains
110
110
111
111
#:elif r1 == 1
112
112
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))
114
114
115
115
write(unit_, "(*(A))") format_output_string(x, width_, brief_, sep_, maxval(len(x)))
116
116
117
117
#:elif r1 == 2
118
118
119
119
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))
121
121
122
122
max_elem_len = maxval(len(x))
123
123
@@ -146,7 +146,7 @@ contains
146
146
#:endfor
147
147
148
148
!> 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)
150
150
151
151
type(string_type), intent(in) :: x(:)
152
152
integer, intent(in) :: width
@@ -204,7 +204,7 @@ contains
204
204
num1 = merge(width/elem_len, 1, elem_len <= width)
205
205
num2 = size(x, 1)/num1
206
206
207
- if (num2 > 1 .or. size(x, 1) /= 0 ) then
207
+ if (num2 > 1 .or. size(x, 1) > 1 ) then
208
208
allocate(str(merge(num2, num2 + 1, mod(size(x, 1), num1)==0)))
209
209
210
210
do i = 1, size(str) - 1
@@ -262,8 +262,8 @@ contains
262
262
263
263
end function format_output_string
264
264
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)
267
267
integer, intent(in) :: m
268
268
integer, intent(in), optional :: n
269
269
0 commit comments