Reads back one key's value from the flat key-value table metadata a
parquet_writer wrote via add_metadata (see parquet_reader%metadata,
populated once by parquet_open_reader). value's declared type/kind
selects the specific procedure, so it also selects which stored
representation is expected -- the stored string (always written by
add_metadata as plain text, see parquet_metadata.f90) is parsed back
into that type. Any key is allowed, including the writer's own
reserved/internal keys (e.g. "DATE", "column.
If key is missing: returns default if given (printing a WARNING
unless warn=.false.), else error stops. If key is present but its
stored text cannot be converted to the requested type (including a
stored integer that overflows a 32-bit target): always prints a
WARNING, then falls back to default if given, else error stops.
default must be the same type/kind as value; warn defaults to
.true. and only affects the "key missing, default used" case.