json_get_alloc_string_vec Subroutine

private subroutine json_get_alloc_string_vec(json, me, vec, ilen)

Get a string vector from a json_value. This is an alternate version of json_get_string_vec. This one returns an allocatable length character (where the string length is the maximum length of any element in the array). It also returns an integer array of the actual sizes of the strings in the JSON structure.

Note

This is somewhat inefficient since it does cycle through the array twice.

Warning

The allocation of vec doesn’t work with gfortran 4.9 or 5 due to compiler bugs

Type Bound

json_core

Arguments

Type IntentOptional Attributes Name
class(json_core), intent(inout) :: json
type(json_value), intent(in), pointer :: me
character(kind=CK, len=:), intent(out), dimension(:), allocatable :: vec
integer(kind=IK), intent(out), dimension(:), allocatable :: ilen

the actual length of each character string in the array


Calls

proc~~json_get_alloc_string_vec~~CallsGraph proc~json_get_alloc_string_vec json_core%json_get_alloc_string_vec none~get json_core%get proc~json_get_alloc_string_vec->none~get none~string_info json_core%string_info proc~json_get_alloc_string_vec->none~string_info none~get->proc~json_get_alloc_string_vec proc~json_get_alloc_string_vec_by_path json_core%json_get_alloc_string_vec_by_path none~get->proc~json_get_alloc_string_vec_by_path proc~json_get_array json_core%json_get_array none~get->proc~json_get_array proc~json_get_array_by_path json_core%json_get_array_by_path none~get->proc~json_get_array_by_path proc~json_get_by_path json_core%json_get_by_path none~get->proc~json_get_by_path proc~json_get_integer json_core%json_get_integer none~get->proc~json_get_integer proc~json_get_integer_by_path json_core%json_get_integer_by_path none~get->proc~json_get_integer_by_path proc~json_get_integer_vec json_core%json_get_integer_vec none~get->proc~json_get_integer_vec proc~json_get_integer_vec_by_path json_core%json_get_integer_vec_by_path none~get->proc~json_get_integer_vec_by_path proc~json_get_logical json_core%json_get_logical none~get->proc~json_get_logical proc~json_get_logical_by_path json_core%json_get_logical_by_path none~get->proc~json_get_logical_by_path proc~json_get_logical_vec json_core%json_get_logical_vec none~get->proc~json_get_logical_vec proc~json_get_logical_vec_by_path json_core%json_get_logical_vec_by_path none~get->proc~json_get_logical_vec_by_path proc~json_get_real json_core%json_get_real none~get->proc~json_get_real proc~json_get_real32 json_core%json_get_real32 none~get->proc~json_get_real32 proc~json_get_real32_by_path json_core%json_get_real32_by_path none~get->proc~json_get_real32_by_path proc~json_get_real32_vec json_core%json_get_real32_vec none~get->proc~json_get_real32_vec proc~json_get_real32_vec_by_path json_core%json_get_real32_vec_by_path none~get->proc~json_get_real32_vec_by_path proc~json_get_real_by_path json_core%json_get_real_by_path none~get->proc~json_get_real_by_path proc~json_get_real_vec json_core%json_get_real_vec none~get->proc~json_get_real_vec proc~json_get_real_vec_by_path json_core%json_get_real_vec_by_path none~get->proc~json_get_real_vec_by_path proc~json_get_string json_core%json_get_string none~get->proc~json_get_string proc~json_get_string_by_path json_core%json_get_string_by_path none~get->proc~json_get_string_by_path proc~json_get_string_vec json_core%json_get_string_vec none~get->proc~json_get_string_vec proc~json_get_string_vec_by_path json_core%json_get_string_vec_by_path none~get->proc~json_get_string_vec_by_path proc~wrap_json_get_alloc_string_vec_by_path json_core%wrap_json_get_alloc_string_vec_by_path none~get->proc~wrap_json_get_alloc_string_vec_by_path proc~wrap_json_get_array_by_path json_core%wrap_json_get_array_by_path none~get->proc~wrap_json_get_array_by_path proc~wrap_json_get_by_path json_core%wrap_json_get_by_path none~get->proc~wrap_json_get_by_path proc~wrap_json_get_integer_by_path json_core%wrap_json_get_integer_by_path none~get->proc~wrap_json_get_integer_by_path proc~wrap_json_get_integer_vec_by_path json_core%wrap_json_get_integer_vec_by_path none~get->proc~wrap_json_get_integer_vec_by_path proc~wrap_json_get_logical_by_path json_core%wrap_json_get_logical_by_path none~get->proc~wrap_json_get_logical_by_path proc~wrap_json_get_logical_vec_by_path json_core%wrap_json_get_logical_vec_by_path none~get->proc~wrap_json_get_logical_vec_by_path proc~wrap_json_get_real32_by_path json_core%wrap_json_get_real32_by_path none~get->proc~wrap_json_get_real32_by_path proc~wrap_json_get_real32_vec_by_path json_core%wrap_json_get_real32_vec_by_path none~get->proc~wrap_json_get_real32_vec_by_path proc~wrap_json_get_real_by_path json_core%wrap_json_get_real_by_path none~get->proc~wrap_json_get_real_by_path proc~wrap_json_get_real_vec_by_path json_core%wrap_json_get_real_vec_by_path none~get->proc~wrap_json_get_real_vec_by_path proc~wrap_json_get_string_by_path json_core%wrap_json_get_string_by_path none~get->proc~wrap_json_get_string_by_path proc~wrap_json_get_string_vec_by_path json_core%wrap_json_get_string_vec_by_path none~get->proc~wrap_json_get_string_vec_by_path proc~json_string_info json_core%json_string_info none~string_info->proc~json_string_info proc~json_get_alloc_string_vec_by_path->none~get none~throw_exception json_core%throw_exception proc~json_get_alloc_string_vec_by_path->none~throw_exception proc~flag_not_found flag_not_found proc~json_get_alloc_string_vec_by_path->proc~flag_not_found proc~json_clear_exceptions json_core%json_clear_exceptions proc~json_get_alloc_string_vec_by_path->proc~json_clear_exceptions proc~json_get_array->none~throw_exception proc~json_get_array_by_path->none~get proc~json_get_array_by_path->none~throw_exception proc~json_get_array_by_path->proc~json_clear_exceptions proc~json_get_by_path->none~throw_exception proc~integer_to_string integer_to_string proc~json_get_by_path->proc~integer_to_string proc~json_get_by_path->proc~json_clear_exceptions proc~json_get_by_path_default json_core%json_get_by_path_default proc~json_get_by_path->proc~json_get_by_path_default proc~json_get_by_path_jsonpath_bracket json_core%json_get_by_path_jsonpath_bracket proc~json_get_by_path->proc~json_get_by_path_jsonpath_bracket proc~json_get_by_path_rfc6901 json_core%json_get_by_path_rfc6901 proc~json_get_by_path->proc~json_get_by_path_rfc6901 proc~json_get_integer->none~throw_exception proc~string_to_integer string_to_integer proc~json_get_integer->proc~string_to_integer proc~json_get_integer_by_path->none~get proc~json_get_integer_by_path->none~throw_exception proc~json_get_integer_by_path->proc~flag_not_found proc~json_get_integer_by_path->proc~json_clear_exceptions proc~json_get_integer_vec->none~get proc~json_get_integer_vec_by_path->none~get proc~json_get_integer_vec_by_path->none~throw_exception proc~json_get_integer_vec_by_path->proc~flag_not_found proc~json_get_integer_vec_by_path->proc~json_clear_exceptions proc~json_get_logical->none~throw_exception proc~json_get_logical_by_path->none~get proc~json_get_logical_by_path->none~throw_exception proc~json_get_logical_by_path->proc~flag_not_found proc~json_get_logical_by_path->proc~json_clear_exceptions proc~json_get_logical_vec->none~get proc~json_get_logical_vec_by_path->none~get proc~json_get_logical_vec_by_path->none~throw_exception proc~json_get_logical_vec_by_path->proc~flag_not_found proc~json_get_logical_vec_by_path->proc~json_clear_exceptions proc~json_get_real->none~throw_exception proc~string_to_real string_to_real proc~json_get_real->proc~string_to_real proc~json_get_real32->none~get proc~json_get_real32_by_path->none~get proc~json_get_real32_vec->none~get proc~json_get_real32_vec_by_path->none~get proc~json_get_real_by_path->none~get proc~json_get_real_by_path->none~throw_exception proc~json_get_real_by_path->proc~flag_not_found proc~json_get_real_by_path->proc~json_clear_exceptions proc~json_get_real_vec->none~get proc~json_get_real_vec_by_path->none~get proc~json_get_real_vec_by_path->none~throw_exception proc~json_get_real_vec_by_path->proc~flag_not_found proc~json_get_real_vec_by_path->proc~json_clear_exceptions proc~json_get_string->none~throw_exception proc~escape_string escape_string proc~json_get_string->proc~escape_string proc~json_get_string->proc~integer_to_string proc~real_to_string real_to_string proc~json_get_string->proc~real_to_string proc~json_get_string_by_path->none~get proc~json_get_string_by_path->none~throw_exception proc~json_get_string_by_path->proc~flag_not_found proc~json_get_string_by_path->proc~json_clear_exceptions proc~json_get_string_vec->none~get proc~json_get_string_vec_by_path->none~get proc~json_get_string_vec_by_path->none~throw_exception proc~json_get_string_vec_by_path->proc~flag_not_found proc~json_get_string_vec_by_path->proc~json_clear_exceptions proc~json_string_info->none~get none~info json_core%info proc~json_string_info->none~info proc~json_string_info->none~throw_exception proc~json_string_info->proc~json_clear_exceptions proc~wrap_json_get_alloc_string_vec_by_path->none~get interface~to_unicode to_unicode proc~wrap_json_get_alloc_string_vec_by_path->interface~to_unicode proc~wrap_json_get_array_by_path->none~get proc~wrap_json_get_array_by_path->interface~to_unicode proc~wrap_json_get_by_path->none~get proc~wrap_json_get_by_path->interface~to_unicode proc~wrap_json_get_integer_by_path->none~get proc~wrap_json_get_integer_by_path->interface~to_unicode proc~wrap_json_get_integer_vec_by_path->none~get proc~wrap_json_get_integer_vec_by_path->interface~to_unicode proc~wrap_json_get_logical_by_path->none~get proc~wrap_json_get_logical_by_path->interface~to_unicode proc~wrap_json_get_logical_vec_by_path->none~get proc~wrap_json_get_logical_vec_by_path->interface~to_unicode proc~wrap_json_get_real32_by_path->none~get proc~wrap_json_get_real32_by_path->interface~to_unicode proc~wrap_json_get_real32_vec_by_path->none~get proc~wrap_json_get_real32_vec_by_path->interface~to_unicode proc~wrap_json_get_real_by_path->none~get proc~wrap_json_get_real_by_path->interface~to_unicode proc~wrap_json_get_real_vec_by_path->none~get proc~wrap_json_get_real_vec_by_path->interface~to_unicode proc~wrap_json_get_string_by_path->none~get proc~wrap_json_get_string_by_path->interface~to_unicode proc~wrap_json_get_string_vec_by_path->none~get proc~wrap_json_get_string_vec_by_path->interface~to_unicode proc~to_uni to_uni interface~to_unicode->proc~to_uni proc~to_uni_vec to_uni_vec interface~to_unicode->proc~to_uni_vec proc~json_info json_core%json_info none~info->proc~json_info proc~json_info_by_path json_core%json_info_by_path none~info->proc~json_info_by_path proc~wrap_json_info_by_path json_core%wrap_json_info_by_path none~info->proc~wrap_json_info_by_path proc~json_throw_exception json_core%json_throw_exception none~throw_exception->proc~json_throw_exception proc~wrap_json_throw_exception json_core%wrap_json_throw_exception none~throw_exception->proc~wrap_json_throw_exception proc~valid_json_hex valid_json_hex proc~escape_string->proc~valid_json_hex proc~json_get_by_path_default->none~throw_exception proc~json_get_by_path_default->proc~json_clear_exceptions proc~json_get_by_path_default->proc~string_to_integer none~add~2 json_core%add proc~json_get_by_path_default->none~add~2 none~get_child json_core%get_child proc~json_get_by_path_default->none~get_child proc~json_value_create json_value_create proc~json_get_by_path_default->proc~json_value_create proc~to_array json_core%to_array proc~json_get_by_path_default->proc~to_array proc~to_null json_core%to_null proc~json_get_by_path_default->proc~to_null proc~to_object json_core%to_object proc~json_get_by_path_default->proc~to_object proc~json_get_by_path_jsonpath_bracket->none~throw_exception proc~json_get_by_path_jsonpath_bracket->proc~json_clear_exceptions proc~json_get_by_path_jsonpath_bracket->proc~string_to_integer proc~json_get_by_path_jsonpath_bracket->none~add~2 proc~json_get_by_path_jsonpath_bracket->none~get_child proc~convert json_core%convert proc~json_get_by_path_jsonpath_bracket->proc~convert proc~json_get_by_path_jsonpath_bracket->proc~json_value_create proc~json_get_by_path_jsonpath_bracket->proc~to_null proc~json_get_by_path_rfc6901->none~throw_exception proc~json_get_by_path_rfc6901->proc~json_clear_exceptions proc~json_get_by_path_rfc6901->proc~string_to_integer proc~json_get_by_path_rfc6901->none~get_child proc~decode_rfc6901 decode_rfc6901 proc~json_get_by_path_rfc6901->proc~decode_rfc6901 proc~compact_real_string compact_real_string proc~real_to_string->proc~compact_real_string proc~json_value_add_string_name_ascii json_core%json_value_add_string_name_ascii none~add~2->proc~json_value_add_string_name_ascii proc~json_value_add_string_val_ascii json_core%json_value_add_string_val_ascii none~add~2->proc~json_value_add_string_val_ascii proc~json_value_add_string_vec_name_ascii json_core%json_value_add_string_vec_name_ascii none~add~2->proc~json_value_add_string_vec_name_ascii proc~json_value_add_string_vec_val_ascii json_core%json_value_add_string_vec_val_ascii none~add~2->proc~json_value_add_string_vec_val_ascii proc~json_value_get_child json_core%json_value_get_child none~get_child->proc~json_value_get_child proc~json_value_get_child_by_index json_core%json_value_get_child_by_index none~get_child->proc~json_value_get_child_by_index proc~json_value_get_child_by_name json_core%json_value_get_child_by_name none~get_child->proc~json_value_get_child_by_name proc~wrap_json_value_get_child_by_name json_core%wrap_json_value_get_child_by_name none~get_child->proc~wrap_json_value_get_child_by_name proc~convert->none~info proc~convert->none~throw_exception none~create_array json_core%create_array proc~convert->none~create_array none~create_null json_core%create_null proc~convert->none~create_null none~create_object json_core%create_object proc~convert->none~create_object proc~json_value_replace json_core%json_value_replace proc~convert->proc~json_value_replace proc~replace_string replace_string proc~decode_rfc6901->proc~replace_string proc~json_info->none~throw_exception proc~json_info_by_path->none~get proc~json_info_by_path->none~info proc~destroy_json_data destroy_json_data proc~to_array->proc~destroy_json_data proc~to_null->proc~destroy_json_data proc~to_object->proc~destroy_json_data proc~wrap_json_info_by_path->interface~to_unicode proc~wrap_json_info_by_path->none~info proc~wrap_json_throw_exception->interface~to_unicode proc~wrap_json_throw_exception->none~throw_exception proc~json_value_create_array json_core%json_value_create_array none~create_array->proc~json_value_create_array proc~wrap_json_value_create_array json_core%wrap_json_value_create_array none~create_array->proc~wrap_json_value_create_array proc~json_value_create_null json_core%json_value_create_null none~create_null->proc~json_value_create_null proc~wrap_json_value_create_null json_core%wrap_json_value_create_null none~create_null->proc~wrap_json_value_create_null proc~json_value_create_object json_core%json_value_create_object none~create_object->proc~json_value_create_object proc~wrap_json_value_create_object json_core%wrap_json_value_create_object none~create_object->proc~wrap_json_value_create_object proc~json_value_add_string_name_ascii->interface~to_unicode proc~json_value_add_string_name_ascii->none~add~2 proc~json_value_add_string_val_ascii->interface~to_unicode proc~json_value_add_string_val_ascii->none~add~2 proc~json_value_add_string_vec_name_ascii->interface~to_unicode proc~json_value_add_string_vec_name_ascii->none~add~2 proc~json_value_add_string_vec_val_ascii->interface~to_unicode proc~json_value_add_string_vec_val_ascii->none~add~2 proc~json_value_get_child->none~throw_exception proc~json_value_get_child_by_index->none~throw_exception proc~json_value_get_child_by_index->proc~json_clear_exceptions proc~json_value_get_child_by_name->none~throw_exception proc~json_value_get_child_by_name->proc~json_clear_exceptions proc~name_equal json_core%name_equal proc~json_value_get_child_by_name->proc~name_equal none~insert_after json_core%insert_after proc~json_value_replace->none~insert_after proc~json_value_remove json_core%json_value_remove proc~json_value_replace->proc~json_value_remove proc~wrap_json_value_get_child_by_name->none~get proc~wrap_json_value_get_child_by_name->interface~to_unicode proc~json_value_insert_after json_core%json_value_insert_after none~insert_after->proc~json_value_insert_after proc~json_value_insert_after_child_by_index json_core%json_value_insert_after_child_by_index none~insert_after->proc~json_value_insert_after_child_by_index proc~json_value_create_array->proc~json_value_create proc~json_value_create_array->proc~to_array proc~json_value_create_null->proc~json_value_create proc~json_value_create_null->proc~to_null proc~json_value_create_object->proc~json_value_create proc~json_value_create_object->proc~to_object none~destroy json_core%destroy proc~json_value_remove->none~destroy proc~name_strings_equal json_core%name_strings_equal proc~name_equal->proc~name_strings_equal proc~wrap_json_value_create_array->interface~to_unicode proc~wrap_json_value_create_array->none~create_array proc~wrap_json_value_create_null->interface~to_unicode proc~wrap_json_value_create_null->none~create_null proc~wrap_json_value_create_object->interface~to_unicode proc~wrap_json_value_create_object->none~create_object proc~destroy_json_core json_core%destroy_json_core none~destroy->proc~destroy_json_core proc~json_value_destroy json_core%json_value_destroy none~destroy->proc~json_value_destroy proc~json_value_insert_after_child_by_index->none~get_child proc~json_value_insert_after_child_by_index->none~insert_after proc~lowercase_string lowercase_string proc~name_strings_equal->proc~lowercase_string proc~json_value_destroy->proc~destroy_json_data proc~json_value_destroy->none~destroy

