@@ -39,6 +39,7 @@ function str_replace(str,old,new) result(strout)
3939 work(:)= .false.
4040 len_old= len_trim (old)
4141 len_new= len_trim (new)
42+ strout= " "
4243 do i= 1 ,len_trim (str)
4344 if (work(i))cycle
4445 if (str(i:i+ (len_old-1 )).eq. old)then
@@ -62,6 +63,7 @@ function str_upper(str) result(strout)
6263 character (len=* ), intent (in ) :: str
6364 character (len= :), allocatable :: strout
6465 integer :: i
66+ strout= " "
6567 do i= 1 ,len_trim (str)
6668 if (iachar (str(i:i)).ge. 97.and .iachar (str(i:i)).le. 122 )then
6769 strout= strout// achar (iachar (str(i:i))- 32 )
@@ -82,6 +84,7 @@ function str_lower(str) result(strout)
8284 character (len=* ), intent (in ) :: str
8385 character (len= :), allocatable :: strout
8486 integer :: i
87+ strout= " "
8588 do i= 1 ,len_trim (str)
8689 if (iachar (str(i:i)).ge. 65.and .iachar (str(i:i)).le. 90 )then
8790 strout= strout// achar (iachar (str(i:i))+ 32 )
@@ -111,6 +114,7 @@ function str_split(str,delim,col) result(strout)
111114 integer :: i,cnt,lastpos
112115 cnt= 0
113116 lastpos= 0
117+ strout= " "
114118 if (col.le. 0.or .col.gt. (str_count(str,delim)+ 1 ).or. str_count(str,delim).eq. 0 )then
115119 strout= str
116120 return
@@ -153,6 +157,7 @@ function str_uniq(str,delim) result(strout)
153157 strlen= len (ctemp)
154158 ndelims= str_count(ctemp,delim)
155159 ncols= ndelims+1
160+ strout= " "
156161 do n= 1 ,ncols
157162 col= str_split(ctemp,delim,n)
158163 if (n.eq. 1 )then
@@ -189,6 +194,7 @@ function str_zfill(str,width) result(strout)
189194 character (len=* ), intent (in ) :: str
190195 integer , intent (in ) :: width
191196 character (len= :), allocatable :: strout
197+ strout= " "
192198 if (width.le. len_trim (str))then
193199 strout= str
194200 else
@@ -213,6 +219,7 @@ function str_center(str,width,fillchar) result(strout)
213219 character (len= :), allocatable :: strout
214220 character (len= 1 ) :: local_fillchar
215221 local_fillchar= " "
222+ strout= " "
216223 if (present (fillchar))local_fillchar= fillchar
217224 if (width.le. len_trim (str))then
218225 strout= str
@@ -236,6 +243,7 @@ function str_reverse(str) result(strout)
236243 character (len=* ), intent (in ) :: str
237244 character (len= :), allocatable :: strout
238245 integer :: i
246+ strout= " "
239247 do i= len (str),1 ,- 1
240248 strout= strout// str(i:i)
241249 end do
0 commit comments