Ignore:
Timestamp:
03/19/24 14:23:16 (4 months ago)
Author:
jderouillat
Message:

Add XIOS3 fortran interfaces (resources management, chunking, compression)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS3/trunk/src/interface/c_attr/icfield_attr.cpp

    r2338 r2616  
    164164 
    165165 
     166  void cxios_set_field_chunking_blocksize_target(field_Ptr field_hdl, double chunking_blocksize_target) 
     167  { 
     168    CTimer::get("XIOS").resume(); 
     169    field_hdl->chunking_blocksize_target.setValue(chunking_blocksize_target); 
     170    CTimer::get("XIOS").suspend(); 
     171  } 
     172 
     173  void cxios_get_field_chunking_blocksize_target(field_Ptr field_hdl, double* chunking_blocksize_target) 
     174  { 
     175    CTimer::get("XIOS").resume(); 
     176    *chunking_blocksize_target = field_hdl->chunking_blocksize_target.getInheritedValue(); 
     177    CTimer::get("XIOS").suspend(); 
     178  } 
     179 
     180  bool cxios_is_defined_field_chunking_blocksize_target(field_Ptr field_hdl) 
     181  { 
     182     CTimer::get("XIOS").resume(); 
     183     bool isDefined = field_hdl->chunking_blocksize_target.hasInheritedValue(); 
     184     CTimer::get("XIOS").suspend(); 
     185     return isDefined; 
     186  } 
     187 
     188 
    166189  void cxios_set_field_comment(field_Ptr field_hdl, const char * comment, int comment_size) 
    167190  { 
     
    208231     CTimer::get("XIOS").resume(); 
    209232     bool isDefined = field_hdl->compression_level.hasInheritedValue(); 
     233     CTimer::get("XIOS").suspend(); 
     234     return isDefined; 
     235  } 
     236 
     237 
     238  void cxios_set_field_compression_params(field_Ptr field_hdl, double* compression_params, int* extent) 
     239  { 
     240    CTimer::get("XIOS").resume(); 
     241    CArray<double,1> tmp(compression_params, shape(extent[0]), neverDeleteData); 
     242    field_hdl->compression_params.reference(tmp.copy()); 
     243     CTimer::get("XIOS").suspend(); 
     244  } 
     245 
     246  void cxios_get_field_compression_params(field_Ptr field_hdl, double* compression_params, int* extent) 
     247  { 
     248    CTimer::get("XIOS").resume(); 
     249    CArray<double,1> tmp(compression_params, shape(extent[0]), neverDeleteData); 
     250    tmp=field_hdl->compression_params.getInheritedValue(); 
     251     CTimer::get("XIOS").suspend(); 
     252  } 
     253 
     254  bool cxios_is_defined_field_compression_params(field_Ptr field_hdl) 
     255  { 
     256     CTimer::get("XIOS").resume(); 
     257     bool isDefined = field_hdl->compression_params.hasInheritedValue(); 
     258     CTimer::get("XIOS").suspend(); 
     259     return isDefined; 
     260  } 
     261 
     262 
     263  void cxios_set_field_compression_type(field_Ptr field_hdl, const char * compression_type, int compression_type_size) 
     264  { 
     265    std::string compression_type_str; 
     266    if (!cstr2string(compression_type, compression_type_size, compression_type_str)) return; 
     267    CTimer::get("XIOS").resume(); 
     268    field_hdl->compression_type.setValue(compression_type_str); 
     269    CTimer::get("XIOS").suspend(); 
     270  } 
     271 
     272  void cxios_get_field_compression_type(field_Ptr field_hdl, char * compression_type, int compression_type_size) 
     273  { 
     274    CTimer::get("XIOS").resume(); 
     275    if (!string_copy(field_hdl->compression_type.getInheritedValue(), compression_type, compression_type_size)) 
     276      ERROR("void cxios_get_field_compression_type(field_Ptr field_hdl, char * compression_type, int compression_type_size)", << "Input string is too short"); 
     277    CTimer::get("XIOS").suspend(); 
     278  } 
     279 
     280  bool cxios_is_defined_field_compression_type(field_Ptr field_hdl) 
     281  { 
     282     CTimer::get("XIOS").resume(); 
     283     bool isDefined = field_hdl->compression_type.hasInheritedValue(); 
     284     CTimer::get("XIOS").suspend(); 
     285     return isDefined; 
     286  } 
     287 
     288 
     289  void cxios_set_field_conversion_by_NetCDF(field_Ptr field_hdl, bool conversion_by_NetCDF) 
     290  { 
     291    CTimer::get("XIOS").resume(); 
     292    field_hdl->conversion_by_NetCDF.setValue(conversion_by_NetCDF); 
     293    CTimer::get("XIOS").suspend(); 
     294  } 
     295 
     296  void cxios_get_field_conversion_by_NetCDF(field_Ptr field_hdl, bool* conversion_by_NetCDF) 
     297  { 
     298    CTimer::get("XIOS").resume(); 
     299    *conversion_by_NetCDF = field_hdl->conversion_by_NetCDF.getInheritedValue(); 
     300    CTimer::get("XIOS").suspend(); 
     301  } 
     302 
     303  bool cxios_is_defined_field_conversion_by_NetCDF(field_Ptr field_hdl) 
     304  { 
     305     CTimer::get("XIOS").resume(); 
     306     bool isDefined = field_hdl->conversion_by_NetCDF.hasInheritedValue(); 
    210307     CTimer::get("XIOS").suspend(); 
    211308     return isDefined; 
Note: See TracChangeset for help on using the changeset viewer.