Ignore:
Timestamp:
12/11/14 16:07:42 (10 years ago)
Author:
rlacroix
Message:

Convert more attributes to use the new duration type:

  • field: freq_op and freq_offset
  • file: output_freq, sync_freq and split_freq.

Remember that you now have to use the "xios_duration" type instead of strings to get/set those attributes through the Fortran interface.

File:
1 edited

Legend:

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

    r532 r538  
    211211   
    212212   
    213   void cxios_set_filegroup_output_freq(filegroup_Ptr filegroup_hdl, const char * output_freq, int output_freq_size) 
    214   { 
    215     std::string output_freq_str; 
    216     if(!cstr2string(output_freq, output_freq_size, output_freq_str)) return; 
    217      CTimer::get("XIOS").resume(); 
    218     filegroup_hdl->output_freq.setValue(output_freq_str); 
    219      CTimer::get("XIOS").suspend(); 
    220   } 
    221    
    222   void cxios_get_filegroup_output_freq(filegroup_Ptr filegroup_hdl, char * output_freq, int output_freq_size) 
    223   { 
    224      CTimer::get("XIOS").resume(); 
    225     if(!string_copy(filegroup_hdl->output_freq.getInheritedValue(),output_freq , output_freq_size)) 
    226       ERROR("void cxios_get_filegroup_output_freq(filegroup_Ptr filegroup_hdl, char * output_freq, int output_freq_size)", <<"Input string is to short"); 
    227      CTimer::get("XIOS").suspend(); 
     213  void cxios_set_filegroup_output_freq(filegroup_Ptr filegroup_hdl, cxios_duration output_freq_c) 
     214  { 
     215    CTimer::get("XIOS").resume(); 
     216    filegroup_hdl->output_freq.allocate(); 
     217    CDuration& output_freq = filegroup_hdl->output_freq.get(); 
     218    output_freq.year = output_freq_c.year; 
     219    output_freq.month = output_freq_c.month; 
     220    output_freq.day = output_freq_c.day; 
     221    output_freq.hour = output_freq_c.hour; 
     222    output_freq.minute = output_freq_c.minute; 
     223    output_freq.second = output_freq_c.second; 
     224    output_freq.timestep = output_freq_c.timestep; 
     225    CTimer::get("XIOS").suspend(); 
     226  } 
     227   
     228  void cxios_get_filegroup_output_freq(filegroup_Ptr filegroup_hdl, cxios_duration* output_freq_c) 
     229  { 
     230    CTimer::get("XIOS").resume(); 
     231    CDuration output_freq = filegroup_hdl->output_freq.getInheritedValue(); 
     232    output_freq_c->year = output_freq.year; 
     233    output_freq_c->month = output_freq.month; 
     234    output_freq_c->day = output_freq.day; 
     235    output_freq_c->hour = output_freq.hour; 
     236    output_freq_c->minute = output_freq.minute; 
     237    output_freq_c->second = output_freq.second; 
     238    output_freq_c->timestep = output_freq.timestep; 
     239    CTimer::get("XIOS").suspend(); 
    228240  } 
    229241   
     
    284296   
    285297   
    286   void cxios_set_filegroup_split_freq(filegroup_Ptr filegroup_hdl, const char * split_freq, int split_freq_size) 
    287   { 
    288     std::string split_freq_str; 
    289     if(!cstr2string(split_freq, split_freq_size, split_freq_str)) return; 
    290      CTimer::get("XIOS").resume(); 
    291     filegroup_hdl->split_freq.setValue(split_freq_str); 
    292      CTimer::get("XIOS").suspend(); 
    293   } 
    294    
    295   void cxios_get_filegroup_split_freq(filegroup_Ptr filegroup_hdl, char * split_freq, int split_freq_size) 
    296   { 
    297      CTimer::get("XIOS").resume(); 
    298     if(!string_copy(filegroup_hdl->split_freq.getInheritedValue(),split_freq , split_freq_size)) 
    299       ERROR("void cxios_get_filegroup_split_freq(filegroup_Ptr filegroup_hdl, char * split_freq, int split_freq_size)", <<"Input string is to short"); 
    300      CTimer::get("XIOS").suspend(); 
     298  void cxios_set_filegroup_split_freq(filegroup_Ptr filegroup_hdl, cxios_duration split_freq_c) 
     299  { 
     300    CTimer::get("XIOS").resume(); 
     301    filegroup_hdl->split_freq.allocate(); 
     302    CDuration& split_freq = filegroup_hdl->split_freq.get(); 
     303    split_freq.year = split_freq_c.year; 
     304    split_freq.month = split_freq_c.month; 
     305    split_freq.day = split_freq_c.day; 
     306    split_freq.hour = split_freq_c.hour; 
     307    split_freq.minute = split_freq_c.minute; 
     308    split_freq.second = split_freq_c.second; 
     309    split_freq.timestep = split_freq_c.timestep; 
     310    CTimer::get("XIOS").suspend(); 
     311  } 
     312   
     313  void cxios_get_filegroup_split_freq(filegroup_Ptr filegroup_hdl, cxios_duration* split_freq_c) 
     314  { 
     315    CTimer::get("XIOS").resume(); 
     316    CDuration split_freq = filegroup_hdl->split_freq.getInheritedValue(); 
     317    split_freq_c->year = split_freq.year; 
     318    split_freq_c->month = split_freq.month; 
     319    split_freq_c->day = split_freq.day; 
     320    split_freq_c->hour = split_freq.hour; 
     321    split_freq_c->minute = split_freq.minute; 
     322    split_freq_c->second = split_freq.second; 
     323    split_freq_c->timestep = split_freq.timestep; 
     324    CTimer::get("XIOS").suspend(); 
    301325  } 
    302326   
     
    336360   
    337361   
    338   void cxios_set_filegroup_sync_freq(filegroup_Ptr filegroup_hdl, const char * sync_freq, int sync_freq_size) 
    339   { 
    340     std::string sync_freq_str; 
    341     if(!cstr2string(sync_freq, sync_freq_size, sync_freq_str)) return; 
    342      CTimer::get("XIOS").resume(); 
    343     filegroup_hdl->sync_freq.setValue(sync_freq_str); 
    344      CTimer::get("XIOS").suspend(); 
    345   } 
    346    
    347   void cxios_get_filegroup_sync_freq(filegroup_Ptr filegroup_hdl, char * sync_freq, int sync_freq_size) 
    348   { 
    349      CTimer::get("XIOS").resume(); 
    350     if(!string_copy(filegroup_hdl->sync_freq.getInheritedValue(),sync_freq , sync_freq_size)) 
    351       ERROR("void cxios_get_filegroup_sync_freq(filegroup_Ptr filegroup_hdl, char * sync_freq, int sync_freq_size)", <<"Input string is to short"); 
    352      CTimer::get("XIOS").suspend(); 
     362  void cxios_set_filegroup_sync_freq(filegroup_Ptr filegroup_hdl, cxios_duration sync_freq_c) 
     363  { 
     364    CTimer::get("XIOS").resume(); 
     365    filegroup_hdl->sync_freq.allocate(); 
     366    CDuration& sync_freq = filegroup_hdl->sync_freq.get(); 
     367    sync_freq.year = sync_freq_c.year; 
     368    sync_freq.month = sync_freq_c.month; 
     369    sync_freq.day = sync_freq_c.day; 
     370    sync_freq.hour = sync_freq_c.hour; 
     371    sync_freq.minute = sync_freq_c.minute; 
     372    sync_freq.second = sync_freq_c.second; 
     373    sync_freq.timestep = sync_freq_c.timestep; 
     374    CTimer::get("XIOS").suspend(); 
     375  } 
     376   
     377  void cxios_get_filegroup_sync_freq(filegroup_Ptr filegroup_hdl, cxios_duration* sync_freq_c) 
     378  { 
     379    CTimer::get("XIOS").resume(); 
     380    CDuration sync_freq = filegroup_hdl->sync_freq.getInheritedValue(); 
     381    sync_freq_c->year = sync_freq.year; 
     382    sync_freq_c->month = sync_freq.month; 
     383    sync_freq_c->day = sync_freq.day; 
     384    sync_freq_c->hour = sync_freq.hour; 
     385    sync_freq_c->minute = sync_freq.minute; 
     386    sync_freq_c->second = sync_freq.second; 
     387    sync_freq_c->timestep = sync_freq.timestep; 
     388    CTimer::get("XIOS").suspend(); 
    353389  } 
    354390   
Note: See TracChangeset for help on using the changeset viewer.