Index: XIOS/dev/XIOS_DEV_CMIP6/src/io/nc4_data_output.cpp
===================================================================
--- XIOS/dev/XIOS_DEV_CMIP6/src/io/nc4_data_output.cpp	(revision 1414)
+++ XIOS/dev/XIOS_DEV_CMIP6/src/io/nc4_data_output.cpp	(revision 1415)
@@ -115,6 +115,6 @@
              else latName = domain->lat_name;
              
-             dimXid     = lonName.append(appendDomid);
-             dimYid     = latName.append(appendDomid);
+             dimXid     = lonName+appendDomid;
+             dimYid     = latName+appendDomid;
              break;
          }
@@ -212,10 +212,10 @@
                    case CDomain::type_attr::curvilinear :
                      dim0.push_back(dimYid); dim0.push_back(dimXid);
-                     lonid = lonName.append(appendDomid);
-                     latid = latName.append(appendDomid);
+                     lonid = lonName+appendDomid;
+                     latid = latName+appendDomid;
                      break ;
                    case CDomain::type_attr::rectilinear :
-                     lonid = lonName.append(appendDomid);
-                     latid = latName.append(appendDomid);
+                     lonid = lonName+appendDomid;
+                     latid = latName+appendDomid;
                      dim0.push_back(dimYid);
                      dim1.push_back(dimXid);
@@ -355,6 +355,6 @@
                      case CDomain::type_attr::curvilinear :
                        dim0.push_back(dimYid); dim0.push_back(dimXid);
-                       lonid = lonName.append(appendDomid);
-                       latid = latName.append(appendDomid);
+                       lonid = lonName+appendDomid;
+                       latid = latName+appendDomid;
                        SuperClassWriter::addVariable(latid, typePrec, dim0);
                        SuperClassWriter::addVariable(lonid, typePrec, dim0);
@@ -364,6 +364,6 @@
                        dim0.push_back(dimYid);
                        dim1.push_back(dimXid);
-                       lonid = lonName.append(appendDomid);
-                       latid = latName.append(appendDomid);
+                       lonid = lonName+appendDomid;
+                       latid = latName+appendDomid;
                        SuperClassWriter::addVariable(latid, typePrec, dim0);
                        SuperClassWriter::addVariable(lonid, typePrec, dim1);
@@ -1042,6 +1042,6 @@
                  SuperClassWriter::addDimension(dimXid, domain->zoom_ni);
 
-                 lonid = lonName.append(appendDomid);
-                 latid = latName.append(appendDomid);
+                 lonid = lonName+appendDomid;
+                 latid = latName+appendDomid;
                  bounds_lonid = "bounds_"+lonName+appendDomid;
                  bounds_latid = "bounds_"+latName+appendDomid;
@@ -1096,6 +1096,6 @@
               case (ONE_FILE) :
               {
-                 lonid = lonName.append(appendDomid);
-                 latid = latName.append(appendDomid);
+                 lonid = lonName+appendDomid;
+                 latid = latName+appendDomid;
                  bounds_lonid = "bounds_"+lonName+appendDomid;
                  bounds_latid = "bounds_"+latName+appendDomid;
@@ -1730,8 +1730,16 @@
             StdString lonName,latName ;
 
-            if (domain->lon_name.isEmpty()) lonName = "lon";
+            if (domain->lon_name.isEmpty())
+            { 
+              if (domain->type==CDomain::type_attr::curvilinear) lonName = "nav_lon";
+              else lonName = "lon";
+            }
             else lonName = domain->lon_name;
 
-            if (domain->lat_name.isEmpty()) latName = "lat";
+            if (domain->lat_name.isEmpty())
+            {
+              if (domain->type==CDomain::type_attr::curvilinear) latName = "nav_lat";
+              else latName = "lat";
+            }
             else latName = domain->lat_name;
         
@@ -1752,13 +1760,13 @@
                   dimIdList.push_back(dimYid);
                 }
-                dimCoordList.push_back(lonName.append(appendDomId));
-                dimCoordList.push_back(latName.append(appendDomId));
+                dimCoordList.push_back(lonName+appendDomId);
+                dimCoordList.push_back(latName+appendDomId);
               break ;
               case CDomain::type_attr::rectilinear:
                 if (!compressedOutput || !domain->isCompressible())
                 {
-                  dimXid     = lonName.append(appendDomId);
+                  dimXid     = lonName+appendDomId;
                   dimIdList.push_back(dimXid);
-                  dimYid     = latName.append(appendDomId);
+                  dimYid     = latName+appendDomId;
                   dimIdList.push_back(dimYid);
                 }
@@ -1770,6 +1778,6 @@
                   dimXid     = StdString("cell").append(appendDomId);
                   dimIdList.push_back(dimXid);
-                  dimCoordList.push_back(lonName.append(appendDomId));
-                  dimCoordList.push_back(latName.append(appendDomId));
+                  dimCoordList.push_back(lonName+appendDomId);
+                  dimCoordList.push_back(latName+appendDomId);
                 }
                 else
