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

    r432 r445  
    2727  void cxios_get_domaingroup_data_dim(domaingroup_Ptr domaingroup_hdl, int* data_dim) 
    2828  { 
    29     *data_dim = domaingroup_hdl->data_dim.getValue(); 
     29    *data_dim = domaingroup_hdl->data_dim.getInheritedValue(); 
    3030  } 
    3131   
     
    3333  { 
    3434     CTimer::get("XIOS").resume(); 
    35     return !domaingroup_hdl->data_dim.isEmpty(); 
     35    return domaingroup_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=domaingroup_hdl->data_i_index ; 
     54    tmp=domaingroup_hdl->data_i_index.getInheritedValue() ; 
    5555     CTimer::get("XIOS").suspend(); 
    5656  } 
     
    5959  { 
    6060     CTimer::get("XIOS").resume(); 
    61     return !domaingroup_hdl->data_i_index.isEmpty(); 
     61    return domaingroup_hdl->data_i_index.hasInheritedValue(); 
    6262     CTimer::get("XIOS").suspend(); 
    6363  } 
     
    7575  void cxios_get_domaingroup_data_ibegin(domaingroup_Ptr domaingroup_hdl, int* data_ibegin) 
    7676  { 
    77     *data_ibegin = domaingroup_hdl->data_ibegin.getValue(); 
     77    *data_ibegin = domaingroup_hdl->data_ibegin.getInheritedValue(); 
    7878  } 
    7979   
     
    8181  { 
    8282     CTimer::get("XIOS").resume(); 
    83     return !domaingroup_hdl->data_ibegin.isEmpty(); 
     83    return domaingroup_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=domaingroup_hdl->data_j_index ; 
     102    tmp=domaingroup_hdl->data_j_index.getInheritedValue() ; 
    103103     CTimer::get("XIOS").suspend(); 
    104104  } 
     
    107107  { 
    108108     CTimer::get("XIOS").resume(); 
    109     return !domaingroup_hdl->data_j_index.isEmpty(); 
     109    return domaingroup_hdl->data_j_index.hasInheritedValue(); 
    110110     CTimer::get("XIOS").suspend(); 
    111111  } 
     
    123123  void cxios_get_domaingroup_data_jbegin(domaingroup_Ptr domaingroup_hdl, int* data_jbegin) 
    124124  { 
    125     *data_jbegin = domaingroup_hdl->data_jbegin.getValue(); 
     125    *data_jbegin = domaingroup_hdl->data_jbegin.getInheritedValue(); 
    126126  } 
    127127   
     
    129129  { 
    130130     CTimer::get("XIOS").resume(); 
    131     return !domaingroup_hdl->data_jbegin.isEmpty(); 
     131    return domaingroup_hdl->data_jbegin.hasInheritedValue(); 
    132132     CTimer::get("XIOS").suspend(); 
    133133  } 
     
    145145  void cxios_get_domaingroup_data_n_index(domaingroup_Ptr domaingroup_hdl, int* data_n_index) 
    146146  { 
    147     *data_n_index = domaingroup_hdl->data_n_index.getValue(); 
     147    *data_n_index = domaingroup_hdl->data_n_index.getInheritedValue(); 
    148148  } 
    149149   
     
    151151  { 
    152152     CTimer::get("XIOS").resume(); 
    153     return !domaingroup_hdl->data_n_index.isEmpty(); 
     153    return domaingroup_hdl->data_n_index.hasInheritedValue(); 
    154154     CTimer::get("XIOS").suspend(); 
    155155  } 
     
    167167  void cxios_get_domaingroup_data_ni(domaingroup_Ptr domaingroup_hdl, int* data_ni) 
    168168  { 
    169     *data_ni = domaingroup_hdl->data_ni.getValue(); 
     169    *data_ni = domaingroup_hdl->data_ni.getInheritedValue(); 
    170170  } 
    171171   
     
    173173  { 
    174174     CTimer::get("XIOS").resume(); 
    175     return !domaingroup_hdl->data_ni.isEmpty(); 
     175    return domaingroup_hdl->data_ni.hasInheritedValue(); 
    176176     CTimer::get("XIOS").suspend(); 
    177177  } 
     
    189189  void cxios_get_domaingroup_data_nj(domaingroup_Ptr domaingroup_hdl, int* data_nj) 
    190190  { 
    191     *data_nj = domaingroup_hdl->data_nj.getValue(); 
     191    *data_nj = domaingroup_hdl->data_nj.getInheritedValue(); 
    192192  } 
    193193   
     
    195195  { 
    196196     CTimer::get("XIOS").resume(); 
    197     return !domaingroup_hdl->data_nj.isEmpty(); 
     197    return domaingroup_hdl->data_nj.hasInheritedValue(); 
    198198     CTimer::get("XIOS").suspend(); 
    199199  } 
     
    214214  { 
    215215     CTimer::get("XIOS").resume(); 
    216     if(!string_copy(domaingroup_hdl->domain_group_ref.getValue(),domain_group_ref , domain_group_ref_size)) 
     216    if(!string_copy(domaingroup_hdl->domain_group_ref.getInheritedValue(),domain_group_ref , domain_group_ref_size)) 
    217217      ERROR("void cxios_get_domaingroup_domain_group_ref(domaingroup_Ptr domaingroup_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 !domaingroup_hdl->domain_group_ref.isEmpty(); 
     224    return domaingroup_hdl->domain_group_ref.hasInheritedValue(); 
    225225     CTimer::get("XIOS").suspend(); 
    226226  } 
     
    241241  { 
    242242     CTimer::get("XIOS").resume(); 
    243     if(!string_copy(domaingroup_hdl->group_ref.getValue(),group_ref , group_ref_size)) 
     243    if(!string_copy(domaingroup_hdl->group_ref.getInheritedValue(),group_ref , group_ref_size)) 
    244244      ERROR("void cxios_get_domaingroup_group_ref(domaingroup_Ptr domaingroup_hdl, char * group_ref, int group_ref_size)", <<"Input string is to short"); 
    245245     CTimer::get("XIOS").suspend(); 
     
    249249  { 
    250250     CTimer::get("XIOS").resume(); 
    251     return !domaingroup_hdl->group_ref.isEmpty(); 
     251    return domaingroup_hdl->group_ref.hasInheritedValue(); 
    252252     CTimer::get("XIOS").suspend(); 
    253253  } 
     
    265265  void cxios_get_domaingroup_ibegin(domaingroup_Ptr domaingroup_hdl, int* ibegin) 
    266266  { 
    267     *ibegin = domaingroup_hdl->ibegin.getValue(); 
     267    *ibegin = domaingroup_hdl->ibegin.getInheritedValue(); 
    268268  } 
    269269   
     
    271271  { 
    272272     CTimer::get("XIOS").resume(); 
    273     return !domaingroup_hdl->ibegin.isEmpty(); 
     273    return domaingroup_hdl->ibegin.hasInheritedValue(); 
    274274     CTimer::get("XIOS").suspend(); 
    275275  } 
     
    287287  void cxios_get_domaingroup_iend(domaingroup_Ptr domaingroup_hdl, int* iend) 
    288288  { 
    289     *iend = domaingroup_hdl->iend.getValue(); 
     289    *iend = domaingroup_hdl->iend.getInheritedValue(); 
    290290  } 
    291291   
     
    293293  { 
    294294     CTimer::get("XIOS").resume(); 
    295     return !domaingroup_hdl->iend.isEmpty(); 
     295    return domaingroup_hdl->iend.hasInheritedValue(); 
    296296     CTimer::get("XIOS").suspend(); 
    297297  } 
     
    309309  void cxios_get_domaingroup_jbegin(domaingroup_Ptr domaingroup_hdl, int* jbegin) 
    310310  { 
    311     *jbegin = domaingroup_hdl->jbegin.getValue(); 
     311    *jbegin = domaingroup_hdl->jbegin.getInheritedValue(); 
    312312  } 
    313313   
     
    315315  { 
    316316     CTimer::get("XIOS").resume(); 
    317     return !domaingroup_hdl->jbegin.isEmpty(); 
     317    return domaingroup_hdl->jbegin.hasInheritedValue(); 
    318318     CTimer::get("XIOS").suspend(); 
    319319  } 
     
    331331  void cxios_get_domaingroup_jend(domaingroup_Ptr domaingroup_hdl, int* jend) 
    332332  { 
    333     *jend = domaingroup_hdl->jend.getValue(); 
     333    *jend = domaingroup_hdl->jend.getInheritedValue(); 
    334334  } 
    335335   
     
    337337  { 
    338338     CTimer::get("XIOS").resume(); 
    339     return !domaingroup_hdl->jend.isEmpty(); 
     339    return domaingroup_hdl->jend.hasInheritedValue(); 
    340340     CTimer::get("XIOS").suspend(); 
    341341  } 
     
    356356    CTimer::get("XIOS").resume(); 
    357357    CArray<double,1> tmp(latvalue,shape(extent1),neverDeleteData) ; 
    358     tmp=domaingroup_hdl->latvalue ; 
     358    tmp=domaingroup_hdl->latvalue.getInheritedValue() ; 
    359359     CTimer::get("XIOS").suspend(); 
    360360  } 
     
    363363  { 
    364364     CTimer::get("XIOS").resume(); 
    365     return !domaingroup_hdl->latvalue.isEmpty(); 
     365    return domaingroup_hdl->latvalue.hasInheritedValue(); 
    366366     CTimer::get("XIOS").suspend(); 
    367367  } 
     
    382382  { 
    383383     CTimer::get("XIOS").resume(); 
    384     if(!string_copy(domaingroup_hdl->long_name.getValue(),long_name , long_name_size)) 
     384    if(!string_copy(domaingroup_hdl->long_name.getInheritedValue(),long_name , long_name_size)) 
    385385      ERROR("void cxios_get_domaingroup_long_name(domaingroup_Ptr domaingroup_hdl, char * long_name, int long_name_size)", <<"Input string is to short"); 
    386386     CTimer::get("XIOS").suspend(); 
     
    390390  { 
    391391     CTimer::get("XIOS").resume(); 
    392     return !domaingroup_hdl->long_name.isEmpty(); 
     392    return domaingroup_hdl->long_name.hasInheritedValue(); 
    393393     CTimer::get("XIOS").suspend(); 
    394394  } 
     
    409409    CTimer::get("XIOS").resume(); 
    410410    CArray<double,1> tmp(lonvalue,shape(extent1),neverDeleteData) ; 
    411     tmp=domaingroup_hdl->lonvalue ; 
     411    tmp=domaingroup_hdl->lonvalue.getInheritedValue() ; 
    412412     CTimer::get("XIOS").suspend(); 
    413413  } 
     
    416416  { 
    417417     CTimer::get("XIOS").resume(); 
    418     return !domaingroup_hdl->lonvalue.isEmpty(); 
     418    return domaingroup_hdl->lonvalue.hasInheritedValue(); 
    419419     CTimer::get("XIOS").suspend(); 
    420420  } 
     
    435435    CTimer::get("XIOS").resume(); 
    436436    CArray<bool,2> tmp(mask,shape(extent1,extent2),neverDeleteData) ; 
    437     tmp=domaingroup_hdl->mask ; 
     437    tmp=domaingroup_hdl->mask.getInheritedValue() ; 
    438438     CTimer::get("XIOS").suspend(); 
    439439  } 
     
    442442  { 
    443443     CTimer::get("XIOS").resume(); 
    444     return !domaingroup_hdl->mask.isEmpty(); 
     444    return domaingroup_hdl->mask.hasInheritedValue(); 
    445445     CTimer::get("XIOS").suspend(); 
    446446  } 
     
    461461  { 
    462462     CTimer::get("XIOS").resume(); 
    463     if(!string_copy(domaingroup_hdl->name.getValue(),name , name_size)) 
     463    if(!string_copy(domaingroup_hdl->name.getInheritedValue(),name , name_size)) 
    464464      ERROR("void cxios_get_domaingroup_name(domaingroup_Ptr domaingroup_hdl, char * name, int name_size)", <<"Input string is to short"); 
    465465     CTimer::get("XIOS").suspend(); 
     
    469469  { 
    470470     CTimer::get("XIOS").resume(); 
    471     return !domaingroup_hdl->name.isEmpty(); 
     471    return domaingroup_hdl->name.hasInheritedValue(); 
    472472     CTimer::get("XIOS").suspend(); 
    473473  } 
     
    485485  void cxios_get_domaingroup_ni(domaingroup_Ptr domaingroup_hdl, int* ni) 
    486486  { 
    487     *ni = domaingroup_hdl->ni.getValue(); 
     487    *ni = domaingroup_hdl->ni.getInheritedValue(); 
    488488  } 
    489489   
     
    491491  { 
    492492     CTimer::get("XIOS").resume(); 
    493     return !domaingroup_hdl->ni.isEmpty(); 
     493    return domaingroup_hdl->ni.hasInheritedValue(); 
    494494     CTimer::get("XIOS").suspend(); 
    495495  } 
     
    507507  void cxios_get_domaingroup_ni_glo(domaingroup_Ptr domaingroup_hdl, int* ni_glo) 
    508508  { 
    509     *ni_glo = domaingroup_hdl->ni_glo.getValue(); 
     509    *ni_glo = domaingroup_hdl->ni_glo.getInheritedValue(); 
    510510  } 
    511511   
     
    513513  { 
    514514     CTimer::get("XIOS").resume(); 
    515     return !domaingroup_hdl->ni_glo.isEmpty(); 
     515    return domaingroup_hdl->ni_glo.hasInheritedValue(); 
    516516     CTimer::get("XIOS").suspend(); 
    517517  } 
     
    529529  void cxios_get_domaingroup_nj(domaingroup_Ptr domaingroup_hdl, int* nj) 
    530530  { 
    531     *nj = domaingroup_hdl->nj.getValue(); 
     531    *nj = domaingroup_hdl->nj.getInheritedValue(); 
    532532  } 
    533533   
     
    535535  { 
    536536     CTimer::get("XIOS").resume(); 
    537     return !domaingroup_hdl->nj.isEmpty(); 
     537    return domaingroup_hdl->nj.hasInheritedValue(); 
    538538     CTimer::get("XIOS").suspend(); 
    539539  } 
     
    551551  void cxios_get_domaingroup_nj_glo(domaingroup_Ptr domaingroup_hdl, int* nj_glo) 
    552552  { 
    553     *nj_glo = domaingroup_hdl->nj_glo.getValue(); 
     553    *nj_glo = domaingroup_hdl->nj_glo.getInheritedValue(); 
    554554  } 
    555555   
     
    557557  { 
    558558     CTimer::get("XIOS").resume(); 
    559     return !domaingroup_hdl->nj_glo.isEmpty(); 
     559    return domaingroup_hdl->nj_glo.hasInheritedValue(); 
    560560     CTimer::get("XIOS").suspend(); 
    561561  } 
     
    576576  { 
    577577     CTimer::get("XIOS").resume(); 
    578     if(!string_copy(domaingroup_hdl->standard_name.getValue(),standard_name , standard_name_size)) 
     578    if(!string_copy(domaingroup_hdl->standard_name.getInheritedValue(),standard_name , standard_name_size)) 
    579579      ERROR("void cxios_get_domaingroup_standard_name(domaingroup_Ptr domaingroup_hdl, char * standard_name, int standard_name_size)", <<"Input string is to short"); 
    580580     CTimer::get("XIOS").suspend(); 
     
    584584  { 
    585585     CTimer::get("XIOS").resume(); 
    586     return !domaingroup_hdl->standard_name.isEmpty(); 
     586    return domaingroup_hdl->standard_name.hasInheritedValue(); 
    587587     CTimer::get("XIOS").suspend(); 
    588588  } 
     
    600600  void cxios_get_domaingroup_zoom_ibegin(domaingroup_Ptr domaingroup_hdl, int* zoom_ibegin) 
    601601  { 
    602     *zoom_ibegin = domaingroup_hdl->zoom_ibegin.getValue(); 
     602    *zoom_ibegin = domaingroup_hdl->zoom_ibegin.getInheritedValue(); 
    603603  } 
    604604   
     
    606606  { 
    607607     CTimer::get("XIOS").resume(); 
    608     return !domaingroup_hdl->zoom_ibegin.isEmpty(); 
     608    return domaingroup_hdl->zoom_ibegin.hasInheritedValue(); 
    609609     CTimer::get("XIOS").suspend(); 
    610610  } 
     
    622622  void cxios_get_domaingroup_zoom_ibegin_loc(domaingroup_Ptr domaingroup_hdl, int* zoom_ibegin_loc) 
    623623  { 
    624     *zoom_ibegin_loc = domaingroup_hdl->zoom_ibegin_loc.getValue(); 
     624    *zoom_ibegin_loc = domaingroup_hdl->zoom_ibegin_loc.getInheritedValue(); 
    625625  } 
    626626   
     
    628628  { 
    629629     CTimer::get("XIOS").resume(); 
    630     return !domaingroup_hdl->zoom_ibegin_loc.isEmpty(); 
     630    return domaingroup_hdl->zoom_ibegin_loc.hasInheritedValue(); 
    631631     CTimer::get("XIOS").suspend(); 
    632632  } 
     
    644644  void cxios_get_domaingroup_zoom_jbegin(domaingroup_Ptr domaingroup_hdl, int* zoom_jbegin) 
    645645  { 
    646     *zoom_jbegin = domaingroup_hdl->zoom_jbegin.getValue(); 
     646    *zoom_jbegin = domaingroup_hdl->zoom_jbegin.getInheritedValue(); 
    647647  } 
    648648   
     
    650650  { 
    651651     CTimer::get("XIOS").resume(); 
    652     return !domaingroup_hdl->zoom_jbegin.isEmpty(); 
     652    return domaingroup_hdl->zoom_jbegin.hasInheritedValue(); 
    653653     CTimer::get("XIOS").suspend(); 
    654654  } 
     
    666666  void cxios_get_domaingroup_zoom_jbegin_loc(domaingroup_Ptr domaingroup_hdl, int* zoom_jbegin_loc) 
    667667  { 
    668     *zoom_jbegin_loc = domaingroup_hdl->zoom_jbegin_loc.getValue(); 
     668    *zoom_jbegin_loc = domaingroup_hdl->zoom_jbegin_loc.getInheritedValue(); 
    669669  } 
    670670   
     
    672672  { 
    673673     CTimer::get("XIOS").resume(); 
    674     return !domaingroup_hdl->zoom_jbegin_loc.isEmpty(); 
     674    return domaingroup_hdl->zoom_jbegin_loc.hasInheritedValue(); 
    675675     CTimer::get("XIOS").suspend(); 
    676676  } 
     
    688688  void cxios_get_domaingroup_zoom_ni(domaingroup_Ptr domaingroup_hdl, int* zoom_ni) 
    689689  { 
    690     *zoom_ni = domaingroup_hdl->zoom_ni.getValue(); 
     690    *zoom_ni = domaingroup_hdl->zoom_ni.getInheritedValue(); 
    691691  } 
    692692   
     
    694694  { 
    695695     CTimer::get("XIOS").resume(); 
    696     return !domaingroup_hdl->zoom_ni.isEmpty(); 
     696    return domaingroup_hdl->zoom_ni.hasInheritedValue(); 
    697697     CTimer::get("XIOS").suspend(); 
    698698  } 
     
    710710  void cxios_get_domaingroup_zoom_ni_loc(domaingroup_Ptr domaingroup_hdl, int* zoom_ni_loc) 
    711711  { 
    712     *zoom_ni_loc = domaingroup_hdl->zoom_ni_loc.getValue(); 
     712    *zoom_ni_loc = domaingroup_hdl->zoom_ni_loc.getInheritedValue(); 
    713713  } 
    714714   
     
    716716  { 
    717717     CTimer::get("XIOS").resume(); 
    718     return !domaingroup_hdl->zoom_ni_loc.isEmpty(); 
     718    return domaingroup_hdl->zoom_ni_loc.hasInheritedValue(); 
    719719     CTimer::get("XIOS").suspend(); 
    720720  } 
     
    732732  void cxios_get_domaingroup_zoom_nj(domaingroup_Ptr domaingroup_hdl, int* zoom_nj) 
    733733  { 
    734     *zoom_nj = domaingroup_hdl->zoom_nj.getValue(); 
     734    *zoom_nj = domaingroup_hdl->zoom_nj.getInheritedValue(); 
    735735  } 
    736736   
     
    738738  { 
    739739     CTimer::get("XIOS").resume(); 
    740     return !domaingroup_hdl->zoom_nj.isEmpty(); 
     740    return domaingroup_hdl->zoom_nj.hasInheritedValue(); 
    741741     CTimer::get("XIOS").suspend(); 
    742742  } 
     
    754754  void cxios_get_domaingroup_zoom_nj_loc(domaingroup_Ptr domaingroup_hdl, int* zoom_nj_loc) 
    755755  { 
    756     *zoom_nj_loc = domaingroup_hdl->zoom_nj_loc.getValue(); 
     756    *zoom_nj_loc = domaingroup_hdl->zoom_nj_loc.getInheritedValue(); 
    757757  } 
    758758   
     
    760760  { 
    761761     CTimer::get("XIOS").resume(); 
    762     return !domaingroup_hdl->zoom_nj_loc.isEmpty(); 
     762    return domaingroup_hdl->zoom_nj_loc.hasInheritedValue(); 
    763763     CTimer::get("XIOS").suspend(); 
    764764  } 
Note: See TracChangeset for help on using the changeset viewer.