Changeset 229


Ignore:
Timestamp:
06/20/11 13:06:09 (13 years ago)
Author:
hozdoba
Message:
 
Location:
XMLIO_V2/dev/dev_rv
Files:
8 added
7 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_V2/dev/dev_rv/Makefile.wk

    r216 r229  
    1313MCOLOR    = no 
    1414SHOWCMD   = yes 
    15 VTK       = no 
     15VTK       = yes 
    1616GUI       = no 
    17 NPROC     = 6 
     17NPROC     = 1 
    1818#VERSION   = 4 
    19 CSUITE    = intel 
     19CSUITE    = gnu 
    2020PFORME    = fedora-wk 
    2121FORTEXT   = .f90 
     
    2323 
    2424ifeq ($(HOSTNAME), localhost.localdomain) 
     25        PFORME = fedora-wk 
     26        CSUITE = gnu 
     27endif 
     28 
     29ifeq ($(HOSTNAME), gaia) 
    2530        PFORME = fedora-wk 
    2631        CSUITE = gnu 
     
    7580        HDF5_PATH   = $(DEV_PATH)/extra/hdf5 
    7681        MPI_PATH    = /usr/lib/openmpi 
     82endif 
     83 
     84ifeq ($(HOSTNAME), gaia) 
     85        BOOST_PATH  = /usr/include 
    7786endif 
    7887 
     
    199208OUPT_PATH = $(SRC_PATH)/output 
    200209MNGR_PATH = $(SRC_PATH)/manager 
     210NCDF_PATH = $(SRC_PATH)/netcdf 
    201211GUI_PATH  = $(SRC_PATH)/qt 
    202212VTK_PATH  = $(SRC_PATH)/vtk 
     
    208218 
    209219VPATH = $(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)\ 
    211221:$(OUPT_PATH):$(MNGR_PATH):$(FAKE_PATH):$(FSRC_PATH):$(CONF_PATH) 
    212222 
     
    390400 
    391401ifeq ($(VERSION), 4) 
    392         ELEMS_CPP = object exception xml_node xml_parser 
     402        ELEMS_CPP = object exception xml_node xml_parser inetcdf4 inetcdf4_adv lscereader 
    393403endif 
    394404 
  • XMLIO_V2/dev/dev_rv/src/xmlio/data_treatment.hpp

    r214 r229  
    9393            (const StdString & fieldId, const ARRAY(float, N) & data) 
    9494      { 
    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(); 
    9798 
    9899         shape.assign(shapearr, shapearr + N); 
    99          ARRAY_CREATE(datad, double, N, shape); 
     100         ARRAY_CREATE(datad, double, N, [shape]); 
    100101         datad->assign(data->begin(), data->end()); 
    101102 
     
    123124               {  
    124125                   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()); 
    126127               } 
    127128               else 
  • XMLIO_V2/dev/dev_rv/src/xmlio/date.cpp

    r204 r229  
    1515      { 
    1616         if(!this->checkDate()) 
     17         { 
    1718            DEBUG(<< "La date initialisée a été modifiée " 
    1819                  << "car elle était incorrecte par rapport au calendrier souhaité."); 
     20         } 
    1921      } 
    2022 
     
    2527      { 
    2628         if(!this->checkDate()) 
     29         { 
    2730            DEBUG(<< "La date initialisée a été modifiée " 
    2831                  << "car elle était incorrecte par rapport au calendrier souhaité."); 
     32         } 
    2933      } 
    3034 
     
    6771         in >> date.hour >> c >> date.minute >> c >> date.second; 
    6872         if(!date.checkDate()) 
     73         { 
    6974            DEBUG("La date initialisée (depuis une chaîne de caractÚres) " 
    7075                  << "a été modifiée car elle était incorrecte " 
    7176                  << "par rapport au calendrier souhaité."); 
     77         } 
    7278         return (in); 
    7379      } 
  • XMLIO_V2/dev/dev_rv/src/xmlio/node/field.hpp

    r214 r229  
    1010#include "date.hpp" 
    1111#include "declare_group.hpp" 
     12#include "calendar_util.hpp" 
    1213 
    1314namespace xmlioserver { 
  • XMLIO_V2/dev/dev_rv/src4/xmlio/exception.cpp

    r216 r229  
    2020// XMLIOServer headers 
    2121#include "xmlioserver_spl.hpp" 
    22 #include "exception.hpp" 
    2322 
    2423// /////////////////////////////// Définitions ////////////////////////////// // 
  • XMLIO_V2/dev/dev_rv/src4/xmlio/main_server.cpp

    r215 r229  
    1616#include "xmlioserver_spl.hpp" 
    1717 
     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 
    1824namespace xios = xmlioserver; 
    1925//~ using namespace xios::data; 
    20 //~ using namespace xios::io; 
     26using namespace xios::io; 
    2127//~ using namespace xios::tree; 
    2228//~ using namespace xios::xml; 
    2329//~ using namespace xios::comm; 
    2430//~ using namespace xios::func; 
     31using namespace xios::vtk; 
    2532 
    2633// Point d'entrée du programme serveur principal. 
     
    2936   try 
    3037   { 
     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        
    3191 
    3292   } 
  • XMLIO_V2/dev/dev_rv/src4/xmlio/netcdf/inetcdf4.hpp

    r216 r229  
    1818// M(essage) P(assing) I(nterface) headers 
    1919#include <mpi.h> 
    20  
     20                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
    2121// NetCDF headers 
    2222#define MPI_INCLUDED 
    2323#include <netcdf.h> 
    2424 
     25// C++ standard headers 
     26#  include <vector> 
     27 
     28// boost Headers 
     29#include <boost/multi_array.hpp> 
     30 
    2531#endif // __XIOS_NO_EXTERN 
    2632 
    2733// XMLIOServer headers 
    2834#include "xmlioserver_spl.hpp" 
     35 
     36#ifndef UNLIMITED_DIM 
     37   #define UNLIMITED_DIM (size_t)(-1) 
     38#endif  //UNLIMITED_DIM 
    2939 
    3040// ////////////////////////////// Déclarations ///////////////////////////// // 
     
    7282          
    7383            //! \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); 
    75130 
    76131         protected : // Accesseurs protégés 
     
    123178            /*! 
    124179             * \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. 
    126181             */ 
    127182            int getUnlimitedDimension(void); 
     
    134189            bool varExist(const std::string & _varname); 
    135190 
    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              
    137217         private : // Vérification des erreurs NetCDF 
    138218 
     
    150230             * \endcode 
    151231             */ 
    152             static void CheckError(int _status); 
     232            static void CheckError(int _status) throw (CException); 
    153233 
    154234         public : // Propriétés privées 
    155235          
    156             CONetCDF4Path path; /*!< \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. */ 
    158238          
    159239      }; // class CINetCDF4 
Note: See TracChangeset for help on using the changeset viewer.