1 #ifndef __XIOS_ONETCDF4__
2 #define __XIOS_ONETCDF4__
13 #define UNLIMITED_DIM (size_t)(-1)
14 #endif //UNLIMITED_DIM
30 const MPI_Comm* comm = NULL,
bool multifile =
true,
51 const std::vector<StdString>& dim,
int compressionLevel=0);
64 template <
class T,
int ndim>
66 bool collective,
StdSize record,
67 const std::vector<StdSize>* start = NULL,
68 const std::vector<StdSize>*
count = NULL);
72 bool collective,
StdSize record,
bool Isroot);
74 bool collective,
StdSize record,
bool Isroot);
115 const std::vector<StdSize>& sstart,
116 const std::vector<StdSize>& scount, T* data);
119 std::vector<StdSize>& sstart,
120 std::vector<StdSize>& scount,
121 const std::vector<StdSize>* start,
122 const std::vector<StdSize>*
count);
138 #endif //__XIOS_ONETCDF4__
void setDefaultValue(const StdString &varname, const T *value=NULL)
////////////////////// Déclarations ////////////////////// ///
const CONetCDF4Path & getCurrentPath(void) const
Accesseur ///.
bool dimExist(const StdString &dimname)
std::vector< StdString > CONetCDF4Path
Définition de type ///.
int getVariable(const StdString &varname)
map< int, size_t > timeAxis
virtual void writeDomain_(CDomain *domain)=0
const StdString & getTimeCounterName(void) const
#define UNLIMITED_DIM
XIOS headers ///.
std::vector< StdSize > getDimensions(const StdString &varname)
virtual ~CONetCDF4(void)
Destructeur ///.
CONetCDF4Path path
Propriétés privées ///.
bool useCFConvention
If true data is written in the CF convention otherwise in UGRID.
void getTimeAxisBounds(CArray< double, 2 > &timeAxisBounds, const StdString &name, bool collective)
int getCurrentGroup(void)
Accesseurs ///.
void addAttribute(const StdString &name, const T &value, const StdString *varname=NULL)
////////////////////// Déclarations ////////////////////// ///
void writeTimeAxisData(const CArray< double, 1 > &data, const StdString &name, bool collective, StdSize record, bool Isroot)
void initialize(const StdString &filename, bool append, bool useClassicFormat, bool useCFConvention, const MPI_Comm *comm, bool multifile, const StdString &timeCounterName)
Initialisation ///.
std::vector< StdString > getDimensionsIdList(const StdString *varname)
void writeTimeAxisDataBounds(const CArray< double, 1 > &data, const StdString &name, bool collective, StdSize record, bool Isroot)
int addDimension(const StdString &name, const StdSize size=(size_t)(-1))
void writeData(const CArray< T, ndim > &data, const StdString &name, bool collective, StdSize record, const std::vector< StdSize > *start=NULL, const std::vector< StdSize > *count=NULL)
Ecriture des données ///.
void getWriteDataInfos(const StdString &name, StdSize record, StdSize &array_size, std::vector< StdSize > &sstart, std::vector< StdSize > &scount, const std::vector< StdSize > *start, const std::vector< StdSize > *count)
virtual void writeAxis_(CAxis *axis)=0
////////////////////// Déclarations ////////////////////// ///
int getDimension(const StdString &dimname)
bool useClassicFormat
If true, NetCDF4 will use the classic NetCDF3 format.
void setCurrentPath(const CONetCDF4Path &path)
Mutateurs ///.
EDataOutputType type
Propriétés protégées ///.
void writeData_(int grpid, int varid, const std::vector< StdSize > &sstart, const std::vector< StdSize > &scount, T *data)
bool varExist(const StdString &varname)
StdString getUnlimitedDimensionName(void)
virtual void writeField_(CField *field)=0
Ecriture ///.
int getGroup(const CONetCDF4Path &path)
int addVariable(const StdString &name, nc_type type, const std::vector< StdString > &dim, int compressionLevel=0)
void setCompressionLevel(const StdString &varname, int compressionLevel)
StdString timeCounterName
CONetCDF4(const StdString &filename, bool append, bool useClassicFormat=false, bool useCFConvention=true, const MPI_Comm *comm=NULL, bool multifile=true, const StdString &timeCounterName="time_counter")
Constructeurs ///.
int getUnlimitedDimension(void)
void definition_start(void)
void definition_end(void)
Test if the file was opened in append mode.
int addGroup(const StdString &name)