Ignore:
Timestamp:
01/21/14 15:28:59 (10 years ago)
Author:
ymipsl
Message:

Enhancement : Add scale_factor and add_offset attribute to field output
Operation (field-add_offset)/scale_factor would be computed before output write.
If field attribute prec=2 the field would be rounded to nearest integer value and output as short int (2 bytes).

YM

File:
1 edited

Legend:

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

    r463 r464  
    1717  typedef xios::CField*  field_Ptr; 
    1818   
     19  void cxios_set_field_add_offset(field_Ptr field_hdl, double add_offset) 
     20  { 
     21     CTimer::get("XIOS").resume(); 
     22    field_hdl->add_offset.setValue(add_offset); 
     23    field_hdl->sendAttributToServer(field_hdl->add_offset); 
     24     CTimer::get("XIOS").suspend(); 
     25  } 
     26   
     27  void cxios_get_field_add_offset(field_Ptr field_hdl, double* add_offset) 
     28  { 
     29    *add_offset = field_hdl->add_offset.getInheritedValue(); 
     30  } 
     31   
     32  bool cxios_is_defined_field_add_offset(field_Ptr field_hdl ) 
     33  { 
     34     CTimer::get("XIOS").resume(); 
     35    return field_hdl->add_offset.hasInheritedValue(); 
     36     CTimer::get("XIOS").suspend(); 
     37  } 
     38   
     39   
     40   
    1941  void cxios_set_field_axis_ref(field_Ptr field_hdl, const char * axis_ref, int axis_ref_size) 
    2042  { 
     
    348370   
    349371   
     372  void cxios_set_field_scale_factor(field_Ptr field_hdl, double scale_factor) 
     373  { 
     374     CTimer::get("XIOS").resume(); 
     375    field_hdl->scale_factor.setValue(scale_factor); 
     376    field_hdl->sendAttributToServer(field_hdl->scale_factor); 
     377     CTimer::get("XIOS").suspend(); 
     378  } 
     379   
     380  void cxios_get_field_scale_factor(field_Ptr field_hdl, double* scale_factor) 
     381  { 
     382    *scale_factor = field_hdl->scale_factor.getInheritedValue(); 
     383  } 
     384   
     385  bool cxios_is_defined_field_scale_factor(field_Ptr field_hdl ) 
     386  { 
     387     CTimer::get("XIOS").resume(); 
     388    return field_hdl->scale_factor.hasInheritedValue(); 
     389     CTimer::get("XIOS").suspend(); 
     390  } 
     391   
     392   
     393   
    350394  void cxios_set_field_standard_name(field_Ptr field_hdl, const char * standard_name, int standard_name_size) 
    351395  { 
Note: See TracChangeset for help on using the changeset viewer.