Add a json_value pointer as the root object to a JSON file.
This is mostly equivalent to:
f = [[json_file]](p)
But without the finalization calls.
And:
if (destroy_original) call [[json_file]]%destroy()
call [[json_file]]%add('$',p)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(json_file), | intent(inout) | :: | me | |||
type(json_value), | intent(in), | pointer | :: | p | pointer to the variable to add |
|
logical(kind=LK), | intent(in), | optional | :: | destroy_original | if the file currently contains an associated pointer, it is destroyed. [Default is True] |
subroutine json_file_add(me,p,destroy_original)
implicit none
class(json_file),intent(inout) :: me
type(json_value),pointer,intent(in) :: p !! pointer to the variable to add
logical(LK),intent(in),optional :: destroy_original !! if the file currently contains
!! an associated pointer, it is
!! destroyed. [Default is True]
logical(LK) :: destroy !! if `me%p` is to be destroyed
if (present(destroy_original)) then
destroy = destroy_original
else
destroy = .true. ! default
end if
if (destroy) call me%core%destroy(me%p)
me%p => p
end subroutine json_file_add