Index: /XIOS/dev/XIOS_DEV_CMIP6/src/filter/temporal_filter.cpp
===================================================================
--- /XIOS/dev/XIOS_DEV_CMIP6/src/filter/temporal_filter.cpp	(revision 1277)
+++ /XIOS/dev/XIOS_DEV_CMIP6/src/filter/temporal_filter.cpp	(revision 1278)
@@ -14,7 +14,6 @@
     , isOnceOperation(functor->timeType() == func::CFunctor::once)
     , isInstantOperation(functor->timeType() == func::CFunctor::instant)
-    // If we can optimize the sampling when dealing with an instant functor we do it
-    , samplingOffset((isInstantOperation && samplingFreq == NoneDu && samplingOffset == NoneDu) ? opFreq - initDate.getRelCalendar().getTimeStep() : samplingOffset)
-    , samplingFreq((samplingFreq == NoneDu ? (isInstantOperation ? opFreq : initDate.getRelCalendar().getTimeStep()) : samplingFreq))
+    , samplingFreq(samplingFreq)
+    , samplingOffset(samplingOffset)
     , opFreq(opFreq)
     , nextSamplingDate(initDate + this->samplingOffset + initDate.getRelCalendar().getTimeStep())
Index: /XIOS/dev/XIOS_DEV_CMIP6/src/node/field.cpp
===================================================================
--- /XIOS/dev/XIOS_DEV_CMIP6/src/node/field.cpp	(revision 1277)
+++ /XIOS/dev/XIOS_DEV_CMIP6/src/node/field.cpp	(revision 1278)
@@ -1144,10 +1144,4 @@
                << "An operation must be defined for field \"" << getId() << "\".");
 
-       if (freq_op.isEmpty())
-//         freq_op.setValue(TimeStep);
-         freq_op.setValue(NoneDu);
-       if (freq_offset.isEmpty())
-         freq_offset.setValue(NoneDu);
-
        const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true);
        
@@ -1156,4 +1150,5 @@
                                                                              freq_op, freq_offset, outFreq,
                                                                              detectMissingValues, detectMissingValues ? default_value : 0.0));
+
        instantDataFilter->connectOutput(temporalFilter, 0);
 
@@ -1187,7 +1182,4 @@
                << "An operation must be defined for field \"" << getId() << "\".");
 
-       if (freq_op.isEmpty()) freq_op.setValue(TimeStep);
-       if (freq_offset.isEmpty()) freq_offset.setValue(NoneDu);
-
        const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true);
 
@@ -1196,4 +1188,5 @@
                                                                              freq_op, freq_offset, outFreq,
                                                                              detectMissingValues, detectMissingValues ? default_value : 0.0));
+
        selfReferenceFilter->connectOutput(temporalFilter, 0);
        return temporalFilter ;
@@ -1566,4 +1559,38 @@
 
    /*!
+    * Check on freq_off and freq_op attributes.
+    */
+   void CField::checkAttributes(void)
+   {
+     if (freq_op.isEmpty())
+     {
+       if (!freq_offset.isEmpty())
+         ERROR("CField::checkAttributes(void)",
+               << "[ id = " << this->getId() << " , context = '" << CObjectFactory::GetCurrentContextId() << " ] "
+               << "Attribute freq_offset cannot be defined if attribute freq_op is not defined. "
+               << "Please define freq_op.")
+       else
+       {
+         CContext* context = CContext::getCurrent();
+         if (operation.getValue()=="instant")
+         {
+           freq_op.setValue(file->output_freq.getValue());
+           freq_offset.setValue(file->output_freq.getValue() - TimeStep);
+         }
+         else
+         {
+           freq_op.setValue(TimeStep);
+           freq_op.setValue(NoneDu);
+         }
+       }
+     }
+     else
+     {
+       if (freq_offset.isEmpty())
+         freq_op.setValue(NoneDu);
+     }
+   }
+
+   /*!
     * Returns string arithmetic expression associated to the field.
     * \return if content is defined return content string, otherwise, if "expr" attribute is defined, return expr string.
Index: /XIOS/dev/XIOS_DEV_CMIP6/src/node/field.hpp
===================================================================
--- /XIOS/dev/XIOS_DEV_CMIP6/src/node/field.hpp	(revision 1277)
+++ /XIOS/dev/XIOS_DEV_CMIP6/src/node/field.hpp	(revision 1278)
@@ -130,5 +130,8 @@
          void checkGridOfEnabledFields();
          void sendGridOfEnabledFields();
-         void sendGridComponentOfEnabledFields();   
+         void sendGridComponentOfEnabledFields();
+
+         /// VÃ©rifications ///
+         void checkAttributes(void);
 
          void buildFilterGraph(CGarbageCollector& gc, bool enableOutput);
Index: /XIOS/dev/XIOS_DEV_CMIP6/src/node/file.cpp
===================================================================
--- /XIOS/dev/XIOS_DEV_CMIP6/src/node/file.cpp	(revision 1277)
+++ /XIOS/dev/XIOS_DEV_CMIP6/src/node/file.cpp	(revision 1278)
@@ -1129,4 +1129,5 @@
        CField* field = this->enabledFields[i];
        this->sendAddField(field->getId(), client);
+       field->checkAttributes();
        field->sendAllAttributesToServer(client);
        field->sendAddAllVariables(client);
