to_char_matrix_dp Function

private function to_char_matrix_dp(array) result(trimmed_str)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: array(:,:)

Return Value character(len=:), allocatable


Called by

proc~~to_char_matrix_dp~~CalledByGraph proc~to_char_matrix_dp to_char_matrix_dp interface~to_char to_char interface~to_char->proc~to_char_matrix_dp proc~check_io check_io proc~check_io->interface~to_char proc~flop_rate_report flop_rate_type%flop_rate_report proc~flop_rate_report->interface~to_char proc~print_matrix_dp print_matrix_dp proc~print_matrix_dp->interface~to_char proc~print_matrix_int32 print_matrix_int32 proc~print_matrix_int32->interface~to_char proc~print_matrix_int64 print_matrix_int64 proc~print_matrix_int64->interface~to_char proc~print_matrix_sp print_matrix_sp proc~print_matrix_sp->interface~to_char proc~print_packed_matrix_dp print_packed_matrix_dp proc~print_packed_matrix_dp->interface~to_char proc~print_packed_matrix_int32 print_packed_matrix_int32 proc~print_packed_matrix_int32->interface~to_char proc~print_packed_matrix_int64 print_packed_matrix_int64 proc~print_packed_matrix_int64->interface~to_char proc~print_packed_matrix_sp print_packed_matrix_sp proc~print_packed_matrix_sp->interface~to_char proc~print_vector_dp print_vector_dp proc~print_vector_dp->interface~to_char proc~print_vector_int32 print_vector_int32 proc~print_vector_int32->interface~to_char proc~print_vector_int64 print_vector_int64 proc~print_vector_int64->interface~to_char proc~print_vector_sp print_vector_sp proc~print_vector_sp->interface~to_char proc~read_header read_header proc~read_header->interface~to_char proc~read_header->proc~check_io proc~read_record_header read_record_header proc~read_record_header->interface~to_char proc~read_record_header->proc~check_io proc~soa_check_alloc soa_check_alloc proc~soa_check_alloc->interface~to_char proc~soa_check_field_count soa_check_field_count proc~soa_check_field_count->interface~to_char proc~soa_check_live_count soa_check_live_count proc~soa_check_live_count->interface~to_char proc~soa_check_resize_args soa_check_resize_args proc~soa_check_resize_args->interface~to_char proc~soa_plan_resize soa_plan_resize proc~soa_plan_resize->interface~to_char proc~soa_read_logical_field soa_read_logical_field proc~soa_read_logical_field->interface~to_char proc~soa_read_logical_field->proc~soa_check_alloc proc~soa_read_logical_field->proc~soa_check_field_count interface~read_array read_array proc~soa_read_logical_field->interface~read_array proc~soa_read_prologue soa_read_prologue proc~soa_read_prologue->interface~to_char proc~soa_read_prologue->proc~read_header proc~soa_read_prologue->interface~read_array proc~soa_write_prologue soa_write_prologue proc~soa_write_prologue->interface~to_char proc~write_header write_header proc~soa_write_prologue->proc~write_header interface~write_array write_array proc~soa_write_prologue->interface~write_array proc~timer_print_time timer_type%timer_print_time proc~timer_print_time->interface~to_char interface~pic_print_array pic_print_array interface~pic_print_array->proc~print_matrix_dp interface~pic_print_array->proc~print_matrix_int32 interface~pic_print_array->proc~print_matrix_int64 interface~pic_print_array->proc~print_matrix_sp interface~pic_print_array->proc~print_packed_matrix_dp interface~pic_print_array->proc~print_packed_matrix_int32 interface~pic_print_array->proc~print_packed_matrix_int64 interface~pic_print_array->proc~print_packed_matrix_sp interface~pic_print_array->proc~print_vector_dp interface~pic_print_array->proc~print_vector_int32 interface~pic_print_array->proc~print_vector_int64 interface~pic_print_array->proc~print_vector_sp proc~print_3d_tensor_dp print_3d_tensor_dp interface~pic_print_array->proc~print_3d_tensor_dp proc~print_3d_tensor_int32 print_3d_tensor_int32 interface~pic_print_array->proc~print_3d_tensor_int32 proc~print_3d_tensor_int64 print_3d_tensor_int64 interface~pic_print_array->proc~print_3d_tensor_int64 proc~print_3d_tensor_sp print_3d_tensor_sp interface~pic_print_array->proc~print_3d_tensor_sp interface~soa_read_field soa_read_field interface~soa_read_field->proc~soa_read_logical_field proc~soa_read_int32_field soa_read_int32_field interface~soa_read_field->proc~soa_read_int32_field proc~soa_read_int64_field soa_read_int64_field interface~soa_read_field->proc~soa_read_int64_field proc~soa_read_real_dp_field soa_read_real_dp_field interface~soa_read_field->proc~soa_read_real_dp_field proc~soa_read_real_sp_field soa_read_real_sp_field interface~soa_read_field->proc~soa_read_real_sp_field proc~particle_soa_deserialize particle_soa_t%particle_soa_deserialize proc~particle_soa_deserialize->proc~soa_read_prologue proc~particle_soa_deserialize->interface~soa_read_field proc~particle_soa_resize particle_soa_t%particle_soa_resize proc~particle_soa_resize->proc~soa_plan_resize interface~soa_resize_field soa_resize_field proc~particle_soa_resize->interface~soa_resize_field proc~particle_soa_serialize particle_soa_t%particle_soa_serialize proc~particle_soa_serialize->proc~soa_write_prologue interface~soa_write_field soa_write_field proc~particle_soa_serialize->interface~soa_write_field proc~read_char_record read_char_record proc~read_char_record->proc~check_io proc~read_char_record->proc~read_record_header proc~read_int32_array read_int32_array proc~read_int32_array->proc~check_io proc~read_int32_array->proc~read_record_header proc~read_int64_array read_int64_array proc~read_int64_array->proc~check_io proc~read_int64_array->proc~read_record_header proc~read_real_dp_array read_real_dp_array proc~read_real_dp_array->proc~check_io proc~read_real_dp_array->proc~read_record_header proc~read_real_sp_array read_real_sp_array proc~read_real_sp_array->proc~check_io proc~read_real_sp_array->proc~read_record_header proc~serialize_close serialize_close proc~serialize_close->proc~check_io proc~serialize_open_read serialize_open_read proc~serialize_open_read->proc~check_io proc~serialize_open_write serialize_open_write proc~serialize_open_write->proc~check_io proc~soa_read_int32_field->proc~soa_check_field_count proc~soa_read_int32_field->interface~read_array proc~soa_read_int64_field->proc~soa_check_field_count proc~soa_read_int64_field->interface~read_array proc~soa_read_real_dp_field->proc~soa_check_field_count proc~soa_read_real_dp_field->interface~read_array proc~soa_read_real_sp_field->proc~soa_check_field_count proc~soa_read_real_sp_field->interface~read_array proc~soa_resize_int32_field soa_resize_int32_field proc~soa_resize_int32_field->proc~soa_check_alloc proc~soa_resize_int32_field->proc~soa_check_resize_args proc~soa_resize_int64_field soa_resize_int64_field proc~soa_resize_int64_field->proc~soa_check_alloc proc~soa_resize_int64_field->proc~soa_check_resize_args proc~soa_resize_logical_field soa_resize_logical_field proc~soa_resize_logical_field->proc~soa_check_alloc proc~soa_resize_logical_field->proc~soa_check_resize_args proc~soa_resize_real_dp_field soa_resize_real_dp_field proc~soa_resize_real_dp_field->proc~soa_check_alloc proc~soa_resize_real_dp_field->proc~soa_check_resize_args proc~soa_resize_real_sp_field soa_resize_real_sp_field proc~soa_resize_real_sp_field->proc~soa_check_alloc proc~soa_resize_real_sp_field->proc~soa_check_resize_args proc~soa_write_int32_field soa_write_int32_field proc~soa_write_int32_field->proc~soa_check_live_count proc~soa_write_int32_field->interface~write_array proc~soa_write_int64_field soa_write_int64_field proc~soa_write_int64_field->proc~soa_check_live_count proc~soa_write_int64_field->interface~write_array proc~soa_write_logical_field soa_write_logical_field proc~soa_write_logical_field->proc~soa_check_alloc proc~soa_write_logical_field->proc~soa_check_live_count proc~soa_write_logical_field->interface~write_array proc~soa_write_real_dp_field soa_write_real_dp_field proc~soa_write_real_dp_field->proc~soa_check_live_count proc~soa_write_real_dp_field->interface~write_array proc~soa_write_real_sp_field soa_write_real_sp_field proc~soa_write_real_sp_field->proc~soa_check_live_count proc~soa_write_real_sp_field->interface~write_array proc~write_char_record write_char_record proc~write_char_record->proc~check_io proc~write_record_header write_record_header proc~write_char_record->proc~write_record_header proc~write_header->proc~check_io proc~write_int32_array write_int32_array proc~write_int32_array->proc~check_io proc~write_int32_array->proc~write_record_header proc~write_int64_array write_int64_array proc~write_int64_array->proc~check_io proc~write_int64_array->proc~write_record_header proc~write_real_dp_array write_real_dp_array proc~write_real_dp_array->proc~check_io proc~write_real_dp_array->proc~write_record_header proc~write_real_sp_array write_real_sp_array proc~write_real_sp_array->proc~check_io proc~write_real_sp_array->proc~write_record_header proc~write_record_header->proc~check_io interface~read_array->proc~read_char_record interface~read_array->proc~read_int32_array interface~read_array->proc~read_int64_array interface~read_array->proc~read_real_dp_array interface~read_array->proc~read_real_sp_array interface~soa_resize_field->proc~soa_resize_int32_field interface~soa_resize_field->proc~soa_resize_int64_field interface~soa_resize_field->proc~soa_resize_logical_field interface~soa_resize_field->proc~soa_resize_real_dp_field interface~soa_resize_field->proc~soa_resize_real_sp_field interface~soa_write_field->proc~soa_write_int32_field interface~soa_write_field->proc~soa_write_int64_field interface~soa_write_field->proc~soa_write_logical_field interface~soa_write_field->proc~soa_write_real_dp_field interface~soa_write_field->proc~soa_write_real_sp_field interface~write_array->proc~write_char_record interface~write_array->proc~write_int32_array interface~write_array->proc~write_int64_array interface~write_array->proc~write_real_dp_array interface~write_array->proc~write_real_sp_array proc~particle_soa_allocate particle_soa_t%particle_soa_allocate proc~particle_soa_allocate->proc~particle_soa_resize proc~print_3d_tensor_dp->interface~pic_print_array proc~print_3d_tensor_int32->interface~pic_print_array proc~print_3d_tensor_int64->interface~pic_print_array proc~print_3d_tensor_sp->interface~pic_print_array

