Changeset 1301


Ignore:
Timestamp:
10/09/17 10:14:24 (3 years ago)
Author:
ymipsl
Message:

Add new transformation : reduce axis_to_axis
This a global reduction implying all process whih own the same source axis global point.

YM

Location:
XIOS/dev/XIOS_DEV_CMIP6/src
Files:
5 added
14 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/XIOS_DEV_CMIP6/src/config/node_type.conf

    r1275 r1301  
    6767#endif //__XIOS_CReduceDomainToAxis__ 
    6868 
     69#ifdef __XIOS_CReduceAxisToAxis__ 
     70   DECLARE_NODE(ReduceAxisToAxis, reduce_domain) 
     71#endif //__XIOS_CReduceAxisToAxis__ 
     72 
    6973#ifdef __XIOS_CExtractDomainToAxis__ 
    7074   DECLARE_NODE(ExtractDomainToAxis, extract_domain) 
  • XIOS/dev/XIOS_DEV_CMIP6/src/generate_fortran_interface.cpp

    r1275 r1301  
    4040  CInverseAxis inverseAxis; 
    4141  CReduceDomainToAxis reduceDomainToAxis; 
     42  CReduceAxisToAxis reduceAxisToAxis; 
    4243  CExtractDomainToAxis extractDomainToAxis; 
    4344  CTemporalSplitting temporalSplitting; 
     
    342343  reduceDomainToAxis.generateFortran2003Interface(file); 
    343344  file.close(); 
     345  
     346  file.open((path+"reduce_domain_to_axis_interface_attr.F90").c_str()); 
     347  reduceDomainToAxis.generateFortran2003Interface(file); 
     348  file.close(); 
    344349 
    345350  file.open((path+"icreduce_domain_to_axis_attr.cpp").c_str()); 
     
    349354  file.open((path+"ireduce_domain_to_axis_attr.F90").c_str()); 
    350355  reduceDomainToAxis.generateFortranInterface(file); 
     356  file.close(); 
     357 
     358  file.open((path+"reduce_axis_to_axis_interface_attr.F90").c_str()); 
     359  reduceAxisToAxis.generateFortran2003Interface(file); 
     360  file.close(); 
     361  
     362  file.open((path+"reduce_axis_to_axis_interface_attr.F90").c_str()); 
     363  reduceAxisToAxis.generateFortran2003Interface(file); 
     364  file.close(); 
     365 
     366  file.open((path+"icreduce_axis_to_axis_attr.cpp").c_str()); 
     367  reduceAxisToAxis.generateCInterface(file); 
     368  file.close(); 
     369 
     370  file.open((path+"ireduce_axis_to_axis_attr.F90").c_str()); 
     371  reduceAxisToAxis.generateFortranInterface(file); 
    351372  file.close(); 
    352373   
  • XIOS/dev/XIOS_DEV_CMIP6/src/group_factory_decl.cpp

    r1275 r1301  
    3434  macro(CReduceAxisToScalarGroup) 
    3535  macro(CReduceDomainToAxisGroup) 
     36  macro(CReduceAxisToAxisGroup) 
    3637  macro(CExtractDomainToAxisGroup) 
    3738  macro(CComputeConnectivityDomainGroup) 
  • XIOS/dev/XIOS_DEV_CMIP6/src/group_template_decl.cpp

    r1275 r1301  
    2323  macro(ReduceAxisToScalar) 
    2424  macro(ReduceDomainToAxis) 
     25  macro(ReduceAxisToAxis) 
    2526  macro(ExtractDomainToAxis) 
    2627  macro(ComputeConnectivityDomain) 
  • XIOS/dev/XIOS_DEV_CMIP6/src/node/axis.cpp

    r1275 r1301  
    5151     m["inverse_axis"] = TRANS_INVERSE_AXIS; 
    5252     m["reduce_domain"] = TRANS_REDUCE_DOMAIN_TO_AXIS; 
     53     m["reduce_axis"] = TRANS_REDUCE_AXIS_TO_AXIS; 
    5354     m["extract_domain"] = TRANS_EXTRACT_DOMAIN_TO_AXIS; 
    5455     m["temporal_splitting"] = TRANS_TEMPORAL_SPLITTING; 
     
    12731274 
    12741275    // Resize index to its real size 
    1275     index.resizeAndPreserve(nbIndexGlob); 
     1276    if (nbIndexGlob==0) index.resize(nbIndexGlob) ; 
     1277    else index.resizeAndPreserve(nbIndexGlob); 
    12761278 
    12771279    int nbData = nbIndexGlob; 
  • XIOS/dev/XIOS_DEV_CMIP6/src/node/node_enum.hpp

    r1275 r1301  
    2929         eReduceAxisToScalar, 
    3030         eReduceDomainToAxis, 
     31         eReduceAxisToAxis, 
    3132         eExtractDomainToAxis, 
    3233         eComputeConnectivityDomain, 
  • XIOS/dev/XIOS_DEV_CMIP6/src/node/node_type.hpp

    r1275 r1301  
    1919#include "reduce_axis_to_scalar.hpp" 
    2020#include "reduce_domain_to_axis.hpp" 
     21#include "reduce_axis_to_axis.hpp" 
    2122#include "extract_domain_to_axis.hpp" 
    2223#include "compute_connectivity_domain.hpp" 
  • XIOS/dev/XIOS_DEV_CMIP6/src/node/transformation_enum.hpp

    r1275 r1301  
    2121        TRANS_REDUCE_DOMAIN_TO_SCALAR = 12, 
    2222        TRANS_TEMPORAL_SPLITTING = 13, 
     23        TRANS_REDUCE_AXIS_TO_AXIS = 14, 
    2324      } ETranformationType; 
    2425 
  • XIOS/dev/XIOS_DEV_CMIP6/src/object_factory_decl.cpp

    r1275 r1301  
    3535  macro(CReduceAxisToScalar) 
    3636  macro(CReduceDomainToAxis) 
     37  macro(CReduceAxisToAxis) 
    3738  macro(CExtractDomainToAxis) 
    3839  macro(CComputeConnectivityDomain) 
     
    5859  macro(CReduceAxisToScalarGroup) 
    5960  macro(CReduceDomainToAxisGroup) 
     61  macro(CReduceAxisToAxisGroup) 
    6062  macro(CExtractDomainToAxisGroup) 
    6163  macro(CComputeConnectivityDomainGroup) 
  • XIOS/dev/XIOS_DEV_CMIP6/src/object_template_decl.cpp

    r1275 r1301  
    2222  template class CObjectTemplate<CReduceAxisToScalar>; 
    2323  template class CObjectTemplate<CReduceDomainToAxis>; 
     24  template class CObjectTemplate<CReduceAxisToAxis>; 
    2425  template class CObjectTemplate<CExtractDomainToAxis>; 
    2526  template class CObjectTemplate<CComputeConnectivityDomain>; 
     
    4546  template class CObjectTemplate<CReduceAxisToScalarGroup>; 
    4647  template class CObjectTemplate<CReduceDomainToAxisGroup>; 
     48  template class CObjectTemplate<CReduceAxisToAxisGroup>; 
    4749  template class CObjectTemplate<CExtractDomainToAxisGroup>; 
    4850  template class CObjectTemplate<CComputeConnectivityDomainGroup>; 
  • XIOS/dev/XIOS_DEV_CMIP6/src/transformation/algo_types.hpp

    r1275 r1301  
    1818#include "axis_algorithm_interpolate.hpp" 
    1919#include "axis_algorithm_reduce_domain.hpp" 
     20#include "axis_algorithm_reduce_axis.hpp" 
    2021#include "axis_algorithm_transformation.hpp" 
    2122#include "axis_algorithm_extract_domain.hpp" 
  • XIOS/dev/XIOS_DEV_CMIP6/src/transformation/grid_transformation_selector.cpp

    r1275 r1301  
    2929  CAxisAlgorithmInverse::registerTrans(); 
    3030  CAxisAlgorithmReduceDomain::registerTrans(); 
     31  CAxisAlgorithmReduceAxis::registerTrans(); 
    3132  CAxisAlgorithmTemporalSplitting::registerTrans(); 
    3233 
  • XIOS/dev/XIOS_DEV_CMIP6/src/type/type_util.hpp

    r1275 r1301  
    3838    class CReduceDomainToAxis; 
    3939    class CReduceDomainToAxisGroup; 
     40    class CReduceAxisToAxis; 
     41    class CReduceAxisToAxisGroup; 
    4042    class CExtractDomainToAxis; 
    4143    class CExtractDomainToAxisGroup; 
     
    104106  macro(CReduceDomainToAxis) 
    105107  macro(CReduceDomainToAxisGroup) 
     108  macro(CReduceAxisToAxis) 
     109  macro(CReduceAxisToAxisGroup) 
    106110  macro(CExtractDomainToAxis) 
    107111  macro(CExtractDomainToAxisGroup) 
  • XIOS/dev/XIOS_DEV_CMIP6/src/xml_parser_decl.cpp

    r1293 r1301  
    2828    macro( ReduceAxisToScalar ) 
    2929    macro( ReduceDomainToAxis ) 
     30    macro( ReduceAxisToAxis ) 
    3031    macro( ExtractDomainToAxis ) 
    3132    macro( ComputeConnectivityDomain ) 
Note: See TracChangeset for help on using the changeset viewer.