Changeset 1876
- Timestamp:
- 05/12/20 16:36:29 (4 years ago)
- Location:
- XIOS/trunk
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/inputs/COMPLETE/context_atmosphere.xml
r787 r1876 8 8 </field_definition> 9 9 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."> 11 11 <file id="output_atmosphere" name="output_atmosphere"> 12 12 <field field_ref="field_A_atm" /> -
XIOS/trunk/inputs/COMPLETE/context_surface.xml
r1173 r1876 12 12 </field_definition> 13 13 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."> 15 15 <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" > 17 17 <variable id="my_attribute1" type="string">surf_att</variable> 18 18 <variable id="my_attribute2" type="int"> 10 </variable> … … 20 20 <variable id="my_attribute5" type="double">100.201</variable> 21 21 </field> 22 <field field_ref="field_A_srf_K" />22 <field field_ref="field_A_srf_K" build_workflow_graph="false" /> 23 23 <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 --> 25 25 <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> 26 26 <field field_ref="field_A_srf" name="field_A_srf_min" operation="minimum" /> … … 32 32 </file> 33 33 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."> 35 35 <field field_ref="field_A_srf" indexed_output="TRUE"> 36 36 <variable id="my_attribute1" type="string">surf_att</variable> -
XIOS/trunk/inputs/iodef.xml
r1704 r1876 14 14 <field id="field_A_zoom" operation="average" freq_op="3600s" field_ref="field_A" grid_ref="grid_A_zoom"/> 15 15 <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> 16 17 </field_definition> 17 18 … … 19 20 <file_definition type="one_file" par_access="collective" output_freq="1h" output_level="10" > 20 21 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 21 31 <file id="output2" name="output2" output_freq="4h" enabled=".FALSE."> 22 32 <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" /> … … 25 35 26 36 27 <file id="output1" name="output1" output_freq="24h" enabled=". TRUE.">37 <file id="output1" name="output1" output_freq="24h" enabled=".FALSE."> 28 38 <!-- <field field_ref="field_Domain" name="field_A" /> --> 29 39 <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" /> … … 31 41 </file> 32 42 33 <file id="output" name="output" enabled=". TRUE.">43 <file id="output" name="output" enabled=".FALSE."> 34 44 <!-- <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> 36 47 <!-- <field field_ref="field_B" name="field_B_name" build_workflow_graph=".FALSE."/> --> 37 48 <!-- <field field_ref="field_C" name="field_C_name" enabled=".TRUE." /> --> -
XIOS/trunk/src/filter/binary_arithmetic_filter.cpp
r1768 r1876 11 11 , op(operatorExpr.getOpScalarField(op)) 12 12 , value(value) 13 { 14 expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 15 }; 13 { }; 16 14 17 15 std::tuple<int, int, int> CScalarFieldArithmeticFilter::buildGraph(std::vector<CDataPacketPtr> data) … … 25 23 CWorkflowGraph::allocNodeEdge(); 26 24 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()); 28 26 29 27 // first round … … 34 32 int edgeID = InvalidableObject::edgeIdGenerator++; 35 33 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]); 37 35 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_tag = this->tag; 38 36 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; … … 99 97 , op(operatorExpr.getOpFieldScalar(op)) 100 98 , value(value) 101 { 102 expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 103 }; 99 { }; 104 100 105 101 std::tuple<int, int, int> CFieldScalarArithmeticFilter::buildGraph(std::vector<CDataPacketPtr> data) 106 102 { 107 103 bool building_graph = this->tag ? data[0]->timestamp >= this->start_graph && data[0]->timestamp <= this->end_graph : false; 108 // bool building_graph = true;109 104 int unique_filter_id; 110 105 bool firstround; … … 114 109 CWorkflowGraph::allocNodeEdge(); 115 110 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()); 117 112 118 113 // first round … … 123 118 int edgeID = InvalidableObject::edgeIdGenerator++; 124 119 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]); 126 121 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_tag = this->tag; 127 122 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; … … 171 166 std::tuple<int, int, int> graph = buildGraph(data); 172 167 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 177 175 packet->field = this->field; 178 176 … … 186 184 : CFilter(gc, 2, this) 187 185 , op(operatorExpr.getOpFieldField(op)) 188 { 189 expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 190 }; 186 { }; 191 187 192 188 std::tuple<int, int, int> CFieldFieldArithmeticFilter::buildGraph(std::vector<CDataPacketPtr> data) … … 202 198 CWorkflowGraph::allocNodeEdge(); 203 199 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()); 207 202 208 203 // first round … … 213 208 int edgeID = InvalidableObject::edgeIdGenerator++; 214 209 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]); 216 211 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].attributes = this->field->record4graphXiosAttributes(); 217 212 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; … … 251 246 (*CWorkflowGraph::mapFilters_ptr_with_info)[data[0]->src_filterID].filter_filled = 0 ; 252 247 (*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); 253 249 } 254 250 if(data[1]->src_filterID != unique_filter_id) … … 258 254 (*CWorkflowGraph::mapFilters_ptr_with_info)[data[1]->src_filterID].filter_filled = 0 ; 259 255 (*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); 260 257 } 261 258 … … 275 272 276 273 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); 279 276 280 277 packet->field = this->field; -
XIOS/trunk/src/filter/data_packet.hpp
r1704 r1876 27 27 Time timestamp; //!< Timestamp of the data 28 28 StatusCode status; //!< Status of the packet 29 int src_filterID ;29 int src_filterID=0; 30 30 std::vector<int> filterIDoutputs; 31 CField *field ;32 int distance ;31 CField *field=nullptr; 32 int distance=-1; 33 33 34 34 /*! -
XIOS/trunk/src/filter/source_filter.cpp
r1704 r1876 27 27 void CSourceFilter::buildGraph(CDataPacketPtr packet) 28 28 { 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; 30 36 if(building_graph) 31 37 { -
XIOS/trunk/src/filter/temporal_filter.cpp
r1704 r1876 85 85 bool BG = buildGraph(data); 86 86 87 CDataPacketPtr packet ;87 CDataPacketPtr packet=0; 88 88 89 89 if (data[0]->status != CDataPacket::END_OF_STREAM) -
XIOS/trunk/src/filter/ternary_arithmetic_filter.cpp
r1768 r1876 12 12 , value2(value2) 13 13 { 14 expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1);15 14 /* Nothing to do */ 16 15 }; … … 26 25 CWorkflowGraph::allocNodeEdge(); 27 26 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()); 29 28 30 29 // first round … … 35 34 int edgeID = InvalidableObject::edgeIdGenerator++; 36 35 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]); 38 37 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_tag = this->tag; 39 38 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; … … 101 100 , value2(value2) 102 101 { 103 expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1);104 102 /* Nothing to do */ 105 103 }; … … 115 113 CWorkflowGraph::allocNodeEdge(); 116 114 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()); 118 116 119 117 // first round … … 124 122 int edgeID = InvalidableObject::edgeIdGenerator++; 125 123 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]); 127 125 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_tag = this->tag; 128 126 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; … … 189 187 , value(value) 190 188 { 191 expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1);192 189 /* Nothing to do */ 193 190 }; … … 204 201 CWorkflowGraph::allocNodeEdge(); 205 202 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()); 207 204 208 205 // first round … … 213 210 int edgeID = InvalidableObject::edgeIdGenerator++; 214 211 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]); 216 213 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].attributes = this->field->record4graphXiosAttributes(); 217 214 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; … … 301 298 , value2(value2) 302 299 { 303 expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1);304 300 /* Nothing to do */ 305 301 }; … … 315 311 CWorkflowGraph::allocNodeEdge(); 316 312 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()); 318 314 319 315 // first round … … 324 320 int edgeID = InvalidableObject::edgeIdGenerator++; 325 321 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]); 327 323 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_tag = this->tag; 328 324 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; … … 390 386 , value(value) 391 387 { 392 expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1);393 388 /* Nothing to do */ 394 389 }; … … 405 400 CWorkflowGraph::allocNodeEdge(); 406 401 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()); 408 403 409 404 // first round … … 414 409 int edgeID = InvalidableObject::edgeIdGenerator++; 415 410 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]); 417 412 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].attributes = this->field->record4graphXiosAttributes(); 418 413 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; … … 499 494 , value(value) 500 495 { 501 expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1);502 496 /* Nothing to do */ 503 497 }; … … 514 508 CWorkflowGraph::allocNodeEdge(); 515 509 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()); 517 511 518 512 // first round … … 523 517 int edgeID = InvalidableObject::edgeIdGenerator++; 524 518 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]); 526 520 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].attributes = this->field->record4graphXiosAttributes(); 527 521 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; … … 608 602 , op(operatorExpr.getOpFieldFieldField(op)) 609 603 { 610 expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1);611 604 /* Nothing to do */ 612 605 }; … … 623 616 CWorkflowGraph::allocNodeEdge(); 624 617 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()); 626 619 627 620 // first round … … 632 625 int edgeID = InvalidableObject::edgeIdGenerator++; 633 626 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]); 635 628 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].attributes = this->field->record4graphXiosAttributes(); 636 629 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; -
XIOS/trunk/src/filter/unary_arithmetic_filter.cpp
r1704 r1876 9 9 : CFilter(gc, 1, this) 10 10 , op(operatorExpr.getOpField(op)) 11 { 12 expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 13 }; 11 { }; 14 12 15 13 std::tuple<int, int, int> CUnaryArithmeticFilter::buildGraph(std::vector<CDataPacketPtr> data) … … 22 20 { 23 21 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()); 25 23 26 24 // first round … … 30 28 this->filterID = InvalidableObject::filterIdGenerator++; 31 29 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]); 34 31 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_tag = this->tag; 35 32 (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].distance = data[0]->distance+1; -
XIOS/trunk/src/node/field.cpp
r1768 r1876 26 26 #include "workflow_graph.hpp" 27 27 28 #include "yacc_var.hpp" 28 29 namespace xios{ 29 30 … … 1142 1143 if(this->field_graph_end==-2) this->field_graph_end = filter_end; // init 1143 1144 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;1145 1145 1146 1146 if(start_graph == -1) 1147 1147 { 1148 1148 //nothing 1149 // if(CXios::isClient) std::cout<<"buildFilterGraph field_id = "<<this->getId()<<" case1: this->field_graph_start = "<<this->field_graph_start<<std::endl;1150 1149 } 1151 1150 else //if(start_graph != -1) … … 1153 1152 if(this->field_graph_start == -1) this->field_graph_start = start_graph; 1154 1153 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;1157 1154 } 1158 1155 … … 1161 1158 { 1162 1159 //nothing 1163 // if(CXios::isClient) std::cout<<"buildFilterGraph field_id = "<<this->getId()<<" case1: this->field_graph_end = "<<this->field_graph_end<<std::endl;1164 1160 } 1165 1161 else … … 1168 1164 else this->field_graph_end = max(this->field_graph_end, end_graph); 1169 1165 1170 // if(CXios::isClient) std::cout<<"buildFilterGraph field_id = "<<this->getId()<<" case2: this->field_graph_end = "<<this->field_graph_end<<std::endl;1171 1166 } 1172 1167 … … 1175 1170 filter_end = this->field_graph_end; 1176 1171 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 1182 1172 1183 1173 … … 1282 1272 instantDataFilter->end_graph = filter_end; 1283 1273 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;1285 1274 } 1286 1275 } … … 1320 1309 fileWriterFilter->distance = getTemporalDataFilter(gc, file->output_freq)->distance+1; 1321 1310 1322 // std::cout<<"CFileWriterFilter filter start = "<<filter_start<<" end = "<<filter_end<<" field = "<<this->getId()<<std::endl;1323 1311 1324 1312 } … … 1361 1349 if(this->field_graph_end==-2) this->field_graph_end = filter_end; // init 1362 1350 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;1364 1351 1365 1352 if(start_graph == -1) 1366 1353 { 1367 1354 //nothing 1368 // if(CXios::isClient) std::cout<<"getFieldReference field_id = "<<this->getId()<<" case1: this->field_graph_start = "<<this->field_graph_start<<std::endl;1369 1355 } 1370 1356 else //if(start_graph != -1) … … 1372 1358 if(this->field_graph_start == -1) this->field_graph_start = start_graph; 1373 1359 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;1376 1360 } 1377 1361 … … 1379 1363 { 1380 1364 //nothing 1381 // if(CXios::isClient) std::cout<<"getFieldReference field_id = "<<this->getId()<<" case1: this->field_graph_end = "<<this->field_graph_end<<std::endl;1382 1365 } 1383 1366 else … … 1385 1368 if(this->field_graph_end == -1) this->field_graph_end = end_graph; 1386 1369 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;1389 1370 } 1390 1371 1391 1372 filter_start = this->field_graph_start; 1392 1373 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;1395 1374 1396 1375 … … 1451 1430 TRY 1452 1431 { 1453 //if(CXios::isClient) std::cout<<"getSelfReference field_id = "<<this->getId()<<" start_graph = "<<start_graph<<" end_graph = "<<end_graph<<std::endl;1454 1432 1455 1433 if (instantDataFilter || !hasExpression()) … … 1532 1510 1533 1511 instantDataFilter->connectOutput(temporalFilter, 0); 1534 //temporalFilter->tag = buildWorkflowGraph;1535 1512 1536 1513 temporalFilter->parent_filters.resize(1); … … 1538 1515 1539 1516 1540 //if(temporalFilter->parent_filters[0]->tag) temporalFilter->tag=true;1541 1517 temporalFilter->tag = temporalFilter->parent_filters[0]->tag; 1542 1518 temporalFilter->start_graph = temporalFilter->parent_filters[0]->start_graph; 1543 1519 temporalFilter->end_graph = temporalFilter->parent_filters[0]->end_graph; 1544 1520 1545 // temporalFilter->start_graph = filter_start;1546 // temporalFilter->end_graph = filter_end;1547 1521 temporalFilter->field = this; 1548 1522 -
XIOS/trunk/src/test/test_complete.f90
r787 r1876 129 129 130 130 PRINT *,"ni",ni 131 PRINT *,"lonvalue",lonvalue;131 !PRINT *,"lonvalue",lonvalue; 132 132 133 133 !!! Fin de la definition du contexte … … 209 209 210 210 PRINT *,"ni",ni 211 PRINT *,"lonvalue",lonvalue ;211 !PRINT *,"lonvalue",lonvalue ; 212 212 213 213 !!! Fin de la definition du contexte SRF
Note: See TracChangeset
for help on using the changeset viewer.