Ignore:
Timestamp:
09/22/16 10:58:44 (8 years ago)
Author:
mhnguyen
Message:

Adding new transformation: Compute_connectivity_domain

Test
+) On Curie
+) Test passes

Location:
XIOS/trunk/src/interface
Files:
6 added
4 edited

Legend:

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

    r891 r934  
    5050   typedef xios::CInterpolateDomain         *  XInterpolateDomainPtr; 
    5151   typedef xios::CGenerateRectilinearDomain *  XGenerateRectilinearDomainPtr; 
     52   typedef xios::CComputeConnectivityDomain *  XComputeConnectivityDomainPtr; 
    5253 
    5354   typedef xios::CTransformation<CAxis>   *  XTransformationAxisPtr; 
     
    452453      } 
    453454      *child_ = static_cast<XGenerateRectilinearDomainPtr>(tmpChild_); 
     455      CTimer::get("XIOS").suspend() ; 
     456   } 
     457 
     458   void cxios_xml_tree_add_computeconnectivitydomaintodomain 
     459      (XDomainPtr parent_, XComputeConnectivityDomainPtr * child_, const char * child_id, int child_id_size) 
     460   { 
     461      std::string child_id_str; 
     462      XTransformationDomainPtr tmpChild_; 
     463      CTimer::get("XIOS").resume() ; 
     464      if (cstr2string(child_id, child_id_size, child_id_str)) 
     465      { 
     466         tmpChild_ = parent_->addTransformation(TRANS_COMPUTE_CONNECTIVITY_DOMAIN, child_id_str); 
     467      } 
     468      else 
     469      { 
     470         tmpChild_ = parent_->addTransformation(TRANS_COMPUTE_CONNECTIVITY_DOMAIN); 
     471      } 
     472      *child_ = static_cast<XComputeConnectivityDomainPtr>(tmpChild_); 
    454473      CTimer::get("XIOS").suspend() ; 
    455474   } 
  • XIOS/trunk/src/interface/fortran/ixios.F90

    r891 r934  
    106106                                        xios(is_defined_reduce_axis_to_scalar_attr) 
    107107 
     108USE icompute_connectivity_domain, ONLY : txios(compute_connectivity_domain), xios(is_valid_compute_connectivity_domain) 
     109 
     110USE icompute_connectivity_domain_attr, ONLY : xios(set_compute_connectivity_domain_attr), & 
     111                                              xios(get_compute_connectivity_domain_attr), & 
     112                                              xios(is_defined_compute_connectivity_domain_attr) 
     113 
    108114USE XIOS_INTERFACES, ONLY : xios(set_attr), xios(get_attr), xios(is_defined_attr), xios(get_handle), xios(add_child), & 
    109115                            xios(send_field), xios(recv_field), xios(field_is_active), xios(getVar), xios(setVar) 
  • XIOS/trunk/src/interface/fortran/ixios_interfaces.F90

    r932 r934  
    8888                                              xios(get_generate_rectilinear_domain_attr_hdl), & 
    8989                                              xios(is_defined_generate_rectilinear_domain_attr_hdl) 
     90USE icompute_connectivity_domain, ONLY : xios(get_compute_connectivity_domain_handle) 
     91 
     92USE icompute_connectivity_domain_attr, ONLY : xios(set_compute_connectivity_domain_attr_hdl), & 
     93                                              xios(get_compute_connectivity_domain_attr_hdl), & 
     94                                              xios(is_defined_compute_connectivity_domain_attr_hdl) 
    9095 
    9196USE ireduce_axis_to_scalar, ONLY : xios(get_reduce_axis_to_scalar_handle) 
     
    103108                      xios(add_generatedomaintodomain), xios(add_zoomaxistoaxis),                          & 
    104109                      xios(add_interpolateaxistoaxis), xios(add_inverseaxistoaxis), xios(add_scalar),      & 
    105                       xios(add_scalargroup), xios(add_scalartogrid), xios(add_reduceaxistoscalartoscalar) 
     110                      xios(add_scalargroup), xios(add_scalartogrid), xios(add_reduceaxistoscalartoscalar), & 
     111                      xios(add_computeconnectivitydomaintodomain) 
    106112 
    107113PRIVATE 
     
    116122                   xios(set_interpolate_domain_attr_hdl), xios(set_inverse_axis_attr_hdl),                   & 
    117123                   xios(set_generate_rectilinear_domain_attr_hdl), xios(set_scalar_attr_hdl),                & 
    118                    xios(set_scalargroup_attr_hdl), xios(set_reduce_axis_to_scalar_attr_hdl) 
     124                   xios(set_scalargroup_attr_hdl), xios(set_reduce_axis_to_scalar_attr_hdl),                 & 
     125                   xios(set_compute_connectivity_domain_attr_hdl) 
    119126END INTERFACE xios(set_attr) 
    120127 
     
    128135                   xios(get_interpolate_domain_attr_hdl), xios(get_inverse_axis_attr_hdl),                   & 
    129136                   xios(get_generate_rectilinear_domain_attr_hdl), xios(get_scalar_attr_hdl),                & 
    130                    xios(get_scalargroup_attr_hdl), xios(get_reduce_axis_to_scalar_attr_hdl) 
     137                   xios(get_scalargroup_attr_hdl), xios(get_reduce_axis_to_scalar_attr_hdl),                 & 
     138                   xios(get_compute_connectivity_domain_attr_hdl) 
    131139END INTERFACE xios(get_attr) 
    132140 
     
    141149                   xios(is_defined_inverse_axis_attr_hdl), xios(is_defined_generate_rectilinear_domain_attr_hdl),                 & 
    142150                   xios(is_defined_scalar_attr_hdl), xios(is_defined_scalargroup_attr_hdl),                                       & 
    143                    xios(is_defined_reduce_axis_to_scalar_attr_hdl) 
     151                   xios(is_defined_reduce_axis_to_scalar_attr_hdl), xios(is_defined_compute_connectivity_domain_attr_hdl) 
    144152END INTERFACE xios(is_defined_attr) 
    145153 
     
    153161                   xios(get_interpolate_domain_handle), xios(get_inverse_axis_handle),              & 
    154162                   xios(get_generate_rectilinear_domain_handle), xios(get_scalar_handle),           & 
    155                    xios(get_scalargroup_handle), xios(get_reduce_axis_to_scalar_handle) 
     163                   xios(get_scalargroup_handle), xios(get_reduce_axis_to_scalar_handle),            & 
     164                   xios(get_compute_connectivity_domain_handle) 
    156165END INTERFACE xios(get_handle) 
    157166 
     
    164173                   xios(add_interpolatedomaintodomain), xios(add_generatedomaintodomain),                            & 
    165174                   xios(add_zoomaxistoaxis), xios(add_interpolateaxistoaxis), xios(add_inverseaxistoaxis),           & 
    166                    xios(add_scalar), xios(add_scalartogrid), xios(add_reduceaxistoscalartoscalar) 
     175                   xios(add_scalar), xios(add_scalartogrid), xios(add_reduceaxistoscalartoscalar),                   & 
     176                   xios(add_computeconnectivitydomaintodomain) 
    167177END INTERFACE xios(add_child) 
    168178 
  • XIOS/trunk/src/interface/fortran/ixml_tree.F90

    r903 r934  
    1313   USE IINTERPOLATE_DOMAIN 
    1414   USE IGENERATE_RECTILINEAR_DOMAIN 
     15   USE ICOMPUTE_CONNECTIVITY_DOMAIN 
    1516   USE IZOOM_AXIS 
    1617   USE IINTERPOLATE_AXIS 
     
    214215      END SUBROUTINE cxios_xml_tree_add_generatedomaintodomain 
    215216 
     217      SUBROUTINE cxios_xml_tree_add_computeconnectivitydomaintodomain(parent_, child_, child_id, child_id_size) BIND(C) 
     218         USE ISO_C_BINDING 
     219         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_ 
     220         INTEGER  (kind = C_INTPTR_T)               :: child_ 
     221         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id 
     222         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
     223      END SUBROUTINE cxios_xml_tree_add_computeconnectivitydomaintodomain 
     224 
    216225      SUBROUTINE cxios_xml_tree_add_zoomaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C) 
    217226         USE ISO_C_BINDING 
     
    582591   END SUBROUTINE xios(add_generatedomaintodomain) 
    583592 
     593   SUBROUTINE xios(add_computeconnectivitydomaintodomain)(parent_hdl, child_hdl, child_id) 
     594      TYPE(txios(domain))                      , INTENT(IN) :: parent_hdl 
     595      TYPE(txios(compute_connectivity_domain)) , INTENT(OUT):: child_hdl 
     596      CHARACTER(len = *), OPTIONAL             , INTENT(IN) :: child_id 
     597 
     598      IF (PRESENT(child_id)) THEN 
     599         CALL cxios_xml_tree_add_computeconnectivitydomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 
     600      ELSE 
     601         CALL cxios_xml_tree_add_computeconnectivitydomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 
     602      END IF 
     603 
     604   END SUBROUTINE xios(add_computeconnectivitydomaintodomain) 
     605 
    584606   SUBROUTINE xios(add_zoomaxistoaxis)(parent_hdl, child_hdl, child_id) 
    585607      TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl 
Note: See TracChangeset for help on using the changeset viewer.