Ignore:
Timestamp:
06/19/13 10:09:36 (11 years ago)
Author:
ymipsl
Message:

Add possibility to make inheritance of attributes and reference before closing the context definition.
New fortran fonction : xios_solve inheritance()
After this call, the value of attribute have the inherited value of their parent.

YM

File:
1 edited

Legend:

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

    r432 r445  
    2727  void cxios_get_domain_data_dim(domain_Ptr domain_hdl, int* data_dim) 
    2828  { 
    29     *data_dim = domain_hdl->data_dim.getValue(); 
     29    *data_dim = domain_hdl->data_dim.getInheritedValue(); 
    3030  } 
    3131   
     
    3333  { 
    3434     CTimer::get("XIOS").resume(); 
    35     return !domain_hdl->data_dim.isEmpty(); 
     35    return domain_hdl->data_dim.hasInheritedValue(); 
    3636     CTimer::get("XIOS").suspend(); 
    3737  } 
     
    5252    CTimer::get("XIOS").resume(); 
    5353    CArray<int,1> tmp(data_i_index,shape(extent1),neverDeleteData) ; 
    54     tmp=domain_hdl->data_i_index ; 
     54    tmp=domain_hdl->data_i_index.getInheritedValue() ; 
    5555     CTimer::get("XIOS").suspend(); 
    5656  } 
     
    5959  { 
    6060     CTimer::get("XIOS").resume(); 
    61     return !domain_hdl->data_i_index.isEmpty(); 
     61    return domain_hdl->data_i_index.hasInheritedValue(); 
    6262     CTimer::get("XIOS").suspend(); 
    6363  } 
     
    7575  void cxios_get_domain_data_ibegin(domain_Ptr domain_hdl, int* data_ibegin) 
    7676  { 
    77     *data_ibegin = domain_hdl->data_ibegin.getValue(); 
     77    *data_ibegin = domain_hdl->data_ibegin.getInheritedValue(); 
    7878  } 
    7979   
     
    8181  { 
    8282     CTimer::get("XIOS").resume(); 
    83     return !domain_hdl->data_ibegin.isEmpty(); 
     83    return domain_hdl->data_ibegin.hasInheritedValue(); 
    8484     CTimer::get("XIOS").suspend(); 
    8585  } 
     
    100100    CTimer::get("XIOS").resume(); 
    101101    CArray<int,1> tmp(data_j_index,shape(extent1),neverDeleteData) ; 
    102     tmp=domain_hdl->data_j_index ; 
     102    tmp=domain_hdl->data_j_index.getInheritedValue() ; 
    103103     CTimer::get("XIOS").suspend(); 
    104104  } 
     
    107107  { 
    108108     CTimer::get("XIOS").resume(); 
    109     return !domain_hdl->data_j_index.isEmpty(); 
     109    return domain_hdl->data_j_index.hasInheritedValue(); 
    110110     CTimer::get("XIOS").suspend(); 
    111111  } 
     
    123123  void cxios_get_domain_data_jbegin(domain_Ptr domain_hdl, int* data_jbegin) 
    124124  { 
    125     *data_jbegin = domain_hdl->data_jbegin.getValue(); 
     125    *data_jbegin = domain_hdl->data_jbegin.getInheritedValue(); 
    126126  } 
    127127   
     
    129129  { 
    130130     CTimer::get("XIOS").resume(); 
    131     return !domain_hdl->data_jbegin.isEmpty(); 
     131    return domain_hdl->data_jbegin.hasInheritedValue(); 
    132132     CTimer::get("XIOS").suspend(); 
    133133  } 
     
    145145  void cxios_get_domain_data_n_index(domain_Ptr domain_hdl, int* data_n_index) 
    146146  { 
    147     *data_n_index = domain_hdl->data_n_index.getValue(); 
     147    *data_n_index = domain_hdl->data_n_index.getInheritedValue(); 
    148148  } 
    149149   
     
    151151  { 
    152152     CTimer::get("XIOS").resume(); 
    153     return !domain_hdl->data_n_index.isEmpty(); 
     153    return domain_hdl->data_n_index.hasInheritedValue(); 
    154154     CTimer::get("XIOS").suspend(); 
    155155  } 
     
    167167  void cxios_get_domain_data_ni(domain_Ptr domain_hdl, int* data_ni) 
    168168  { 
    169     *data_ni = domain_hdl->data_ni.getValue(); 
     169    *data_ni = domain_hdl->data_ni.getInheritedValue(); 
    170170  } 
    171171   
     
    173173  { 
    174174     CTimer::get("XIOS").resume(); 
    175     return !domain_hdl->data_ni.isEmpty(); 
     175    return domain_hdl->data_ni.hasInheritedValue(); 
    176176     CTimer::get("XIOS").suspend(); 
    177177  } 
     
    189189  void cxios_get_domain_data_nj(domain_Ptr domain_hdl, int* data_nj) 
    190190  { 
    191     *data_nj = domain_hdl->data_nj.getValue(); 
     191    *data_nj = domain_hdl->data_nj.getInheritedValue(); 
    192192  } 
    193193   
     
    195195  { 
    196196     CTimer::get("XIOS").resume(); 
    197     return !domain_hdl->data_nj.isEmpty(); 
     197    return domain_hdl->data_nj.hasInheritedValue(); 
    198198     CTimer::get("XIOS").suspend(); 
    199199  } 
     
    214214  { 
    215215     CTimer::get("XIOS").resume(); 
    216     if(!string_copy(domain_hdl->domain_group_ref.getValue(),domain_group_ref , domain_group_ref_size)) 
     216    if(!string_copy(domain_hdl->domain_group_ref.getInheritedValue(),domain_group_ref , domain_group_ref_size)) 
    217217      ERROR("void cxios_get_domain_domain_group_ref(domain_Ptr domain_hdl, char * domain_group_ref, int domain_group_ref_size)", <<"Input string is to short"); 
    218218     CTimer::get("XIOS").suspend(); 
     
    222222  { 
    223223     CTimer::get("XIOS").resume(); 
    224     return !domain_hdl->domain_group_ref.isEmpty(); 
     224    return domain_hdl->domain_group_ref.hasInheritedValue(); 
    225225     CTimer::get("XIOS").suspend(); 
    226226  } 
     
    238238  void cxios_get_domain_ibegin(domain_Ptr domain_hdl, int* ibegin) 
    239239  { 
    240     *ibegin = domain_hdl->ibegin.getValue(); 
     240    *ibegin = domain_hdl->ibegin.getInheritedValue(); 
    241241  } 
    242242   
     
    244244  { 
    245245     CTimer::get("XIOS").resume(); 
    246     return !domain_hdl->ibegin.isEmpty(); 
     246    return domain_hdl->ibegin.hasInheritedValue(); 
    247247     CTimer::get("XIOS").suspend(); 
    248248  } 
     
    260260  void cxios_get_domain_iend(domain_Ptr domain_hdl, int* iend) 
    261261  { 
    262     *iend = domain_hdl->iend.getValue(); 
     262    *iend = domain_hdl->iend.getInheritedValue(); 
    263263  } 
    264264   
     
    266266  { 
    267267     CTimer::get("XIOS").resume(); 
    268     return !domain_hdl->iend.isEmpty(); 
     268    return domain_hdl->iend.hasInheritedValue(); 
    269269     CTimer::get("XIOS").suspend(); 
    270270  } 
     
    282282  void cxios_get_domain_jbegin(domain_Ptr domain_hdl, int* jbegin) 
    283283  { 
    284     *jbegin = domain_hdl->jbegin.getValue(); 
     284    *jbegin = domain_hdl->jbegin.getInheritedValue(); 
    285285  } 
    286286   
     
    288288  { 
    289289     CTimer::get("XIOS").resume(); 
    290     return !domain_hdl->jbegin.isEmpty(); 
     290    return domain_hdl->jbegin.hasInheritedValue(); 
    291291     CTimer::get("XIOS").suspend(); 
    292292  } 
     
    304304  void cxios_get_domain_jend(domain_Ptr domain_hdl, int* jend) 
    305305  { 
    306     *jend = domain_hdl->jend.getValue(); 
     306    *jend = domain_hdl->jend.getInheritedValue(); 
    307307  } 
    308308   
     
    310310  { 
    311311     CTimer::get("XIOS").resume(); 
    312     return !domain_hdl->jend.isEmpty(); 
     312    return domain_hdl->jend.hasInheritedValue(); 
    313313     CTimer::get("XIOS").suspend(); 
    314314  } 
     
    329329    CTimer::get("XIOS").resume(); 
    330330    CArray<double,1> tmp(latvalue,shape(extent1),neverDeleteData) ; 
    331     tmp=domain_hdl->latvalue ; 
     331    tmp=domain_hdl->latvalue.getInheritedValue() ; 
    332332     CTimer::get("XIOS").suspend(); 
    333333  } 
     
    336336  { 
    337337     CTimer::get("XIOS").resume(); 
    338     return !domain_hdl->latvalue.isEmpty(); 
     338    return domain_hdl->latvalue.hasInheritedValue(); 
    339339     CTimer::get("XIOS").suspend(); 
    340340  } 
     
    355355  { 
    356356     CTimer::get("XIOS").resume(); 
    357     if(!string_copy(domain_hdl->long_name.getValue(),long_name , long_name_size)) 
     357    if(!string_copy(domain_hdl->long_name.getInheritedValue(),long_name , long_name_size)) 
    358358      ERROR("void cxios_get_domain_long_name(domain_Ptr domain_hdl, char * long_name, int long_name_size)", <<"Input string is to short"); 
    359359     CTimer::get("XIOS").suspend(); 
     
    363363  { 
    364364     CTimer::get("XIOS").resume(); 
    365     return !domain_hdl->long_name.isEmpty(); 
     365    return domain_hdl->long_name.hasInheritedValue(); 
    366366     CTimer::get("XIOS").suspend(); 
    367367  } 
     
    382382    CTimer::get("XIOS").resume(); 
    383383    CArray<double,1> tmp(lonvalue,shape(extent1),neverDeleteData) ; 
    384     tmp=domain_hdl->lonvalue ; 
     384    tmp=domain_hdl->lonvalue.getInheritedValue() ; 
    385385     CTimer::get("XIOS").suspend(); 
    386386  } 
     
    389389  { 
    390390     CTimer::get("XIOS").resume(); 
    391     return !domain_hdl->lonvalue.isEmpty(); 
     391    return domain_hdl->lonvalue.hasInheritedValue(); 
    392392     CTimer::get("XIOS").suspend(); 
    393393  } 
     
    408408    CTimer::get("XIOS").resume(); 
    409409    CArray<bool,2> tmp(mask,shape(extent1,extent2),neverDeleteData) ; 
    410     tmp=domain_hdl->mask ; 
     410    tmp=domain_hdl->mask.getInheritedValue() ; 
    411411     CTimer::get("XIOS").suspend(); 
    412412  } 
     
    415415  { 
    416416     CTimer::get("XIOS").resume(); 
    417     return !domain_hdl->mask.isEmpty(); 
     417    return domain_hdl->mask.hasInheritedValue(); 
    418418     CTimer::get("XIOS").suspend(); 
    419419  } 
     
    434434  { 
    435435     CTimer::get("XIOS").resume(); 
    436     if(!string_copy(domain_hdl->name.getValue(),name , name_size)) 
     436    if(!string_copy(domain_hdl->name.getInheritedValue(),name , name_size)) 
    437437      ERROR("void cxios_get_domain_name(domain_Ptr domain_hdl, char * name, int name_size)", <<"Input string is to short"); 
    438438     CTimer::get("XIOS").suspend(); 
     
    442442  { 
    443443     CTimer::get("XIOS").resume(); 
    444     return !domain_hdl->name.isEmpty(); 
     444    return domain_hdl->name.hasInheritedValue(); 
    445445     CTimer::get("XIOS").suspend(); 
    446446  } 
     
    458458  void cxios_get_domain_ni(domain_Ptr domain_hdl, int* ni) 
    459459  { 
    460     *ni = domain_hdl->ni.getValue(); 
     460    *ni = domain_hdl->ni.getInheritedValue(); 
    461461  } 
    462462   
     
    464464  { 
    465465     CTimer::get("XIOS").resume(); 
    466     return !domain_hdl->ni.isEmpty(); 
     466    return domain_hdl->ni.hasInheritedValue(); 
    467467     CTimer::get("XIOS").suspend(); 
    468468  } 
     
    480480  void cxios_get_domain_ni_glo(domain_Ptr domain_hdl, int* ni_glo) 
    481481  { 
    482     *ni_glo = domain_hdl->ni_glo.getValue(); 
     482    *ni_glo = domain_hdl->ni_glo.getInheritedValue(); 
    483483  } 
    484484   
     
    486486  { 
    487487     CTimer::get("XIOS").resume(); 
    488     return !domain_hdl->ni_glo.isEmpty(); 
     488    return domain_hdl->ni_glo.hasInheritedValue(); 
    489489     CTimer::get("XIOS").suspend(); 
    490490  } 
     
    502502  void cxios_get_domain_nj(domain_Ptr domain_hdl, int* nj) 
    503503  { 
    504     *nj = domain_hdl->nj.getValue(); 
     504    *nj = domain_hdl->nj.getInheritedValue(); 
    505505  } 
    506506   
     
    508508  { 
    509509     CTimer::get("XIOS").resume(); 
    510     return !domain_hdl->nj.isEmpty(); 
     510    return domain_hdl->nj.hasInheritedValue(); 
    511511     CTimer::get("XIOS").suspend(); 
    512512  } 
     
    524524  void cxios_get_domain_nj_glo(domain_Ptr domain_hdl, int* nj_glo) 
    525525  { 
    526     *nj_glo = domain_hdl->nj_glo.getValue(); 
     526    *nj_glo = domain_hdl->nj_glo.getInheritedValue(); 
    527527  } 
    528528   
     
    530530  { 
    531531     CTimer::get("XIOS").resume(); 
    532     return !domain_hdl->nj_glo.isEmpty(); 
     532    return domain_hdl->nj_glo.hasInheritedValue(); 
    533533     CTimer::get("XIOS").suspend(); 
    534534  } 
     
    549549  { 
    550550     CTimer::get("XIOS").resume(); 
    551     if(!string_copy(domain_hdl->standard_name.getValue(),standard_name , standard_name_size)) 
     551    if(!string_copy(domain_hdl->standard_name.getInheritedValue(),standard_name , standard_name_size)) 
    552552      ERROR("void cxios_get_domain_standard_name(domain_Ptr domain_hdl, char * standard_name, int standard_name_size)", <<"Input string is to short"); 
    553553     CTimer::get("XIOS").suspend(); 
     
    557557  { 
    558558     CTimer::get("XIOS").resume(); 
    559     return !domain_hdl->standard_name.isEmpty(); 
     559    return domain_hdl->standard_name.hasInheritedValue(); 
    560560     CTimer::get("XIOS").suspend(); 
    561561  } 
     
    573573  void cxios_get_domain_zoom_ibegin(domain_Ptr domain_hdl, int* zoom_ibegin) 
    574574  { 
    575     *zoom_ibegin = domain_hdl->zoom_ibegin.getValue(); 
     575    *zoom_ibegin = domain_hdl->zoom_ibegin.getInheritedValue(); 
    576576  } 
    577577   
     
    579579  { 
    580580     CTimer::get("XIOS").resume(); 
    581     return !domain_hdl->zoom_ibegin.isEmpty(); 
     581    return domain_hdl->zoom_ibegin.hasInheritedValue(); 
    582582     CTimer::get("XIOS").suspend(); 
    583583  } 
     
    595595  void cxios_get_domain_zoom_ibegin_loc(domain_Ptr domain_hdl, int* zoom_ibegin_loc) 
    596596  { 
    597     *zoom_ibegin_loc = domain_hdl->zoom_ibegin_loc.getValue(); 
     597    *zoom_ibegin_loc = domain_hdl->zoom_ibegin_loc.getInheritedValue(); 
    598598  } 
    599599   
     
    601601  { 
    602602     CTimer::get("XIOS").resume(); 
    603     return !domain_hdl->zoom_ibegin_loc.isEmpty(); 
     603    return domain_hdl->zoom_ibegin_loc.hasInheritedValue(); 
    604604     CTimer::get("XIOS").suspend(); 
    605605  } 
     
    617617  void cxios_get_domain_zoom_jbegin(domain_Ptr domain_hdl, int* zoom_jbegin) 
    618618  { 
    619     *zoom_jbegin = domain_hdl->zoom_jbegin.getValue(); 
     619    *zoom_jbegin = domain_hdl->zoom_jbegin.getInheritedValue(); 
    620620  } 
    621621   
     
    623623  { 
    624624     CTimer::get("XIOS").resume(); 
    625     return !domain_hdl->zoom_jbegin.isEmpty(); 
     625    return domain_hdl->zoom_jbegin.hasInheritedValue(); 
    626626     CTimer::get("XIOS").suspend(); 
    627627  } 
     
    639639  void cxios_get_domain_zoom_jbegin_loc(domain_Ptr domain_hdl, int* zoom_jbegin_loc) 
    640640  { 
    641     *zoom_jbegin_loc = domain_hdl->zoom_jbegin_loc.getValue(); 
     641    *zoom_jbegin_loc = domain_hdl->zoom_jbegin_loc.getInheritedValue(); 
    642642  } 
    643643   
     
    645645  { 
    646646     CTimer::get("XIOS").resume(); 
    647     return !domain_hdl->zoom_jbegin_loc.isEmpty(); 
     647    return domain_hdl->zoom_jbegin_loc.hasInheritedValue(); 
    648648     CTimer::get("XIOS").suspend(); 
    649649  } 
     
    661661  void cxios_get_domain_zoom_ni(domain_Ptr domain_hdl, int* zoom_ni) 
    662662  { 
    663     *zoom_ni = domain_hdl->zoom_ni.getValue(); 
     663    *zoom_ni = domain_hdl->zoom_ni.getInheritedValue(); 
    664664  } 
    665665   
     
    667667  { 
    668668     CTimer::get("XIOS").resume(); 
    669     return !domain_hdl->zoom_ni.isEmpty(); 
     669    return domain_hdl->zoom_ni.hasInheritedValue(); 
    670670     CTimer::get("XIOS").suspend(); 
    671671  } 
     
    683683  void cxios_get_domain_zoom_ni_loc(domain_Ptr domain_hdl, int* zoom_ni_loc) 
    684684  { 
    685     *zoom_ni_loc = domain_hdl->zoom_ni_loc.getValue(); 
     685    *zoom_ni_loc = domain_hdl->zoom_ni_loc.getInheritedValue(); 
    686686  } 
    687687   
     
    689689  { 
    690690     CTimer::get("XIOS").resume(); 
    691     return !domain_hdl->zoom_ni_loc.isEmpty(); 
     691    return domain_hdl->zoom_ni_loc.hasInheritedValue(); 
    692692     CTimer::get("XIOS").suspend(); 
    693693  } 
     
    705705  void cxios_get_domain_zoom_nj(domain_Ptr domain_hdl, int* zoom_nj) 
    706706  { 
    707     *zoom_nj = domain_hdl->zoom_nj.getValue(); 
     707    *zoom_nj = domain_hdl->zoom_nj.getInheritedValue(); 
    708708  } 
    709709   
     
    711711  { 
    712712     CTimer::get("XIOS").resume(); 
    713     return !domain_hdl->zoom_nj.isEmpty(); 
     713    return domain_hdl->zoom_nj.hasInheritedValue(); 
    714714     CTimer::get("XIOS").suspend(); 
    715715  } 
     
    727727  void cxios_get_domain_zoom_nj_loc(domain_Ptr domain_hdl, int* zoom_nj_loc) 
    728728  { 
    729     *zoom_nj_loc = domain_hdl->zoom_nj_loc.getValue(); 
     729    *zoom_nj_loc = domain_hdl->zoom_nj_loc.getInheritedValue(); 
    730730  } 
    731731   
     
    733733  { 
    734734     CTimer::get("XIOS").resume(); 
    735     return !domain_hdl->zoom_nj_loc.isEmpty(); 
     735    return domain_hdl->zoom_nj_loc.hasInheritedValue(); 
    736736     CTimer::get("XIOS").suspend(); 
    737737  } 
Note: See TracChangeset for help on using the changeset viewer.