Changeset 784


Ignore:
Timestamp:
11/12/15 16:33:14 (5 years ago)
Author:
mhnguyen
Message:

Generating Fortran interface for zoom_axis and zoom_domain

Test
+) On Curie
+) All results are correct

Location:
XIOS/trunk
Files:
13 added
8 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/inputs/COMPLETE/context_atmosphere.xml

    r744 r784  
    2727    <domain id="domain_atm" /> 
    2828    <domain id="domain_atm_zoom" domain_ref="domain_atm"> 
    29       <zoom_domain zoom_ibegin="39" zoom_ni="20" zoom_jbegin="39" zoom_nj="5"/> 
     29      <zoom_domain id="domain_atm_zoom" /> 
    3030    </domain> 
    3131  </domain_definition> 
  • XIOS/trunk/src/config/zoom_domain_attribute.conf

    r631 r784  
    44DECLARE_ATTRIBUTE(int             , zoom_ibegin) 
    55DECLARE_ATTRIBUTE(int             , zoom_jbegin) 
    6  
    7 /* LOCAL */ 
    8 DECLARE_ATTRIBUTE(int             , zoom_ni_loc) 
    9 DECLARE_ATTRIBUTE(int             , zoom_nj_loc) 
    10 DECLARE_ATTRIBUTE(int             , zoom_ibegin_loc) 
    11 DECLARE_ATTRIBUTE(int             , zoom_jbegin_loc) 
  • XIOS/trunk/src/generate_fortran_interface.cpp

    r591 r784  
    77#include "context.hpp" 
    88#include "file.hpp" 
     9#include "zoom_domain.hpp" 
     10#include "zoom_axis.hpp" 
    911 
    1012int main (int argc, char ** argv, char ** UNUSED (env)) 
     
    2931  CFileGroup filegroup; 
    3032 
     33  CZoomDomain zoomDomain; 
     34  CZoomAxis zoomAxis; 
     35 
    3136  ostringstream oss; 
    3237  ofstream file; 
     
    195200  file.close(); 
    196201 
     202  file.open((path+"zoom_domain_interface_attr.F90").c_str()); 
     203  zoomDomain.generateFortran2003Interface(file); 
     204  file.close(); 
     205 
     206  file.open((path+"iczoom_domain_attr.cpp").c_str()); 
     207  zoomDomain.generateCInterface(file); 
     208  file.close(); 
     209 
     210  file.open((path+"izoom_domain_attr.F90").c_str()); 
     211  zoomDomain.generateFortranInterface(file); 
     212  file.close(); 
     213 
     214  file.open((path+"zoom_axis_interface_attr.F90").c_str()); 
     215  zoomAxis.generateFortran2003Interface(file); 
     216  file.close(); 
     217 
     218  file.open((path+"iczoom_axis_attr.cpp").c_str()); 
     219  zoomAxis.generateCInterface(file); 
     220  file.close(); 
     221 
     222  file.open((path+"izoom_axis_attr.F90").c_str()); 
     223  zoomAxis.generateFortranInterface(file); 
     224  file.close(); 
    197225 
    198226  file.open((path+"context_interface_attr.F90").c_str()); 
     
    208236  file.close(); 
    209237 
     238 
     239 
    210240} 
  • XIOS/trunk/src/interface/fortran/ixios.F90

    r593 r784  
    6767USE iaxisgroup_attr, ONLY : xios(set_axisgroup_attr), xios(get_axisgroup_attr), xios(is_defined_axisgroup_attr) 
    6868 
     69USE izoom_axis, ONLY : txios(zoom_axis), xios(is_valid_zoom_axis) 
     70 
     71USE izoom_axis_attr, ONLY : xios(set_zoom_axis_attr), xios(get_zoom_axis_attr), xios(is_defined_zoom_axis_attr) 
     72 
     73USE izoom_domain, ONLY : txios(zoom_domain), xios(is_valid_zoom_domain) 
     74 
     75USE izoom_domain_attr, ONLY : xios(set_zoom_domain_attr), xios(get_zoom_domain_attr), xios(is_defined_zoom_domain_attr) 
     76 
    6977USE XIOS_INTERFACES, ONLY : xios(set_attr), xios(get_attr), xios(is_defined_attr), xios(get_handle), xios(add_child), & 
    7078                            xios(send_field), xios(send_scalar), xios(recv_field), xios(field_is_active), xios(getVar), xios(setVar) 
  • XIOS/trunk/src/interface/fortran/ixios_interfaces.F90

    r593 r784  
    5151USE iaxisgroup_attr, ONLY : xios(set_axisgroup_attr_hdl), xios(get_axisgroup_attr_hdl), xios(is_defined_axisgroup_attr_hdl) 
    5252 
     53USE izoom_axis, ONLY : xios(get_zoom_axis_handle) 
     54 
     55USE izoom_axis_attr, ONLY : xios(set_zoom_axis_attr_hdl), xios(get_zoom_axis_attr_hdl), xios(is_defined_zoom_axis_attr_hdl) 
     56 
     57USE izoom_domain, ONLY : xios(get_zoom_domain_handle) 
     58 
     59USE izoom_domain_attr, ONLY : xios(set_zoom_domain_attr_hdl), xios(get_zoom_domain_attr_hdl), xios(is_defined_zoom_domain_attr_hdl) 
     60 
    5361USE ixml_tree, ONLY : xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),   & 
    5462                      xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield),          & 
     
    6472                   xios(set_file_attr_hdl), xios(set_filegroup_attr_hdl),                                    & 
    6573                   xios(set_grid_attr_hdl), xios(set_gridgroup_attr_hdl), xios(set_axis_attr_hdl) ,          & 
    66                    xios(set_axisgroup_attr_hdl), xios(set_context_attr_hdl) 
     74                   xios(set_axisgroup_attr_hdl), xios(set_context_attr_hdl), xios(set_zoom_axis_attr_hdl),   & 
     75                   xios(set_zoom_domain_attr_hdl) 
    6776END INTERFACE xios(set_attr) 
    6877 
     
    7281                   xios(get_file_attr_hdl), xios(get_filegroup_attr_hdl),                                    & 
    7382                   xios(get_grid_attr_hdl), xios(get_gridgroup_attr_hdl), xios(get_axis_attr_hdl) ,          & 
    74                    xios(get_axisgroup_attr_hdl), xios(get_context_attr_hdl) 
     83                   xios(get_axisgroup_attr_hdl), xios(get_context_attr_hdl), xios(get_zoom_axis_attr_hdl),   & 
     84                   xios(get_zoom_domain_attr_hdl) 
    7585END INTERFACE xios(get_attr) 
    7686 
     
    8090                   xios(is_defined_file_attr_hdl), xios(is_defined_filegroup_attr_hdl),                                           & 
    8191                   xios(is_defined_grid_attr_hdl), xios(is_defined_gridgroup_attr_hdl), xios(is_defined_axis_attr_hdl) ,          & 
    82                    xios(is_defined_axisgroup_attr_hdl), xios(is_defined_context_attr_hdl) 
     92                   xios(is_defined_axisgroup_attr_hdl), xios(is_defined_context_attr_hdl),                                        & 
     93                   xios(is_defined_zoom_axis_attr_hdl), xios(is_defined_zoom_domain_attr_hdl) 
    8394END INTERFACE xios(is_defined_attr) 
    8495 
     
    8899                   xios(get_gridgroup_handle), xios(get_axis_handle), xios(get_axisgroup_handle),   & 
    89100                   xios(get_field_handle), xios(get_fieldgroup_handle),xios(get_variable_handle),   & 
    90                    xios(get_variablegroup_handle) 
     101                   xios(get_variablegroup_handle), xios(get_zoom_axis_handle),                  & 
     102                   xios(get_zoom_domain_handle) 
    91103END INTERFACE xios(get_handle) 
    92104 
  • XIOS/trunk/src/node/axis.cpp

    r775 r784  
    912912      do 
    913913      { 
     914        StdString nodeId(""); 
     915        if (node.getAttributes().end() != node.getAttributes().find("id")) 
     916        { nodeId = node.getAttributes()["id"]; } 
     917 
    914918        if (node.getElementName() == inverse) { 
    915           CInverseAxis* tmp = (CInverseAxisGroup::get(inverseAxisDefRoot))->createChild(); 
     919          CInverseAxis* tmp = (CInverseAxisGroup::get(inverseAxisDefRoot))->createChild(nodeId); 
    916920          tmp->parse(node); 
    917921          transformationMap_.push_back(std::make_pair(TRANS_INVERSE_AXIS,tmp)); 
     
    922926        } 
    923927        else if (node.getElementName() == interp) { 
    924           CInterpolateAxis* tmp = (CInterpolateAxisGroup::get(interpAxisDefRoot))->createChild(); 
     928          CInterpolateAxis* tmp = (CInterpolateAxisGroup::get(interpAxisDefRoot))->createChild(nodeId); 
    925929          tmp->parse(node); 
    926930          transformationMap_.push_back(std::make_pair(TRANS_INTERPOLATE_AXIS,tmp)); 
  • XIOS/trunk/src/node/domain.cpp

    r783 r784  
    19501950      do 
    19511951      { 
     1952        StdString nodeId(""); 
     1953        if (node.getAttributes().end() != node.getAttributes().find("id")) 
     1954        { nodeId = node.getAttributes()["id"]; } 
     1955 
    19521956        if (node.getElementName() == zoom) { 
    1953           CZoomDomain* tmp = (CZoomDomainGroup::get(zoomDomainDefRoot))->createChild(); 
     1957          CZoomDomain* tmp = (CZoomDomainGroup::get(zoomDomainDefRoot))->createChild(nodeId); 
    19541958          tmp->parse(node); 
    19551959          transformationMap_.push_back(std::make_pair(TRANS_ZOOM_DOMAIN,tmp)); 
     
    19571961        else if (node.getElementName() == interpFromFile) 
    19581962        { 
    1959           CInterpolateDomain* tmp = (CInterpolateDomainGroup::get(interpDomainDefRoot))->createChild(); 
     1963          CInterpolateDomain* tmp = (CInterpolateDomainGroup::get(interpDomainDefRoot))->createChild(nodeId); 
    19601964          tmp->parse(node); 
    19611965          transformationMap_.push_back(std::make_pair(TRANS_INTERPOLATE_DOMAIN,tmp)); 
     
    19631967        else if (node.getElementName() == generateRectilinear) 
    19641968        { 
    1965           CGenerateRectilinearDomain* tmp = (CGenerateRectilinearDomainGroup::get(generateRectilinearDefRoot))->createChild(); 
     1969          CGenerateRectilinearDomain* tmp = (CGenerateRectilinearDomainGroup::get(generateRectilinearDefRoot))->createChild(nodeId); 
    19661970          tmp->parse(node); 
    19671971          transformationMap_.push_back(std::make_pair(TRANS_GENERATE_RECTILINEAR_DOMAIN,tmp)); 
  • XIOS/trunk/src/test/test_complete.f90

    r666 r784  
    9696  CALL xios_set_domain_attr("domain_atm_zoom",data_dim=2, data_ibegin=-1, data_ni=ni+2, data_jbegin=-2, data_nj=nj+4) 
    9797  CALL xios_set_domain_attr("domain_atm_zoom",lonvalue_2D=lon,latvalue_2D=lat) 
    98 !  CALL xios_set_domain_attr("domain_atm_zoom",zoom_ibegin=39, zoom_ni=20, zoom_jbegin=39, zoom_nj=5) 
     98  CALL xios_set_zoom_domain_attr("domain_atm_zoom",zoom_ibegin=39, zoom_ni=20, zoom_jbegin=39, zoom_nj=5) 
    9999 
    100100!!! Activation du groupe field_definition 
Note: See TracChangeset for help on using the changeset viewer.