json_file_add_string_vec Subroutine

private subroutine json_file_add_string_vec(me, path, vec, found, was_created, ilen, trim_str, adjustl_str)

Add a string vector to a JSON file.

Arguments

Type IntentOptional AttributesName
class(json_file), intent(inout) :: me
character(kind=CK,len=*), intent(in) :: path

the path to the variable

character(kind=CK,len=*), intent(in), dimension(:):: vec

the value vector

logical(kind=LK), intent(out), optional :: found

if the variable was found

logical(kind=LK), intent(out), optional :: was_created

if the variable had to be created

integer(kind=IK), intent(in), optional dimension(:):: ilen

the string lengths of each element in value. If not present, the full len(value) string is added for each element.

logical(kind=LK), intent(in), optional :: trim_str

if TRIM() should be called for each element

logical(kind=LK), intent(in), optional :: adjustl_str

if ADJUSTL() should be called for each element (note that ADJUSTL is done before TRIM)


Contents


Source Code

    subroutine json_file_add_string_vec(me,path,vec,found,&
                                            was_created,ilen,trim_str,adjustl_str)

    implicit none

    class(json_file),intent(inout)                   :: me
    character(kind=CK,len=*),intent(in)              :: path         !! the path to the variable
    character(kind=CK,len=*),dimension(:),intent(in) :: vec          !! the value vector
    logical(LK),intent(out),optional                 :: found        !! if the variable was found
    logical(LK),intent(out),optional                 :: was_created  !! if the variable had to be created
    integer(IK),dimension(:),intent(in),optional     :: ilen         !! the string lengths of each
                                                                     !! element in `value`. If not present,
                                                                     !! the full `len(value)` string is added
                                                                     !! for each element.
    logical(LK),intent(in),optional                  :: trim_str     !! if TRIM() should be called for each element
    logical(LK),intent(in),optional                  :: adjustl_str  !! if ADJUSTL() should be called for each element
                                                                     !! (note that ADJUSTL is done before TRIM)

    if (.not. associated(me%p)) call me%core%create_object(me%p,ck_'') ! create root

    call me%core%add_by_path(me%p,path,vec,found,was_created,ilen,trim_str,adjustl_str)

    end subroutine json_file_add_string_vec