Ignore:
Timestamp:
09/21/16 14:35:03 (8 years ago)
Author:
mhnguyen
Message:

Adding Fortran interface for high-dimension grid (up to 7)

+) Add check mask for high-dimension grid
+) Add Fortran interface for send_field, recv_field

Test
+) On Curie
+) Work

File:
1 edited

Legend:

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

    r817 r932  
    119119 
    120120 
     121  void cxios_set_grid_mask_4d(grid_Ptr grid_hdl, bool* mask_4d, int* extent) 
     122  { 
     123    CTimer::get("XIOS").resume(); 
     124    CArray<bool,4> tmp(mask_4d, shape(extent[0], extent[1], extent[2], extent[3]), neverDeleteData); 
     125    grid_hdl->mask_4d.reference(tmp.copy()); 
     126     CTimer::get("XIOS").suspend(); 
     127  } 
     128 
     129  void cxios_get_grid_mask_4d(grid_Ptr grid_hdl, bool* mask_4d, int* extent) 
     130  { 
     131    CTimer::get("XIOS").resume(); 
     132    CArray<bool,4> tmp(mask_4d, shape(extent[0], extent[1], extent[2], extent[3]), neverDeleteData); 
     133    tmp=grid_hdl->mask_4d.getInheritedValue(); 
     134     CTimer::get("XIOS").suspend(); 
     135  } 
     136 
     137  bool cxios_is_defined_grid_mask_4d(grid_Ptr grid_hdl) 
     138  { 
     139     CTimer::get("XIOS").resume(); 
     140     bool isDefined = grid_hdl->mask_4d.hasInheritedValue(); 
     141     CTimer::get("XIOS").suspend(); 
     142     return isDefined; 
     143  } 
     144 
     145 
     146  void cxios_set_grid_mask_5d(grid_Ptr grid_hdl, bool* mask_5d, int* extent) 
     147  { 
     148    CTimer::get("XIOS").resume(); 
     149    CArray<bool,5> tmp(mask_5d, shape(extent[0], extent[1], extent[2], extent[3], extent[4]), neverDeleteData); 
     150    grid_hdl->mask_5d.reference(tmp.copy()); 
     151     CTimer::get("XIOS").suspend(); 
     152  } 
     153 
     154  void cxios_get_grid_mask_5d(grid_Ptr grid_hdl, bool* mask_5d, int* extent) 
     155  { 
     156    CTimer::get("XIOS").resume(); 
     157    CArray<bool,5> tmp(mask_5d, shape(extent[0], extent[1], extent[2], extent[3], extent[4]), neverDeleteData); 
     158    tmp=grid_hdl->mask_5d.getInheritedValue(); 
     159     CTimer::get("XIOS").suspend(); 
     160  } 
     161 
     162  bool cxios_is_defined_grid_mask_5d(grid_Ptr grid_hdl) 
     163  { 
     164     CTimer::get("XIOS").resume(); 
     165     bool isDefined = grid_hdl->mask_5d.hasInheritedValue(); 
     166     CTimer::get("XIOS").suspend(); 
     167     return isDefined; 
     168  } 
     169 
     170 
     171  void cxios_set_grid_mask_6d(grid_Ptr grid_hdl, bool* mask_6d, int* extent) 
     172  { 
     173    CTimer::get("XIOS").resume(); 
     174    CArray<bool,6> tmp(mask_6d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5]), neverDeleteData); 
     175    grid_hdl->mask_6d.reference(tmp.copy()); 
     176     CTimer::get("XIOS").suspend(); 
     177  } 
     178 
     179  void cxios_get_grid_mask_6d(grid_Ptr grid_hdl, bool* mask_6d, int* extent) 
     180  { 
     181    CTimer::get("XIOS").resume(); 
     182    CArray<bool,6> tmp(mask_6d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5]), neverDeleteData); 
     183    tmp=grid_hdl->mask_6d.getInheritedValue(); 
     184     CTimer::get("XIOS").suspend(); 
     185  } 
     186 
     187  bool cxios_is_defined_grid_mask_6d(grid_Ptr grid_hdl) 
     188  { 
     189     CTimer::get("XIOS").resume(); 
     190     bool isDefined = grid_hdl->mask_6d.hasInheritedValue(); 
     191     CTimer::get("XIOS").suspend(); 
     192     return isDefined; 
     193  } 
     194 
     195 
     196  void cxios_set_grid_mask_7d(grid_Ptr grid_hdl, bool* mask_7d, int* extent) 
     197  { 
     198    CTimer::get("XIOS").resume(); 
     199    CArray<bool,7> tmp(mask_7d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5], extent[6]), neverDeleteData); 
     200    grid_hdl->mask_7d.reference(tmp.copy()); 
     201     CTimer::get("XIOS").suspend(); 
     202  } 
     203 
     204  void cxios_get_grid_mask_7d(grid_Ptr grid_hdl, bool* mask_7d, int* extent) 
     205  { 
     206    CTimer::get("XIOS").resume(); 
     207    CArray<bool,7> tmp(mask_7d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5], extent[6]), neverDeleteData); 
     208    tmp=grid_hdl->mask_7d.getInheritedValue(); 
     209     CTimer::get("XIOS").suspend(); 
     210  } 
     211 
     212  bool cxios_is_defined_grid_mask_7d(grid_Ptr grid_hdl) 
     213  { 
     214     CTimer::get("XIOS").resume(); 
     215     bool isDefined = grid_hdl->mask_7d.hasInheritedValue(); 
     216     CTimer::get("XIOS").suspend(); 
     217     return isDefined; 
     218  } 
     219 
     220 
    121221  void cxios_set_grid_name(grid_Ptr grid_hdl, const char * name, int name_size) 
    122222  { 
Note: See TracChangeset for help on using the changeset viewer.