Index: XMLIO_V2/dev/dev_rv/src4/xmlio/main_server.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/main_server.cpp	(revision 235)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/main_server.cpp	(revision 236)
@@ -84,6 +84,6 @@
        
        //vtkLSCEReader::ShowVariable("test/vtk/file_coslatgrid.nc4", "NTEMP");
-       //vtkLSCEReader::ShowVariable("test/vtk/ucov.nc4", "ucov");
-       vtkLSCEReader::ShowVariable("test/vtk/sampleCurveGrid4.nc4", "sample");
+       vtkLSCEReader::ShowVariable("test/vtk/ucov.nc4", "ucov");
+       //vtkLSCEReader::ShowVariable("test/vtk/sampleCurveGrid4.nc4", "sample");
        //vtkLSCEReader::ShowVariable("test/vtk/sampleGenGrid3.nc4", "sample");
        //vtkLSCEReader::ShowVariable("test/vtk/file_xboundsybounds.nc4", "A");
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/vtk/lscereader.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/vtk/lscereader.cpp	(revision 235)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/vtk/lscereader.cpp	(revision 236)
@@ -12,4 +12,6 @@
 #include "vtkInformationVector.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
+
+#include "vtkPointLocator.h"
 
 #include <vtkProperty.h>
@@ -82,5 +84,6 @@
       {
          this->RemoveAllSelectedVariables();
-         this->AddVariableToSelection(variable);
+         if (Reader->hasVariable(variable))
+            this->AddVariableToSelection(variable);
          this->Modified();
       }
@@ -457,4 +460,47 @@
 
       //----------------------------------------------------------------
