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/fortran/ixml_tree.F90

    r835 r836  
    99   USE IDOMAIN 
    1010   USE IVARIABLE 
     11   USE IZOOM_DOMAIN 
     12   USE IINTERPOLATE_DOMAIN 
     13   USE IGENERATE_RECTILINEAR_DOMAIN 
     14   USE IZOOM_AXIS 
     15   USE IINTERPOLATE_AXIS 
     16   USE IINVERSE_AXIS 
    1117 
    1218   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 
     
    157163         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
    158164      END SUBROUTINE cxios_xml_tree_add_domaintogrid 
     165 
     166      SUBROUTINE cxios_xml_tree_add_zoomdomaintodomain(parent_, child_, child_id, child_id_size) BIND(C) 
     167         USE ISO_C_BINDING 
     168         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_ 
     169         INTEGER  (kind = C_INTPTR_T)               :: child_ 
     170         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id 
     171         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
     172      END SUBROUTINE cxios_xml_tree_add_zoomdomaintodomain 
     173 
     174      SUBROUTINE cxios_xml_tree_add_interpolatedomaintodomain(parent_, child_, child_id, child_id_size) BIND(C) 
     175         USE ISO_C_BINDING 
     176         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_ 
     177         INTEGER  (kind = C_INTPTR_T)               :: child_ 
     178         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id 
     179         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
     180      END SUBROUTINE cxios_xml_tree_add_interpolatedomaintodomain 
     181 
     182      SUBROUTINE cxios_xml_tree_add_generatedomaintodomain(parent_, child_, child_id, child_id_size) BIND(C) 
     183         USE ISO_C_BINDING 
     184         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_ 
     185         INTEGER  (kind = C_INTPTR_T)               :: child_ 
     186         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id 
     187         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
     188      END SUBROUTINE cxios_xml_tree_add_generatedomaintodomain 
     189 
     190      SUBROUTINE cxios_xml_tree_add_zoomaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C) 
     191         USE ISO_C_BINDING 
     192         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_ 
     193         INTEGER  (kind = C_INTPTR_T)               :: child_ 
     194         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id 
     195         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
     196      END SUBROUTINE cxios_xml_tree_add_zoomaxistoaxis 
     197 
     198      SUBROUTINE cxios_xml_tree_add_interpolateaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C) 
     199         USE ISO_C_BINDING 
     200         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_ 
     201         INTEGER  (kind = C_INTPTR_T)               :: child_ 
     202         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id 
     203         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
     204      END SUBROUTINE cxios_xml_tree_add_interpolateaxistoaxis 
     205 
     206      SUBROUTINE cxios_xml_tree_add_inverseaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C) 
     207         USE ISO_C_BINDING 
     208         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_ 
     209         INTEGER  (kind = C_INTPTR_T)               :: child_ 
     210         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id 
     211         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
     212      END SUBROUTINE cxios_xml_tree_add_inverseaxistoaxis 
    159213 
    160214      SUBROUTINE cxios_xml_tree_show(filename, filename_size) BIND(C) 
     
    417471 
    418472   END SUBROUTINE xios(add_domaintogrid) 
     473 
     474   SUBROUTINE xios(add_zoomdomaintodomain)(parent_hdl, child_hdl, child_id) 
     475      TYPE(txios(domain))           , INTENT(IN) :: parent_hdl 
     476      TYPE(txios(zoom_domain))      , INTENT(OUT):: child_hdl 
     477      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id 
     478 
     479      IF (PRESENT(child_id)) THEN 
     480         CALL cxios_xml_tree_add_zoomdomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 
     481      ELSE 
     482         CALL cxios_xml_tree_add_zoomdomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 
     483      END IF 
     484 
     485   END SUBROUTINE xios(add_zoomdomaintodomain) 
     486 
     487   SUBROUTINE xios(add_interpolatedomaintodomain)(parent_hdl, child_hdl, child_id) 
     488      TYPE(txios(domain))             , INTENT(IN) :: parent_hdl 
     489      TYPE(txios(interpolate_domain)) , INTENT(OUT):: child_hdl 
     490      CHARACTER(len = *), OPTIONAL    , INTENT(IN) :: child_id 
     491 
     492      IF (PRESENT(child_id)) THEN 
     493         CALL cxios_xml_tree_add_interpolatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 
     494      ELSE 
     495         CALL cxios_xml_tree_add_interpolatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 
     496      END IF 
     497 
     498   END SUBROUTINE xios(add_interpolatedomaintodomain) 
     499 
     500   SUBROUTINE xios(add_generatedomaintodomain)(parent_hdl, child_hdl, child_id) 
     501      TYPE(txios(domain))                      , INTENT(IN) :: parent_hdl 
     502      TYPE(txios(generate_rectilinear_domain)) , INTENT(OUT):: child_hdl 
     503      CHARACTER(len = *), OPTIONAL             , INTENT(IN) :: child_id 
     504 
     505      IF (PRESENT(child_id)) THEN 
     506         CALL cxios_xml_tree_add_generatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 
     507      ELSE 
     508         CALL cxios_xml_tree_add_generatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 
     509      END IF 
     510 
     511   END SUBROUTINE xios(add_generatedomaintodomain) 
     512 
     513   SUBROUTINE xios(add_zoomaxistoaxis)(parent_hdl, child_hdl, child_id) 
     514      TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl 
     515      TYPE(txios(zoom_axis))                 , INTENT(OUT):: child_hdl 
     516      CHARACTER(len = *), OPTIONAL           , INTENT(IN) :: child_id 
     517 
     518      IF (PRESENT(child_id)) THEN 
     519         CALL cxios_xml_tree_add_zoomaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 
     520      ELSE 
     521         CALL cxios_xml_tree_add_zoomaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 
     522      END IF 
     523 
     524   END SUBROUTINE xios(add_zoomaxistoaxis) 
     525 
     526   SUBROUTINE xios(add_interpolateaxistoaxis)(parent_hdl, child_hdl, child_id) 
     527      TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl 
     528      TYPE(txios(interpolate_axis))          , INTENT(OUT):: child_hdl 
     529      CHARACTER(len = *), OPTIONAL           , INTENT(IN) :: child_id 
     530 
     531      IF (PRESENT(child_id)) THEN 
     532         CALL cxios_xml_tree_add_interpolateaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 
     533      ELSE 
     534         CALL cxios_xml_tree_add_interpolateaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 
     535      END IF 
     536 
     537   END SUBROUTINE xios(add_interpolateaxistoaxis) 
     538 
     539      SUBROUTINE xios(add_inverseaxistoaxis)(parent_hdl, child_hdl, child_id) 
     540      TYPE(txios(axis))                      , INTENT(IN) :: parent_hdl 
     541      TYPE(txios(zoom_axis))                 , INTENT(OUT):: child_hdl 
     542      CHARACTER(len = *), OPTIONAL           , INTENT(IN) :: child_id 
     543 
     544      IF (PRESENT(child_id)) THEN 
     545         CALL cxios_xml_tree_add_inverseaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 
     546      ELSE 
     547         CALL cxios_xml_tree_add_inverseaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 
     548      END IF 
     549 
     550   END SUBROUTINE xios(add_inverseaxistoaxis) 
    419551END MODULE IXML_TREE 
Note: See TracChangeset for help on using the changeset viewer.