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

Fortran interfaces:

+) Adding Fortran interfaces of transformation

Test
+) Only complilation on Curie

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.