Changeset 229
- Timestamp:
- 06/20/11 13:06:09 (13 years ago)
- Location:
- XMLIO_V2/dev/dev_rv
- Files:
-
- 8 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_V2/dev/dev_rv/Makefile.wk
r216 r229 13 13 MCOLOR = no 14 14 SHOWCMD = yes 15 VTK = no15 VTK = yes 16 16 GUI = no 17 NPROC = 617 NPROC = 1 18 18 #VERSION = 4 19 CSUITE = intel19 CSUITE = gnu 20 20 PFORME = fedora-wk 21 21 FORTEXT = .f90 … … 23 23 24 24 ifeq ($(HOSTNAME), localhost.localdomain) 25 PFORME = fedora-wk 26 CSUITE = gnu 27 endif 28 29 ifeq ($(HOSTNAME), gaia) 25 30 PFORME = fedora-wk 26 31 CSUITE = gnu … … 75 80 HDF5_PATH = $(DEV_PATH)/extra/hdf5 76 81 MPI_PATH = /usr/lib/openmpi 82 endif 83 84 ifeq ($(HOSTNAME), gaia) 85 BOOST_PATH = /usr/include 77 86 endif 78 87 … … 199 208 OUPT_PATH = $(SRC_PATH)/output 200 209 MNGR_PATH = $(SRC_PATH)/manager 210 NCDF_PATH = $(SRC_PATH)/netcdf 201 211 GUI_PATH = $(SRC_PATH)/qt 202 212 VTK_PATH = $(SRC_PATH)/vtk … … 208 218 209 219 VPATH = $(DEP_PATH):$(SRC_PATH):$(CSRC_PATH):$(NODE_PATH) $(XML_PATH)\ 210 :$(FUNC_PATH):$(DATE_PATH):$(GUI_PATH):$(VTK_PATH):$(INPT_PATH) \220 :$(FUNC_PATH):$(DATE_PATH):$(GUI_PATH):$(VTK_PATH):$(INPT_PATH) $(NCDF_PATH)\ 211 221 :$(OUPT_PATH):$(MNGR_PATH):$(FAKE_PATH):$(FSRC_PATH):$(CONF_PATH) 212 222 … … 390 400 391 401 ifeq ($(VERSION), 4) 392 ELEMS_CPP = object exception xml_node xml_parser 402 ELEMS_CPP = object exception xml_node xml_parser inetcdf4 inetcdf4_adv lscereader 393 403 endif 394 404 -
XMLIO_V2/dev/dev_rv/src/xmlio/data_treatment.hpp
r214 r229 93 93 (const StdString & fieldId, const ARRAY(float, N) & data) 94 94 { 95 std::vector<boost::multi_array<double, N>::size_type shape() > shape; 96 const size_type * shapearr = data->shape(); 95 typedef typename boost::multi_array<double, N>::size_type sizetp; 96 std::vector<sizetp> shape; 97 const sizetp * shapearr = data->shape(); 97 98 98 99 shape.assign(shapearr, shapearr + N); 99 ARRAY_CREATE(datad, double, N, shape);100 ARRAY_CREATE(datad, double, N, [shape]); 100 101 datad->assign(data->begin(), data->end()); 101 102 … … 123 124 { 124 125 boost::shared_ptr<comm::CClient> client = comm::CClient::GetClient(); 125 client .sendData(fieldId, file->getId(), field->getData());126 client->sendData(fieldId, file->getId(), field->getData()); 126 127 } 127 128 else -
XMLIO_V2/dev/dev_rv/src/xmlio/date.cpp
r204 r229 15 15 { 16 16 if(!this->checkDate()) 17 { 17 18 DEBUG(<< "La date initialisée a été modifiée " 18 19 << "car elle était incorrecte par rapport au calendrier souhaité."); 20 } 19 21 } 20 22 … … 25 27 { 26 28 if(!this->checkDate()) 29 { 27 30 DEBUG(<< "La date initialisée a été modifiée " 28 31 << "car elle était incorrecte par rapport au calendrier souhaité."); 32 } 29 33 } 30 34 … … 67 71 in >> date.hour >> c >> date.minute >> c >> date.second; 68 72 if(!date.checkDate()) 73 { 69 74 DEBUG("La date initialisée (depuis une chaîne de caractÚres) " 70 75 << "a été modifiée car elle était incorrecte " 71 76 << "par rapport au calendrier souhaité."); 77 } 72 78 return (in); 73 79 } -
XMLIO_V2/dev/dev_rv/src/xmlio/node/field.hpp
r214 r229 10 10 #include "date.hpp" 11 11 #include "declare_group.hpp" 12 #include "calendar_util.hpp" 12 13 13 14 namespace xmlioserver { -
XMLIO_V2/dev/dev_rv/src4/xmlio/exception.cpp
r216 r229 20 20 // XMLIOServer headers 21 21 #include "xmlioserver_spl.hpp" 22 #include "exception.hpp"23 22 24 23 // /////////////////////////////// Définitions ////////////////////////////// // -
XMLIO_V2/dev/dev_rv/src4/xmlio/main_server.cpp
r215 r229 16 16 #include "xmlioserver_spl.hpp" 17 17 18 #include "inetcdf4.hpp" 19 #include "inetcdf4_impl.hpp" 20 #include "inetcdf4_adv.hpp" 21 #include "inetcdf4_adv_impl.hpp" 22 #include "lscereader.hpp" 23 18 24 namespace xios = xmlioserver; 19 25 //~ using namespace xios::data; 20 //~using namespace xios::io;26 using namespace xios::io; 21 27 //~ using namespace xios::tree; 22 28 //~ using namespace xios::xml; 23 29 //~ using namespace xios::comm; 24 30 //~ using namespace xios::func; 31 using namespace xios::vtk; 25 32 26 33 // Point d'entrée du programme serveur principal. … … 29 36 try 30 37 { 38 std::cout << "Test input" << std::endl; 39 CINetCDF4Adv file_coslatgrid("test/vtk/file_coslatgrid.nc4"); 40 CINetCDF4Adv file_xboundsybounds("test/vtk/file_xboundsybounds.nc4"); 41 CINetCDF4Adv sampleCurveGrid4("test/vtk/sampleCurveGrid4.nc4"); 42 CINetCDF4Adv sampleGenGrid3("test/vtk/sampleGenGrid3.nc4"); 43 CINetCDF4Adv ucov("test/vtk/ucov.nc4"); 44 45 std::vector<CINetCDF4Adv*> listinput; 46 listinput.push_back(&file_coslatgrid); 47 listinput.push_back(&file_xboundsybounds); 48 listinput.push_back(&sampleCurveGrid4); 49 listinput.push_back(&sampleGenGrid3); 50 listinput.push_back(&ucov); 51 std::vector<CINetCDF4Adv*>::iterator it = listinput.begin(), end = listinput.end(); 52 53 for (; it != end; it++) 54 { 55 std::cout << "-------------" << std::endl; 56 std::map<std::string, std::size_t> dims = (*it)->getDimensions(); 57 std::map<std::string, std::size_t>::iterator it0 = dims.begin(), end0 = dims.end(); 58 59 for (; it0 != end0; it0++) 60 { 61 std::cout << "dimensions " << it0->first << " : " << it0->second << std::endl; 62 } 63 64 std::vector<std::string> vars = (*it)->getVariables(); 65 std::vector<std::string>::iterator it1 = vars.begin(), end1 = vars.end(); 66 for (; it1 != end1; it1++) 67 { 68 std::map<std::string, std::size_t> dims = (*it)->getDimensions(&(*it1)); 69 std::map<std::string, std::size_t>::iterator it3 = dims.begin(), end3 = dims.end(); 70 71 std::cout << "Variable " << *it1 << " ["; 72 for (; it3 != end3; it3++) 73 { 74 std::cout << it3->first << ":" << it3->second << " "; 75 } 76 std::cout << "] :" << std::endl; 77 } 78 } 79 80 boost::multi_array<float, 1> data; 81 file_coslatgrid.readData(data, "NTEMP", 1); 82 std::cout << data.size() << std::endl; 83 84 85 //vtkLSCEReader::ShowVariable("test/vtk/file_coslatgrid.nc4", "NTEMP"); 86 //vtkLSCEReader::ShowVariable("test/vtk/ucov.nc4", "ucov"); 87 vtkLSCEReader::ShowVariable("test/vtk/sampleCurveGrid4.nc4", "sample"); 88 //vtkLSCEReader::ShowVariable("test/vtk/sampleGenGrid3.nc4", "sample"); 89 //vtkLSCEReader::ShowVariable("test/vtk/file_xboundsybounds.nc4", "A"); 90 31 91 32 92 } -
XMLIO_V2/dev/dev_rv/src4/xmlio/netcdf/inetcdf4.hpp
r216 r229 18 18 // M(essage) P(assing) I(nterface) headers 19 19 #include <mpi.h> 20 20 21 21 // NetCDF headers 22 22 #define MPI_INCLUDED 23 23 #include <netcdf.h> 24 24 25 // C++ standard headers 26 # include <vector> 27 28 // boost Headers 29 #include <boost/multi_array.hpp> 30 25 31 #endif // __XIOS_NO_EXTERN 26 32 27 33 // XMLIOServer headers 28 34 #include "xmlioserver_spl.hpp" 35 36 #ifndef UNLIMITED_DIM 37 #define UNLIMITED_DIM (size_t)(-1) 38 #endif //UNLIMITED_DIM 29 39 30 40 // ////////////////////////////// Déclarations ///////////////////////////// // … … 72 82 73 83 //! \brief Destructeur de l'objet (le fichier est clos lors de son appel). 74 ~CINetCDF4(void); 84 virtual ~CINetCDF4(void); 85 86 87 88 public : // Accesseur de parcours (d'exploration) 89 90 std::size_t getNbOfTimestep(void); 91 92 std::string getUnlimitedDimensionName(void); 93 94 std::map<std::string, std::size_t> 95 getDimensions(const std::string * const _varname = NULL); 96 97 std::vector<std::string> getDimensionsIdList (const std::string * _varname); 98 99 std::vector<std::string> getAttributes(const std::string * const _varname = NULL); 100 std::vector<std::string> getGroups (void); 101 std::vector<std::string> getVariables(void); 102 103 public : // Mutateur 104 105 void setCurrentPath(const CNetCDF4Path & _path); 106 107 public : // Accesseurs 108 109 const CNetCDF4Path & getCurrentPath(void) const; 110 111 public : // Lecture 112 113 template <class DataType> 114 void readAttribute 115 (const std::string & _attname, 116 std::vector<DataType> & _value, 117 const std::string * _varname = NULL); 118 119 void readAttribute 120 (const std::string & _attname, 121 std::string & _value, 122 const std::string * _varname = NULL); 123 124 template <class DataType, std::size_t ndim> 125 void readData( boost::multi_array<DataType, ndim> & _data, 126 const std::string & _varname, 127 std::size_t _record = 1, 128 const std::vector<std::size_t> * _start = NULL, 129 const std::vector<std::size_t> * _count = NULL); 75 130 76 131 protected : // Accesseurs protégés … … 123 178 /*! 124 179 * \brief Retourne l'identifiant de la dimension non limité dans le fichier. 125 * \return l'identifiant de la dimension non limité .180 * \return l'identifiant de la dimension non limité ou <b>-1</b> s'il n'y en a pas. 126 181 */ 127 182 int getUnlimitedDimension(void); … … 134 189 bool varExist(const std::string & _varname); 135 190 136 191 private : // Obtention des informations de lecture 192 193 void getReadDataInfos(const std::string & _varname, 194 std::size_t _record, 195 std::size_t & _array_size, 196 std::vector<std::size_t> & _sstart, 197 std::vector<std::size_t> & _scount, 198 const std::vector<std::size_t> * _start, 199 const std::vector<std::size_t> * _count); 200 201 private : // Lecture 202 203 template <class DataType> 204 void readData_(int _grpid, 205 int _varid, 206 const std::vector<std::size_t> & _sstart, 207 const std::vector<std::size_t> & _scount, 208 DataType * _data); 209 210 template <class DataType> 211 void readAttribute_ 212 (const std::string & _attname, 213 DataType * _value, 214 int _grpid, 215 int _varid = NC_GLOBAL); 216 137 217 private : // Vérification des erreurs NetCDF 138 218 … … 150 230 * \endcode 151 231 */ 152 static void CheckError(int _status) ;232 static void CheckError(int _status) throw (CException); 153 233 154 234 public : // Propriétés privées 155 235 156 CONetCDF4Pathpath; /*!< \brief Chemin vers le groupe de données en cours de lecture. */157 int ncidp; /*!< \brief Identifiant de fichiers netCDF. */236 std::vector<std::string> path; /*!< \brief Chemin vers le groupe de données en cours de lecture. */ 237 int ncidp; /*!< \brief Identifiant de fichiers netCDF. */ 158 238 159 239 }; // class CINetCDF4
Note: See TracChangeset
for help on using the changeset viewer.