Ignore:
Timestamp:
03/12/18 18:45:57 (6 years ago)
Author:
ymipsl
Message:

Add new domain filter : reorder_domain
Reoder the data along the global domain but works only for rectilinear domain

  • invert_lat : invert the latitute axis
  • shift_lon_fraction : shift the longitude axis of a fration of global size
  • lon_min/lon_max : fixe the range of longitude value (ex : -180:180 or 0:360)

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

    r1314 r1457  
    103103#endif //__XIOS_CReduceScalarToScalar_ 
    104104 
     105#ifdef __XIOS_CReorderDomain__ 
     106   DECLARE_NODE(ReorderDomain, reorder_domain) 
     107#endif //__XIOS_CReduceScalarToScalar_ 
     108 
    105109#ifdef __XIOS_CContext__ 
    106110   DECLARE_NODE_PAR(Context, context) 
  • XIOS/dev/XIOS_DEV_CMIP6/src/generate_fortran_interface.cpp

    r1314 r1457  
    3535  CComputeConnectivityDomain compConDomain; 
    3636  CExpandDomain expandDomain; 
     37  CReorderDomain reorderDomain; 
    3738 
    3839  CInterpolateAxis interpolateAxis; 
     
    301302  file.open((path+"iexpand_domain_attr.F90").c_str()); 
    302303  expandDomain.generateFortranInterface(file); 
     304 
     305  file.open((path+"reorder_domain_interface_attr.F90").c_str()); 
     306  reorderDomain.generateFortran2003Interface(file); 
     307  file.close(); 
     308 
     309  file.open((path+"icreorder_domain_attr.cpp").c_str()); 
     310  reorderDomain.generateCInterface(file); 
     311  file.close(); 
     312 
     313  file.open((path+"ireorder_domain_attr.F90").c_str()); 
     314  reorderDomain.generateFortranInterface(file); 
     315 
    303316  file.close(); 
    304317   
  • XIOS/dev/XIOS_DEV_CMIP6/src/group_factory_decl.cpp

    r1314 r1457  
    4343  macro(CDuplicateScalarToAxisGroup) 
    4444  macro(CReduceScalarToScalarGroup) 
    45  
     45  macro(CReorderDomainGroup) 
    4646} 
  • XIOS/dev/XIOS_DEV_CMIP6/src/group_template_decl.cpp

    r1314 r1457  
    3232  macro(DuplicateScalarToAxis) 
    3333  macro(ReduceScalarToScalar) 
     34  macro(ReorderDomain) 
     35 
    3436} 
  • XIOS/dev/XIOS_DEV_CMIP6/src/node/domain.cpp

    r1431 r1457  
    7676     m["compute_connectivity_domain"] = TRANS_COMPUTE_CONNECTIVITY_DOMAIN; 
    7777     m["expand_domain"] = TRANS_EXPAND_DOMAIN; 
     78     m["reorder_domain"] = TRANS_REORDER_DOMAIN; 
    7879   } 
    7980 
  • XIOS/dev/XIOS_DEV_CMIP6/src/node/node_enum.hpp

    r1314 r1457  
    3737         eTemporalSplitting, 
    3838         eDuplicateScalarToAxis, 
    39          eReduceScalarToScalar 
     39         eReduceScalarToScalar, 
     40         eReorderDomain 
    4041       } ENodeType; 
    4142 
  • XIOS/dev/XIOS_DEV_CMIP6/src/node/node_type.hpp

    r1314 r1457  
    2828#include "duplicate_scalar_to_axis.hpp" 
    2929#include "reduce_scalar_to_scalar.hpp" 
    30  
     30#include "reorder_domain.hpp" 
    3131 
    3232 
  • XIOS/dev/XIOS_DEV_CMIP6/src/node/transformation_enum.hpp

    r1314 r1457  
    2424        TRANS_DUPLICATE_SCALAR_TO_AXIS = 15, 
    2525        TRANS_REDUCE_SCALAR_TO_SCALAR = 16, 
     26        TRANS_REORDER_DOMAIN = 17 
    2627      } ETranformationType; 
    2728 
  • XIOS/dev/XIOS_DEV_CMIP6/src/object_factory_decl.cpp

    r1314 r1457  
    4444  macro(CDuplicateScalarToAxis) 
    4545  macro(CReduceScalarToScalar) 
    46  
     46  macro(CReorderDomain) 
     47   
    4748  macro(CFieldGroup) 
    4849  macro(CFileGroup) 
     
    7071  macro(CDuplicateScalarToAxisGroup) 
    7172  macro(CReduceScalarToScalarGroup) 
    72  
     73  macro(CReorderDomainGroup) 
    7374} 
  • XIOS/dev/XIOS_DEV_CMIP6/src/object_template_decl.cpp

    r1314 r1457  
    3131  template class CObjectTemplate<CDuplicateScalarToAxis>; 
    3232  template class CObjectTemplate<CReduceScalarToScalar>; 
    33  
     33  template class CObjectTemplate<CReorderDomain>; 
     34   
    3435  template class CObjectTemplate<CContextGroup>; 
    3536  template class CObjectTemplate<CFieldGroup>; 
     
    5758  template class CObjectTemplate<CDuplicateScalarToAxisGroup>; 
    5859  template class CObjectTemplate<CReduceScalarToScalarGroup>; 
    59  
     60  template class CObjectTemplate<CReorderDomainGroup>; 
    6061} 
  • XIOS/dev/XIOS_DEV_CMIP6/src/transformation/algo_types.hpp

    r1314 r1457  
    2929#include "axis_algorithm_duplicate_scalar.hpp" 
    3030#include "scalar_algorithm_reduce_scalar.hpp" 
     31#include "domain_algorithm_reorder.hpp" 
    3132 
    3233 
  • XIOS/dev/XIOS_DEV_CMIP6/src/transformation/grid_transformation_selector.cpp

    r1314 r1457  
    3939  CDomainAlgorithmZoom::registerTrans(); 
    4040  CDomainAlgorithmExpand::registerTrans(); 
     41  CDomainAlgorithmReorder::registerTrans(); 
    4142} 
    4243 
  • XIOS/dev/XIOS_DEV_CMIP6/src/type/type_util.hpp

    r1314 r1457  
    5656    class CReduceScalarToScalar; 
    5757    class CReduceScalarToScalarGroup; 
    58    
     58    class CReorderDomain; 
     59    class CReorderDomainGroup; 
     60      
    5961  template <typename T> inline string getStrType(void); 
    6062 
     
    128130  macro(CReduceScalarToScalar) 
    129131  macro(CReduceScalarToScalarGroup) 
     132  macro(CReorderDomain) 
     133  macro(CReorderDomainGroup) 
    130134   
    131135#undef macro 
  • XIOS/dev/XIOS_DEV_CMIP6/src/xml_parser_decl.cpp

    r1314 r1457  
    3737    macro( DuplicateScalarToAxis ) 
    3838    macro( ReduceScalarToScalar ) 
     39    macro( ReorderDomain ) 
    3940  } 
    4041} 
Note: See TracChangeset for help on using the changeset viewer.