Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp), | intent(in), | dimension(:) | :: | v | ||
character(len=*), | intent(in) | :: | fmt | |||
character(len=:), | intent(out), | allocatable | :: | str | ||
logical, | intent(in) | :: | use_numpy |
subroutine vec_to_string(v, fmt, str, use_numpy)
real(wp), dimension(:), intent(in) :: v !! real values
character(len=*), intent(in) :: fmt !! real format string
character(len=:), allocatable, intent(out) :: str !! real values stringified
logical, intent(in) :: use_numpy !! activate numpy python module usage
integer :: i !! counter
integer :: istat !! IO status
character(len=max_real_len) :: tmp !! dummy string
str = '['
do i=1, size(v)
if (fmt=='*') then
write(tmp, *, iostat=istat) v(i)
else
write(tmp, fmt, iostat=istat) v(i)
end if
if (istat/=0) error stop 'Error in vec_to_string'
str = str//trim(adjustl(tmp))
if (i<size(v)) str = str // ','
end do
str = str // ']'
!convert to numpy array if necessary:
if (use_numpy) str = 'np.array('//str//')'
end subroutine vec_to_string