Ignore:
Timestamp:
03/10/15 10:49:02 (9 years ago)
Author:
mhnguyen
Message:

Implementing a grid formed by only one axis or group of axis

+) Add several new attributes to axis. From now on, each axis can be distributed on client side
+) Modify mask of grid to make it more flexible to different dimension
+) Fix some bugs relating to calculation of local data index on client
+) Clean some redundant codes

Test
+) On Curie, only test_new_features.f90
+) Test cases:

  • Grid composed of: 1 domain and 1 axis, 3 axis, 1 axis
  • Mode: Attached and connected
  • No of client-server: 6-2(Connected), 2 (Attached)

+) All tests passed and results are correct

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/interface/c_attr/icgrid_attr.cpp

    r555 r567  
    6969   
    7070   
    71   void cxios_set_grid_mask(grid_Ptr grid_hdl, bool* mask, int extent1, int extent2, int extent3) 
     71  void cxios_set_grid_mask1(grid_Ptr grid_hdl, bool* mask1, int extent1) 
    7272  { 
    7373    CTimer::get("XIOS").resume(); 
    74     CArray<bool,3> tmp(mask,shape(extent1,extent2,extent3),neverDeleteData) ; 
    75     grid_hdl->mask.reference(tmp.copy()); 
     74    CArray<bool,1> tmp(mask1,shape(extent1),neverDeleteData) ; 
     75    grid_hdl->mask1.reference(tmp.copy()); 
    7676     CTimer::get("XIOS").suspend(); 
    7777  } 
    7878   
    79   void cxios_get_grid_mask(grid_Ptr grid_hdl, bool* mask, int extent1, int extent2, int extent3) 
     79  void cxios_get_grid_mask1(grid_Ptr grid_hdl, bool* mask1, int extent1) 
    8080  { 
    8181    CTimer::get("XIOS").resume(); 
    82     CArray<bool,3> tmp(mask,shape(extent1,extent2,extent3),neverDeleteData) ; 
    83     tmp=grid_hdl->mask.getInheritedValue() ; 
     82    CArray<bool,1> tmp(mask1,shape(extent1),neverDeleteData) ; 
     83    tmp=grid_hdl->mask1.getInheritedValue() ; 
    8484     CTimer::get("XIOS").suspend(); 
    8585  } 
    8686   
    87   bool cxios_is_defined_grid_mask(grid_Ptr grid_hdl ) 
     87  bool cxios_is_defined_grid_mask1(grid_Ptr grid_hdl ) 
    8888  { 
    8989     CTimer::get("XIOS").resume(); 
    90     return grid_hdl->mask.hasInheritedValue(); 
     90    return grid_hdl->mask1.hasInheritedValue(); 
     91     CTimer::get("XIOS").suspend(); 
     92  } 
     93   
     94   
     95   
     96  void cxios_set_grid_mask2(grid_Ptr grid_hdl, bool* mask2, int extent1, int extent2) 
     97  { 
     98    CTimer::get("XIOS").resume(); 
     99    CArray<bool,2> tmp(mask2,shape(extent1,extent2),neverDeleteData) ; 
     100    grid_hdl->mask2.reference(tmp.copy()); 
     101     CTimer::get("XIOS").suspend(); 
     102  } 
     103   
     104  void cxios_get_grid_mask2(grid_Ptr grid_hdl, bool* mask2, int extent1, int extent2) 
     105  { 
     106    CTimer::get("XIOS").resume(); 
     107    CArray<bool,2> tmp(mask2,shape(extent1,extent2),neverDeleteData) ; 
     108    tmp=grid_hdl->mask2.getInheritedValue() ; 
     109     CTimer::get("XIOS").suspend(); 
     110  } 
     111   
     112  bool cxios_is_defined_grid_mask2(grid_Ptr grid_hdl ) 
     113  { 
     114     CTimer::get("XIOS").resume(); 
     115    return grid_hdl->mask2.hasInheritedValue(); 
     116     CTimer::get("XIOS").suspend(); 
     117  } 
     118   
     119   
     120   
     121  void cxios_set_grid_mask3(grid_Ptr grid_hdl, bool* mask3, int extent1, int extent2, int extent3) 
     122  { 
     123    CTimer::get("XIOS").resume(); 
     124    CArray<bool,3> tmp(mask3,shape(extent1,extent2,extent3),neverDeleteData) ; 
     125    grid_hdl->mask3.reference(tmp.copy()); 
     126     CTimer::get("XIOS").suspend(); 
     127  } 
     128   
     129  void cxios_get_grid_mask3(grid_Ptr grid_hdl, bool* mask3, int extent1, int extent2, int extent3) 
     130  { 
     131    CTimer::get("XIOS").resume(); 
     132    CArray<bool,3> tmp(mask3,shape(extent1,extent2,extent3),neverDeleteData) ; 
     133    tmp=grid_hdl->mask3.getInheritedValue() ; 
     134     CTimer::get("XIOS").suspend(); 
     135  } 
     136   
     137  bool cxios_is_defined_grid_mask3(grid_Ptr grid_hdl ) 
     138  { 
     139     CTimer::get("XIOS").resume(); 
     140    return grid_hdl->mask3.hasInheritedValue(); 
    91141     CTimer::get("XIOS").suspend(); 
    92142  } 
Note: See TracChangeset for help on using the changeset viewer.