Changeset 1876


Ignore:
Timestamp:
05/12/20 16:36:29 (16 months ago)
Author:
yushan
Message:

trunk : Bug fixed in workflow graph. wrong connection happens when a chain of arithmetic operations is applied on a field.

Location:
XIOS/trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/inputs/COMPLETE/context_atmosphere.xml

    r787 r1876  
    88  </field_definition> 
    99 
    10   <file_definition type="multiple_file" par_access="collective" output_freq="6h" sync_freq="6h" output_level="10" enabled=".TRUE."> 
     10  <file_definition type="one_file" par_access="collective" output_freq="6h" sync_freq="6h" output_level="10" enabled=".TRUE."> 
    1111    <file id="output_atmosphere" name="output_atmosphere"> 
    1212      <field field_ref="field_A_atm" /> 
  • XIOS/trunk/inputs/COMPLETE/context_surface.xml

    r1173 r1876  
    1212  </field_definition> 
    1313 
    14   <file_definition type="multiple_file" par_access="collective" output_level="10" enabled=".TRUE."> 
     14  <file_definition type="one_file" par_access="collective" output_level="10" enabled=".TRUE."> 
    1515    <file id="output_surface" name="output_surface_6h" output_freq="6h"> 
    16       <field field_ref="field_A_srf"> 
     16      <field field_ref="field_A_srf" build_workflow_graph="false" > 
    1717        <variable id="my_attribute1" type="string">surf_att</variable> 
    1818        <variable id="my_attribute2" type="int"> 10 </variable> 
     
    2020        <variable id="my_attribute5" type="double">100.201</variable> 
    2121      </field> 
    22       <field field_ref="field_A_srf_K" /> 
     22      <field field_ref="field_A_srf_K" build_workflow_graph="false" /> 
    2323      <field field_ref="field_A_srf_K_2" name="field_A_srf_K_2" /> <!-- Should be identical to field_A_srf_K --> 
    24       <field field_ref="field_A_srf_K" name="field_A_srf_K_3">field_A_srf_K</field> <!-- Should be identical to field_A_srf_K --> 
     24      <field field_ref="field_A_srf_K" name="field_A_srf_K_3" build_workflow_graph="true"> field_A_srf_K</field> <!-- Should be identical to field_A_srf_K --> 
    2525      <field field_ref="field_A_srf_K_2" name="field_A_srf_K_max_mean" long_name="Maximum of hourly average over 6h" operation="maximum" freq_op="1h"> @field_A_srf_K </field> 
    2626      <field field_ref="field_A_srf" name="field_A_srf_min" operation="minimum" /> 
     
    3232    </file> 
    3333 
    34     <file type="one_file" id="output_surface_1d" name="output_surface_1d" output_freq="1d" enabled="TRUE"> 
     34    <file type="one_file" id="output_surface_1d" name="output_surface_1d" output_freq="1d" enabled=".TRUE."> 
    3535      <field field_ref="field_A_srf" indexed_output="TRUE"> 
    3636        <variable id="my_attribute1" type="string">surf_att</variable> 
  • XIOS/trunk/inputs/iodef.xml

    r1704 r1876  
    1414     <field id="field_A_zoom"  operation="average" freq_op="3600s" field_ref="field_A" grid_ref="grid_A_zoom"/> 
    1515     <field id="field_Scalar"  operation="average" freq_op="3600s" grid_ref="grid_Scalar"/> 
     16     <field id="test_field_B"  field_ref="field_A" > field_A+10 </field> 
    1617   </field_definition> 
    1718 
     
    1920   <file_definition type="one_file" par_access="collective" output_freq="1h" output_level="10" > 
    2021       
     22     <file id="test_output" output_freq="4h" enabled=".TRUE." > 
     23       <field field_ref="field_A"                        name ="field_A" build_workflow_graph=".FALSE." enabled=".FALSE."/> 
     24       <field field_ref="test_field_B"                   name ="field_B" build_workflow_graph=".FALSE." enabled=".TRUE."/> 
     25       <field id="test_field_C" field_ref="test_field_B" name ="field_C" build_workflow_graph=".TRUE."  enabled=".TRUE."  > 10*test_field_B </field> 
     26       <field id="test_field_D" field_ref="test_field_B" name ="field_D" build_workflow_graph=".TRUE."  enabled=".FALSE." > 100*field_A </field> 
     27       <field id="test_field_E" field_ref="test_field_B" name ="field_E" build_workflow_graph=".TRUE."  enabled=".FALSE." > field_A+10*test_field_B-field_C </field> 
     28     </file> 
     29 
     30 
    2131     <file id="output2" name="output2" output_freq="4h" enabled=".FALSE."> 
    2232        <field id="field_G" field_ref="field_A" name="field_G_zoom" grid_ref="grid_A_zoom" build_workflow_graph=".TRUE." build_workflow_graph_start="1h" build_workflow_graph_end="8h" />         
     
    2535 
    2636 
    27      <file id="output1" name="output1" output_freq="24h" enabled=".TRUE."> 
     37     <file id="output1" name="output1" output_freq="24h" enabled=".FALSE."> 
    2838        <!-- <field field_ref="field_Domain" name="field_A" /> --> 
    2939        <field id="field_F" field_ref="field_A" name="field_24h" grid_ref="grid_A" build_workflow_graph=".TRUE." build_workflow_graph_start="4h" build_workflow_graph_end="24h"  />         
     
    3141     </file>   
    3242 
    33      <file id="output" name="output" enabled=".TRUE."> 
     43     <file id="output" name="output" enabled=".FALSE."> 
    3444        <!-- <field field_ref="field_Domain" name="field_A" /> --> 
    35         <!-- <field field_ref="field_A" name="field_A_name"  build_workflow_graph=".FALSE." />  --> 
     45        <field field_ref="field_A" name="field_A_name"  build_workflow_graph=".TRUE." /> 
     46        <field field_ref="field_A" name="field_A_unary"  build_workflow_graph=".TRUE." > field_A+50 </field> 
    3647        <!-- <field field_ref="field_B" name="field_B_name"  build_workflow_graph=".FALSE."/>  --> 
    3748        <!-- <field field_ref="field_C" name="field_C_name"  enabled=".TRUE." />  --> 
  • XIOS/trunk/src/filter/binary_arithmetic_filter.cpp

    r1768 r1876  
    1111    , op(operatorExpr.getOpScalarField(op)) 
    1212    , value(value) 
    13   {  
    14     expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
    15   }; 
     13  { }; 
    1614 
    1715  std::tuple<int, int, int> CScalarFieldArithmeticFilter::buildGraph(std::vector<CDataPacketPtr> data) 
     
    2523      CWorkflowGraph::allocNodeEdge(); 
    2624 
    27       size_t filterhash = std::hash<StdString>{}(expression+to_string(data[0]->timestamp)+this->field->getId()); 
     25      size_t filterhash = std::hash<StdString>{}(this->field->content+to_string(data[0]->timestamp)+this->field->getId()); 
    2826 
    2927      // first round 
     
    3432        int edgeID = InvalidableObject::edgeIdGenerator++; 
    3533 
    36         CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 0, data[0]); 
     34        CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+this->field->content+")", 3, 1, 0, data[0]); 
    3735        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_tag = this->tag; 
    3836        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; 
     
    9997    , op(operatorExpr.getOpFieldScalar(op)) 
    10098    , value(value) 
    101   {  
    102     expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
    103   }; 
     99  {  }; 
    104100 
    105101  std::tuple<int, int, int> CFieldScalarArithmeticFilter::buildGraph(std::vector<CDataPacketPtr> data) 
    106102  { 
    107103    bool building_graph = this->tag ? data[0]->timestamp >= this->start_graph && data[0]->timestamp <= this->end_graph : false; 
    108     // bool building_graph = true; 
    109104    int unique_filter_id; 
    110105    bool firstround; 
     
    114109      CWorkflowGraph::allocNodeEdge(); 
    115110 
    116       size_t filterhash = std::hash<StdString>{}(expression+to_string(data[0]->timestamp)+this->field->getId()); 
     111      size_t filterhash = std::hash<StdString>{}(this->field->content+to_string(data[0]->timestamp)+this->field->getId()); 
    117112 
    118113      // first round 
     
    123118        int edgeID = InvalidableObject::edgeIdGenerator++; 
    124119 
    125         CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 0, data[0]); 
     120        CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+this->field->content+")", 3, 1, 0, data[0]); 
    126121        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_tag = this->tag; 
    127122        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; 
     
    171166    std::tuple<int, int, int> graph = buildGraph(data); 
    172167 
    173     if(std::get<0>(graph)) packet->src_filterID = std::get<2>(graph); 
    174     if(std::get<0>(graph) && std::get<1>(graph)) packet->distance = data[0]->distance+1; 
    175     if(std::get<0>(graph) && !std::get<1>(graph)) packet->distance = data[0]->distance; 
    176  
     168    if(std::get<0>(graph)) 
     169    {   
     170      packet->src_filterID = std::get<2>(graph); 
     171      if(std::get<1>(graph)) packet->distance = data[0]->distance+1; 
     172      else  packet->distance = data[0]->distance+1; 
     173    } 
     174     
    177175    packet->field = this->field; 
    178176 
     
    186184    : CFilter(gc, 2, this) 
    187185    , op(operatorExpr.getOpFieldField(op)) 
    188   {  
    189     expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
    190   }; 
     186  { }; 
    191187 
    192188  std::tuple<int, int, int> CFieldFieldArithmeticFilter::buildGraph(std::vector<CDataPacketPtr> data) 
     
    202198      CWorkflowGraph::allocNodeEdge(); 
    203199 
    204       // std::cout<<"CFieldFieldArithmeticFilter::apply filter tag = "<<this->tag<<std::endl; 
    205  
    206       size_t filterhash = std::hash<StdString>{}(expression+to_string(data[0]->timestamp)+this->field->getId()); 
     200 
     201      size_t filterhash = std::hash<StdString>{}(this->field->content+to_string(data[0]->timestamp)+this->field->getId()); 
    207202 
    208203      // first round 
     
    213208        int edgeID = InvalidableObject::edgeIdGenerator++; 
    214209     
    215         CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 0, data[0]); 
     210        CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+this->field->content+")", 3, 1, 0, data[0]); 
    216211        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].attributes = this->field->record4graphXiosAttributes(); 
    217212        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; 
     
    251246          (*CWorkflowGraph::mapFilters_ptr_with_info)[data[0]->src_filterID].filter_filled = 0 ;  
    252247          (*CWorkflowGraph::mapFilters_ptr_with_info)[unique_filter_id].expected_entry_nb ++; 
     248          data[0]->distance=max(data[0]->distance, (*CWorkflowGraph::mapFilters_ptr_with_info)[unique_filter_id].distance); 
    253249        } 
    254250        if(data[1]->src_filterID != unique_filter_id) 
     
    258254          (*CWorkflowGraph::mapFilters_ptr_with_info)[data[1]->src_filterID].filter_filled = 0 ; 
    259255          (*CWorkflowGraph::mapFilters_ptr_with_info)[unique_filter_id].expected_entry_nb ++; 
     256          data[1]->distance=max(data[1]->distance, (*CWorkflowGraph::mapFilters_ptr_with_info)[unique_filter_id].distance);    
    260257        } 
    261258         
     
    275272 
    276273    if(std::get<0>(graph)) packet->src_filterID = std::get<2>(graph); 
    277     if(std::get<0>(graph) && std::get<1>(graph)) packet->distance = data[0]->distance+1; 
    278     if(std::get<0>(graph) && !std::get<1>(graph)) packet->distance = data[0]->distance; 
     274    if(std::get<0>(graph) && std::get<1>(graph)) packet->distance = max(data[0]->distance+1, data[1]->distance+1); 
     275    if(std::get<0>(graph) && !std::get<1>(graph)) packet->distance = max(data[0]->distance, data[1]->distance); 
    279276     
    280277    packet->field = this->field; 
  • XIOS/trunk/src/filter/data_packet.hpp

    r1704 r1876  
    2727    Time timestamp;         //!< Timestamp of the data 
    2828    StatusCode status;      //!< Status of the packet 
    29     int src_filterID; 
     29    int src_filterID=0; 
    3030    std::vector<int> filterIDoutputs; 
    31     CField *field; 
    32     int distance; 
     31    CField *field=nullptr; 
     32    int distance=-1; 
    3333     
    3434    /*! 
  • XIOS/trunk/src/filter/source_filter.cpp

    r1704 r1876  
    2727  void CSourceFilter::buildGraph(CDataPacketPtr packet) 
    2828  { 
    29     bool building_graph = this->tag ? packet->timestamp >= this->field->field_graph_start && packet->timestamp <= this->field->field_graph_end : false; 
     29    bool filter_interval=false; 
     30    if (this->field) 
     31    { 
     32      if(this->field->field_graph_start == -1 && this->field->field_graph_end == -1) filter_interval = true; 
     33      else filter_interval = packet->timestamp >= this->field->field_graph_start && packet->timestamp <= this->field->field_graph_end; 
     34    } 
     35    bool building_graph = this->tag ? filter_interval : false; 
    3036    if(building_graph) 
    3137    { 
  • XIOS/trunk/src/filter/temporal_filter.cpp

    r1704 r1876  
    8585    bool BG = buildGraph(data); 
    8686 
    87     CDataPacketPtr packet; 
     87    CDataPacketPtr packet=0; 
    8888 
    8989    if (data[0]->status != CDataPacket::END_OF_STREAM) 
  • XIOS/trunk/src/filter/ternary_arithmetic_filter.cpp

    r1768 r1876  
    1212    , value2(value2) 
    1313  {  
    14     expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
    1514    /* Nothing to do */  
    1615  }; 
     
    2625      CWorkflowGraph::allocNodeEdge(); 
    2726 
    28       size_t filterhash = std::hash<StdString>{}(expression+to_string(data[0]->timestamp)+this->field->getId()); 
     27      size_t filterhash = std::hash<StdString>{}(this->field->content+to_string(data[0]->timestamp)+this->field->getId()); 
    2928 
    3029      // first round 
     
    3534        int edgeID = InvalidableObject::edgeIdGenerator++; 
    3635 
    37         CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 0, data[0]); 
     36        CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+this->field->content+")", 3, 1, 0, data[0]); 
    3837        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_tag = this->tag; 
    3938        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; 
     
    101100    , value2(value2) 
    102101  {  
    103     expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
    104102    /* Nothing to do */  
    105103  }; 
     
    115113      CWorkflowGraph::allocNodeEdge(); 
    116114 
    117       size_t filterhash = std::hash<StdString>{}(expression+to_string(data[0]->timestamp)+this->field->getId()); 
     115      size_t filterhash = std::hash<StdString>{}(this->field->content+to_string(data[0]->timestamp)+this->field->getId()); 
    118116 
    119117      // first round 
     
    124122        int edgeID = InvalidableObject::edgeIdGenerator++; 
    125123 
    126         CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 0, data[0]); 
     124        CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+this->field->content+")", 3, 1, 0, data[0]); 
    127125        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_tag = this->tag; 
    128126        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; 
     
    189187    , value(value) 
    190188  {  
    191     expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
    192189    /* Nothing to do */  
    193190  }; 
     
    204201      CWorkflowGraph::allocNodeEdge(); 
    205202 
    206       size_t filterhash = std::hash<StdString>{}(expression+to_string(data[0]->timestamp)+this->field->getId()); 
     203      size_t filterhash = std::hash<StdString>{}(this->field->content+to_string(data[0]->timestamp)+this->field->getId()); 
    207204 
    208205      // first round 
     
    213210        int edgeID = InvalidableObject::edgeIdGenerator++; 
    214211     
    215         CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 0, data[0]); 
     212        CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+this->field->content+")", 3, 1, 0, data[0]); 
    216213        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].attributes = this->field->record4graphXiosAttributes(); 
    217214        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; 
     
    301298    , value2(value2) 
    302299  {  
    303     expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
    304300    /* Nothing to do */  
    305301  }; 
     
    315311      CWorkflowGraph::allocNodeEdge(); 
    316312 
    317       size_t filterhash = std::hash<StdString>{}(expression+to_string(data[0]->timestamp)+this->field->getId()); 
     313      size_t filterhash = std::hash<StdString>{}(this->field->content+to_string(data[0]->timestamp)+this->field->getId()); 
    318314 
    319315      // first round 
     
    324320        int edgeID = InvalidableObject::edgeIdGenerator++; 
    325321 
    326         CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 0, data[0]); 
     322        CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+this->field->content+")", 3, 1, 0, data[0]); 
    327323        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_tag = this->tag; 
    328324        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; 
     
    390386    , value(value) 
    391387  {  
    392     expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
    393388    /* Nothing to do */  
    394389  }; 
     
    405400      CWorkflowGraph::allocNodeEdge(); 
    406401 
    407       size_t filterhash = std::hash<StdString>{}(expression+to_string(data[0]->timestamp)+this->field->getId()); 
     402      size_t filterhash = std::hash<StdString>{}(this->field->content+to_string(data[0]->timestamp)+this->field->getId()); 
    408403 
    409404      // first round 
     
    414409        int edgeID = InvalidableObject::edgeIdGenerator++; 
    415410     
    416         CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 0, data[0]); 
     411        CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+this->field->content+")", 3, 1, 0, data[0]); 
    417412        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].attributes = this->field->record4graphXiosAttributes(); 
    418413        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; 
     
    499494    , value(value) 
    500495  {  
    501     expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
    502496    /* Nothing to do */  
    503497  }; 
     
    514508      CWorkflowGraph::allocNodeEdge(); 
    515509 
    516       size_t filterhash = std::hash<StdString>{}(expression+to_string(data[0]->timestamp)+this->field->getId()); 
     510      size_t filterhash = std::hash<StdString>{}(this->field->content+to_string(data[0]->timestamp)+this->field->getId()); 
    517511 
    518512      // first round 
     
    523517        int edgeID = InvalidableObject::edgeIdGenerator++; 
    524518     
    525         CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 0, data[0]); 
     519        CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+this->field->content+")", 3, 1, 0, data[0]); 
    526520        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].attributes = this->field->record4graphXiosAttributes(); 
    527521        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; 
     
    608602    , op(operatorExpr.getOpFieldFieldField(op)) 
    609603  {  
    610     expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
    611604    /* Nothing to do */  
    612605  }; 
     
    623616      CWorkflowGraph::allocNodeEdge(); 
    624617 
    625       size_t filterhash = std::hash<StdString>{}(expression+to_string(data[0]->timestamp)+this->field->getId()); 
     618      size_t filterhash = std::hash<StdString>{}(this->field->content+to_string(data[0]->timestamp)+this->field->getId()); 
    626619 
    627620      // first round 
     
    632625        int edgeID = InvalidableObject::edgeIdGenerator++; 
    633626     
    634         CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 0, data[0]); 
     627        CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+this->field->content+")", 3, 1, 0, data[0]); 
    635628        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].attributes = this->field->record4graphXiosAttributes(); 
    636629        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; 
  • XIOS/trunk/src/filter/unary_arithmetic_filter.cpp

    r1704 r1876  
    99    : CFilter(gc, 1, this) 
    1010    , op(operatorExpr.getOpField(op)) 
    11   {  
    12     expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
    13   }; 
     11  { }; 
    1412 
    1513  std::tuple<int, int, int> CUnaryArithmeticFilter::buildGraph(std::vector<CDataPacketPtr> data) 
     
    2220    { 
    2321      CWorkflowGraph::allocNodeEdge(); 
    24       size_t filterhash = std::hash<StdString>{}(expression+to_string(data[0]->timestamp)+this->field->getId()); 
     22      size_t filterhash = std::hash<StdString>{}(this->field->content+to_string(data[0]->timestamp)+this->field->getId()); 
    2523 
    2624      // first round 
     
    3028        this->filterID = InvalidableObject::filterIdGenerator++; 
    3129        int edgeID = InvalidableObject::edgeIdGenerator++; 
    32  
    33         CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 0, data[0]); 
     30        CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+this->field->content+")", 3, 1, 0, data[0]); 
    3431        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_tag = this->tag; 
    3532        (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; 
  • XIOS/trunk/src/node/field.cpp

    r1768 r1876  
    2626#include "workflow_graph.hpp" 
    2727 
     28#include "yacc_var.hpp" 
    2829namespace xios{ 
    2930 
     
    11421143     if(this->field_graph_end==-2) this->field_graph_end = filter_end;         // init 
    11431144 
    1144      // if(CXios::isClient) std::cout<<"****************** buildFilterGraph : field_id = "<<this->getId()<<" BEFORE: this->field_graph_start = "<<this->field_graph_start<<" this->field_graph_end = "<<this->field_graph_end<<std::endl; 
    11451145 
    11461146     if(start_graph == -1) 
    11471147     { 
    11481148       //nothing 
    1149        // if(CXios::isClient) std::cout<<"buildFilterGraph field_id = "<<this->getId()<<" case1: this->field_graph_start = "<<this->field_graph_start<<std::endl; 
    11501149     } 
    11511150     else //if(start_graph != -1) 
     
    11531152       if(this->field_graph_start == -1) this->field_graph_start = start_graph; 
    11541153       else this->field_graph_start = min(this->field_graph_start, start_graph); 
    1155  
    1156        // if(CXios::isClient) std::cout<<"buildFilterGraph field_id = "<<this->getId()<<" case2: this->field_graph_start = "<<this->field_graph_start<<std::endl; 
    11571154     } 
    11581155 
     
    11611158     { 
    11621159       //nothing 
    1163        // if(CXios::isClient) std::cout<<"buildFilterGraph field_id = "<<this->getId()<<" case1: this->field_graph_end = "<<this->field_graph_end<<std::endl; 
    11641160     } 
    11651161     else 
     
    11681164       else this->field_graph_end = max(this->field_graph_end, end_graph); 
    11691165 
    1170        // if(CXios::isClient) std::cout<<"buildFilterGraph field_id = "<<this->getId()<<" case2: this->field_graph_end = "<<this->field_graph_end<<std::endl; 
    11711166     } 
    11721167     
     
    11751170     filter_end = this->field_graph_end; 
    11761171 
    1177  
    1178      // if(CXios::isClient) std::cout<<"****************** buildFilterGraph : field_id = "<<this->getId()<<" AFTER: this->field_graph_start = "<<this->field_graph_start<<" this->field_graph_end = "<<this->field_graph_end<<std::endl; 
    1179       
    1180  
    1181       
    11821172      
    11831173 
     
    12821272            instantDataFilter->end_graph = filter_end; 
    12831273            instantDataFilter->field = this; 
    1284             // if(CXios::isClient) std::cout<<"***********************buildFilterGraph init source filter : field_id = "<<this->getId()<<" sourcefilter->start_graph = "<<clientSourceFilter->start_graph<<" sourcefilter->end_graph = "<<clientSourceFilter->end_graph<<std::endl; 
    12851274         } 
    12861275       } 
     
    13201309           fileWriterFilter->distance = getTemporalDataFilter(gc, file->output_freq)->distance+1; 
    13211310 
    1322            // std::cout<<"CFileWriterFilter filter start = "<<filter_start<<" end = "<<filter_end<<" field = "<<this->getId()<<std::endl; 
    13231311 
    13241312         } 
     
    13611349     if(this->field_graph_end==-2) this->field_graph_end = filter_end;         // init 
    13621350 
    1363      // if(CXios::isClient) std::cout<<"getFieldReference field_id = "<<this->getId()<<" BEFORE: this->field_graph_start = "<<this->field_graph_start<<" this->field_graph_end = "<<this->field_graph_end<<std::endl; 
    13641351 
    13651352     if(start_graph == -1) 
    13661353     { 
    13671354       //nothing 
    1368        // if(CXios::isClient) std::cout<<"getFieldReference field_id = "<<this->getId()<<" case1: this->field_graph_start = "<<this->field_graph_start<<std::endl; 
    13691355     } 
    13701356     else //if(start_graph != -1) 
     
    13721358       if(this->field_graph_start == -1) this->field_graph_start = start_graph; 
    13731359       else this->field_graph_start = min(this->field_graph_start, start_graph); 
    1374  
    1375        // if(CXios::isClient) std::cout<<"getFieldReference field_id = "<<this->getId()<<" case2: this->field_graph_start = "<<this->field_graph_start<<std::endl; 
    13761360     } 
    13771361 
     
    13791363     { 
    13801364       //nothing 
    1381        // if(CXios::isClient) std::cout<<"getFieldReference field_id = "<<this->getId()<<" case1: this->field_graph_end = "<<this->field_graph_end<<std::endl; 
    13821365     } 
    13831366     else 
     
    13851368       if(this->field_graph_end == -1) this->field_graph_end = end_graph; 
    13861369       else this->field_graph_end = max(this->field_graph_end, end_graph); 
    1387  
    1388        // if(CXios::isClient) std::cout<<"getFieldReference field_id = "<<this->getId()<<" case2: this->field_graph_end = "<<this->field_graph_end<<std::endl; 
    13891370     } 
    13901371 
    13911372     filter_start = this->field_graph_start; 
    13921373     filter_end = this->field_graph_end; 
    1393  
    1394      // if(CXios::isClient) std::cout<<"getFieldReference field_id = "<<this->getId()<<" AFTER: this->field_graph_start = "<<this->field_graph_start<<" this->field_graph_end = "<<this->field_graph_end<<std::endl; 
    13951374 
    13961375 
     
    14511430   TRY 
    14521431   { 
    1453      //if(CXios::isClient) std::cout<<"getSelfReference field_id = "<<this->getId()<<" start_graph = "<<start_graph<<" end_graph = "<<end_graph<<std::endl; 
    14541432 
    14551433     if (instantDataFilter || !hasExpression()) 
     
    15321510 
    15331511       instantDataFilter->connectOutput(temporalFilter, 0); 
    1534        //temporalFilter->tag = buildWorkflowGraph; 
    15351512        
    15361513       temporalFilter->parent_filters.resize(1); 
     
    15381515        
    15391516 
    1540        //if(temporalFilter->parent_filters[0]->tag) temporalFilter->tag=true; 
    15411517       temporalFilter->tag = temporalFilter->parent_filters[0]->tag; 
    15421518       temporalFilter->start_graph = temporalFilter->parent_filters[0]->start_graph; 
    15431519       temporalFilter->end_graph = temporalFilter->parent_filters[0]->end_graph; 
    15441520 
    1545        // temporalFilter->start_graph = filter_start; 
    1546        // temporalFilter->end_graph = filter_end; 
    15471521       temporalFilter->field = this; 
    15481522 
  • XIOS/trunk/src/test/test_complete.f90

    r787 r1876  
    129129 
    130130  PRINT *,"ni",ni 
    131   PRINT *,"lonvalue",lonvalue; 
     131  !PRINT *,"lonvalue",lonvalue; 
    132132 
    133133!!! Fin de la definition du contexte 
     
    209209 
    210210  PRINT *,"ni",ni 
    211   PRINT *,"lonvalue",lonvalue ; 
     211  !PRINT *,"lonvalue",lonvalue ; 
    212212 
    213213!!! Fin de la definition du contexte SRF 
Note: See TracChangeset for help on using the changeset viewer.