Index: XIOS/dev/dev_trunk_omp/src/node/field.cpp
===================================================================
--- XIOS/dev/dev_trunk_omp/src/node/field.cpp	(revision 1668)
+++ XIOS/dev/dev_trunk_omp/src/node/field.cpp	(revision 1669)
@@ -70,4 +70,15 @@
 
   //----------------------------------------------------------------
+
+   const StdString& CField::getOId(void)
+   {
+     if (this->getId().compare(2,5,"field") == 0 && this->getId().compare(8,5,"undef") == 0)
+     {
+       if(!name.isEmpty()) return name;
+       else return CField::get(field_ref)->getOId();
+     }
+     else if(!name.isEmpty()) return name;
+     else return this->getId();
+   }
 
    void CField::setVirtualVariableGroup(CVariableGroup* newVVariableGroup)
@@ -1190,6 +1201,6 @@
                  int filterOut = filter->getFilterId();
                  int filterIn = (std::static_pointer_cast<COutputPin>(filters.second))->getFilterId();
-                 (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getId()].push_back(filterOut);
-                 (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getId()].push_back(filterIn);
+                 (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getOId()].push_back(filterOut);
+                 (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getOId()].push_back(filterIn);
                  (*CWorkflowGraph::mapFilters_ptr)[filterOut] = filter->GetName();
                  (*CWorkflowGraph::mapFilters_ptr)[filterIn] = filters.second->GetName();
@@ -1247,8 +1258,9 @@
              int filterOut = getTemporalDataFilter(gc, file->output_freq)->getFilterId();
              int filterIn = fileWriterFilter->getFilterId();
-             (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getId()].push_back(filterOut);
-             (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getId()].push_back(filterIn);
+             (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getOId()].push_back(filterOut);
+             (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getOId()].push_back(filterIn);
              (*CWorkflowGraph::mapFilters_ptr)[filterOut] = "Temporal filter";
              (*CWorkflowGraph::mapFilters_ptr)[filterIn] = fileWriterFilter->GetName();
+             std::cout<<"CField::buildFilterGraph this->getId() = "<<this->getId() <<" ; this->getOId() = "<<this->getOId()<< std::endl;
            }
          }
@@ -1297,6 +1309,6 @@
        int filterOut = fieldRef->instantDataFilter->getFilterId();
        int filterIn = (std::static_pointer_cast<COutputPin>(filters.first))->getFilterId();
-       (*CWorkflowGraph::mapFieldToFilters_ptr)[fieldRef->getId()].push_back(filterOut);
-       (*CWorkflowGraph::mapFieldToFilters_ptr)[fieldRef->getId()].push_back(filterIn);
+       (*CWorkflowGraph::mapFieldToFilters_ptr)[fieldRef->getOId()].push_back(filterOut);
+       (*CWorkflowGraph::mapFieldToFilters_ptr)[fieldRef->getOId()].push_back(filterIn);
        (*CWorkflowGraph::mapFilters_ptr)[filterOut] = fieldRef->getInstantDataFilter()->GetName();
        (*CWorkflowGraph::mapFilters_ptr)[filterIn] = filters.first->GetName();
@@ -1397,6 +1409,6 @@
          int filterOut = instantDataFilter->getFilterId();
          int filterIn = (std::static_pointer_cast<COutputPin>(temporalFilter))->getFilterId();
-         (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getId()].push_back(filterOut);
-         (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getId()].push_back(filterIn);
+         (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getOId()].push_back(filterOut);
+         (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getOId()].push_back(filterIn);
          (*CWorkflowGraph::mapFilters_ptr)[filterOut] = getInstantDataFilter()->GetName();
          (*CWorkflowGraph::mapFilters_ptr)[filterIn] = temporalFilter->GetName();
@@ -1451,6 +1463,6 @@
          int filterOut = selfReferenceFilter->getFilterId();
          int filterIn = (std::static_pointer_cast<COutputPin>(temporalFilter))->getFilterId();
-         (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getId()].push_back(filterOut);
-         (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getId()].push_back(filterIn);
+         (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getOId()].push_back(filterOut);
+         (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getOId()].push_back(filterIn);
          (*CWorkflowGraph::mapFilters_ptr)[filterOut] = selfReferenceFilter->GetName();
          (*CWorkflowGraph::mapFilters_ptr)[filterIn] = temporalFilter->GetName();