Called by

proc~~json_get_alloc_string_vec~~CalledByGraph proc~json_get_alloc_string_vec json_core%json_get_alloc_string_vec none~get json_core%get proc~json_get_alloc_string_vec->none~get none~string_info json_core%string_info proc~json_get_alloc_string_vec->none~string_info none~get->proc~json_get_alloc_string_vec proc~json_get_alloc_string_vec_by_path json_core%json_get_alloc_string_vec_by_path none~get->proc~json_get_alloc_string_vec_by_path proc~json_get_array_by_path json_core%json_get_array_by_path none~get->proc~json_get_array_by_path proc~json_get_integer_by_path json_core%json_get_integer_by_path none~get->proc~json_get_integer_by_path proc~json_get_integer_vec json_core%json_get_integer_vec none~get->proc~json_get_integer_vec proc~json_get_integer_vec_by_path json_core%json_get_integer_vec_by_path none~get->proc~json_get_integer_vec_by_path proc~json_get_logical_by_path json_core%json_get_logical_by_path none~get->proc~json_get_logical_by_path proc~json_get_logical_vec json_core%json_get_logical_vec none~get->proc~json_get_logical_vec proc~json_get_logical_vec_by_path json_core%json_get_logical_vec_by_path none~get->proc~json_get_logical_vec_by_path proc~json_get_real32 json_core%json_get_real32 none~get->proc~json_get_real32 proc~json_get_real32_by_path json_core%json_get_real32_by_path none~get->proc~json_get_real32_by_path proc~json_get_real32_vec json_core%json_get_real32_vec none~get->proc~json_get_real32_vec proc~json_get_real32_vec_by_path json_core%json_get_real32_vec_by_path none~get->proc~json_get_real32_vec_by_path proc~json_get_real_by_path json_core%json_get_real_by_path none~get->proc~json_get_real_by_path proc~json_get_real_vec json_core%json_get_real_vec none~get->proc~json_get_real_vec proc~json_get_real_vec_by_path json_core%json_get_real_vec_by_path none~get->proc~json_get_real_vec_by_path proc~json_get_string_by_path json_core%json_get_string_by_path none~get->proc~json_get_string_by_path proc~json_get_string_vec json_core%json_get_string_vec none~get->proc~json_get_string_vec proc~json_get_string_vec_by_path json_core%json_get_string_vec_by_path none~get->proc~json_get_string_vec_by_path proc~wrap_json_get_alloc_string_vec_by_path json_core%wrap_json_get_alloc_string_vec_by_path none~get->proc~wrap_json_get_alloc_string_vec_by_path proc~wrap_json_get_array_by_path json_core%wrap_json_get_array_by_path none~get->proc~wrap_json_get_array_by_path proc~wrap_json_get_by_path json_core%wrap_json_get_by_path none~get->proc~wrap_json_get_by_path proc~wrap_json_get_integer_by_path json_core%wrap_json_get_integer_by_path none~get->proc~wrap_json_get_integer_by_path proc~wrap_json_get_integer_vec_by_path json_core%wrap_json_get_integer_vec_by_path none~get->proc~wrap_json_get_integer_vec_by_path proc~wrap_json_get_logical_by_path json_core%wrap_json_get_logical_by_path none~get->proc~wrap_json_get_logical_by_path proc~wrap_json_get_logical_vec_by_path json_core%wrap_json_get_logical_vec_by_path none~get->proc~wrap_json_get_logical_vec_by_path proc~wrap_json_get_real32_by_path json_core%wrap_json_get_real32_by_path none~get->proc~wrap_json_get_real32_by_path proc~wrap_json_get_real32_vec_by_path json_core%wrap_json_get_real32_vec_by_path none~get->proc~wrap_json_get_real32_vec_by_path proc~wrap_json_get_real_by_path json_core%wrap_json_get_real_by_path none~get->proc~wrap_json_get_real_by_path proc~wrap_json_get_real_vec_by_path json_core%wrap_json_get_real_vec_by_path none~get->proc~wrap_json_get_real_vec_by_path proc~wrap_json_get_string_by_path json_core%wrap_json_get_string_by_path none~get->proc~wrap_json_get_string_by_path proc~wrap_json_get_string_vec_by_path json_core%wrap_json_get_string_vec_by_path none~get->proc~wrap_json_get_string_vec_by_path proc~json_get_by_path json_core%json_get_by_path none~get->proc~json_get_by_path proc~json_file_get_alloc_string_vec json_file%json_file_get_alloc_string_vec proc~json_file_get_alloc_string_vec->none~get proc~json_file_get_integer json_file%json_file_get_integer proc~json_file_get_integer->none~get proc~json_file_get_integer_vec json_file%json_file_get_integer_vec proc~json_file_get_integer_vec->none~get proc~json_file_get_logical json_file%json_file_get_logical proc~json_file_get_logical->none~get proc~json_file_get_logical_vec json_file%json_file_get_logical_vec proc~json_file_get_logical_vec->none~get proc~json_file_get_object json_file%json_file_get_object proc~json_file_get_object->none~get proc~json_file_get_real json_file%json_file_get_real proc~json_file_get_real->none~get proc~json_file_get_real32 json_file%json_file_get_real32 proc~json_file_get_real32->none~get proc~json_file_get_real32_vec json_file%json_file_get_real32_vec proc~json_file_get_real32_vec->none~get proc~json_file_get_real_vec json_file%json_file_get_real_vec proc~json_file_get_real_vec->none~get proc~json_file_get_string json_file%json_file_get_string proc~json_file_get_string->none~get proc~json_file_get_string_vec json_file%json_file_get_string_vec proc~json_file_get_string_vec->none~get proc~json_get_alloc_string_vec_by_path->none~get proc~json_get_array_by_path->none~get proc~json_get_integer_by_path->none~get proc~json_get_integer_vec->none~get proc~json_get_integer_vec_by_path->none~get proc~json_get_logical_by_path->none~get proc~json_get_logical_vec->none~get proc~json_get_logical_vec_by_path->none~get proc~json_get_real32->none~get proc~json_get_real32_by_path->none~get proc~json_get_real32_vec->none~get proc~json_get_real32_vec_by_path->none~get proc~json_get_real_by_path->none~get proc~json_get_real_vec->none~get proc~json_get_real_vec_by_path->none~get proc~json_get_string_by_path->none~get proc~json_get_string_vec->none~get proc~json_get_string_vec_by_path->none~get proc~json_info_by_path json_core%json_info_by_path proc~json_info_by_path->none~get none~info json_core%info proc~json_info_by_path->none~info proc~json_matrix_info_by_path json_core%json_matrix_info_by_path proc~json_matrix_info_by_path->none~get none~matrix_info json_core%matrix_info proc~json_matrix_info_by_path->none~matrix_info proc~json_rename_by_path json_core%json_rename_by_path proc~json_rename_by_path->none~get proc~json_string_info json_core%json_string_info proc~json_string_info->none~get proc~json_string_info->none~info proc~json_update_integer json_core%json_update_integer proc~json_update_integer->none~get proc~json_update_integer->none~info none~add_by_path~2 json_core%add_by_path proc~json_update_integer->none~add_by_path~2 proc~json_update_logical json_core%json_update_logical proc~json_update_logical->none~get proc~json_update_logical->none~info proc~json_update_logical->none~add_by_path~2 proc~json_update_real json_core%json_update_real proc~json_update_real->none~get proc~json_update_real->none~info proc~json_update_real->none~add_by_path~2 proc~json_update_string json_core%json_update_string proc~json_update_string->none~get proc~json_update_string->none~info proc~json_update_string->none~add_by_path~2 proc~json_valid_path json_core%json_valid_path proc~json_valid_path->none~get proc~json_value_remove_if_present json_core%json_value_remove_if_present proc~json_value_remove_if_present->none~get proc~wrap_json_get_alloc_string_vec_by_path->none~get proc~wrap_json_get_array_by_path->none~get proc~wrap_json_get_by_path->none~get proc~wrap_json_get_integer_by_path->none~get proc~wrap_json_get_integer_vec_by_path->none~get proc~wrap_json_get_logical_by_path->none~get proc~wrap_json_get_logical_vec_by_path->none~get proc~wrap_json_get_real32_by_path->none~get proc~wrap_json_get_real32_vec_by_path->none~get proc~wrap_json_get_real_by_path->none~get proc~wrap_json_get_real_vec_by_path->none~get proc~wrap_json_get_string_by_path->none~get proc~wrap_json_get_string_vec_by_path->none~get proc~wrap_json_value_get_child_by_name json_core%wrap_json_value_get_child_by_name proc~wrap_json_value_get_child_by_name->none~get none~get_child json_core%get_child none~get_child->proc~wrap_json_value_get_child_by_name none~get~2 json_file%get none~get~2->proc~json_file_get_alloc_string_vec none~get~2->proc~json_file_get_integer none~get~2->proc~json_file_get_integer_vec none~get~2->proc~json_file_get_logical none~get~2->proc~json_file_get_logical_vec none~get~2->proc~json_file_get_object none~get~2->proc~json_file_get_real none~get~2->proc~json_file_get_real32 none~get~2->proc~json_file_get_real32_vec none~get~2->proc~json_file_get_real_vec none~get~2->proc~json_file_get_string none~get~2->proc~json_file_get_string_vec proc~wrap_json_file_get_alloc_string_vec json_file%wrap_json_file_get_alloc_string_vec none~get~2->proc~wrap_json_file_get_alloc_string_vec proc~wrap_json_file_get_integer json_file%wrap_json_file_get_integer none~get~2->proc~wrap_json_file_get_integer proc~wrap_json_file_get_integer_vec json_file%wrap_json_file_get_integer_vec none~get~2->proc~wrap_json_file_get_integer_vec proc~wrap_json_file_get_logical json_file%wrap_json_file_get_logical none~get~2->proc~wrap_json_file_get_logical proc~wrap_json_file_get_logical_vec json_file%wrap_json_file_get_logical_vec none~get~2->proc~wrap_json_file_get_logical_vec proc~wrap_json_file_get_object json_file%wrap_json_file_get_object none~get~2->proc~wrap_json_file_get_object proc~wrap_json_file_get_real json_file%wrap_json_file_get_real none~get~2->proc~wrap_json_file_get_real proc~wrap_json_file_get_real32 json_file%wrap_json_file_get_real32 none~get~2->proc~wrap_json_file_get_real32 proc~wrap_json_file_get_real32_vec json_file%wrap_json_file_get_real32_vec none~get~2->proc~wrap_json_file_get_real32_vec proc~wrap_json_file_get_real_vec json_file%wrap_json_file_get_real_vec none~get~2->proc~wrap_json_file_get_real_vec proc~wrap_json_file_get_string json_file%wrap_json_file_get_string none~get~2->proc~wrap_json_file_get_string proc~wrap_json_file_get_string_vec json_file%wrap_json_file_get_string_vec none~get~2->proc~wrap_json_file_get_string_vec none~info->proc~json_info_by_path proc~wrap_json_info_by_path json_core%wrap_json_info_by_path none~info->proc~wrap_json_info_by_path none~matrix_info->proc~json_matrix_info_by_path proc~json_matrix_info json_core%json_matrix_info none~matrix_info->proc~json_matrix_info proc~wrap_json_matrix_info_by_path json_core%wrap_json_matrix_info_by_path none~matrix_info->proc~wrap_json_matrix_info_by_path none~remove_if_present json_core%remove_if_present none~remove_if_present->proc~json_value_remove_if_present proc~wrap_json_value_remove_if_present json_core%wrap_json_value_remove_if_present none~remove_if_present->proc~wrap_json_value_remove_if_present none~string_info->proc~json_string_info none~valid_path json_core%valid_path none~valid_path->proc~json_valid_path proc~wrap_json_valid_path json_core%wrap_json_valid_path none~valid_path->proc~wrap_json_valid_path proc~convert json_core%convert proc~convert->none~info proc~json_value_replace json_core%json_value_replace proc~convert->proc~json_value_replace proc~json_add_integer_by_path json_core%json_add_integer_by_path proc~json_add_integer_by_path->none~info none~create json_core%create proc~json_add_integer_by_path->none~create proc~json_add_integer_by_path->proc~json_value_replace proc~json_add_integer_vec_by_path json_core%json_add_integer_vec_by_path proc~json_add_integer_vec_by_path->none~info proc~json_add_integer_vec_by_path->none~create proc~json_add_integer_vec_by_path->proc~json_value_replace proc~json_add_logical_by_path json_core%json_add_logical_by_path proc~json_add_logical_by_path->none~info proc~json_add_logical_by_path->none~create proc~json_add_logical_by_path->proc~json_value_replace proc~json_add_logical_vec_by_path json_core%json_add_logical_vec_by_path proc~json_add_logical_vec_by_path->none~info proc~json_add_logical_vec_by_path->none~create proc~json_add_logical_vec_by_path->proc~json_value_replace proc~json_add_member_by_path json_core%json_add_member_by_path proc~json_add_member_by_path->none~info proc~json_add_member_by_path->none~create proc~json_add_member_by_path->proc~json_value_replace proc~json_add_real_by_path json_core%json_add_real_by_path proc~json_add_real_by_path->none~info proc~json_add_real_by_path->none~create proc~json_add_real_by_path->proc~json_value_replace proc~json_add_real_vec_by_path json_core%json_add_real_vec_by_path proc~json_add_real_vec_by_path->none~info proc~json_add_real_vec_by_path->none~create proc~json_add_real_vec_by_path->proc~json_value_replace proc~json_add_string_by_path json_core%json_add_string_by_path proc~json_add_string_by_path->none~info proc~json_add_string_by_path->none~create proc~json_add_string_by_path->proc~json_value_replace proc~json_add_string_vec_by_path json_core%json_add_string_vec_by_path proc~json_add_string_vec_by_path->none~info proc~json_add_string_vec_by_path->none~create proc~json_add_string_vec_by_path->proc~json_value_replace proc~json_check_children_for_duplicate_keys json_core%json_check_children_for_duplicate_keys proc~json_check_children_for_duplicate_keys->none~get_child none~get_path json_core%get_path proc~json_check_children_for_duplicate_keys->none~get_path proc~json_file_remove json_file%json_file_remove proc~json_file_remove->none~remove_if_present proc~json_file_valid_path json_file%json_file_valid_path proc~json_file_valid_path->none~valid_path proc~json_file_valid_path_op json_file%json_file_valid_path_op proc~json_file_valid_path_op->none~valid_path proc~json_file_variable_info json_file%json_file_variable_info proc~json_file_variable_info->none~info proc~json_file_variable_matrix_info json_file%json_file_variable_matrix_info proc~json_file_variable_matrix_info->none~matrix_info proc~json_get_by_path_default json_core%json_get_by_path_default proc~json_get_by_path_default->none~get_child proc~json_get_by_path_jsonpath_bracket json_core%json_get_by_path_jsonpath_bracket proc~json_get_by_path_jsonpath_bracket->none~get_child proc~json_get_by_path_jsonpath_bracket->proc~convert proc~json_get_by_path_rfc6901 json_core%json_get_by_path_rfc6901 proc~json_get_by_path_rfc6901->none~get_child proc~json_get_path json_core%json_get_path proc~json_get_path->none~info proc~json_is_vector json_core%json_is_vector proc~json_is_vector->none~info proc~json_matrix_info->none~get_child proc~json_matrix_info->none~info proc~json_value_add_member json_core%json_value_add_member proc~json_value_add_member->none~info proc~json_value_insert_after_child_by_index json_core%json_value_insert_after_child_by_index proc~json_value_insert_after_child_by_index->none~get_child none~insert_after json_core%insert_after proc~json_value_insert_after_child_by_index->none~insert_after proc~json_value_reverse json_core%json_value_reverse proc~json_value_reverse->none~info proc~wrap_json_file_get_alloc_string_vec->none~get~2 proc~wrap_json_file_get_integer->none~get~2 proc~wrap_json_file_get_integer_vec->none~get~2 proc~wrap_json_file_get_logical->none~get~2 proc~wrap_json_file_get_logical_vec->none~get~2 proc~wrap_json_file_get_object->none~get~2 proc~wrap_json_file_get_real->none~get~2 proc~wrap_json_file_get_real32->none~get~2 proc~wrap_json_file_get_real32_vec->none~get~2 proc~wrap_json_file_get_real_vec->none~get~2 proc~wrap_json_file_get_string->none~get~2 proc~wrap_json_file_get_string_vec->none~get~2 proc~wrap_json_info_by_path->none~info proc~wrap_json_matrix_info_by_path->none~matrix_info proc~wrap_json_valid_path->none~valid_path proc~wrap_json_value_remove_if_present->none~remove_if_present none~get_path->proc~json_get_path proc~wrap_json_get_path json_core%wrap_json_get_path none~get_path->proc~wrap_json_get_path none~info~2 json_file%info none~info~2->proc~json_file_variable_info proc~wrap_json_file_variable_info json_file%wrap_json_file_variable_info none~info~2->proc~wrap_json_file_variable_info none~insert_after->proc~json_value_insert_after_child_by_index none~matrix_info~2 json_file%matrix_info none~matrix_info~2->proc~json_file_variable_matrix_info proc~wrap_json_file_variable_matrix_info json_file%wrap_json_file_variable_matrix_info none~matrix_info~2->proc~wrap_json_file_variable_matrix_info none~remove~2 json_file%remove none~remove~2->proc~json_file_remove proc~wrap_json_file_remove json_file%wrap_json_file_remove none~remove~2->proc~wrap_json_file_remove none~valid_path~2 json_file%valid_path none~valid_path~2->proc~json_file_valid_path proc~wrap_json_file_valid_path json_file%wrap_json_file_valid_path none~valid_path~2->proc~wrap_json_file_valid_path proc~json_add_string_by_path_path_ascii json_core%json_add_string_by_path_path_ascii proc~json_add_string_by_path_path_ascii->proc~json_add_string_by_path proc~json_add_string_by_path_value_ascii json_core%json_add_string_by_path_value_ascii proc~json_add_string_by_path_value_ascii->proc~json_add_string_by_path proc~json_add_string_vec_by_path_path_ascii json_core%json_add_string_vec_by_path_path_ascii proc~json_add_string_vec_by_path_path_ascii->proc~json_add_string_vec_by_path proc~json_add_string_vec_by_path_value_ascii json_core%json_add_string_vec_by_path_value_ascii proc~json_add_string_vec_by_path_value_ascii->proc~json_add_string_vec_by_path proc~json_create_by_path json_core%json_create_by_path proc~json_create_by_path->proc~json_get_by_path_default proc~json_create_by_path->proc~json_get_by_path_jsonpath_bracket proc~json_get_by_path->proc~json_get_by_path_default proc~json_get_by_path->proc~json_get_by_path_jsonpath_bracket proc~json_get_by_path->proc~json_get_by_path_rfc6901 proc~json_value_print json_core%json_value_print proc~json_value_print->proc~json_is_vector proc~json_value_print->proc~json_value_print proc~wrap_json_add_integer_by_path json_core%wrap_json_add_integer_by_path proc~wrap_json_add_integer_by_path->proc~json_add_integer_by_path proc~wrap_json_add_integer_vec_by_path json_core%wrap_json_add_integer_vec_by_path proc~wrap_json_add_integer_vec_by_path->proc~json_add_integer_vec_by_path proc~wrap_json_add_logical_by_path json_core%wrap_json_add_logical_by_path proc~wrap_json_add_logical_by_path->proc~json_add_logical_by_path proc~wrap_json_add_logical_vec_by_path json_core%wrap_json_add_logical_vec_by_path proc~wrap_json_add_logical_vec_by_path->proc~json_add_logical_vec_by_path proc~wrap_json_add_member_by_path json_core%wrap_json_add_member_by_path proc~wrap_json_add_member_by_path->proc~json_add_member_by_path proc~wrap_json_add_real_by_path json_core%wrap_json_add_real_by_path proc~wrap_json_add_real_by_path->proc~json_add_real_by_path proc~wrap_json_add_real_vec_by_path json_core%wrap_json_add_real_vec_by_path proc~wrap_json_add_real_vec_by_path->proc~json_add_real_vec_by_path proc~wrap_json_add_string_by_path json_core%wrap_json_add_string_by_path proc~wrap_json_add_string_by_path->proc~json_add_string_by_path proc~wrap_json_add_string_vec_by_path json_core%wrap_json_add_string_vec_by_path proc~wrap_json_add_string_vec_by_path->proc~json_add_string_vec_by_path none~add_by_path~2->proc~json_add_string_by_path_path_ascii none~add_by_path~2->proc~json_add_string_by_path_value_ascii none~add_by_path~2->proc~json_add_string_vec_by_path_path_ascii none~add_by_path~2->proc~json_add_string_vec_by_path_value_ascii none~create->proc~json_create_by_path proc~wrap_json_create_by_path json_core%wrap_json_create_by_path none~create->proc~wrap_json_create_by_path proc~json_print_to_unit json_core%json_print_to_unit proc~json_print_to_unit->proc~json_value_print proc~json_value_replace->none~insert_after proc~json_value_to_string json_core%json_value_to_string proc~json_value_to_string->proc~json_value_print proc~wrap_json_file_remove->none~remove~2 proc~wrap_json_file_valid_path->none~valid_path~2 proc~wrap_json_file_variable_info->none~info~2 proc~wrap_json_file_variable_matrix_info->none~matrix_info~2 proc~wrap_json_get_path->none~get_path proc~assign_json_file_to_string json_file%assign_json_file_to_string proc~assign_json_file_to_string->proc~json_value_to_string proc~json_add_real32_by_path json_core%json_add_real32_by_path proc~json_add_real32_by_path->none~add_by_path~2 proc~json_add_real32_vec_by_path json_core%json_add_real32_vec_by_path proc~json_add_real32_vec_by_path->none~add_by_path~2 proc~json_file_add_integer json_file%json_file_add_integer proc~json_file_add_integer->none~add_by_path~2 proc~json_file_add_integer_vec json_file%json_file_add_integer_vec proc~json_file_add_integer_vec->none~add_by_path~2 proc~json_file_add_logical json_file%json_file_add_logical proc~json_file_add_logical->none~add_by_path~2 proc~json_file_add_logical_vec json_file%json_file_add_logical_vec proc~json_file_add_logical_vec->none~add_by_path~2 proc~json_file_add_object json_file%json_file_add_object proc~json_file_add_object->none~add_by_path~2 proc~json_file_add_real json_file%json_file_add_real proc~json_file_add_real->none~add_by_path~2 proc~json_file_add_real32 json_file%json_file_add_real32 proc~json_file_add_real32->none~add_by_path~2 proc~json_file_add_real32_vec json_file%json_file_add_real32_vec proc~json_file_add_real32_vec->none~add_by_path~2 proc~json_file_add_real_vec json_file%json_file_add_real_vec proc~json_file_add_real_vec->none~add_by_path~2 proc~json_file_add_string json_file%json_file_add_string proc~json_file_add_string->none~add_by_path~2 proc~json_file_add_string_vec json_file%json_file_add_string_vec proc~json_file_add_string_vec->none~add_by_path~2 proc~json_file_print_to_string json_file%json_file_print_to_string proc~json_file_print_to_string->proc~json_value_to_string proc~wrap_json_add_real32_by_path json_core%wrap_json_add_real32_by_path proc~wrap_json_add_real32_by_path->none~add_by_path~2 proc~wrap_json_add_real32_vec_by_path json_core%wrap_json_add_real32_vec_by_path proc~wrap_json_add_real32_vec_by_path->none~add_by_path~2 proc~wrap_json_create_by_path->none~create proc~json_file_add_string_path_ascii json_file%json_file_add_string_path_ascii proc~json_file_add_string_path_ascii->proc~json_file_add_string proc~json_file_add_string_value_ascii json_file%json_file_add_string_value_ascii proc~json_file_add_string_value_ascii->proc~json_file_add_string proc~json_file_add_string_vec_path_ascii json_file%json_file_add_string_vec_path_ascii proc~json_file_add_string_vec_path_ascii->proc~json_file_add_string_vec proc~json_file_add_string_vec_vec_ascii json_file%json_file_add_string_vec_vec_ascii proc~json_file_add_string_vec_vec_ascii->proc~json_file_add_string_vec proc~wrap_json_file_add_integer json_file%wrap_json_file_add_integer proc~wrap_json_file_add_integer->proc~json_file_add_integer proc~wrap_json_file_add_integer_vec json_file%wrap_json_file_add_integer_vec proc~wrap_json_file_add_integer_vec->proc~json_file_add_integer_vec proc~wrap_json_file_add_logical json_file%wrap_json_file_add_logical proc~wrap_json_file_add_logical->proc~json_file_add_logical proc~wrap_json_file_add_logical_vec json_file%wrap_json_file_add_logical_vec proc~wrap_json_file_add_logical_vec->proc~json_file_add_logical_vec proc~wrap_json_file_add_object json_file%wrap_json_file_add_object proc~wrap_json_file_add_object->proc~json_file_add_object proc~wrap_json_file_add_real json_file%wrap_json_file_add_real proc~wrap_json_file_add_real->proc~json_file_add_real proc~wrap_json_file_add_real32 json_file%wrap_json_file_add_real32 proc~wrap_json_file_add_real32->proc~json_file_add_real32 proc~wrap_json_file_add_real32_vec json_file%wrap_json_file_add_real32_vec proc~wrap_json_file_add_real32_vec->proc~json_file_add_real32_vec proc~wrap_json_file_add_real_vec json_file%wrap_json_file_add_real_vec proc~wrap_json_file_add_real_vec->proc~json_file_add_real_vec proc~wrap_json_file_add_string json_file%wrap_json_file_add_string proc~wrap_json_file_add_string->proc~json_file_add_string proc~wrap_json_file_add_string_vec json_file%wrap_json_file_add_string_vec proc~wrap_json_file_add_string_vec->proc~json_file_add_string_vec

