8#ifndef PARAMETRICGRID_HPP
9#define PARAMETRICGRID_HPP
24 typedef ModelArray::MultiDim GridDimensions;
39 return pio ? pio->getModelState(filePath) :
ModelState();
43 const std::string& filePath,
bool isRestart =
false)
const override
47 pio->dumpModelState(state, metadata, filePath);
49 pio->writeDiagnosticTime(state, metadata, filePath);
53 const std::string&
structureType()
const override {
return structureName; };
68 virtual ModelState getModelState(
const std::string& filePath) = 0;
69 virtual void dumpModelState(
72 virtual ModelState readForcingTime(
const std::set<std::string>& forcings,
73 const TimePoint& time,
const std::string& filePath)
75 virtual void writeDiagnosticTime(
92 const static std::string structureName;
Interface class for the model structure.
static std::map< Dimension, DimensionSpec > definedDimensions
The name and length of each dimension that is defined.
A class to hold the grid data for parameterised rectangular grids.
void dumpModelState(const ModelState &state, const ModelMetadata &metadata, const std::string &filePath, bool isRestart=false) const override
Dumps the data to a file path.
ModelState getModelState(const std::string &filePath) override
Dumps the data to a file path.
void setIO(IParaGridIO *p)
int nIceLayers() const override
The number of ice layers in this data structure.
const std::string & structureType() const override
Returns the structure name that this class will process.