Index: XIOS/branchs/xios-1.0/src/calendar_util.cpp
===================================================================
--- XIOS/branchs/xios-1.0/src/calendar_util.cpp	(revision 613)
+++ XIOS/branchs/xios-1.0/src/calendar_util.cpp	(revision 614)
@@ -126,4 +126,16 @@
 
       //-----------------------------------------------------------------
+
+    bool operator==(const CDuration& ddr, const CDuration& dr)
+    {
+      return ((ddr.year == dr.year) && (ddr.month  == dr.month)  && (dr.day    == ddr.day) &&
+              (ddr.hour == dr.hour) && (ddr.minute == dr.minute) && (dr.second == ddr.second) &&
+              (ddr.timestep == dr.timestep));
+    }
+
+    bool operator!=(const CDuration& ddr, const CDuration& dr)
+    {
+      return !(ddr == dr);
+    }
 
       /// Les opÃ©rateurs de comparaison. (Non testÃ©s pour le moment)
Index: XIOS/branchs/xios-1.0/src/calendar_util.hpp
===================================================================
--- XIOS/branchs/xios-1.0/src/calendar_util.hpp	(revision 613)
+++ XIOS/branchs/xios-1.0/src/calendar_util.hpp	(revision 614)
@@ -23,4 +23,7 @@
 
       /// Les opÃ©rateurs de comparaison. (Non testÃ©s pour le moment)
+      bool operator==(const CDuration& ddr, const CDuration& dr);
+      bool operator!=(const CDuration& ddr, const CDuration& dr);
+
       bool operator==(const CDate& dt0, const CDate& dt1);
       bool operator< (const CDate& dt0, const CDate& dt1);
Index: XIOS/branchs/xios-1.0/src/output/nc4_data_output.cpp
===================================================================
--- XIOS/branchs/xios-1.0/src/output/nc4_data_output.cpp	(revision 613)
+++ XIOS/branchs/xios-1.0/src/output/nc4_data_output.cpp	(revision 614)
@@ -214,4 +214,5 @@
                  {
                    SuperClassWriter::addVariable(areaId, NC_FLOAT, dim0);
+                   SuperClassWriter::addAttribute("standard_name", StdString("cell_area"), &areaId);
                    SuperClassWriter::addAttribute("units", StdString("m2"), &areaId);
                  }
@@ -270,4 +271,5 @@
                    dim0.push_back(dimYid); dim0.push_back(dimXid);
                    SuperClassWriter::addVariable(areaId, NC_FLOAT, dim0);
+                   SuperClassWriter::addAttribute("standard_name", StdString("cell_area"), &areaId);
                    SuperClassWriter::addAttribute("units", StdString("m2"), &areaId);
                    dim0.clear();
@@ -433,4 +435,5 @@
                  {
                    SuperClassWriter::addVariable(areaId, NC_FLOAT, dim0);
+                   SuperClassWriter::addAttribute("standard_name", StdString("cell_area"), &areaId);
                    SuperClassWriter::addAttribute("units", StdString("m2"), &areaId);
                  }
@@ -484,4 +487,5 @@
                    dim0.push_back(dimXid);
                    SuperClassWriter::addVariable(areaId, NC_FLOAT, dim0);
+                   SuperClassWriter::addAttribute("standard_name", StdString("cell_area"), &areaId);
                    SuperClassWriter::addAttribute("units", StdString("m2"), &areaId);
                  }
@@ -639,10 +643,9 @@
        try
        {
-        SuperClassWriter::addDimension("time_counter");
-        SuperClassWriter::addDimension("time_bounds", 2);
+         SuperClassWriter::addDimension("time_counter");
        }
        catch (CNetCdfException& e)
        {
-         StdString msg("On writing time dimension : time_couter, time_bounds \n");
+         StdString msg("On writing time dimension : time_couter\n");
          msg.append("In the context : ");
          CContext* context = CContext::getCurrent() ;
@@ -797,12 +800,12 @@
            if (wtime)
            {
-              CDuration duration = CDuration::FromString(field->freq_op);
-              duration.solveTimeStep(*context->calendar);
-              StdString freqOpStr = duration.toStringUDUnits();
+              CDuration freqOp = CDuration::FromString(field->freq_op);
+              freqOp.solveTimeStep(*context->calendar);
+              StdString freqOpStr = freqOp.toStringUDUnits();
               SuperClassWriter::addAttribute("interval_operation", freqOpStr, &fieldid);
 
-              duration = CDuration::FromString(field->getRelFile()->output_freq);
-              duration.solveTimeStep(*context->calendar);
-              SuperClassWriter::addAttribute("interval_write", duration.toStringUDUnits(), &fieldid);
+              CDuration freqOut = CDuration::FromString(field->getRelFile()->output_freq);
+              freqOut.solveTimeStep(*context->calendar);
+              SuperClassWriter::addAttribute("interval_write", freqOut.toStringUDUnits(), &fieldid);
 
               StdString cellMethods = coodinates.front() + ": ";
@@ -811,5 +814,6 @@
               else if (field->operation.getValue() == "accumulate") cellMethods += "sum";
               else cellMethods += field->operation;
-              cellMethods += " (interval: " + freqOpStr + ")";
+              if (freqOp.resolve(*context->calendar) != freqOut.resolve(*context->calendar))
+                cellMethods += " (interval: " + freqOpStr + ")";
               SuperClassWriter::addAttribute("cell_methods", cellMethods, &fieldid);
            }
@@ -881,10 +885,9 @@
          {
            this->writeFileAttributes(filename, description,
-                                     StdString("CF-1.1"),
+                                     StdString("CF-1.5"),
                                      StdString("An IPSL model"),
                                      this->getTimeStamp());
 
-           if (file->nbAxis >= 1)
-             SuperClassWriter::addDimension("axis_nbounds", 2);
+           SuperClassWriter::addDimension("axis_nbounds", 2);
          }
          catch (CNetCdfException& e)
@@ -1208,5 +1211,5 @@
          StdString axisBoundId("time_centered_bounds");
          StdString timeid("time_counter");
-         StdString timeBoundId("time_bounds");
+         StdString timeBoundId("axis_nbounds");
 
          if (field->foperation->timeType() == func::CFunctor::instant)
