Sets a whole-file row filter ("mask") on writer: mask(i) = .false. drops row i
entirely from every column written from this point on (no trace at all -- no offset, no
validity bit; this is not the same as writing a Null). Must be called after
parquet_open_writer and before the writer's first parquet_write_column or
parquet_new_row_group call, whichever comes first.
For a writer using only parquet_write_column (no row groups): every subsequent
parquet_write_column call's values (or the row dimension of values(:,:)) must have
length size(mask) exactly, and the resulting column has count(mask) rows.
For a writer using parquet_new_row_group/parquet_write_column_chunk: each
parquet_new_row_group(writer, nrows) call automatically claims the next nrows positions
of mask (in file order) as that row group's window, and every column's
parquet_write_column_chunk call for that row group must supply values of length exactly
nrows; the row group's actual written row count is count() of its window's mask slice
(which may be anywhere from 0 to nrows). mask must be fully consumed by the writer's
row groups by the time it closes (error stop at parquet_close_writer otherwise). See
doc/pages/io/writing.md's "Filtering rows with a mask" for a worked example.
Mutually exclusive with parquet_write_chunk_row_mask on the same writer -- once either has
been used, calling the other is an error stop. Callable at most once per writer -- a
second call is an error stop rather than silently replacing the first mask.