print_matrix_int32 Subroutine

private subroutine print_matrix_int32(matrix, format_type)

print a matrix of int32 values

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: matrix(:,:)
character(len=*), intent(in), optional :: format_type

Calls

proc~~print_matrix_int32~~CallsGraph proc~print_matrix_int32 print_matrix_int32 interface~to_string to_string proc~print_matrix_int32->interface~to_string proc~set_brackets set_brackets proc~print_matrix_int32->proc~set_brackets proc~to_string_char to_string_char interface~to_string->proc~to_string_char proc~to_string_dp to_string_dp interface~to_string->proc~to_string_dp proc~to_string_int32 to_string_int32 interface~to_string->proc~to_string_int32 proc~to_string_int64 to_string_int64 interface~to_string->proc~to_string_int64 proc~to_string_logical to_string_logical interface~to_string->proc~to_string_logical proc~to_string_sp to_string_sp interface~to_string->proc~to_string_sp to_upper to_upper proc~set_brackets->to_upper

Called by

proc~~print_matrix_int32~~CalledByGraph proc~print_matrix_int32 print_matrix_int32 interface~print_array_v2 print_array_v2 interface~print_array_v2->proc~print_matrix_int32 proc~print_3d_tensor_dp print_3d_tensor_dp interface~print_array_v2->proc~print_3d_tensor_dp proc~print_3d_tensor_sp print_3d_tensor_sp interface~print_array_v2->proc~print_3d_tensor_sp proc~print_3d_tensor_dp->interface~print_array_v2 proc~print_3d_tensor_sp->interface~print_array_v2

Variables

Type Visibility Attributes Name Initial
character(len=20), private :: print_format

Source Code

   subroutine print_matrix_int32(matrix, format_type)
    !! print a matrix of int32 values
      integer(int32), intent(in) :: matrix(:, :)
      character(len=*), intent(in), optional :: format_type
      character(len=20) :: print_format

      if (present(format_type)) then
         print_format = format_type
      else
         print_format = default_format
      end if

      print: block
         character(len=1) :: open_bracket, close_bracket
         integer(int32) :: i, j, rows, cols
         rows = size(matrix, 1)
         cols = size(matrix, 2)
         call set_brackets(print_format, open_bracket, close_bracket)
         print *, open_bracket
         do i = 1, rows
            write (*, "(A)", advance="no") open_bracket
            do j = 1, cols
               if (j == cols) then  ! Last element in the row
                  write (*, fmt_edge, advance="no") to_string(matrix(i, j))
               else  ! Elements in between
                  write (*, fmt_in, advance="no") to_string(matrix(i, j))
               end if
            end do
            if (i == rows) then
               print *, close_bracket
            else
               print *, close_bracket, ","
            end if
         end do
         print *, close_bracket
      end block print

   end subroutine print_matrix_int32