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/generate_interface_impl.hpp

    r432 r445  
    4242    oss<<"{"<<iendl ; 
    4343    oss<<"   CTimer::get(\"XIOS\").resume();"<<iendl ; 
    44     oss<<"  return !"<<className<<"_hdl->"<<name<<".isEmpty();"<<iendl ; 
     44    oss<<"  return "<<className<<"_hdl->"<<name<<".hasInheritedValue();"<<iendl ; 
    4545    oss<<"   CTimer::get(\"XIOS\").suspend();"<<iendl ; 
    4646    oss<<"}"<<iendl ; 
     
    6464    oss<<"void cxios_get_"<<className<<"_"<<name<<"("<<className<<"_Ptr "<<className<<"_hdl, "<< typeName<<"* "<<name<<")"<<iendl ; 
    6565    oss<<"{"<<iendl; 
    66     oss<<"  *"<<name<<" = "<<className<<"_hdl->"<<name<<".getValue();"<<iendl ; 
     66    oss<<"  *"<<name<<" = "<<className<<"_hdl->"<<name<<".getInheritedValue();"<<iendl ; 
    6767    oss<<"}"<<iendl ; 
    6868    oss<<iendl ; 
     
    8888    oss<<"{"<<iendl ; 
    8989    oss<<"   CTimer::get(\"XIOS\").resume();"<<iendl ; 
    90     oss<<"  if(!string_copy("<<className<<"_hdl->"<<name<<".getValue(),"<<name<<" , "<<name<<"_size))"<<iendl ; 
     90    oss<<"  if(!string_copy("<<className<<"_hdl->"<<name<<".getInheritedValue(),"<<name<<" , "<<name<<"_size))"<<iendl ; 
    9191    oss<<"    ERROR(\"void cxios_get_"<<className<<"_"<<name<<"("<<className<<"_Ptr "<<className<<"_hdl, char * "<<name<<", int " 
    9292       <<name<<"_size)\", <<\"Input string is to short\");"<<iendl ; 
     
    115115    oss<<"{"<<iendl ; 
    116116    oss<<"   CTimer::get(\"XIOS\").resume();"<<iendl ; 
    117     oss<<"  if(!string_copy("<<className<<"_hdl->"<<name<<".getStringValue(),"<<name<<" , "<<name<<"_size))"<<iendl ; 
     117    oss<<"  if(!string_copy("<<className<<"_hdl->"<<name<<".getInheritedStringValue(),"<<name<<" , "<<name<<"_size))"<<iendl ; 
    118118    oss<<"    ERROR(\"void cxios_get_"<<className<<"_"<<name<<"("<<className<<"_Ptr "<<className<<"_hdl, char * "<<name<<", int " 
    119119       <<name<<"_size)\", <<\"Input string is to short\");"<<iendl ; 
     
    610610    oss<<"  CTimer::get(\"XIOS\").resume();"<<iendl ; \ 
    611611    oss<<"  CArray<"<<typeName<<",1> tmp("<<name<<",shape(extent1),neverDeleteData) ;"<<iendl ;\ 
    612     oss<<"  tmp="<<className<<"_hdl->"<<name<<" ;"<<iendl ;\ 
     612    oss<<"  tmp="<<className<<"_hdl->"<<name<<".getInheritedValue() ;"<<iendl ;\ 
    613613    oss<<"   CTimer::get(\"XIOS\").suspend();"<<iendl ;\ 
    614614    oss<<"}"<<iendl ;\ 
     
    634634    oss<<"  CTimer::get(\"XIOS\").resume();"<<iendl ; \ 
    635635    oss<<"  CArray<"<<typeName<<",2> tmp("<<name<<",shape(extent1,extent2),neverDeleteData) ;"<<iendl ;\ 
    636     oss<<"  tmp="<<className<<"_hdl->"<<name<<" ;"<<iendl ;\ 
     636    oss<<"  tmp="<<className<<"_hdl->"<<name<<".getInheritedValue() ;"<<iendl ;\ 
    637637    oss<<"   CTimer::get(\"XIOS\").suspend();"<<iendl ;\ 
    638638    oss<<"}"<<iendl ;\ 
     
    658658    oss<<"  CTimer::get(\"XIOS\").resume();"<<iendl ; \ 
    659659    oss<<"  CArray<"<<typeName<<",3> tmp("<<name<<",shape(extent1,extent2,extent3),neverDeleteData) ;"<<iendl ;\ 
    660     oss<<"  tmp="<<className<<"_hdl->"<<name<<" ;"<<iendl ;\ 
     660    oss<<"  tmp="<<className<<"_hdl->"<<name<<".getInheritedValue() ;"<<iendl ;\ 
    661661    oss<<"   CTimer::get(\"XIOS\").suspend();"<<iendl ;\ 
    662662    oss<<"}"<<iendl ;\ 
Note: See TracChangeset for help on using the changeset viewer.