Changeset 981


Ignore:
Timestamp:
10/24/16 16:16:51 (7 years ago)
Author:
mhnguyen
Message:

Fortran interfaces:

+) Adding Fortran interfaces of transformation

Test
+) Only complilation on Curie

Location:
XIOS/trunk/src
Files:
25 added
5 edited
4 copied
1 moved

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/generate_fortran_interface.cpp

    r934 r981  
    3434  CGenerateRectilinearDomain genDomain; 
    3535  CComputeConnectivityDomain compConDomain; 
     36  CExpandDomain expandDomain; 
    3637 
    3738  CInterpolateAxis interpolateAxis; 
    3839  CZoomAxis zoomAxis; 
    3940  CInverseAxis inverseAxis; 
     41  CReduceDomainToAxis reduceDomainToAxis; 
     42  CExtractDomainToAxis extractDomainToAxis; 
    4043 
    4144  CReduceAxisToScalar reduceAxisToScalar; 
     45  CExtractAxisToScalar extractAxisToScalar; 
     46  CReduceDomainToScalar reduceDomainToScalar; 
    4247 
    4348  ostringstream oss; 
     
    231236  file.close(); 
    232237 
     238  /*! 
     239    Domain transformations 
     240  */ 
    233241  file.open((path+"zoom_domain_interface_attr.F90").c_str()); 
    234242  zoomDomain.generateFortran2003Interface(file); 
     
    243251  file.close(); 
    244252 
     253  file.open((path+"interpolate_domain_interface_attr.F90").c_str()); 
     254  interpolateDomain.generateFortran2003Interface(file); 
     255  file.close(); 
     256 
     257  file.open((path+"icinterpolate_domain_attr.cpp").c_str()); 
     258  interpolateDomain.generateCInterface(file); 
     259  file.close(); 
     260 
     261  file.open((path+"iinterpolate_domain_attr.F90").c_str()); 
     262  interpolateDomain.generateFortranInterface(file); 
     263  file.close(); 
     264 
     265  file.open((path+"generate_rectilinear_domain_interface_attr.F90").c_str()); 
     266  genDomain.generateFortran2003Interface(file); 
     267  file.close(); 
     268 
     269  file.open((path+"icgenerate_rectilinear_domain_attr.cpp").c_str()); 
     270  genDomain.generateCInterface(file); 
     271  file.close(); 
     272 
     273  file.open((path+"igenerate_rectilinear_domain_attr.F90").c_str()); 
     274  genDomain.generateFortranInterface(file); 
     275  file.close(); 
     276 
     277  file.open((path+"compute_connectivity_domain_interface_attr.F90").c_str()); 
     278  compConDomain.generateFortran2003Interface(file); 
     279  file.close(); 
     280 
     281  file.open((path+"iccompute_connectivity_domain_attr.cpp").c_str()); 
     282  compConDomain.generateCInterface(file); 
     283  file.close(); 
     284 
     285  file.open((path+"icompute_connectivity_domain_attr.F90").c_str()); 
     286  compConDomain.generateFortranInterface(file); 
     287  file.close(); 
     288 
     289  file.open((path+"expand_domain_interface_attr.F90").c_str()); 
     290  expandDomain.generateFortran2003Interface(file); 
     291  file.close(); 
     292 
     293  file.open((path+"icexpand_domain_attr.cpp").c_str()); 
     294  expandDomain.generateCInterface(file); 
     295  file.close(); 
     296 
     297  file.open((path+"iexpand_domain_attr.F90").c_str()); 
     298  expandDomain.generateFortranInterface(file); 
     299  file.close(); 
     300   
     301  /*! 
     302    Axis transformations 
     303  */ 
    245304  file.open((path+"zoom_axis_interface_attr.F90").c_str()); 
    246305  zoomAxis.generateFortran2003Interface(file); 
     
    267326  file.close(); 
    268327 
    269   file.open((path+"interpolate_domain_interface_attr.F90").c_str()); 
    270   interpolateDomain.generateFortran2003Interface(file); 
    271   file.close(); 
    272  
    273   file.open((path+"icinterpolate_domain_attr.cpp").c_str()); 
    274   interpolateDomain.generateCInterface(file); 
    275   file.close(); 
    276  
    277   file.open((path+"iinterpolate_domain_attr.F90").c_str()); 
    278   interpolateDomain.generateFortranInterface(file); 
    279   file.close(); 
    280  
    281   file.open((path+"generate_rectilinear_domain_interface_attr.F90").c_str()); 
    282   genDomain.generateFortran2003Interface(file); 
    283   file.close(); 
    284  
    285   file.open((path+"icgenerate_rectilinear_domain_attr.cpp").c_str()); 
    286   genDomain.generateCInterface(file); 
    287   file.close(); 
    288  
    289   file.open((path+"igenerate_rectilinear_domain_attr.F90").c_str()); 
    290   genDomain.generateFortranInterface(file); 
    291   file.close(); 
    292  
    293   file.open((path+"compute_connectivity_domain_interface_attr.F90").c_str()); 
    294   compConDomain.generateFortran2003Interface(file); 
    295   file.close(); 
    296  
    297   file.open((path+"iccompute_connectivity_domain_attr.cpp").c_str()); 
    298   compConDomain.generateCInterface(file); 
    299   file.close(); 
    300  
    301   file.open((path+"icompute_connectivity_domain_attr.F90").c_str()); 
    302   compConDomain.generateFortranInterface(file); 
    303   file.close(); 
    304  
    305  
    306  
    307  
    308328  file.open((path+"inverse_axis_interface_attr.F90").c_str()); 
    309329  inverseAxis.generateFortran2003Interface(file); 
     
    318338  file.close(); 
    319339 
     340  file.open((path+"reduce_domain_to_axis_interface_attr.F90").c_str()); 
     341  reduceDomainToAxis.generateFortran2003Interface(file); 
     342  file.close(); 
     343 
     344  file.open((path+"icreduce_domain_to_axis_attr.cpp").c_str()); 
     345  reduceDomainToAxis.generateCInterface(file); 
     346  file.close(); 
     347 
     348  file.open((path+"ireduce_domain_to_axis_attr.F90").c_str()); 
     349  reduceDomainToAxis.generateFortranInterface(file); 
     350  file.close(); 
     351   
     352  file.open((path+"extract_domain_to_axis_interface_attr.F90").c_str()); 
     353  extractDomainToAxis.generateFortran2003Interface(file); 
     354  file.close(); 
     355 
     356  file.open((path+"icextract_domain_to_axis_attr.cpp").c_str()); 
     357  extractDomainToAxis.generateCInterface(file); 
     358  file.close(); 
     359 
     360  file.open((path+"iextract_domain_to_axis_attr.F90").c_str()); 
     361  extractDomainToAxis.generateFortranInterface(file); 
     362  file.close(); 
     363 
     364 
     365  /*! 
     366    Scalar transformations 
     367  */ 
    320368  file.open((path+"reduce_axis_to_scalar_interface_attr.F90").c_str()); 
    321369  reduceAxisToScalar.generateFortran2003Interface(file); 
     
    330378  file.close(); 
    331379 
     380  file.open((path+"extract_axis_to_scalar_interface_attr.F90").c_str()); 
     381  extractAxisToScalar.generateFortran2003Interface(file); 
     382  file.close(); 
     383 
     384  file.open((path+"icextract_axis_to_scalar_attr.cpp").c_str()); 
     385  extractAxisToScalar.generateCInterface(file); 
     386  file.close(); 
     387 
     388  file.open((path+"iextract_axis_to_scalar_attr.F90").c_str()); 
     389  extractAxisToScalar.generateFortranInterface(file); 
     390  file.close(); 
     391 
     392  file.open((path+"reduce_domain_to_scalar_interface_attr.F90").c_str()); 
     393  reduceDomainToScalar.generateFortran2003Interface(file); 
     394  file.close(); 
     395 
     396  file.open((path+"icreduce_domain_to_scalar_attr.cpp").c_str()); 
     397  reduceDomainToScalar.generateCInterface(file); 
     398  file.close(); 
     399 
     400  file.open((path+"ireduce_domain_to_scalar_attr.F90").c_str()); 
     401  reduceDomainToScalar.generateFortranInterface(file); 
     402  file.close(); 
     403 
    332404  file.open((path+"context_interface_attr.F90").c_str()); 
    333405  context->generateFortran2003Interface(file); 
  • XIOS/trunk/src/interface/c/icexpand_domain.cpp

    r980 r981  
    1414#include "icutil.hpp" 
    1515#include "timer.hpp" 
    16 #include "reduce_axis_to_scalar.hpp" 
     16#include "expand_domain.hpp" 
    1717 
    1818extern "C" 
     
    2222   // ----------------------- Redéfinition de types ---------------------------- 
    2323 
    24    typedef xios::CReduceAxisToScalar      * XReduceAxisToScalarPtr; 
     24   typedef xios::CExpandDomain   * XExpandDomainPtr; 
    2525 
    2626   // ------------------------ Création des handle ----------------------------- 
    27    void cxios_reduce_axis_to_scalar_handle_create(XReduceAxisToScalarPtr * _ret, const char * _id, int _id_len) 
     27   void cxios_expand_domain_handle_create(XExpandDomainPtr * _ret, const char * _id, int _id_len) 
    2828   { 
    2929      std::string id; 
    3030      if (!cstr2string(_id, _id_len, id)) return; 
    3131      CTimer::get("XIOS").resume() ; 
    32       *_ret = xios::CReduceAxisToScalar::get(id); 
     32      *_ret = xios::CExpandDomain::get(id); 
    3333      CTimer::get("XIOS").suspend() ; 
    3434   } 
    3535 
    3636   // -------------------- Vérification des identifiants ----------------------- 
    37    void cxios_reduce_axis_to_scalar_valid_id(bool * _ret, const char * _id, int _id_len) 
     37   void cxios_expand_domain_valid_id(bool * _ret, const char * _id, int _id_len) 
    3838   { 
    3939      std::string id; 
     
    4141 
    4242      CTimer::get("XIOS").resume() ; 
    43       *_ret = xios::CReduceAxisToScalar::has(id); 
     43      *_ret = xios::CExpandDomain::has(id); 
    4444      CTimer::get("XIOS").suspend() ; 
    4545   } 
  • XIOS/trunk/src/interface/c/icextract_to_axis.cpp

    r980 r981  
    1414#include "icutil.hpp" 
    1515#include "timer.hpp" 
    16 #include "reduce_axis_to_scalar.hpp" 
     16#include "extract_domain_to_axis.hpp" 
    1717 
    1818extern "C" 
     
    2222   // ----------------------- Redéfinition de types ---------------------------- 
    2323 
    24    typedef xios::CReduceAxisToScalar      * XReduceAxisToScalarPtr; 
    25  
     24   typedef xios::CExtractDomainToAxis      * XExtractDomainToAxisPtr; 
     25    
    2626   // ------------------------ Création des handle ----------------------------- 
    27    void cxios_reduce_axis_to_scalar_handle_create(XReduceAxisToScalarPtr * _ret, const char * _id, int _id_len) 
     27   void cxios_extract_domain_to_axis_handle_create(XExtractDomainToAxisPtr * _ret, const char * _id, int _id_len) 
    2828   { 
    2929      std::string id; 
    3030      if (!cstr2string(_id, _id_len, id)) return; 
    3131      CTimer::get("XIOS").resume() ; 
    32       *_ret = xios::CReduceAxisToScalar::get(id); 
     32      *_ret = xios::CExtractDomainToAxis::get(id); 
    3333      CTimer::get("XIOS").suspend() ; 
    3434   } 
    3535 
    3636   // -------------------- Vérification des identifiants ----------------------- 
    37    void cxios_reduce_axis_to_scalar_valid_id(bool * _ret, const char * _id, int _id_len) 
     37   void cxios_extract_domain_to_axis_valid_id(bool * _ret, const char * _id, int _id_len) 
    3838   { 
    3939      std::string id; 
     
    4141 
    4242      CTimer::get("XIOS").resume() ; 
    43       *_ret = xios::CReduceAxisToScalar::has(id); 
     43      *_ret = xios::CExtractDomainToAxis::has(id); 
    4444      CTimer::get("XIOS").suspend() ; 
    4545   } 
     46 
    4647} // extern "C" 
  • XIOS/trunk/src/interface/c/icextract_to_scalar.cpp

    r980 r981  
    1414#include "icutil.hpp" 
    1515#include "timer.hpp" 
    16 #include "reduce_axis_to_scalar.hpp" 
     16#include "extract_axis_to_scalar.hpp" 
    1717 
    1818extern "C" 
     
    2222   // ----------------------- Redéfinition de types ---------------------------- 
    2323 
    24    typedef xios::CReduceAxisToScalar      * XReduceAxisToScalarPtr; 
    25  
     24   typedef xios::CExtractAxisToScalar      * XExtractAxisToScalarPtr; 
     25    
    2626   // ------------------------ Création des handle ----------------------------- 
    27    void cxios_reduce_axis_to_scalar_handle_create(XReduceAxisToScalarPtr * _ret, const char * _id, int _id_len) 
     27   void cxios_extract_axis_to_scalar_handle_create(XExtractAxisToScalarPtr * _ret, const char * _id, int _id_len) 
    2828   { 
    2929      std::string id; 
    3030      if (!cstr2string(_id, _id_len, id)) return; 
    3131      CTimer::get("XIOS").resume() ; 
    32       *_ret = xios::CReduceAxisToScalar::get(id); 
     32      *_ret = xios::CExtractAxisToScalar::get(id); 
    3333      CTimer::get("XIOS").suspend() ; 
    3434   } 
    3535 
    3636   // -------------------- Vérification des identifiants ----------------------- 
    37    void cxios_reduce_axis_to_scalar_valid_id(bool * _ret, const char * _id, int _id_len) 
     37   void cxios_extract_axis_to_scalar_valid_id(bool * _ret, const char * _id, int _id_len) 
    3838   { 
    3939      std::string id; 
     
    4141 
    4242      CTimer::get("XIOS").resume() ; 
    43       *_ret = xios::CReduceAxisToScalar::has(id); 
     43      *_ret = xios::CExtractAxisToScalar::has(id); 
    4444      CTimer::get("XIOS").suspend() ; 
    4545   } 
     46 
    4647} // extern "C" 
  • XIOS/trunk/src/interface/c/icreduce_to_axis.cpp

    r980 r981  
    1414#include "icutil.hpp" 
    1515#include "timer.hpp" 
    16 #include "reduce_axis_to_scalar.hpp" 
     16#include "reduce_domain_to_axis.hpp" 
    1717 
    1818extern "C" 
     
    2222   // ----------------------- Redéfinition de types ---------------------------- 
    2323 
    24    typedef xios::CReduceAxisToScalar      * XReduceAxisToScalarPtr; 
    25  
     24   typedef xios::CReduceDomainToAxis      * XReduceDomainToAxisPtr; 
     25    
    2626   // ------------------------ Création des handle ----------------------------- 
    27    void cxios_reduce_axis_to_scalar_handle_create(XReduceAxisToScalarPtr * _ret, const char * _id, int _id_len) 
     27   void cxios_reduce_domain_to_axis_handle_create(XReduceDomainToAxisPtr * _ret, const char * _id, int _id_len) 
    2828   { 
    2929      std::string id; 
    3030      if (!cstr2string(_id, _id_len, id)) return; 
    3131      CTimer::get("XIOS").resume() ; 
    32       *_ret = xios::CReduceAxisToScalar::get(id); 
     32      *_ret = xios::CReduceDomainToAxis::get(id); 
    3333      CTimer::get("XIOS").suspend() ; 
    3434   } 
    3535 
    3636   // -------------------- Vérification des identifiants ----------------------- 
    37    void cxios_reduce_axis_to_scalar_valid_id(bool * _ret, const char * _id, int _id_len) 
     37   void cxios_reduce_domain_to_axis_valid_id(bool * _ret, const char * _id, int _id_len) 
    3838   { 
    3939      std::string id; 
     
    4141 
    4242      CTimer::get("XIOS").resume() ; 
    43       *_ret = xios::CReduceAxisToScalar::has(id); 
     43      *_ret = xios::CReduceDomainToAxis::has(id); 
    4444      CTimer::get("XIOS").suspend() ; 
    4545   } 
     46 
    4647} // extern "C" 
  • XIOS/trunk/src/interface/c/icreduce_to_scalar.cpp

    r980 r981  
    1515#include "timer.hpp" 
    1616#include "reduce_axis_to_scalar.hpp" 
     17#include "reduce_domain_to_scalar.hpp" 
    1718 
    1819extern "C" 
     
    2324 
    2425   typedef xios::CReduceAxisToScalar      * XReduceAxisToScalarPtr; 
     26   typedef xios::CReduceDomainToScalar    * XReduceDomainToScalarPtr; 
    2527 
    2628   // ------------------------ Création des handle ----------------------------- 
     
    4446      CTimer::get("XIOS").suspend() ; 
    4547   } 
     48 
     49   void cxios_reduce_domain_to_scalar_handle_create(XReduceDomainToScalarPtr * _ret, const char * _id, int _id_len) 
     50   { 
     51      std::string id; 
     52      if (!cstr2string(_id, _id_len, id)) return; 
     53      CTimer::get("XIOS").resume() ; 
     54      *_ret = xios::CReduceDomainToScalar::get(id); 
     55      CTimer::get("XIOS").suspend() ; 
     56   } 
     57 
     58   // -------------------- Vérification des identifiants ----------------------- 
     59   void cxios_reduce_domain_to_scalar_valid_id(bool * _ret, const char * _id, int _id_len) 
     60   { 
     61      std::string id; 
     62      if (!cstr2string(_id, _id_len, id)) return; 
     63 
     64      CTimer::get("XIOS").resume() ; 
     65      *_ret = xios::CReduceDomainToScalar::has(id); 
     66      CTimer::get("XIOS").suspend() ; 
     67   } 
     68 
    4669} // extern "C" 
  • XIOS/trunk/src/interface/c/icxml_tree.cpp

    r934 r981  
    5151   typedef xios::CGenerateRectilinearDomain *  XGenerateRectilinearDomainPtr; 
    5252   typedef xios::CComputeConnectivityDomain *  XComputeConnectivityDomainPtr; 
    53  
    54    typedef xios::CTransformation<CAxis>   *  XTransformationAxisPtr; 
    55    typedef xios::CZoomAxis                *  XZoomAxisPtr; 
    56    typedef xios::CInterpolateAxis         *  XInterpolateAxisPtr; 
    57    typedef xios::CInverseAxis             *  XInverseAxisPtr; 
     53   typedef xios::CExpandDomain              *  XExpandDomainPtr; 
     54 
     55   typedef xios::CTransformation<CAxis>     *  XTransformationAxisPtr; 
     56   typedef xios::CZoomAxis                  *  XZoomAxisPtr; 
     57   typedef xios::CInterpolateAxis           *  XInterpolateAxisPtr; 
     58   typedef xios::CInverseAxis               *  XInverseAxisPtr; 
     59   typedef xios::CExtractDomainToAxis       *  XExtractDomainToAxisPtr; 
     60   typedef xios::CReduceDomainToAxis        *  XReduceDomainToAxisPtr; 
    5861 
    5962   typedef xios::CTransformation<CScalar>   *  XTransformationScalarPtr; 
    6063   typedef xios::CReduceAxisToScalar        *  XReduceAxisToScalarPtr; 
     64   typedef xios::CReduceDomainToScalar      *  XReduceDomainToScalarPtr; 
     65   typedef xios::CExtractAxisToScalar       *  XExtractAxisToScalarPtr; 
     66 
    6167 
    6268   // ----------------------- Ajout d'enfant à un parent ----------------------- 
     
    402408   } 
    403409 
     410   //--------------------------------------------------------------------------- 
     411   //-------------------------Transformations ----------------------------------- 
     412   //--------------------------------------------------------------------------- 
    404413   void cxios_xml_tree_add_zoomdomaintodomain 
    405414      (XDomainPtr parent_, XZoomDomainPtr * child_, const char * child_id, int child_id_size) 
     
    464473      if (cstr2string(child_id, child_id_size, child_id_str)) 
    465474      { 
     475         tmpChild_ = parent_->addTransformation(TRANS_EXPAND_DOMAIN, child_id_str); 
     476      } 
     477      else 
     478      { 
     479         tmpChild_ = parent_->addTransformation(TRANS_EXPAND_DOMAIN); 
     480      } 
     481      *child_ = static_cast<XComputeConnectivityDomainPtr>(tmpChild_); 
     482      CTimer::get("XIOS").suspend() ; 
     483   } 
     484 
     485   void cxios_xml_tree_add_expanddomaintodomain 
     486      (XDomainPtr parent_, XExpandDomainPtr * child_, const char * child_id, int child_id_size) 
     487   { 
     488      std::string child_id_str; 
     489      XTransformationDomainPtr tmpChild_; 
     490      CTimer::get("XIOS").resume() ; 
     491      if (cstr2string(child_id, child_id_size, child_id_str)) 
     492      { 
    466493         tmpChild_ = parent_->addTransformation(TRANS_COMPUTE_CONNECTIVITY_DOMAIN, child_id_str); 
    467494      } 
     
    470497         tmpChild_ = parent_->addTransformation(TRANS_COMPUTE_CONNECTIVITY_DOMAIN); 
    471498      } 
    472       *child_ = static_cast<XComputeConnectivityDomainPtr>(tmpChild_); 
    473       CTimer::get("XIOS").suspend() ; 
    474    } 
    475  
     499      *child_ = static_cast<XExpandDomainPtr>(tmpChild_); 
     500      CTimer::get("XIOS").suspend() ; 
     501   } 
     502 
     503   // -----------------------Axis transformation-------------------------------- 
    476504   void cxios_xml_tree_add_zoomaxistoaxis 
    477505      (XAxisPtr parent_, XZoomAxisPtr * child_, const char * child_id, int child_id_size) 
     
    528556   } 
    529557 
     558   void cxios_xml_tree_add_extractdomaintoaxistoaxis 
     559      (XAxisPtr parent_, XExtractDomainToAxisPtr * child_, const char * child_id, int child_id_size) 
     560   { 
     561      std::string child_id_str; 
     562      XTransformationAxisPtr tmpChild_; 
     563      CTimer::get("XIOS").resume() ; 
     564      if (cstr2string(child_id, child_id_size, child_id_str)) 
     565      { 
     566         tmpChild_ = parent_->addTransformation(TRANS_EXTRACT_DOMAIN_TO_AXIS, child_id_str); 
     567      } 
     568      else 
     569      { 
     570         tmpChild_ = parent_->addTransformation(TRANS_EXTRACT_DOMAIN_TO_AXIS); 
     571      } 
     572      *child_ = static_cast<XExtractDomainToAxisPtr>(tmpChild_); 
     573      CTimer::get("XIOS").suspend() ; 
     574   } 
     575 
     576   void cxios_xml_tree_add_reducedomaintoaxistoaxis 
     577      (XAxisPtr parent_, XReduceDomainToAxisPtr * child_, const char * child_id, int child_id_size) 
     578   { 
     579      std::string child_id_str; 
     580      XTransformationAxisPtr tmpChild_; 
     581      CTimer::get("XIOS").resume() ; 
     582      if (cstr2string(child_id, child_id_size, child_id_str)) 
     583      { 
     584         tmpChild_ = parent_->addTransformation(TRANS_REDUCE_DOMAIN_TO_AXIS, child_id_str); 
     585      } 
     586      else 
     587      { 
     588         tmpChild_ = parent_->addTransformation(TRANS_REDUCE_DOMAIN_TO_AXIS); 
     589      } 
     590      *child_ = static_cast<XReduceDomainToAxisPtr>(tmpChild_); 
     591      CTimer::get("XIOS").suspend() ; 
     592   } 
     593 
     594 
    530595   void cxios_xml_tree_add_reduceaxistoscalartoscalar 
    531596      (XScalarPtr parent_, XReduceAxisToScalarPtr * child_, const char * child_id, int child_id_size) 
     
    543608      } 
    544609      *child_ = static_cast<XReduceAxisToScalarPtr>(tmpChild_); 
     610      CTimer::get("XIOS").suspend() ; 
     611   } 
     612 
     613   void cxios_xml_tree_add_reducedomaintoscalartoscalar 
     614      (XScalarPtr parent_, XReduceDomainToScalarPtr * child_, const char * child_id, int child_id_size) 
     615   { 
     616      std::string child_id_str; 
     617      XTransformationScalarPtr tmpChild_; 
     618      CTimer::get("XIOS").resume() ; 
     619      if (cstr2string(child_id, child_id_size, child_id_str)) 
     620      { 
     621         tmpChild_ = parent_->addTransformation(TRANS_REDUCE_DOMAIN_TO_SCALAR, child_id_str); 
     622      } 
     623      else 
     624      { 
     625         tmpChild_ = parent_->addTransformation(TRANS_REDUCE_DOMAIN_TO_SCALAR); 
     626      } 
     627      *child_ = static_cast<XReduceDomainToScalarPtr>(tmpChild_); 
     628      CTimer::get("XIOS").suspend() ; 
     629   } 
     630 
     631   void cxios_xml_tree_add_extractaxistoscalartoscalar 
     632      (XScalarPtr parent_, XExtractAxisToScalarPtr * child_, const char * child_id, int child_id_size) 
     633   { 
     634      std::string child_id_str; 
     635      XTransformationScalarPtr tmpChild_; 
     636      CTimer::get("XIOS").resume() ; 
     637      if (cstr2string(child_id, child_id_size, child_id_str)) 
     638      { 
     639         tmpChild_ = parent_->addTransformation(TRANS_EXTRACT_AXIS_TO_SCALAR, child_id_str); 
     640      } 
     641      else 
     642      { 
     643         tmpChild_ = parent_->addTransformation(TRANS_EXTRACT_AXIS_TO_SCALAR); 
     644      } 
     645      *child_ = static_cast<XExtractAxisToScalarPtr>(tmpChild_); 
    545646      CTimer::get("XIOS").suspend() ; 
    546647   } 
  • XIOS/trunk/src/interface/fortran/ixios.F90

    r943 r981  
    7474USE iscalargroup_attr, ONLY : xios(set_scalargroup_attr), xios(get_scalargroup_attr), xios(is_defined_scalargroup_attr) 
    7575 
    76 USE izoom_axis, ONLY : txios(zoom_axis), xios(is_valid_zoom_axis) 
    77  
    78 USE izoom_axis_attr, ONLY : xios(set_zoom_axis_attr), xios(get_zoom_axis_attr), xios(is_defined_zoom_axis_attr) 
    79  
     76!------------------------------------------------------------------------------- 
     77!!! Transformation INTERFACES 
     78!------------------------------------------------------------------------------- 
     79!!! DOMAIN TRANSFORMATIONS 
    8080USE izoom_domain, ONLY : txios(zoom_domain), xios(is_valid_zoom_domain) 
    8181 
    8282USE izoom_domain_attr, ONLY : xios(set_zoom_domain_attr), xios(get_zoom_domain_attr), xios(is_defined_zoom_domain_attr) 
    83  
    84 USE iinterpolate_axis, ONLY : txios(interpolate_axis), xios(is_valid_interpolate_axis) 
    85  
    86 USE iinterpolate_axis_attr, ONLY : xios(set_interpolate_axis_attr), xios(get_interpolate_axis_attr), & 
    87                                    xios(is_defined_interpolate_axis_attr) 
    8883 
    8984USE iinterpolate_domain, ONLY : txios(interpolate_domain), xios(is_valid_interpolate_domain) 
     
    9287                                     xios(is_defined_interpolate_domain_attr) 
    9388 
    94 USE iinverse_axis, ONLY : txios(inverse_axis), xios(is_valid_inverse_axis) 
    95  
    96 USE iinverse_axis_attr, ONLY : xios(set_inverse_axis_attr), xios(get_inverse_axis_attr), xios(is_defined_inverse_axis_attr) 
    97  
    9889USE igenerate_rectilinear_domain, ONLY : txios(generate_rectilinear_domain), xios(is_valid_generate_rectilinear_domain) 
    9990 
     
    10192                                              xios(get_generate_rectilinear_domain_attr), & 
    10293                                              xios(is_defined_generate_rectilinear_domain_attr) 
    103 USE ireduce_axis_to_scalar, ONLY : txios(reduce_axis_to_scalar), xios(is_valid_reduce_axis_to_scalar) 
    104  
    105 USE ireduce_axis_to_scalar_attr, ONLY : xios(set_reduce_axis_to_scalar_attr), xios(get_reduce_axis_to_scalar_attr), & 
    106                                         xios(is_defined_reduce_axis_to_scalar_attr) 
    10794 
    10895USE icompute_connectivity_domain, ONLY : txios(compute_connectivity_domain), xios(is_valid_compute_connectivity_domain) 
     
    11299                                              xios(is_defined_compute_connectivity_domain_attr) 
    113100 
     101USE iexpand_domain, ONLY : txios(expand_domain), xios(is_valid_expand_domain) 
     102 
     103USE iexpand_domain_attr, ONLY : xios(set_expand_domain_attr), & 
     104                                xios(get_expand_domain_attr), & 
     105                                xios(is_defined_expand_domain_attr) 
     106 
     107!!! AXIS TRANSFORMATIONS 
     108USE izoom_axis, ONLY : txios(zoom_axis), xios(is_valid_zoom_axis) 
     109 
     110USE izoom_axis_attr, ONLY : xios(set_zoom_axis_attr), xios(get_zoom_axis_attr), xios(is_defined_zoom_axis_attr) 
     111 
     112 
     113USE iinterpolate_axis, ONLY : txios(interpolate_axis), xios(is_valid_interpolate_axis) 
     114 
     115USE iinterpolate_axis_attr, ONLY : xios(set_interpolate_axis_attr), xios(get_interpolate_axis_attr), & 
     116                                   xios(is_defined_interpolate_axis_attr) 
     117 
     118USE iinverse_axis, ONLY : txios(inverse_axis), xios(is_valid_inverse_axis) 
     119 
     120USE iinverse_axis_attr, ONLY : xios(set_inverse_axis_attr), xios(get_inverse_axis_attr), xios(is_defined_inverse_axis_attr) 
     121 
     122USE ireduce_domain_to_axis, ONLY : txios(reduce_domain_to_axis), xios(is_valid_reduce_domain_to_axis) 
     123 
     124USE ireduce_domain_to_axis_attr, ONLY : xios(set_reduce_domain_to_axis_attr), & 
     125                                        xios(get_reduce_domain_to_axis_attr), & 
     126                                        xios(is_defined_reduce_domain_to_axis_attr) 
     127 
     128USE iextract_domain_to_axis, ONLY : txios(extract_domain_to_axis), xios(is_valid_extract_domain_to_axis) 
     129 
     130USE iextract_domain_to_axis_attr, ONLY : xios(set_extract_domain_to_axis_attr), & 
     131                                         xios(get_extract_domain_to_axis_attr), & 
     132                                         xios(is_defined_extract_domain_to_axis_attr) 
     133 
     134!!! SCALAR TRANSFORMATIONS 
     135USE ireduce_domain_to_scalar, ONLY : txios(reduce_domain_to_scalar), xios(is_valid_reduce_domain_to_scalar) 
     136 
     137USE ireduce_domain_to_scalar_attr, ONLY : xios(set_reduce_domain_to_scalar_attr), xios(get_reduce_domain_to_scalar_attr), & 
     138                                          xios(is_defined_reduce_domain_to_scalar_attr) 
     139 
     140USE ireduce_axis_to_scalar, ONLY : txios(reduce_axis_to_scalar), xios(is_valid_reduce_axis_to_scalar) 
     141 
     142USE ireduce_axis_to_scalar_attr, ONLY : xios(set_reduce_axis_to_scalar_attr), xios(get_reduce_axis_to_scalar_attr), & 
     143                                        xios(is_defined_reduce_axis_to_scalar_attr) 
     144 
     145USE iextract_axis_to_scalar, ONLY : txios(extract_axis_to_scalar), xios(is_valid_extract_axis_to_scalar) 
     146 
     147USE iextract_axis_to_scalar_attr, ONLY : xios(set_extract_axis_to_scalar_attr), & 
     148                                         xios(get_extract_axis_to_scalar_attr), & 
     149                                         xios(is_defined_extract_axis_to_scalar_attr) 
     150 
    114151USE XIOS_INTERFACES, ONLY : xios(set_attr), xios(get_attr), xios(is_defined_attr), xios(get_handle), xios(add_child), & 
    115152                            xios(send_field), xios(recv_field), xios(field_is_active), xios(getVar), xios(setVar), & 
  • XIOS/trunk/src/interface/fortran/ixios_interfaces.F90

    r961 r981  
    6363USE iscalargroup_attr, ONLY : xios(set_scalargroup_attr_hdl), xios(get_scalargroup_attr_hdl), xios(is_defined_scalargroup_attr_hdl) 
    6464 
    65 USE izoom_axis, ONLY : xios(get_zoom_axis_handle) 
    66  
    67 USE izoom_axis_attr, ONLY : xios(set_zoom_axis_attr_hdl), xios(get_zoom_axis_attr_hdl), xios(is_defined_zoom_axis_attr_hdl) 
    68  
     65!------------------------------------------------------------------------------- 
     66!!! Transformation INTERFACES 
     67!------------------------------------------------------------------------------- 
     68!!! DOMAIN TRANSFORMATIONS 
    6969USE izoom_domain, ONLY : xios(get_zoom_domain_handle) 
    7070 
    7171USE izoom_domain_attr, ONLY : xios(set_zoom_domain_attr_hdl), xios(get_zoom_domain_attr_hdl), xios(is_defined_zoom_domain_attr_hdl) 
    72  
    73 USE iinterpolate_axis, ONLY : xios(get_interpolate_axis_handle) 
    74  
    75 USE iinterpolate_axis_attr, ONLY : xios(set_interpolate_axis_attr_hdl), xios(get_interpolate_axis_attr_hdl), & 
    76                                    xios(is_defined_interpolate_axis_attr_hdl) 
    7772 
    7873USE iinterpolate_domain, ONLY : xios(get_interpolate_domain_handle) 
     
    8075USE iinterpolate_domain_attr, ONLY : xios(set_interpolate_domain_attr_hdl), xios(get_interpolate_domain_attr_hdl), & 
    8176                                     xios(is_defined_interpolate_domain_attr_hdl) 
    82  
    83 USE iinverse_axis, ONLY : xios(get_inverse_axis_handle) 
    84  
    85 USE iinverse_axis_attr, ONLY : xios(set_inverse_axis_attr_hdl), xios(get_inverse_axis_attr_hdl), xios(is_defined_inverse_axis_attr_hdl) 
    8677 
    8778USE igenerate_rectilinear_domain, ONLY : xios(get_generate_rectilinear_domain_handle) 
     
    9081                                              xios(get_generate_rectilinear_domain_attr_hdl), & 
    9182                                              xios(is_defined_generate_rectilinear_domain_attr_hdl) 
     83 
    9284USE icompute_connectivity_domain, ONLY : xios(get_compute_connectivity_domain_handle) 
    9385 
     
    9688                                              xios(is_defined_compute_connectivity_domain_attr_hdl) 
    9789 
     90USE iexpand_domain, ONLY : xios(get_expand_domain_handle) 
     91 
     92USE iexpand_domain_attr, ONLY : xios(set_expand_domain_attr_hdl), & 
     93                                xios(get_expand_domain_attr_hdl), & 
     94                                xios(is_defined_expand_domain_attr_hdl) 
     95 
     96!!! AXIS TRANSFORMATIONS 
     97USE izoom_axis, ONLY : xios(get_zoom_axis_handle) 
     98 
     99USE izoom_axis_attr, ONLY : xios(set_zoom_axis_attr_hdl), xios(get_zoom_axis_attr_hdl), xios(is_defined_zoom_axis_attr_hdl) 
     100 
     101USE iinterpolate_axis, ONLY : xios(get_interpolate_axis_handle) 
     102 
     103USE iinterpolate_axis_attr, ONLY : xios(set_interpolate_axis_attr_hdl), & 
     104                                   xios(get_interpolate_axis_attr_hdl), & 
     105                                   xios(is_defined_interpolate_axis_attr_hdl) 
     106 
     107USE iinverse_axis, ONLY : xios(get_inverse_axis_handle) 
     108 
     109USE iinverse_axis_attr, ONLY : xios(set_inverse_axis_attr_hdl), & 
     110                               xios(get_inverse_axis_attr_hdl), & 
     111                               xios(is_defined_inverse_axis_attr_hdl) 
     112 
     113USE ireduce_domain_to_axis, ONLY : xios(get_reduce_domain_to_axis_handle) 
     114 
     115USE ireduce_domain_to_axis_attr, ONLY : xios(set_reduce_domain_to_axis_attr_hdl), & 
     116                                        xios(get_reduce_domain_to_axis_attr_hdl), & 
     117                                        xios(is_defined_reduce_domain_to_axis_attr_hdl) 
     118 
     119USE iextract_domain_to_axis, ONLY : xios(get_extract_domain_to_axis_handle) 
     120 
     121USE iextract_domain_to_axis_attr, ONLY : xios(set_extract_domain_to_axis_attr_hdl), & 
     122                                         xios(get_extract_domain_to_axis_attr_hdl), & 
     123                                         xios(is_defined_extract_domain_to_axis_attr_hdl) 
     124 
     125!!! SCALAR TRANSFORMATIONS 
     126 
     127 
    98128USE ireduce_axis_to_scalar, ONLY : xios(get_reduce_axis_to_scalar_handle) 
    99129 
     
    101131                                        xios(get_reduce_axis_to_scalar_attr_hdl), & 
    102132                                        xios(is_defined_reduce_axis_to_scalar_attr_hdl) 
     133 
     134USE ireduce_domain_to_scalar, ONLY : xios(get_reduce_domain_to_scalar_handle) 
     135 
     136USE ireduce_domain_to_scalar_attr, ONLY : xios(set_reduce_domain_to_scalar_attr_hdl), & 
     137                                          xios(get_reduce_domain_to_scalar_attr_hdl), & 
     138                                          xios(is_defined_reduce_domain_to_scalar_attr_hdl) 
     139 
     140USE iextract_axis_to_scalar, ONLY : xios(get_extract_axis_to_scalar_handle) 
     141 
     142USE iextract_axis_to_scalar_attr, ONLY : xios(set_extract_axis_to_scalar_attr_hdl), & 
     143                                         xios(get_extract_axis_to_scalar_attr_hdl), & 
     144                                         xios(is_defined_extract_axis_to_scalar_attr_hdl) 
    103145 
    104146USE ixml_tree, ONLY : xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),   & 
     
    111153                      xios(add_interpolateaxistoaxis), xios(add_inverseaxistoaxis), xios(add_scalar),      & 
    112154                      xios(add_scalargroup), xios(add_scalartogrid), xios(add_reduceaxistoscalartoscalar), & 
    113                       xios(add_computeconnectivitydomaintodomain) 
     155                      xios(add_computeconnectivitydomaintodomain), xios(add_reducedomaintoaxistoaxis),     & 
     156                      xios(add_extractdomaintoaxistoaxis), xios(add_reducedomaintoscalartoscalar),         & 
     157                      xios(add_extractaxistoscalartoscalar), xios(add_expanddomaintodomain) 
    114158 
    115159PRIVATE 
     
    125169                   xios(set_generate_rectilinear_domain_attr_hdl), xios(set_scalar_attr_hdl),                & 
    126170                   xios(set_scalargroup_attr_hdl), xios(set_reduce_axis_to_scalar_attr_hdl),                 & 
    127                    xios(set_compute_connectivity_domain_attr_hdl) 
     171                   xios(set_compute_connectivity_domain_attr_hdl), xios(set_reduce_domain_to_scalar_attr_hdl), & 
     172                   xios(set_reduce_domain_to_axis_attr_hdl), xios(set_extract_domain_to_axis_attr_hdl),        & 
     173                   xios(set_extract_axis_to_scalar_attr_hdl), xios(set_expand_domain_attr_hdl) 
    128174END INTERFACE xios(set_attr) 
     175 
    129176 
    130177INTERFACE xios(get_attr) 
     
    138185                   xios(get_generate_rectilinear_domain_attr_hdl), xios(get_scalar_attr_hdl),                & 
    139186                   xios(get_scalargroup_attr_hdl), xios(get_reduce_axis_to_scalar_attr_hdl),                 & 
    140                    xios(get_compute_connectivity_domain_attr_hdl) 
     187                   xios(get_compute_connectivity_domain_attr_hdl), xios(get_reduce_domain_to_scalar_attr_hdl), & 
     188                   xios(get_reduce_domain_to_axis_attr_hdl), xios(get_extract_domain_to_axis_attr_hdl),        & 
     189                   xios(get_extract_axis_to_scalar_attr_hdl), xios(get_expand_domain_attr_hdl) 
    141190END INTERFACE xios(get_attr) 
    142191 
     
    151200                   xios(is_defined_inverse_axis_attr_hdl), xios(is_defined_generate_rectilinear_domain_attr_hdl),                 & 
    152201                   xios(is_defined_scalar_attr_hdl), xios(is_defined_scalargroup_attr_hdl),                                       & 
    153                    xios(is_defined_reduce_axis_to_scalar_attr_hdl), xios(is_defined_compute_connectivity_domain_attr_hdl) 
     202                   xios(is_defined_reduce_axis_to_scalar_attr_hdl), xios(is_defined_compute_connectivity_domain_attr_hdl),        & 
     203                   xios(is_defined_reduce_domain_to_scalar_attr_hdl), xios(is_defined_reduce_domain_to_axis_attr_hdl),            & 
     204                   xios(is_defined_extract_domain_to_axis_attr_hdl), xios(is_defined_extract_axis_to_scalar_attr_hdl),            & 
     205                   xios(is_defined_expand_domain_attr_hdl) 
    154206END INTERFACE xios(is_defined_attr) 
    155207 
    156208INTERFACE xios(get_handle) 
    157   MODULE PROCEDURE xios(get_context_handle), xios(get_domain_handle), xios(get_domaingroup_handle), & 
    158                    xios(get_file_handle), xios(get_filegroup_handle), xios(get_grid_handle),        & 
    159                    xios(get_gridgroup_handle), xios(get_axis_handle), xios(get_axisgroup_handle),   & 
    160                    xios(get_field_handle), xios(get_fieldgroup_handle),xios(get_variable_handle),   & 
    161                    xios(get_variablegroup_handle), xios(get_zoom_axis_handle),                      & 
    162                    xios(get_zoom_domain_handle), xios(get_interpolate_axis_handle),                 & 
    163                    xios(get_interpolate_domain_handle), xios(get_inverse_axis_handle),              & 
    164                    xios(get_generate_rectilinear_domain_handle), xios(get_scalar_handle),           & 
    165                    xios(get_scalargroup_handle), xios(get_reduce_axis_to_scalar_handle),            & 
    166                    xios(get_compute_connectivity_domain_handle) 
     209  MODULE PROCEDURE xios(get_context_handle), xios(get_domain_handle), xios(get_domaingroup_handle),                  & 
     210                   xios(get_file_handle), xios(get_filegroup_handle), xios(get_grid_handle),                         & 
     211                   xios(get_gridgroup_handle), xios(get_axis_handle), xios(get_axisgroup_handle),                    & 
     212                   xios(get_field_handle), xios(get_fieldgroup_handle),xios(get_variable_handle),                    & 
     213                   xios(get_variablegroup_handle), xios(get_zoom_axis_handle),                                       & 
     214                   xios(get_zoom_domain_handle), xios(get_interpolate_axis_handle),                                  & 
     215                   xios(get_interpolate_domain_handle), xios(get_inverse_axis_handle),                               & 
     216                   xios(get_generate_rectilinear_domain_handle), xios(get_scalar_handle),                            & 
     217                   xios(get_scalargroup_handle), xios(get_reduce_axis_to_scalar_handle),                             & 
     218                   xios(get_compute_connectivity_domain_handle), xios(get_reduce_domain_to_scalar_handle),           & 
     219                   xios(get_reduce_domain_to_axis_handle), xios(get_extract_domain_to_axis_handle),                  & 
     220                   xios(get_extract_axis_to_scalar_handle), xios(get_expand_domain_handle) 
    167221END INTERFACE xios(get_handle) 
    168222 
     
    176230                   xios(add_zoomaxistoaxis), xios(add_interpolateaxistoaxis), xios(add_inverseaxistoaxis),           & 
    177231                   xios(add_scalar), xios(add_scalartogrid), xios(add_reduceaxistoscalartoscalar),                   & 
    178                    xios(add_computeconnectivitydomaintodomain) 
     232                   xios(add_computeconnectivitydomaintodomain), xios(add_reducedomaintoscalartoscalar),              & 
     233                   xios(add_reducedomaintoaxistoaxis), xios(add_extractdomaintoaxistoaxis),                          & 
     234                   xios(add_extractaxistoscalartoscalar), xios(add_expanddomaintodomain) 
    179235END INTERFACE xios(add_child) 
    180236 
  • XIOS/trunk/src/interface/fortran/ixml_tree.F90

    r934 r981  
    1010   USE IDOMAIN 
    1111   USE IVARIABLE 
     12    
    1213   USE IZOOM_DOMAIN 
    1314   USE IINTERPOLATE_DOMAIN 
    1415   USE IGENERATE_RECTILINEAR_DOMAIN 
    1516   USE ICOMPUTE_CONNECTIVITY_DOMAIN 
     17   USE IEXPAND_DOMAIN 
     18 
    1619   USE IZOOM_AXIS 
    1720   USE IINTERPOLATE_AXIS 
    1821   USE IINVERSE_AXIS 
     22   USE IREDUCE_DOMAIN_TO_AXIS 
     23   USE IEXTRACT_DOMAIN_TO_AXIS 
     24 
    1925   USE IREDUCE_AXIS_TO_SCALAR 
     26   USE IEXTRACT_AXIS_TO_SCALAR 
     27   USE IREDUCE_DOMAIN_TO_SCALAR 
    2028 
    2129   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 
     
    191199      END SUBROUTINE cxios_xml_tree_add_domaintogrid 
    192200 
     201      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
     202      !!!   TRANSFORMATIONS  
     203      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
     204      !!! DOMAIN 
    193205      SUBROUTINE cxios_xml_tree_add_zoomdomaintodomain(parent_, child_, child_id, child_id_size) BIND(C) 
    194206         USE ISO_C_BINDING 
     
    223235      END SUBROUTINE cxios_xml_tree_add_computeconnectivitydomaintodomain 
    224236 
     237      SUBROUTINE cxios_xml_tree_add_expanddomaintodomain(parent_, child_, child_id, child_id_size) BIND(C) 
     238         USE ISO_C_BINDING 
     239         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_ 
     240         INTEGER  (kind = C_INTPTR_T)               :: child_ 
     241         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id 
     242         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
     243      END SUBROUTINE cxios_xml_tree_add_expanddomaintodomain 
     244 
     245      !!!! AXIS 
    225246      SUBROUTINE cxios_xml_tree_add_zoomaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C) 
    226247         USE ISO_C_BINDING 
     
    247268      END SUBROUTINE cxios_xml_tree_add_inverseaxistoaxis 
    248269 
     270      SUBROUTINE cxios_xml_tree_add_reducedomaintoaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C) 
     271         USE ISO_C_BINDING 
     272         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_ 
     273         INTEGER  (kind = C_INTPTR_T)               :: child_ 
     274         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id 
     275         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
     276      END SUBROUTINE cxios_xml_tree_add_reducedomaintoaxistoaxis 
     277 
     278      SUBROUTINE cxios_xml_tree_add_extractdomaintoaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C) 
     279         USE ISO_C_BINDING 
     280         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_ 
     281         INTEGER  (kind = C_INTPTR_T)               :: child_ 
     282         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id 
     283         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
     284      END SUBROUTINE cxios_xml_tree_add_extractdomaintoaxistoaxis 
     285 
     286      !!! SCALAR 
    249287      SUBROUTINE cxios_xml_tree_add_reduceaxistoscalartoscalar(parent_, child_, child_id, child_id_size) BIND(C) 
    250288         USE ISO_C_BINDING 
     
    254292         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
    255293      END SUBROUTINE cxios_xml_tree_add_reduceaxistoscalartoscalar 
     294 
     295      SUBROUTINE cxios_xml_tree_add_extractaxistoscalartoscalar(parent_, child_, child_id, child_id_size) BIND(C) 
     296         USE ISO_C_BINDING 
     297         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_ 
     298         INTEGER  (kind = C_INTPTR_T)               :: child_ 
     299         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id 
     300         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
     301      END SUBROUTINE cxios_xml_tree_add_extractaxistoscalartoscalar 
     302 
     303      SUBROUTINE cxios_xml_tree_add_reducedomaintoscalartoscalar(parent_, child_, child_id, child_id_size) BIND(C) 
     304         USE ISO_C_BINDING 
     305         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_ 
     306         INTEGER  (kind = C_INTPTR_T)               :: child_ 
     307         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id 
     308         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
     309      END SUBROUTINE cxios_xml_tree_add_reducedomaintoscalartoscalar 
    256310 
    257311      SUBROUTINE cxios_xml_tree_show(filename, filename_size) BIND(C) 
     
    552606   END SUBROUTINE xios(add_domaintogrid) 
    553607 
     608   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
     609   !!!         TRANSFORMATIONS 
     610   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
     611   !!!         DOAMIN 
    554612   SUBROUTINE xios(add_zoomdomaintodomain)(parent_hdl, child_hdl, child_id) 
    555613      TYPE(txios(domain))           , INTENT(IN) :: parent_hdl 
     
    604662   END SUBROUTINE xios(add_computeconnectivitydomaintodomain) 
    605663 
     664   SUBROUTINE xios(add_expanddomaintodomain)(parent_hdl, child_hdl, child_id) 
     665      TYPE(txios(domain))                      , INTENT(IN) :: parent_hdl 
     666      TYPE(txios(expand_domain))               , INTENT(OUT):: child_hdl 
     667      CHARACTER(len = *), OPTIONAL             , INTENT(IN) :: child_id 
     668 
     669      IF (PRESENT(child_id)) THEN 
     670         CALL cxios_xml_tree_add_expanddomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 
     671      ELSE 
     672         CALL cxios_xml_tree_add_expanddomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 
     673      END IF 
     674 
     675   END SUBROUTINE xios(add_expanddomaintodomain) 
     676 
     677   !!!  AXIS 
    606678   SUBROUTINE xios(add_zoomaxistoaxis)(parent_hdl, child_hdl, child_id) 
    607679      TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl 
     
    643715   END SUBROUTINE xios(add_inverseaxistoaxis) 
    644716 
     717   SUBROUTINE xios(add_reducedomaintoaxistoaxis)(parent_hdl, child_hdl, child_id) 
     718      TYPE(txios(axis))                        , INTENT(IN) :: parent_hdl 
     719      TYPE(txios(reduce_domain_to_axis))       , INTENT(OUT):: child_hdl 
     720      CHARACTER(len = *), OPTIONAL             , INTENT(IN) :: child_id 
     721 
     722      IF (PRESENT(child_id)) THEN 
     723         CALL cxios_xml_tree_add_reducedomaintoaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 
     724      ELSE 
     725         CALL cxios_xml_tree_add_reducedomaintoaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 
     726      END IF 
     727 
     728   END SUBROUTINE xios(add_reducedomaintoaxistoaxis) 
     729 
     730   SUBROUTINE xios(add_extractdomaintoaxistoaxis)(parent_hdl, child_hdl, child_id) 
     731      TYPE(txios(axis))                        , INTENT(IN) :: parent_hdl 
     732      TYPE(txios(extract_domain_to_axis))      , INTENT(OUT):: child_hdl 
     733      CHARACTER(len = *), OPTIONAL             , INTENT(IN) :: child_id 
     734 
     735      IF (PRESENT(child_id)) THEN 
     736         CALL cxios_xml_tree_add_extractdomaintoaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 
     737      ELSE 
     738         CALL cxios_xml_tree_add_extractdomaintoaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 
     739      END IF 
     740 
     741   END SUBROUTINE xios(add_extractdomaintoaxistoaxis) 
     742 
     743   !!! SCALAR 
    645744   SUBROUTINE xios(add_reduceaxistoscalartoscalar)(parent_hdl, child_hdl, child_id) 
    646       TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl 
     745      TYPE(txios(scalar))                    , INTENT(IN) :: parent_hdl 
    647746      TYPE(txios(reduce_axis_to_scalar))     , INTENT(OUT):: child_hdl 
    648747      CHARACTER(len = *), OPTIONAL           , INTENT(IN) :: child_id 
     
    655754 
    656755   END SUBROUTINE xios(add_reduceaxistoscalartoscalar) 
     756 
     757   SUBROUTINE xios(add_extractaxistoscalartoscalar)(parent_hdl, child_hdl, child_id) 
     758      TYPE(txios(scalar))                    , INTENT(IN) :: parent_hdl 
     759      TYPE(txios(extract_axis_to_scalar))    , INTENT(OUT):: child_hdl 
     760      CHARACTER(len = *), OPTIONAL           , INTENT(IN) :: child_id 
     761 
     762      IF (PRESENT(child_id)) THEN 
     763         CALL cxios_xml_tree_add_extractaxistoscalartoscalar(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 
     764      ELSE 
     765         CALL cxios_xml_tree_add_extractaxistoscalartoscalar(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 
     766      END IF 
     767 
     768   END SUBROUTINE xios(add_extractaxistoscalartoscalar) 
     769 
     770   SUBROUTINE xios(add_reducedomaintoscalartoscalar)(parent_hdl, child_hdl, child_id) 
     771      TYPE(txios(scalar))                      , INTENT(IN) :: parent_hdl 
     772      TYPE(txios(reduce_domain_to_scalar))     , INTENT(OUT):: child_hdl 
     773      CHARACTER(len = *), OPTIONAL             , INTENT(IN) :: child_id 
     774 
     775      IF (PRESENT(child_id)) THEN 
     776         CALL cxios_xml_tree_add_reducedomaintoscalartoscalar(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 
     777      ELSE 
     778         CALL cxios_xml_tree_add_reducedomaintoscalartoscalar(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 
     779      END IF 
     780 
     781   END SUBROUTINE xios(add_reducedomaintoscalartoscalar) 
     782 
    657783END MODULE IXML_TREE 
Note: See TracChangeset for help on using the changeset viewer.