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

    r532 r538  
    185185   
    186186   
    187   void cxios_set_file_output_freq(file_Ptr file_hdl, const char * output_freq, int output_freq_size) 
    188   { 
    189     std::string output_freq_str; 
    190     if(!cstr2string(output_freq, output_freq_size, output_freq_str)) return; 
    191      CTimer::get("XIOS").resume(); 
    192     file_hdl->output_freq.setValue(output_freq_str); 
    193      CTimer::get("XIOS").suspend(); 
    194   } 
    195    
    196   void cxios_get_file_output_freq(file_Ptr file_hdl, char * output_freq, int output_freq_size) 
    197   { 
    198      CTimer::get("XIOS").resume(); 
    199     if(!string_copy(file_hdl->output_freq.getInheritedValue(),output_freq , output_freq_size)) 
    200       ERROR("void cxios_get_file_output_freq(file_Ptr file_hdl, char * output_freq, int output_freq_size)", <<"Input string is to short"); 
    201      CTimer::get("XIOS").suspend(); 
     187  void cxios_set_file_output_freq(file_Ptr file_hdl, cxios_duration output_freq_c) 
     188  { 
     189    CTimer::get("XIOS").resume(); 
     190    file_hdl->output_freq.allocate(); 
     191    CDuration& output_freq = file_hdl->output_freq.get(); 
     192    output_freq.year = output_freq_c.year; 
     193    output_freq.month = output_freq_c.month; 
     194    output_freq.day = output_freq_c.day; 
     195    output_freq.hour = output_freq_c.hour; 
     196    output_freq.minute = output_freq_c.minute; 
     197    output_freq.second = output_freq_c.second; 
     198    output_freq.timestep = output_freq_c.timestep; 
     199    CTimer::get("XIOS").suspend(); 
     200  } 
     201   
     202  void cxios_get_file_output_freq(file_Ptr file_hdl, cxios_duration* output_freq_c) 
     203  { 
     204    CTimer::get("XIOS").resume(); 
     205    CDuration output_freq = file_hdl->output_freq.getInheritedValue(); 
     206    output_freq_c->year = output_freq.year; 
     207    output_freq_c->month = output_freq.month; 
     208    output_freq_c->day = output_freq.day; 
     209    output_freq_c->hour = output_freq.hour; 
     210    output_freq_c->minute = output_freq.minute; 
     211    output_freq_c->second = output_freq.second; 
     212    output_freq_c->timestep = output_freq.timestep; 
     213    CTimer::get("XIOS").suspend(); 
    202214  } 
    203215   
     
    258270   
    259271   
    260   void cxios_set_file_split_freq(file_Ptr file_hdl, const char * split_freq, int split_freq_size) 
    261   { 
    262     std::string split_freq_str; 
    263     if(!cstr2string(split_freq, split_freq_size, split_freq_str)) return; 
    264      CTimer::get("XIOS").resume(); 
    265     file_hdl->split_freq.setValue(split_freq_str); 
    266      CTimer::get("XIOS").suspend(); 
    267   } 
    268    
    269   void cxios_get_file_split_freq(file_Ptr file_hdl, char * split_freq, int split_freq_size) 
    270   { 
    271      CTimer::get("XIOS").resume(); 
    272     if(!string_copy(file_hdl->split_freq.getInheritedValue(),split_freq , split_freq_size)) 
    273       ERROR("void cxios_get_file_split_freq(file_Ptr file_hdl, char * split_freq, int split_freq_size)", <<"Input string is to short"); 
    274      CTimer::get("XIOS").suspend(); 
     272  void cxios_set_file_split_freq(file_Ptr file_hdl, cxios_duration split_freq_c) 
     273  { 
     274    CTimer::get("XIOS").resume(); 
     275    file_hdl->split_freq.allocate(); 
     276    CDuration& split_freq = file_hdl->split_freq.get(); 
     277    split_freq.year = split_freq_c.year; 
     278    split_freq.month = split_freq_c.month; 
     279    split_freq.day = split_freq_c.day; 
     280    split_freq.hour = split_freq_c.hour; 
     281    split_freq.minute = split_freq_c.minute; 
     282    split_freq.second = split_freq_c.second; 
     283    split_freq.timestep = split_freq_c.timestep; 
     284    CTimer::get("XIOS").suspend(); 
     285  } 
     286   
     287  void cxios_get_file_split_freq(file_Ptr file_hdl, cxios_duration* split_freq_c) 
     288  { 
     289    CTimer::get("XIOS").resume(); 
     290    CDuration split_freq = file_hdl->split_freq.getInheritedValue(); 
     291    split_freq_c->year = split_freq.year; 
     292    split_freq_c->month = split_freq.month; 
     293    split_freq_c->day = split_freq.day; 
     294    split_freq_c->hour = split_freq.hour; 
     295    split_freq_c->minute = split_freq.minute; 
     296    split_freq_c->second = split_freq.second; 
     297    split_freq_c->timestep = split_freq.timestep; 
     298    CTimer::get("XIOS").suspend(); 
    275299  } 
    276300   
     
    310334   
    311335   
    312   void cxios_set_file_sync_freq(file_Ptr file_hdl, const char * sync_freq, int sync_freq_size) 
    313   { 
    314     std::string sync_freq_str; 
    315     if(!cstr2string(sync_freq, sync_freq_size, sync_freq_str)) return; 
    316      CTimer::get("XIOS").resume(); 
    317     file_hdl->sync_freq.setValue(sync_freq_str); 
    318      CTimer::get("XIOS").suspend(); 
    319   } 
    320    
    321   void cxios_get_file_sync_freq(file_Ptr file_hdl, char * sync_freq, int sync_freq_size) 
    322   { 
    323      CTimer::get("XIOS").resume(); 
    324     if(!string_copy(file_hdl->sync_freq.getInheritedValue(),sync_freq , sync_freq_size)) 
    325       ERROR("void cxios_get_file_sync_freq(file_Ptr file_hdl, char * sync_freq, int sync_freq_size)", <<"Input string is to short"); 
    326      CTimer::get("XIOS").suspend(); 
     336  void cxios_set_file_sync_freq(file_Ptr file_hdl, cxios_duration sync_freq_c) 
     337  { 
     338    CTimer::get("XIOS").resume(); 
     339    file_hdl->sync_freq.allocate(); 
     340    CDuration& sync_freq = file_hdl->sync_freq.get(); 
     341    sync_freq.year = sync_freq_c.year; 
     342    sync_freq.month = sync_freq_c.month; 
     343    sync_freq.day = sync_freq_c.day; 
     344    sync_freq.hour = sync_freq_c.hour; 
     345    sync_freq.minute = sync_freq_c.minute; 
     346    sync_freq.second = sync_freq_c.second; 
     347    sync_freq.timestep = sync_freq_c.timestep; 
     348    CTimer::get("XIOS").suspend(); 
     349  } 
     350   
     351  void cxios_get_file_sync_freq(file_Ptr file_hdl, cxios_duration* sync_freq_c) 
     352  { 
     353    CTimer::get("XIOS").resume(); 
     354    CDuration sync_freq = file_hdl->sync_freq.getInheritedValue(); 
     355    sync_freq_c->year = sync_freq.year; 
     356    sync_freq_c->month = sync_freq.month; 
     357    sync_freq_c->day = sync_freq.day; 
     358    sync_freq_c->hour = sync_freq.hour; 
     359    sync_freq_c->minute = sync_freq.minute; 
     360    sync_freq_c->second = sync_freq.second; 
     361    sync_freq_c->timestep = sync_freq.timestep; 
     362    CTimer::get("XIOS").suspend(); 
    327363  } 
    328364   
Note: See TracChangeset for help on using the changeset viewer.