Variables

Type Visibility Attributes Name Initial
integer, private :: i
integer, private :: j
integer, private :: ncols
integer, private :: nrows
character(len=32), private :: style
character(len=50), private :: temp_str
integer, private :: total_len

Source Code

   function to_char_matrix_dp(array) result(trimmed_str)
      real(kind=dp), intent(in) :: array(:, :)
      character(len=:), allocatable :: trimmed_str
      character(len=50) :: temp_str
      character(len=32) :: style
      integer :: i, j, total_len, nrows, ncols

      nrows = size(array, 1)
      ncols = size(array, 2)

      ! Set up format
      write (style, "(A,I0,A)") "(F0.", dp_precision, ")"

      ! Estimate total length needed (rough estimate)
      total_len = 10 + nrows  ! for outer brackets and newlines
      do i = 1, nrows
         total_len = total_len + 3  ! for row brackets and comma
         do j = 1, ncols
            write (temp_str, style) array(i, j)
            total_len = total_len + len_trim(temp_str) + 2  ! +2 for ", "
         end do
      end do

      ! Allocate result string
      allocate (character(len=total_len) :: trimmed_str)

      ! Build the string with newlines
      trimmed_str = "["//new_line("a")
      do i = 1, nrows
         trimmed_str = trimmed_str//" ["
         do j = 1, ncols
            write (temp_str, style) array(i, j)
            if (j < ncols) then
               trimmed_str = trimmed_str//trim(temp_str)//", "
            else
               trimmed_str = trimmed_str//trim(temp_str)
            end if
         end do
         if (i < nrows) then
            trimmed_str = trimmed_str//"],"//new_line("a")
         else
            trimmed_str = trimmed_str//"]"//new_line("a")
         end if
      end do
      trimmed_str = trimmed_str//"]"
   end function to_char_matrix_dp