set_brackets Subroutine

private subroutine set_brackets(format_type, open_bracket, close_bracket, err)

Set brackets based on output format type

An unrecognised format_type is reported but never fatal: the NumPy brackets are selected either way, so the caller can always go on to print. If err is present it is set to ERROR_VALIDATION; if err is absent a warning goes to stdout, which is the historical behaviour.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: format_type
character(len=1), intent(out) :: open_bracket
character(len=1), intent(out) :: close_bracket
type(error_t), intent(inout), optional :: err

set to ERROR_VALIDATION for an unsupported format_type; the brackets still come back as the NumPy defaults


Calls

proc~~set_brackets~~CallsGraph proc~set_brackets set_brackets proc~error_raise error_raise proc~set_brackets->proc~error_raise to_upper to_upper proc~set_brackets->to_upper proc~error_set error_t%error_set proc~error_raise->proc~error_set

Called by

proc~~set_brackets~~CalledByGraph proc~set_brackets set_brackets proc~print_3d_tensor_dp print_3d_tensor_dp proc~print_3d_tensor_dp->proc~set_brackets interface~pic_print_array pic_print_array proc~print_3d_tensor_dp->interface~pic_print_array proc~print_3d_tensor_int32 print_3d_tensor_int32 proc~print_3d_tensor_int32->proc~set_brackets proc~print_3d_tensor_int32->interface~pic_print_array proc~print_3d_tensor_int64 print_3d_tensor_int64 proc~print_3d_tensor_int64->proc~set_brackets proc~print_3d_tensor_int64->interface~pic_print_array proc~print_3d_tensor_sp print_3d_tensor_sp proc~print_3d_tensor_sp->proc~set_brackets proc~print_3d_tensor_sp->interface~pic_print_array proc~print_matrix_dp print_matrix_dp proc~print_matrix_dp->proc~set_brackets proc~print_matrix_int32 print_matrix_int32 proc~print_matrix_int32->proc~set_brackets proc~print_matrix_int64 print_matrix_int64 proc~print_matrix_int64->proc~set_brackets proc~print_matrix_sp print_matrix_sp proc~print_matrix_sp->proc~set_brackets proc~print_packed_matrix_dp print_packed_matrix_dp proc~print_packed_matrix_dp->proc~set_brackets proc~print_packed_matrix_int32 print_packed_matrix_int32 proc~print_packed_matrix_int32->proc~set_brackets proc~print_packed_matrix_int64 print_packed_matrix_int64 proc~print_packed_matrix_int64->proc~set_brackets proc~print_packed_matrix_sp print_packed_matrix_sp proc~print_packed_matrix_sp->proc~set_brackets proc~print_vector_dp print_vector_dp proc~print_vector_dp->proc~set_brackets proc~print_vector_int32 print_vector_int32 proc~print_vector_int32->proc~set_brackets proc~print_vector_int64 print_vector_int64 proc~print_vector_int64->proc~set_brackets proc~print_vector_sp print_vector_sp proc~print_vector_sp->proc~set_brackets interface~pic_print_array->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->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

Source Code

   subroutine set_brackets(format_type, open_bracket, close_bracket, err)
   !! Set brackets based on output format type
   !!
   !! An unrecognised format_type is reported but never fatal: the NumPy
   !! brackets are selected either way, so the caller can always go on to
   !! print. If err is present it is set to ERROR_VALIDATION; if err is absent
   !! a warning goes to stdout, which is the historical behaviour.
      character(len=*), intent(in) :: format_type
      character(len=1), intent(out) :: open_bracket, close_bracket
      type(error_t), intent(inout), optional :: err
      !! set to ERROR_VALIDATION for an unsupported format_type; the brackets
      !! still come back as the NumPy defaults
      select case (trim(to_upper(adjustl(format_type))))
      case ("NUMPY")
         open_bracket = "["
         close_bracket = "]"
      case ("MATHEMATICA")
         open_bracket = "{"
         close_bracket = "}"
      case ("PLAIN")
         open_bracket = "["
         close_bracket = "]"
      case default
         if (present(err)) then
            call error_raise(err, ERROR_VALIDATION, "pic_print_array: unsupported format type '"//trim(format_type)//"'")
         else
            print *, "Warning: Unsupported format type '"//trim(format_type)//"'. Defaulting to NumPy style."
         end if
         open_bracket = "["
         close_bracket = "]"
      end select
   end subroutine set_brackets