Source Code

    subroutine json_get_alloc_string_vec(json, me, vec, ilen)

    implicit none

    class(json_core),intent(inout)       :: json
    type(json_value),pointer,intent(in)  :: me
    character(kind=CK,len=:),dimension(:),allocatable,intent(out) :: vec
    integer(IK),dimension(:),allocatable,intent(out) :: ilen !! the actual length
                                                             !! of each character
                                                             !! string in the array

    logical(LK) :: initialized !! if the output array has been sized
    integer(IK) :: max_len     !! the length of the longest string in the array

    if ( json%exception_thrown ) return

    ! check for 0-length arrays first:
    select case (me%var_type)
    case (json_array)
        if (json%count(me)==0) then
            allocate(character(kind=CK,len=0) :: vec(0))
            allocate(ilen(0))
            return
        end if
    end select

    initialized = .false.

    call json%string_info(me,ilen=ilen,max_str_len=max_len)
    if (.not. json%exception_thrown) then
        ! now get each string using the callback function:
        call json%get(me, array_callback=get_chars_from_array)
    end if

    if (json%exception_thrown) then
        if (allocated(vec))  deallocate(vec)
        if (allocated(ilen)) deallocate(ilen)
    end if

    contains

        subroutine get_chars_from_array(json, element, i, count)

        !! callback function for chars

        implicit none

        class(json_core),intent(inout)      :: json
        type(json_value),pointer,intent(in) :: element
        integer(IK),intent(in)              :: i        !! index
        integer(IK),intent(in)              :: count    !! size of array

        character(kind=CK,len=:),allocatable :: cval  !! for getting string

        !size the output array:
        if (.not. initialized) then
            ! string length long enough to hold the longest one
            ! Note that this doesn't work with gfortran 4.9 or 5.
            allocate( character(kind=CK,len=max_len) :: vec(count) )
            initialized = .true.
        end if

        !populate the elements:
        call json%get(element, value=cval)
        if (allocated(cval)) then
            vec(i)  = cval
            ilen(i) = len(cval)  ! return the actual length
            deallocate(cval)
        else
            vec(i)  = CK_''
            ilen(i) = 0
        end if

        end subroutine get_chars_from_array

    end subroutine json_get_alloc_string_vec