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/icdomain_attr.cpp

    r1626 r2616  
    4242 
    4343 
     44  void cxios_set_domain_area_1d(domain_Ptr domain_hdl, double* area_1d, int* extent) 
     45  { 
     46    CTimer::get("XIOS").resume(); 
     47    CArray<double,1> tmp(area_1d, shape(extent[0]), neverDeleteData); 
     48    domain_hdl->area_1d.reference(tmp.copy()); 
     49     CTimer::get("XIOS").suspend(); 
     50  } 
     51 
     52  void cxios_get_domain_area_1d(domain_Ptr domain_hdl, double* area_1d, int* extent) 
     53  { 
     54    CTimer::get("XIOS").resume(); 
     55    CArray<double,1> tmp(area_1d, shape(extent[0]), neverDeleteData); 
     56    tmp=domain_hdl->area_1d.getInheritedValue(); 
     57     CTimer::get("XIOS").suspend(); 
     58  } 
     59 
     60  bool cxios_is_defined_domain_area_1d(domain_Ptr domain_hdl) 
     61  { 
     62     CTimer::get("XIOS").resume(); 
     63     bool isDefined = domain_hdl->area_1d.hasInheritedValue(); 
     64     CTimer::get("XIOS").suspend(); 
     65     return isDefined; 
     66  } 
     67 
     68 
     69  void cxios_set_domain_area_2d(domain_Ptr domain_hdl, double* area_2d, int* extent) 
     70  { 
     71    CTimer::get("XIOS").resume(); 
     72    CArray<double,2> tmp(area_2d, shape(extent[0], extent[1]), neverDeleteData); 
     73    domain_hdl->area_2d.reference(tmp.copy()); 
     74     CTimer::get("XIOS").suspend(); 
     75  } 
     76 
     77  void cxios_get_domain_area_2d(domain_Ptr domain_hdl, double* area_2d, int* extent) 
     78  { 
     79    CTimer::get("XIOS").resume(); 
     80    CArray<double,2> tmp(area_2d, shape(extent[0], extent[1]), neverDeleteData); 
     81    tmp=domain_hdl->area_2d.getInheritedValue(); 
     82     CTimer::get("XIOS").suspend(); 
     83  } 
     84 
     85  bool cxios_is_defined_domain_area_2d(domain_Ptr domain_hdl) 
     86  { 
     87     CTimer::get("XIOS").resume(); 
     88     bool isDefined = domain_hdl->area_2d.hasInheritedValue(); 
     89     CTimer::get("XIOS").suspend(); 
     90     return isDefined; 
     91  } 
     92 
     93 
    4494  void cxios_set_domain_bounds_lat_1d(domain_Ptr domain_hdl, double* bounds_lat_1d, int* extent) 
    4595  { 
     
    194244 
    195245 
     246  void cxios_set_domain_chunking_weight_i(domain_Ptr domain_hdl, double chunking_weight_i) 
     247  { 
     248    CTimer::get("XIOS").resume(); 
     249    domain_hdl->chunking_weight_i.setValue(chunking_weight_i); 
     250    CTimer::get("XIOS").suspend(); 
     251  } 
     252 
     253  void cxios_get_domain_chunking_weight_i(domain_Ptr domain_hdl, double* chunking_weight_i) 
     254  { 
     255    CTimer::get("XIOS").resume(); 
     256    *chunking_weight_i = domain_hdl->chunking_weight_i.getInheritedValue(); 
     257    CTimer::get("XIOS").suspend(); 
     258  } 
     259 
     260  bool cxios_is_defined_domain_chunking_weight_i(domain_Ptr domain_hdl) 
     261  { 
     262     CTimer::get("XIOS").resume(); 
     263     bool isDefined = domain_hdl->chunking_weight_i.hasInheritedValue(); 
     264     CTimer::get("XIOS").suspend(); 
     265     return isDefined; 
     266  } 
     267 
     268 
     269  void cxios_set_domain_chunking_weight_j(domain_Ptr domain_hdl, double chunking_weight_j) 
     270  { 
     271    CTimer::get("XIOS").resume(); 
     272    domain_hdl->chunking_weight_j.setValue(chunking_weight_j); 
     273    CTimer::get("XIOS").suspend(); 
     274  } 
     275 
     276  void cxios_get_domain_chunking_weight_j(domain_Ptr domain_hdl, double* chunking_weight_j) 
     277  { 
     278    CTimer::get("XIOS").resume(); 
     279    *chunking_weight_j = domain_hdl->chunking_weight_j.getInheritedValue(); 
     280    CTimer::get("XIOS").suspend(); 
     281  } 
     282 
     283  bool cxios_is_defined_domain_chunking_weight_j(domain_Ptr domain_hdl) 
     284  { 
     285     CTimer::get("XIOS").resume(); 
     286     bool isDefined = domain_hdl->chunking_weight_j.hasInheritedValue(); 
     287     CTimer::get("XIOS").suspend(); 
     288     return isDefined; 
     289  } 
     290 
     291 
    196292  void cxios_set_domain_comment(domain_Ptr domain_hdl, const char * comment, int comment_size) 
    197293  { 
     
    9281024 
    9291025 
     1026  void cxios_set_domain_nvertex_name(domain_Ptr domain_hdl, const char * nvertex_name, int nvertex_name_size) 
     1027  { 
     1028    std::string nvertex_name_str; 
     1029    if (!cstr2string(nvertex_name, nvertex_name_size, nvertex_name_str)) return; 
     1030    CTimer::get("XIOS").resume(); 
     1031    domain_hdl->nvertex_name.setValue(nvertex_name_str); 
     1032    CTimer::get("XIOS").suspend(); 
     1033  } 
     1034 
     1035  void cxios_get_domain_nvertex_name(domain_Ptr domain_hdl, char * nvertex_name, int nvertex_name_size) 
     1036  { 
     1037    CTimer::get("XIOS").resume(); 
     1038    if (!string_copy(domain_hdl->nvertex_name.getInheritedValue(), nvertex_name, nvertex_name_size)) 
     1039      ERROR("void cxios_get_domain_nvertex_name(domain_Ptr domain_hdl, char * nvertex_name, int nvertex_name_size)", << "Input string is too short"); 
     1040    CTimer::get("XIOS").suspend(); 
     1041  } 
     1042 
     1043  bool cxios_is_defined_domain_nvertex_name(domain_Ptr domain_hdl) 
     1044  { 
     1045     CTimer::get("XIOS").resume(); 
     1046     bool isDefined = domain_hdl->nvertex_name.hasInheritedValue(); 
     1047     CTimer::get("XIOS").suspend(); 
     1048     return isDefined; 
     1049  } 
     1050 
     1051 
    9301052  void cxios_set_domain_prec(domain_Ptr domain_hdl, int prec) 
    9311053  { 
Note: See TracChangeset for help on using the changeset viewer.