Ignore:
Timestamp:
04/08/16 15:00:45 (8 years ago)
Author:
mhnguyen
Message:

Exposing transformation to Fortran interface

+) Export zoom and axis transformation to Fortran interface

Test
+) On Curie
+) All work

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/interface/c/icxml_tree.cpp

    r835 r836  
    2121#include "domain.hpp" 
    2222#include "variable.hpp" 
     23#include "zoom_domain.hpp" 
     24#include "interpolate_domain.hpp" 
     25#include "generate_rectilinear_domain.hpp" 
     26#include "zoom_axis.hpp" 
     27#include "interpolate_axis.hpp" 
     28#include "inverse_axis.hpp" 
    2329 
    2430extern "C" 
     
    4854   typedef xios::CVariableGroup *  XVariableGroupPtr; 
    4955 
     56   typedef xios::CTransformation<CDomain>   *  XTransformationDomainPtr; 
     57   typedef xios::CZoomDomain                *  XZoomDomainPtr; 
     58   typedef xios::CInterpolateDomain         *  XInterpolateDomainPtr; 
     59   typedef xios::CGenerateRectilinearDomain *  XGenerateRectilinearDomainPtr; 
     60 
     61   typedef xios::CTransformation<CAxis>   *  XTransformationAxisPtr; 
     62   typedef xios::CZoomAxis                *  XZoomAxisPtr; 
     63   typedef xios::CInterpolateAxis         *  XInterpolateAxisPtr; 
     64   typedef xios::CInverseAxis             *  XInverseAxisPtr; 
     65 
    5066   // ----------------------- Ajout d'enfant à un parent ----------------------- 
    5167 
     
    339355         *child_ = parent_->addDomain(); 
    340356      } 
     357      CTimer::get("XIOS").suspend() ; 
     358   } 
     359 
     360   void cxios_xml_tree_add_zoomdomaintodomain 
     361      (XDomainPtr parent_, XZoomDomainPtr * child_, const char * child_id, int child_id_size) 
     362   { 
     363      std::string child_id_str; 
     364      XTransformationDomainPtr tmpChild_; 
     365      CTimer::get("XIOS").resume() ; 
     366      if (cstr2string(child_id, child_id_size, child_id_str)) 
     367      { 
     368         tmpChild_ = parent_->addTransformation(TRANS_ZOOM_DOMAIN, child_id_str); 
     369      } 
     370      else 
     371      { 
     372         tmpChild_ = parent_->addTransformation(TRANS_ZOOM_DOMAIN); 
     373      } 
     374      *child_ = static_cast<XZoomDomainPtr>(tmpChild_); 
     375      CTimer::get("XIOS").suspend() ; 
     376   } 
     377 
     378   void cxios_xml_tree_add_interpolatedomaintodomain 
     379      (XDomainPtr parent_, XInterpolateDomainPtr * child_, const char * child_id, int child_id_size) 
     380   { 
     381      std::string child_id_str; 
     382      XTransformationDomainPtr tmpChild_; 
     383      CTimer::get("XIOS").resume() ; 
     384      if (cstr2string(child_id, child_id_size, child_id_str)) 
     385      { 
     386         tmpChild_ = parent_->addTransformation(TRANS_INTERPOLATE_DOMAIN, child_id_str); 
     387      } 
     388      else 
     389      { 
     390         tmpChild_ = parent_->addTransformation(TRANS_INTERPOLATE_DOMAIN); 
     391      } 
     392      *child_ = static_cast<XInterpolateDomainPtr>(tmpChild_); 
     393      CTimer::get("XIOS").suspend() ; 
     394   } 
     395 
     396   void cxios_xml_tree_add_generatedomaintodomain 
     397      (XDomainPtr parent_, XGenerateRectilinearDomainPtr * child_, const char * child_id, int child_id_size) 
     398   { 
     399      std::string child_id_str; 
     400      XTransformationDomainPtr tmpChild_; 
     401      CTimer::get("XIOS").resume() ; 
     402      if (cstr2string(child_id, child_id_size, child_id_str)) 
     403      { 
     404         tmpChild_ = parent_->addTransformation(TRANS_GENERATE_RECTILINEAR_DOMAIN, child_id_str); 
     405      } 
     406      else 
     407      { 
     408         tmpChild_ = parent_->addTransformation(TRANS_GENERATE_RECTILINEAR_DOMAIN); 
     409      } 
     410      *child_ = static_cast<XGenerateRectilinearDomainPtr>(tmpChild_); 
     411      CTimer::get("XIOS").suspend() ; 
     412   } 
     413 
     414   void cxios_xml_tree_add_zoomaxistoaxis 
     415      (XAxisPtr parent_, XZoomAxisPtr * child_, const char * child_id, int child_id_size) 
     416   { 
     417      std::string child_id_str; 
     418      XTransformationAxisPtr tmpChild_; 
     419      CTimer::get("XIOS").resume() ; 
     420      if (cstr2string(child_id, child_id_size, child_id_str)) 
     421      { 
     422         tmpChild_ = parent_->addTransformation(TRANS_ZOOM_AXIS, child_id_str); 
     423      } 
     424      else 
     425      { 
     426         tmpChild_ = parent_->addTransformation(TRANS_ZOOM_AXIS); 
     427      } 
     428      *child_ = static_cast<XZoomAxisPtr>(tmpChild_); 
     429      CTimer::get("XIOS").suspend() ; 
     430   } 
     431 
     432   void cxios_xml_tree_add_interpolateaxistoaxis 
     433      (XAxisPtr parent_, XInterpolateAxisPtr * child_, const char * child_id, int child_id_size) 
     434   { 
     435      std::string child_id_str; 
     436      XTransformationAxisPtr tmpChild_; 
     437      CTimer::get("XIOS").resume() ; 
     438      if (cstr2string(child_id, child_id_size, child_id_str)) 
     439      { 
     440         tmpChild_ = parent_->addTransformation(TRANS_INTERPOLATE_AXIS, child_id_str); 
     441      } 
     442      else 
     443      { 
     444         tmpChild_ = parent_->addTransformation(TRANS_INTERPOLATE_AXIS); 
     445      } 
     446      *child_ = static_cast<XInterpolateAxisPtr>(tmpChild_); 
     447      CTimer::get("XIOS").suspend() ; 
     448   } 
     449 
     450   void cxios_xml_tree_add_inverseaxistoaxis 
     451      (XAxisPtr parent_, XInverseAxisPtr * child_, const char * child_id, int child_id_size) 
     452   { 
     453      std::string child_id_str; 
     454      XTransformationAxisPtr tmpChild_; 
     455      CTimer::get("XIOS").resume() ; 
     456      if (cstr2string(child_id, child_id_size, child_id_str)) 
     457      { 
     458         tmpChild_ = parent_->addTransformation(TRANS_INVERSE_AXIS, child_id_str); 
     459      } 
     460      else 
     461      { 
     462         tmpChild_ = parent_->addTransformation(TRANS_INVERSE_AXIS); 
     463      } 
     464      *child_ = static_cast<XInverseAxisPtr>(tmpChild_); 
    341465      CTimer::get("XIOS").suspend() ; 
    342466   } 
Note: See TracChangeset for help on using the changeset viewer.