+      
+      void vtkLSCEReader::GetDimensions(const vtkStdString & xcoordinate,
+                                        const vtkStdString & ycoordinate,
+                                        const vtkStdString & zcoordinate,
+                                        vtkIntArray * dimensions, bool bounds)
+      {
+         int a = (bounds) ? 1 : 0;
+         dimensions->InsertNextValue
+            ((Reader->getDimensions(&xcoordinate).begin())->second + a);
+         dimensions->InsertNextValue
+            ((Reader->getDimensions(&ycoordinate).begin())->second + a);
+         if (zcoordinate.size() > 0)
+         {
+            dimensions->InsertNextValue
+               ((Reader->getDimensions(&zcoordinate).begin())->second + a);
+         }
+         else
+         {
+            dimensions->InsertNextValue(1);
+         }
+      }
+      
+      void vtkLSCEReader::GetDimensions(const vtkStdString & xcoordinate,
+                                        const vtkStdString & zcoordinate,
+                                        vtkIntArray * dimensions, bool bounds)
+      {
+         int a = (bounds) ? 1 : 0;
+         dimensions->InsertNextValue
+            (Reader->getDimensions(&xcoordinate)[Reader->getLonCoordName(xcoordinate)] + a);
+         dimensions->InsertNextValue
+            (Reader->getDimensions(&xcoordinate)[Reader->getLatCoordName(xcoordinate)] + a);
+         if (zcoordinate.size() > 0)
+         {
+            dimensions->InsertNextValue
+               ((Reader->getDimensions(&zcoordinate).begin())->second + a);
+         }
+         else
+         {
+            dimensions->InsertNextValue(1);
+         }
+      }
+
+      //----------------------------------------------------------------
       void vtkLSCEReader::GetPoints(const vtkStdString & xcoordinate,
                                     const vtkStdString & ycoordinate,
@@ -656,5 +702,5 @@
 
       //----------------------------------------------------------------
-
+      
       int vtkLSCEReader::RequestData
                            (vtkInformation       *  vtkNotUsed(request),
@@ -665,6 +711,4 @@
          vtkDataSet     *  output  = vtkDataSet::GetData(outInfo);
          
-         std::cout << this->CurGridType << std::endl;
-
          if (!output)
          {
@@ -689,5 +733,5 @@
          vtkStructuredGrid   * soutput  = vtkStructuredGrid::SafeDownCast(output);
 
-         if (routput)
+         if (routput && !this->VarNames.empty())
          { // Grille rectiliniÃ©aire
             vtkSmartPointer<vtkFloatArray>
@@ -711,5 +755,5 @@
          }
 
-         if (soutput)
+         if (soutput && !this->VarNames.empty())
          { // Grille structurÃ©e
              
@@ -720,11 +764,11 @@
             GetPoints(Reader->getLonCoordName(*VarNames.begin()),
                       Reader->getLatCoordName(*VarNames.begin()),
-                      Reader->getVertCoordName(*VarNames.begin()), false, true, pts, dims);
-
-            AddScalarData(soutput, *VarNames.begin(), 0, false);
+                      Reader->getVertCoordName(*VarNames.begin()), true, true, pts, dims);
+
+            AddScalarData(soutput, *VarNames.begin(), 0, true);
             CreateStructuredGrid(soutput, outInfo, pts, dims);
          }
 
-         if (uoutput)
+         if (uoutput  && !this->VarNames.empty())
          { // Grille non-structurÃ©e
 
@@ -735,4 +779,7 @@
             //CreateSimpleGrid (0, 12, 0, 12, 0, 12, pts, cells, dims);
             //std::cout << Reader->getVertCoordName(*VarNames.begin()) << std::endl;
+            
+            std::cout << Reader->getNbVertex(*VarNames.begin()) << std::endl;
+            
             GetCellsAndPoints(Reader->getLonCoordName(*VarNames.begin()),
                               Reader->getLatCoordName(*VarNames.begin()),
@@ -773,4 +820,36 @@
             output->Delete();
          }
+
+         vtkRectilinearGrid  * routput  = vtkRectilinearGrid::SafeDownCast(output);
+         vtkStructuredGrid   * soutput  = vtkStructuredGrid::SafeDownCast(output);
+         
+         if (routput && !this->VarNames.empty())
+         { // Grille rectiliniÃ©aire
+            vtkSmartPointer<vtkIntArray> dims = vtkSmartPointer<vtkIntArray>::New();
+            this->GetDimensions(Reader->getLonCoordName(*VarNames.begin()),
+                                Reader->getLatCoordName(*VarNames.begin()),
+                                Reader->getVertCoordName(*VarNames.begin()),
+                                dims, true);
+            
+            int extent[6] = { 0, dims->GetValue(0) - 1
+                            , 0, dims->GetValue(1) - 1
+                            , 0, dims->GetValue(2) - 1};
+            outInfo->Set(vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT(),extent,6);
+         }
+         
+         if (soutput && !this->VarNames.empty())
+         { // Grille structurÃ©e
+            
+            vtkSmartPointer<vtkIntArray> dims = vtkSmartPointer<vtkIntArray>::New();
+            this->GetDimensions(Reader->getLonCoordName(*VarNames.begin()),
+                                Reader->getVertCoordName(*VarNames.begin()),
+                                dims, true);
+            
+            int extent[6] = { 0, dims->GetValue(0) - 1
+                            , 0, dims->GetValue(1) - 1
+                            , 0, dims->GetValue(2) - 1};
+            outInfo->Set(vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT(),extent,6);
+         }
+            
          return (1);
       }
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/vtk/lscereader.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/vtk/lscereader.hpp	(revision 235)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/vtk/lscereader.hpp	(revision 236)
@@ -162,4 +162,13 @@
                                std::size_t record, bool bounds);
             
+            void GetDimensions(const vtkStdString & xcoordinate,
+                               const vtkStdString & ycoordinate,
+                               const vtkStdString & zcoordinate,
+                              vtkIntArray * dimensions, bool bounds);
+            
+            void GetDimensions(const vtkStdString & xcoordinate,
+                               const vtkStdString & zcoordinate,
+                               vtkIntArray * dimensions, bool bounds);
+             
             //ETX
             
