Index: /XIOS/branchs/xios-2.5/src/node/domain.cpp
===================================================================
--- /XIOS/branchs/xios-2.5/src/node/domain.cpp	(revision 1564)
+++ /XIOS/branchs/xios-2.5/src/node/domain.cpp	(revision 1565)
@@ -458,5 +458,5 @@
    void CDomain::fillInRectilinearLonLat()
    {
-     if (!lonvalue_rectilinear_read_from_file.isEmpty())
+     if (!lonvalue_rectilinear_read_from_file.isEmpty()  && lonvalue_2d.isEmpty() && lonvalue_1d.isEmpty())
      {
        lonvalue_1d.resize(ni);
@@ -492,5 +492,5 @@
 
 
-     if (!latvalue_rectilinear_read_from_file.isEmpty())
+     if (!latvalue_rectilinear_read_from_file.isEmpty() && latvalue_2d.isEmpty() && latvalue_1d.isEmpty())
      {
        latvalue_1d.resize(nj);
@@ -532,5 +532,5 @@
    void CDomain::fillInCurvilinearLonLat()
    {
-     if (!lonvalue_curvilinear_read_from_file.isEmpty() && lonvalue_2d.isEmpty())
+     if (!lonvalue_curvilinear_read_from_file.isEmpty() && lonvalue_2d.isEmpty() && lonvalue_1d.isEmpty())
      {
        lonvalue_2d.resize(ni,nj);
@@ -542,5 +542,5 @@
      }
 
-     if (!latvalue_curvilinear_read_from_file.isEmpty() && latvalue_2d.isEmpty())
+     if (!latvalue_curvilinear_read_from_file.isEmpty() && latvalue_2d.isEmpty() && latvalue_1d.isEmpty())
      {
        latvalue_2d.resize(ni,nj);
@@ -552,5 +552,5 @@
      }
 
-     if (!bounds_lonvalue_curvilinear_read_from_file.isEmpty() && bounds_lon_2d.isEmpty())
+     if (!bounds_lonvalue_curvilinear_read_from_file.isEmpty() && bounds_lon_2d.isEmpty() && bounds_lon_1d.isEmpty())
      {
        bounds_lon_2d.resize(nvertex,ni,nj);
@@ -563,5 +563,5 @@
      }
 
-     if (!bounds_latvalue_curvilinear_read_from_file.isEmpty() && bounds_lat_2d.isEmpty())
+     if (!bounds_latvalue_curvilinear_read_from_file.isEmpty() && bounds_lat_2d.isEmpty() && bounds_lat_1d.isEmpty())
      {
        bounds_lat_2d.resize(nvertex,ni,nj);
Index: /XIOS/dev/XIOS_DEV_CMIP6/src/node/domain.cpp
===================================================================
--- /XIOS/dev/XIOS_DEV_CMIP6/src/node/domain.cpp	(revision 1564)
+++ /XIOS/dev/XIOS_DEV_CMIP6/src/node/domain.cpp	(revision 1565)
@@ -458,5 +458,5 @@
    void CDomain::fillInRectilinearLonLat()
    {
-     if (!lonvalue_rectilinear_read_from_file.isEmpty())
+     if (!lonvalue_rectilinear_read_from_file.isEmpty() && lonvalue_2d.isEmpty() && lonvalue_1d.isEmpty())
      {
        lonvalue_1d.resize(ni);
@@ -492,5 +492,5 @@
 
 
-     if (!latvalue_rectilinear_read_from_file.isEmpty())
+     if (!latvalue_rectilinear_read_from_file.isEmpty() && latvalue_2d.isEmpty() && latvalue_1d.isEmpty())
      {
        latvalue_1d.resize(nj);
@@ -532,5 +532,5 @@
    void CDomain::fillInCurvilinearLonLat()
    {
-     if (!lonvalue_curvilinear_read_from_file.isEmpty() && lonvalue_2d.isEmpty())
+     if (!lonvalue_curvilinear_read_from_file.isEmpty() && lonvalue_2d.isEmpty() && lonvalue_1d.isEmpty())
      {
        lonvalue_2d.resize(ni,nj);
@@ -542,5 +542,5 @@
      }
 
-     if (!latvalue_curvilinear_read_from_file.isEmpty() && latvalue_2d.isEmpty())
+     if (!latvalue_curvilinear_read_from_file.isEmpty() && latvalue_2d.isEmpty() && latvalue_1d.isEmpty())
      {
        latvalue_2d.resize(ni,nj);
@@ -552,5 +552,5 @@
      }
 
-     if (!bounds_lonvalue_curvilinear_read_from_file.isEmpty() && bounds_lon_2d.isEmpty())
+     if (!bounds_lonvalue_curvilinear_read_from_file.isEmpty() && bounds_lon_2d.isEmpty() && bounds_lon_1d.isEmpty())
      {
        bounds_lon_2d.resize(nvertex,ni,nj);
@@ -563,5 +563,5 @@
      }
 
-     if (!bounds_latvalue_curvilinear_read_from_file.isEmpty() && bounds_lat_2d.isEmpty())
+     if (!bounds_latvalue_curvilinear_read_from_file.isEmpty() && bounds_lat_2d.isEmpty() && bounds_lat_1d.isEmpty())
      {
        bounds_lat_2d.resize(nvertex,ni,nj);
Index: /XIOS/trunk/src/node/domain.cpp
===================================================================
--- /XIOS/trunk/src/node/domain.cpp	(revision 1564)
+++ /XIOS/trunk/src/node/domain.cpp	(revision 1565)
@@ -458,5 +458,5 @@
    void CDomain::fillInRectilinearLonLat()
    {
-     if (!lonvalue_rectilinear_read_from_file.isEmpty())
+     if (!lonvalue_rectilinear_read_from_file.isEmpty() && lonvalue_2d.isEmpty() && lonvalue_1d.isEmpty())
      {
        lonvalue_1d.resize(ni);
@@ -492,5 +492,5 @@
 
 
-     if (!latvalue_rectilinear_read_from_file.isEmpty())
+     if (!latvalue_rectilinear_read_from_file.isEmpty() && latvalue_2d.isEmpty() && latvalue_1d.isEmpty())
      {
        latvalue_1d.resize(nj);
@@ -527,10 +527,10 @@
 
     /*
-      Fill in longitude and latitude of curvilinear domain read from a file
-      If there are already longitude and latitude defined by model. We just igonore reading value.
+      Fill in 2D longitude and latitude of curvilinear domain read from a file.
+      If there are already longitude and latitude defined by model. We just ignore read value.
     */
    void CDomain::fillInCurvilinearLonLat()
    {
-     if (!lonvalue_curvilinear_read_from_file.isEmpty() && lonvalue_2d.isEmpty())
+     if (!lonvalue_curvilinear_read_from_file.isEmpty() && lonvalue_2d.isEmpty() && lonvalue_1d.isEmpty())
      {
        lonvalue_2d.resize(ni,nj);
@@ -542,5 +542,5 @@
      }
 
-     if (!latvalue_curvilinear_read_from_file.isEmpty() && latvalue_2d.isEmpty())
+     if (!latvalue_curvilinear_read_from_file.isEmpty() && latvalue_2d.isEmpty() && latvalue_1d.isEmpty())
      {
        latvalue_2d.resize(ni,nj);
@@ -552,5 +552,5 @@
      }
 
-     if (!bounds_lonvalue_curvilinear_read_from_file.isEmpty() && bounds_lon_2d.isEmpty())
+     if (!bounds_lonvalue_curvilinear_read_from_file.isEmpty() && bounds_lon_2d.isEmpty() && bounds_lon_1d.isEmpty())
      {
        bounds_lon_2d.resize(nvertex,ni,nj);
@@ -563,5 +563,5 @@
      }
 
-     if (!bounds_latvalue_curvilinear_read_from_file.isEmpty() && bounds_lat_2d.isEmpty())
+     if (!bounds_latvalue_curvilinear_read_from_file.isEmpty() && bounds_lat_2d.isEmpty() && bounds_lat_1d.isEmpty())
      {
        bounds_lat_2d.resize(nvertex,ni,nj);
@@ -2918,5 +2918,5 @@
          dataJIndex(lInd) = (-1 == dataJIndex(lInd)) ? tmpJ(ind) : dataJIndex(lInd);  
 
-         if (!domainMask(lInd))   // Include mask info into data index on the RECEIVE getServerDimensionSizes    
+         if (!domainMask(lInd))   // Include mask info into data index on the RECEIVE getServerDimensionSizes
          {
            dataIIndex(lInd) = dataJIndex(lInd) = -1;
