Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | buffer(:) | |||
type(FileMetadata), | intent(inout) | :: | fmd | |||
integer, | intent(out), | optional | :: | rc |
subroutine FileMetadata_deserialize(buffer, fmd, rc) integer, intent(in) :: buffer(:) type (FileMetadata), intent(inout) :: fmd integer, optional, intent(out) :: rc integer :: status fmd = FileMetaData() call deserialize(fmd, buffer, rc=status) _VERIFY(status) _RETURN(_SUCCESS) contains subroutine deserialize(this, buffer, rc) class (FileMetadata), intent(inout) :: this integer, intent(in) :: buffer(:) integer, optional, intent(out) :: rc integer :: n,length integer :: status n = 1 call deserialize_intrinsic(buffer(n:),length) _ASSERT(length <= size(buffer), "length does not match") length = serialize_buffer_length(length) n = n+length call StringIntegerMap_deserialize(buffer(n:),this%dimensions, status) _VERIFY(status) call deserialize_intrinsic(buffer(n:),length) n = n + length call deserialize_intrinsic(buffer(n:),length) call Variable_deserialize(buffer(n:n+length-1),this%global_var, status) _VERIFY(status) n = n + length call StringVariableMap_deserialize(buffer(n:), this%variables, status) call deserialize_intrinsic(buffer(n:),length) n = n + length call StringVector_deserialize(buffer(n:), this%order, status) _VERIFY(status) _RETURN(_SUCCESS) end subroutine deserialize end subroutine FileMetadata_deserialize