Changeset 657


Ignore:
Timestamp:
07/28/15 13:37:07 (9 years ago)
Author:
mhnguyen
Message:

Making changes in domain to make sure unstructed grid work with new method of index distribution

+) Change the way define i_index and j_index of a domain
+) Remove some redundant attributes of domain
+) Adjust the way to calculate index distribution on server side

Test
+) Make some minor change to test_unstruct_complete to work with new XIOS
+) On Curie
+) All test pass and correct

Location:
XIOS/trunk
Files:
7 added
34 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/bld.cfg

    r540 r657  
    3131bld::target libxios.a 
    3232#bld::target generate_fortran_interface.exe  
    33 bld::target xios_server.exe test_client.exe parse_xml.exe test_complete.exe test_xios_interface.exe test_new_features.exe 
     33bld::target xios_server.exe test_client.exe parse_xml.exe test_complete.exe test_xios_interface.exe test_new_features.exe test_unstruct_complete.exe 
    3434bld::exe_dep 
    3535 
  • XIOS/trunk/inputs/Version2/iodef.xml

    r633 r657  
    1111     <field id="field_Two_Axis"  operation="average" freq_op="3600s" grid_ref="grid_Two_Axis" /> 
    1212     <field id="field_All_Axis" operation="average" freq_op="3600s" grid_ref="grid_All_Axis" /> 
    13      <field id="field_Axis_transformed"  operation="average" freq_op="3600s" field_ref="field_Two_Axis" grid_ref="grid_Axis_tranformed" /> 
     13     <field id="field_Axis_transformed"  operation="average" freq_op="3600s" field_ref="field_A" grid_ref="grid_Axis_tranformed" /> 
    1414     <field id="field_Axis_transformed_Interpolated"  operation="average" freq_op="3600s" field_ref="field_Axis" grid_ref="grid_Axis_tranformed_Interpolated" /> 
     15     <field id="field_Domain_transformed_Interpolated"  operation="average" freq_op="3600s" field_ref="field_A" grid_ref="grid_Domain_tranformed_Interpolated" /> 
    1516     <field id="field_Scalar" operation="average" freq_op="3600s" grid_ref="ScalarGrid" /> 
    1617   </field_definition> 
     
    1819   <file_definition type="multiple_file" par_access="collective" output_freq="6h" output_level="10" enabled=".TRUE."> 
    1920     <file id="output" name="output" type="one_file"> 
    20         <field field_ref="field_A" /> 
     21<!--        <field field_ref="field_A" />--> 
    2122     </file> 
    2223     <file id="output_Axis" name="output_Axis" type="one_file"> 
    23         <field field_ref="field_Axis" /> 
     24<!--        <field field_ref="field_Axis" />--> 
    2425     </file> 
    2526     <file id="output_All_Axis" name="output_All_Axis" type="one_file"> 
    26         <field field_ref="field_All_Axis" /> 
     27<!--        <field field_ref="field_All_Axis" />--> 
    2728     </file> 
    2829     <file id="output_Axis_transformed" name="output_Axis_transformed" type="one_file"> 
    29         <field field_ref="field_Axis_transformed" /> 
     30<!--        <field field_ref="field_Axis_transformed" />--> 
    3031     </file> 
    3132     <file id="output_Axis_transformed_interpolated" name="output_Axis_transformed_interpolated"> 
    32         <field field_ref="field_Axis_transformed_Interpolated" /> 
     33<!--        <field field_ref="field_Axis_transformed_Interpolated" />--> 
     34     </file> 
     35     <file id="output_Domain_transformed_interpolated" name="output_Domain_transformed_interpolated"> 
     36        <field field_ref="field_Domain_transformed_Interpolated" /> 
    3337     </file> 
    3438     <file id="output_Scalar" name="output_Scalar" type="one_file"> 
     
    5458     </axis> 
    5559     <axis id="axis_H" axis_ref="axis_C"> 
    56        <inverse_axis /> 
    57        <zoom_axis zoom_begin="0" zoom_size="1" /> 
     60<!--       <inverse_axis />--> 
     61<!--       <zoom_axis zoom_begin="0" zoom_size="1" />--> 
    5862     </axis> 
    5963   </axis_definition> 
     
    6266     <domain id="domain_A" /> 
    6367     <domain id="domain_A_zoom" domain_ref="domain_A"> 
    64        <zoom_domain zoom_ibegin="1" zoom_ni="3" zoom_jbegin="0" zoom_nj="4"/> 
    65        <zoom_domain zoom_ibegin="0" zoom_ni="2" zoom_jbegin="0" zoom_nj="2"/> 
     68<!--       <zoom_domain zoom_ibegin="1" zoom_ni="3" zoom_jbegin="0" zoom_nj="2"/>--> 
     69       <zoom_domain zoom_ibegin="39" zoom_ni="20" zoom_jbegin="39" zoom_nj="20"/> 
     70<!--       <zoom_domain zoom_ibegin="0" zoom_ni="2" zoom_jbegin="0" zoom_nj="2"/>--> 
     71     </domain> 
     72     <domain id="domain_A_transformed" domain_ref="domain_A"> 
     73       <interpolate_from_file_domain file="" /> 
    6674     </domain> 
    6775   </domain_definition> 
     
    8795       <grid id="grid_Axis_tranformed"> 
    8896<!--         <domain domain_ref="domain_A" />--> 
    89 <!--         <domain domain_ref="domain_A_zoom" />--> 
    90 <!--         <axis axis_ref="axis_H" />--> 
    91          <axis axis_ref="axis_E" /> 
    92          <axis axis_ref="axis_F" /> 
     97         <domain domain_ref="domain_A_zoom" /> 
     98         <axis axis_ref="axis_H" /> 
     99<!--         <axis axis_ref="axis_E" />--> 
     100<!--         <axis axis_ref="axis_F" />--> 
     101       </grid> 
     102       <grid id="grid_Domain_tranformed_Interpolated"> 
     103         <domain domain_ref="domain_A_transformed" /> 
     104         <axis axis_ref="axis_H" /> 
    93105       </grid> 
    94106       <grid id="grid_Axis_tranformed_Interpolated"> 
  • XIOS/trunk/src/config/domain_attribute.conf

    r611 r657  
    1313/* LOCAL */ 
    1414DECLARE_ATTRIBUTE(int             , ibegin) 
    15 DECLARE_ATTRIBUTE(int             , iend) 
    1615DECLARE_ATTRIBUTE(int             , ni) 
    1716 
    1817/* LOCAL */ 
    1918DECLARE_ATTRIBUTE(int             , jbegin) 
    20 DECLARE_ATTRIBUTE(int             , jend) 
    2119DECLARE_ATTRIBUTE(int             , nj) 
    2220 
    2321 
    24 DECLARE_ARRAY(int,2             , i_index) 
    25 DECLARE_ARRAY(int,2             , j_index) 
     22DECLARE_ARRAY(int,1             , i_index) 
     23DECLARE_ARRAY(int,1             , j_index) 
    2624 
    2725/* LOCAL */ 
     26DECLARE_ARRAY(bool, 1 , mask_1D) 
     27DECLARE_ARRAY(bool, 2 , mask_2D) 
    2828DECLARE_ARRAY(bool, 2 , mask) 
    2929 
     
    3636DECLARE_ATTRIBUTE(int             , data_ibegin) 
    3737DECLARE_ATTRIBUTE(int             , data_jbegin) 
    38  
    39 /* GLOBAL */ 
    40 DECLARE_ATTRIBUTE(int             , zoom_ni) 
    41 DECLARE_ATTRIBUTE(int             , zoom_nj) 
    42 DECLARE_ATTRIBUTE(int             , zoom_ibegin) 
    43 DECLARE_ATTRIBUTE(int             , zoom_jbegin) 
    44  
    45 /* LOCAL */ 
    46 DECLARE_ATTRIBUTE(int             , zoom_ni_loc) 
    47 DECLARE_ATTRIBUTE(int             , zoom_nj_loc) 
    48 DECLARE_ATTRIBUTE(int             , zoom_ibegin_loc) 
    49 DECLARE_ATTRIBUTE(int             , zoom_jbegin_loc) 
    5038 
    5139/* LOCAL */ 
     
    6250DECLARE_ARRAY(double, 2, area) 
    6351 
    64 DECLARE_ENUM3(type,regular,curvilinear,unstructured) 
     52DECLARE_ENUM3(type,regular,curvilinear,unstructured) //rectilinear 
    6553DECLARE_ATTRIBUTE(StdString, domain_ref) 
    6654 
  • XIOS/trunk/src/config/node_type.conf

    r631 r657  
    4747#endif //__XIOS_CZoomDomain__ 
    4848 
     49#ifdef __XIOS_CInterpolateFromFileDomain__ 
     50   DECLARE_NODE(InterpolateFromFileDomain, interpolate_from_file_domain) 
     51#endif //__XIOS_CInterpolateFromFileDomain__ 
     52 
    4953#ifdef __XIOS_CContext__ 
    5054   DECLARE_NODE_PAR(Context, context) 
  • XIOS/trunk/src/distribution_client.cpp

    r653 r657  
    8585    int ni = domList[k]->ni; 
    8686    int nj = domList[k]->nj; 
    87     nIndexDomain_[k][0].resize(ni,nj); 
    88     nIndexDomain_[k][1].resize(ni,nj); 
     87    nIndexDomain_[k][0].resize(ni*nj); 
     88    nIndexDomain_[k][1].resize(ni*nj); 
    8989    nIndexDomain_[k][0] = domList[k]->i_index; 
    9090    nIndexDomain_[k][1] = domList[k]->j_index; 
  • XIOS/trunk/src/distribution_client.hpp

    r653 r657  
    8989    std::vector<int> nZoomBegin_; //!< Begin index of zoom of each dimension 
    9090    std::vector<int> nZoomEnd_; //!< End index of zoom of each dimension 
    91     std::vector<std::vector<CArray<int,2> > > nIndexDomain_; //!< Local index of each domain dimension (e.x: i_index, j_index) 
     91    std::vector<std::vector<CArray<int,1> > > nIndexDomain_; //!< Local index of each domain dimension (e.x: i_index, j_index) 
    9292    std::vector<CArray<int,1> > nIndexAxis_; 
    9393 
  • XIOS/trunk/src/group_factory_decl.cpp

    r631 r657  
    2929  macro(CInterpolateAxisGroup) 
    3030  macro(CZoomDomainGroup) 
     31  macro(CInterpolateFromFileDomainGroup) 
    3132} 
  • XIOS/trunk/src/group_template_decl.cpp

    r631 r657  
    1818  macro(InterpolateAxis) 
    1919  macro(ZoomDomain) 
     20  macro(InterpolateFromFileDomain) 
    2021 
    2122} 
  • XIOS/trunk/src/interface/c_attr/icdomain_attr.cpp

    r611 r657  
    333333 
    334334 
    335   void cxios_set_domain_i_index(domain_Ptr domain_hdl, int* i_index, int extent1, int extent2) 
    336   { 
    337     CTimer::get("XIOS").resume(); 
    338     CArray<int,2> tmp(i_index, shape(extent1, extent2), neverDeleteData); 
     335  void cxios_set_domain_i_index(domain_Ptr domain_hdl, int* i_index, int extent1) 
     336  { 
     337    CTimer::get("XIOS").resume(); 
     338    CArray<int,1> tmp(i_index, shape(extent1), neverDeleteData); 
    339339    domain_hdl->i_index.reference(tmp.copy()); 
    340340     CTimer::get("XIOS").suspend(); 
    341341  } 
    342342 
    343   void cxios_get_domain_i_index(domain_Ptr domain_hdl, int* i_index, int extent1, int extent2) 
    344   { 
    345     CTimer::get("XIOS").resume(); 
    346     CArray<int,2> tmp(i_index, shape(extent1, extent2), neverDeleteData); 
     343  void cxios_get_domain_i_index(domain_Ptr domain_hdl, int* i_index, int extent1) 
     344  { 
     345    CTimer::get("XIOS").resume(); 
     346    CArray<int,1> tmp(i_index, shape(extent1), neverDeleteData); 
    347347    tmp=domain_hdl->i_index.getInheritedValue(); 
    348348     CTimer::get("XIOS").suspend(); 
     
    381381 
    382382 
    383   void cxios_set_domain_iend(domain_Ptr domain_hdl, int iend) 
    384   { 
    385     CTimer::get("XIOS").resume(); 
    386     domain_hdl->iend.setValue(iend); 
    387     CTimer::get("XIOS").suspend(); 
    388   } 
    389  
    390   void cxios_get_domain_iend(domain_Ptr domain_hdl, int* iend) 
    391   { 
    392     CTimer::get("XIOS").resume(); 
    393     *iend = domain_hdl->iend.getInheritedValue(); 
    394     CTimer::get("XIOS").suspend(); 
    395   } 
    396  
    397   bool cxios_is_defined_domain_iend(domain_Ptr domain_hdl) 
    398   { 
    399      CTimer::get("XIOS").resume(); 
    400      bool isDefined = domain_hdl->iend.hasInheritedValue(); 
    401      CTimer::get("XIOS").suspend(); 
    402      return isDefined; 
    403   } 
    404  
    405  
    406   void cxios_set_domain_j_index(domain_Ptr domain_hdl, int* j_index, int extent1, int extent2) 
    407   { 
    408     CTimer::get("XIOS").resume(); 
    409     CArray<int,2> tmp(j_index, shape(extent1, extent2), neverDeleteData); 
     383  void cxios_set_domain_j_index(domain_Ptr domain_hdl, int* j_index, int extent1) 
     384  { 
     385    CTimer::get("XIOS").resume(); 
     386    CArray<int,1> tmp(j_index, shape(extent1), neverDeleteData); 
    410387    domain_hdl->j_index.reference(tmp.copy()); 
    411388     CTimer::get("XIOS").suspend(); 
    412389  } 
    413390 
    414   void cxios_get_domain_j_index(domain_Ptr domain_hdl, int* j_index, int extent1, int extent2) 
    415   { 
    416     CTimer::get("XIOS").resume(); 
    417     CArray<int,2> tmp(j_index, shape(extent1, extent2), neverDeleteData); 
     391  void cxios_get_domain_j_index(domain_Ptr domain_hdl, int* j_index, int extent1) 
     392  { 
     393    CTimer::get("XIOS").resume(); 
     394    CArray<int,1> tmp(j_index, shape(extent1), neverDeleteData); 
    418395    tmp=domain_hdl->j_index.getInheritedValue(); 
    419396     CTimer::get("XIOS").suspend(); 
     
    447424     CTimer::get("XIOS").resume(); 
    448425     bool isDefined = domain_hdl->jbegin.hasInheritedValue(); 
    449      CTimer::get("XIOS").suspend(); 
    450      return isDefined; 
    451   } 
    452  
    453  
    454   void cxios_set_domain_jend(domain_Ptr domain_hdl, int jend) 
    455   { 
    456     CTimer::get("XIOS").resume(); 
    457     domain_hdl->jend.setValue(jend); 
    458     CTimer::get("XIOS").suspend(); 
    459   } 
    460  
    461   void cxios_get_domain_jend(domain_Ptr domain_hdl, int* jend) 
    462   { 
    463     CTimer::get("XIOS").resume(); 
    464     *jend = domain_hdl->jend.getInheritedValue(); 
    465     CTimer::get("XIOS").suspend(); 
    466   } 
    467  
    468   bool cxios_is_defined_domain_jend(domain_Ptr domain_hdl) 
    469   { 
    470      CTimer::get("XIOS").resume(); 
    471      bool isDefined = domain_hdl->jend.hasInheritedValue(); 
    472426     CTimer::get("XIOS").suspend(); 
    473427     return isDefined; 
     
    767721     return isDefined; 
    768722  } 
    769  
    770  
    771   void cxios_set_domain_zoom_ibegin(domain_Ptr domain_hdl, int zoom_ibegin) 
    772   { 
    773     CTimer::get("XIOS").resume(); 
    774     domain_hdl->zoom_ibegin.setValue(zoom_ibegin); 
    775     CTimer::get("XIOS").suspend(); 
    776   } 
    777  
    778   void cxios_get_domain_zoom_ibegin(domain_Ptr domain_hdl, int* zoom_ibegin) 
    779   { 
    780     CTimer::get("XIOS").resume(); 
    781     *zoom_ibegin = domain_hdl->zoom_ibegin.getInheritedValue(); 
    782     CTimer::get("XIOS").suspend(); 
    783   } 
    784  
    785   bool cxios_is_defined_domain_zoom_ibegin(domain_Ptr domain_hdl) 
    786   { 
    787      CTimer::get("XIOS").resume(); 
    788      bool isDefined = domain_hdl->zoom_ibegin.hasInheritedValue(); 
    789      CTimer::get("XIOS").suspend(); 
    790      return isDefined; 
    791   } 
    792  
    793  
    794   void cxios_set_domain_zoom_ibegin_loc(domain_Ptr domain_hdl, int zoom_ibegin_loc) 
    795   { 
    796     CTimer::get("XIOS").resume(); 
    797     domain_hdl->zoom_ibegin_loc.setValue(zoom_ibegin_loc); 
    798     CTimer::get("XIOS").suspend(); 
    799   } 
    800  
    801   void cxios_get_domain_zoom_ibegin_loc(domain_Ptr domain_hdl, int* zoom_ibegin_loc) 
    802   { 
    803     CTimer::get("XIOS").resume(); 
    804     *zoom_ibegin_loc = domain_hdl->zoom_ibegin_loc.getInheritedValue(); 
    805     CTimer::get("XIOS").suspend(); 
    806   } 
    807  
    808   bool cxios_is_defined_domain_zoom_ibegin_loc(domain_Ptr domain_hdl) 
    809   { 
    810      CTimer::get("XIOS").resume(); 
    811      bool isDefined = domain_hdl->zoom_ibegin_loc.hasInheritedValue(); 
    812      CTimer::get("XIOS").suspend(); 
    813      return isDefined; 
    814   } 
    815  
    816  
    817   void cxios_set_domain_zoom_jbegin(domain_Ptr domain_hdl, int zoom_jbegin) 
    818   { 
    819     CTimer::get("XIOS").resume(); 
    820     domain_hdl->zoom_jbegin.setValue(zoom_jbegin); 
    821     CTimer::get("XIOS").suspend(); 
    822   } 
    823  
    824   void cxios_get_domain_zoom_jbegin(domain_Ptr domain_hdl, int* zoom_jbegin) 
    825   { 
    826     CTimer::get("XIOS").resume(); 
    827     *zoom_jbegin = domain_hdl->zoom_jbegin.getInheritedValue(); 
    828     CTimer::get("XIOS").suspend(); 
    829   } 
    830  
    831   bool cxios_is_defined_domain_zoom_jbegin(domain_Ptr domain_hdl) 
    832   { 
    833      CTimer::get("XIOS").resume(); 
    834      bool isDefined = domain_hdl->zoom_jbegin.hasInheritedValue(); 
    835      CTimer::get("XIOS").suspend(); 
    836      return isDefined; 
    837   } 
    838  
    839  
    840   void cxios_set_domain_zoom_jbegin_loc(domain_Ptr domain_hdl, int zoom_jbegin_loc) 
    841   { 
    842     CTimer::get("XIOS").resume(); 
    843     domain_hdl->zoom_jbegin_loc.setValue(zoom_jbegin_loc); 
    844     CTimer::get("XIOS").suspend(); 
    845   } 
    846  
    847   void cxios_get_domain_zoom_jbegin_loc(domain_Ptr domain_hdl, int* zoom_jbegin_loc) 
    848   { 
    849     CTimer::get("XIOS").resume(); 
    850     *zoom_jbegin_loc = domain_hdl->zoom_jbegin_loc.getInheritedValue(); 
    851     CTimer::get("XIOS").suspend(); 
    852   } 
    853  
    854   bool cxios_is_defined_domain_zoom_jbegin_loc(domain_Ptr domain_hdl) 
    855   { 
    856      CTimer::get("XIOS").resume(); 
    857      bool isDefined = domain_hdl->zoom_jbegin_loc.hasInheritedValue(); 
    858      CTimer::get("XIOS").suspend(); 
    859      return isDefined; 
    860   } 
    861  
    862  
    863   void cxios_set_domain_zoom_ni(domain_Ptr domain_hdl, int zoom_ni) 
    864   { 
    865     CTimer::get("XIOS").resume(); 
    866     domain_hdl->zoom_ni.setValue(zoom_ni); 
    867     CTimer::get("XIOS").suspend(); 
    868   } 
    869  
    870   void cxios_get_domain_zoom_ni(domain_Ptr domain_hdl, int* zoom_ni) 
    871   { 
    872     CTimer::get("XIOS").resume(); 
    873     *zoom_ni = domain_hdl->zoom_ni.getInheritedValue(); 
    874     CTimer::get("XIOS").suspend(); 
    875   } 
    876  
    877   bool cxios_is_defined_domain_zoom_ni(domain_Ptr domain_hdl) 
    878   { 
    879      CTimer::get("XIOS").resume(); 
    880      bool isDefined = domain_hdl->zoom_ni.hasInheritedValue(); 
    881      CTimer::get("XIOS").suspend(); 
    882      return isDefined; 
    883   } 
    884  
    885  
    886   void cxios_set_domain_zoom_ni_loc(domain_Ptr domain_hdl, int zoom_ni_loc) 
    887   { 
    888     CTimer::get("XIOS").resume(); 
    889     domain_hdl->zoom_ni_loc.setValue(zoom_ni_loc); 
    890     CTimer::get("XIOS").suspend(); 
    891   } 
    892  
    893   void cxios_get_domain_zoom_ni_loc(domain_Ptr domain_hdl, int* zoom_ni_loc) 
    894   { 
    895     CTimer::get("XIOS").resume(); 
    896     *zoom_ni_loc = domain_hdl->zoom_ni_loc.getInheritedValue(); 
    897     CTimer::get("XIOS").suspend(); 
    898   } 
    899  
    900   bool cxios_is_defined_domain_zoom_ni_loc(domain_Ptr domain_hdl) 
    901   { 
    902      CTimer::get("XIOS").resume(); 
    903      bool isDefined = domain_hdl->zoom_ni_loc.hasInheritedValue(); 
    904      CTimer::get("XIOS").suspend(); 
    905      return isDefined; 
    906   } 
    907  
    908  
    909   void cxios_set_domain_zoom_nj(domain_Ptr domain_hdl, int zoom_nj) 
    910   { 
    911     CTimer::get("XIOS").resume(); 
    912     domain_hdl->zoom_nj.setValue(zoom_nj); 
    913     CTimer::get("XIOS").suspend(); 
    914   } 
    915  
    916   void cxios_get_domain_zoom_nj(domain_Ptr domain_hdl, int* zoom_nj) 
    917   { 
    918     CTimer::get("XIOS").resume(); 
    919     *zoom_nj = domain_hdl->zoom_nj.getInheritedValue(); 
    920     CTimer::get("XIOS").suspend(); 
    921   } 
    922  
    923   bool cxios_is_defined_domain_zoom_nj(domain_Ptr domain_hdl) 
    924   { 
    925      CTimer::get("XIOS").resume(); 
    926      bool isDefined = domain_hdl->zoom_nj.hasInheritedValue(); 
    927      CTimer::get("XIOS").suspend(); 
    928      return isDefined; 
    929   } 
    930  
    931  
    932   void cxios_set_domain_zoom_nj_loc(domain_Ptr domain_hdl, int zoom_nj_loc) 
    933   { 
    934     CTimer::get("XIOS").resume(); 
    935     domain_hdl->zoom_nj_loc.setValue(zoom_nj_loc); 
    936     CTimer::get("XIOS").suspend(); 
    937   } 
    938  
    939   void cxios_get_domain_zoom_nj_loc(domain_Ptr domain_hdl, int* zoom_nj_loc) 
    940   { 
    941     CTimer::get("XIOS").resume(); 
    942     *zoom_nj_loc = domain_hdl->zoom_nj_loc.getInheritedValue(); 
    943     CTimer::get("XIOS").suspend(); 
    944   } 
    945  
    946   bool cxios_is_defined_domain_zoom_nj_loc(domain_Ptr domain_hdl) 
    947   { 
    948      CTimer::get("XIOS").resume(); 
    949      bool isDefined = domain_hdl->zoom_nj_loc.hasInheritedValue(); 
    950      CTimer::get("XIOS").suspend(); 
    951      return isDefined; 
    952   } 
    953723} 
  • XIOS/trunk/src/interface/c_attr/icdomaingroup_attr.cpp

    r611 r657  
    359359 
    360360 
    361   void cxios_set_domaingroup_i_index(domaingroup_Ptr domaingroup_hdl, int* i_index, int extent1, int extent2) 
    362   { 
    363     CTimer::get("XIOS").resume(); 
    364     CArray<int,2> tmp(i_index, shape(extent1, extent2), neverDeleteData); 
     361  void cxios_set_domaingroup_i_index(domaingroup_Ptr domaingroup_hdl, int* i_index, int extent1) 
     362  { 
     363    CTimer::get("XIOS").resume(); 
     364    CArray<int,1> tmp(i_index, shape(extent1), neverDeleteData); 
    365365    domaingroup_hdl->i_index.reference(tmp.copy()); 
    366366     CTimer::get("XIOS").suspend(); 
    367367  } 
    368368 
    369   void cxios_get_domaingroup_i_index(domaingroup_Ptr domaingroup_hdl, int* i_index, int extent1, int extent2) 
    370   { 
    371     CTimer::get("XIOS").resume(); 
    372     CArray<int,2> tmp(i_index, shape(extent1, extent2), neverDeleteData); 
     369  void cxios_get_domaingroup_i_index(domaingroup_Ptr domaingroup_hdl, int* i_index, int extent1) 
     370  { 
     371    CTimer::get("XIOS").resume(); 
     372    CArray<int,1> tmp(i_index, shape(extent1), neverDeleteData); 
    373373    tmp=domaingroup_hdl->i_index.getInheritedValue(); 
    374374     CTimer::get("XIOS").suspend(); 
     
    407407 
    408408 
    409   void cxios_set_domaingroup_iend(domaingroup_Ptr domaingroup_hdl, int iend) 
    410   { 
    411     CTimer::get("XIOS").resume(); 
    412     domaingroup_hdl->iend.setValue(iend); 
    413     CTimer::get("XIOS").suspend(); 
    414   } 
    415  
    416   void cxios_get_domaingroup_iend(domaingroup_Ptr domaingroup_hdl, int* iend) 
    417   { 
    418     CTimer::get("XIOS").resume(); 
    419     *iend = domaingroup_hdl->iend.getInheritedValue(); 
    420     CTimer::get("XIOS").suspend(); 
    421   } 
    422  
    423   bool cxios_is_defined_domaingroup_iend(domaingroup_Ptr domaingroup_hdl) 
    424   { 
    425      CTimer::get("XIOS").resume(); 
    426      bool isDefined = domaingroup_hdl->iend.hasInheritedValue(); 
    427      CTimer::get("XIOS").suspend(); 
    428      return isDefined; 
    429   } 
    430  
    431  
    432   void cxios_set_domaingroup_j_index(domaingroup_Ptr domaingroup_hdl, int* j_index, int extent1, int extent2) 
    433   { 
    434     CTimer::get("XIOS").resume(); 
    435     CArray<int,2> tmp(j_index, shape(extent1, extent2), neverDeleteData); 
     409  void cxios_set_domaingroup_j_index(domaingroup_Ptr domaingroup_hdl, int* j_index, int extent1) 
     410  { 
     411    CTimer::get("XIOS").resume(); 
     412    CArray<int,1> tmp(j_index, shape(extent1), neverDeleteData); 
    436413    domaingroup_hdl->j_index.reference(tmp.copy()); 
    437414     CTimer::get("XIOS").suspend(); 
    438415  } 
    439416 
    440   void cxios_get_domaingroup_j_index(domaingroup_Ptr domaingroup_hdl, int* j_index, int extent1, int extent2) 
    441   { 
    442     CTimer::get("XIOS").resume(); 
    443     CArray<int,2> tmp(j_index, shape(extent1, extent2), neverDeleteData); 
     417  void cxios_get_domaingroup_j_index(domaingroup_Ptr domaingroup_hdl, int* j_index, int extent1) 
     418  { 
     419    CTimer::get("XIOS").resume(); 
     420    CArray<int,1> tmp(j_index, shape(extent1), neverDeleteData); 
    444421    tmp=domaingroup_hdl->j_index.getInheritedValue(); 
    445422     CTimer::get("XIOS").suspend(); 
     
    473450     CTimer::get("XIOS").resume(); 
    474451     bool isDefined = domaingroup_hdl->jbegin.hasInheritedValue(); 
    475      CTimer::get("XIOS").suspend(); 
    476      return isDefined; 
    477   } 
    478  
    479  
    480   void cxios_set_domaingroup_jend(domaingroup_Ptr domaingroup_hdl, int jend) 
    481   { 
    482     CTimer::get("XIOS").resume(); 
    483     domaingroup_hdl->jend.setValue(jend); 
    484     CTimer::get("XIOS").suspend(); 
    485   } 
    486  
    487   void cxios_get_domaingroup_jend(domaingroup_Ptr domaingroup_hdl, int* jend) 
    488   { 
    489     CTimer::get("XIOS").resume(); 
    490     *jend = domaingroup_hdl->jend.getInheritedValue(); 
    491     CTimer::get("XIOS").suspend(); 
    492   } 
    493  
    494   bool cxios_is_defined_domaingroup_jend(domaingroup_Ptr domaingroup_hdl) 
    495   { 
    496      CTimer::get("XIOS").resume(); 
    497      bool isDefined = domaingroup_hdl->jend.hasInheritedValue(); 
    498452     CTimer::get("XIOS").suspend(); 
    499453     return isDefined; 
     
    793747     return isDefined; 
    794748  } 
    795  
    796  
    797   void cxios_set_domaingroup_zoom_ibegin(domaingroup_Ptr domaingroup_hdl, int zoom_ibegin) 
    798   { 
    799     CTimer::get("XIOS").resume(); 
    800     domaingroup_hdl->zoom_ibegin.setValue(zoom_ibegin); 
    801     CTimer::get("XIOS").suspend(); 
    802   } 
    803  
    804   void cxios_get_domaingroup_zoom_ibegin(domaingroup_Ptr domaingroup_hdl, int* zoom_ibegin) 
    805   { 
    806     CTimer::get("XIOS").resume(); 
    807     *zoom_ibegin = domaingroup_hdl->zoom_ibegin.getInheritedValue(); 
    808     CTimer::get("XIOS").suspend(); 
    809   } 
    810  
    811   bool cxios_is_defined_domaingroup_zoom_ibegin(domaingroup_Ptr domaingroup_hdl) 
    812   { 
    813      CTimer::get("XIOS").resume(); 
    814      bool isDefined = domaingroup_hdl->zoom_ibegin.hasInheritedValue(); 
    815      CTimer::get("XIOS").suspend(); 
    816      return isDefined; 
    817   } 
    818  
    819  
    820   void cxios_set_domaingroup_zoom_ibegin_loc(domaingroup_Ptr domaingroup_hdl, int zoom_ibegin_loc) 
    821   { 
    822     CTimer::get("XIOS").resume(); 
    823     domaingroup_hdl->zoom_ibegin_loc.setValue(zoom_ibegin_loc); 
    824     CTimer::get("XIOS").suspend(); 
    825   } 
    826  
    827   void cxios_get_domaingroup_zoom_ibegin_loc(domaingroup_Ptr domaingroup_hdl, int* zoom_ibegin_loc) 
    828   { 
    829     CTimer::get("XIOS").resume(); 
    830     *zoom_ibegin_loc = domaingroup_hdl->zoom_ibegin_loc.getInheritedValue(); 
    831     CTimer::get("XIOS").suspend(); 
    832   } 
    833  
    834   bool cxios_is_defined_domaingroup_zoom_ibegin_loc(domaingroup_Ptr domaingroup_hdl) 
    835   { 
    836      CTimer::get("XIOS").resume(); 
    837      bool isDefined = domaingroup_hdl->zoom_ibegin_loc.hasInheritedValue(); 
    838      CTimer::get("XIOS").suspend(); 
    839      return isDefined; 
    840   } 
    841  
    842  
    843   void cxios_set_domaingroup_zoom_jbegin(domaingroup_Ptr domaingroup_hdl, int zoom_jbegin) 
    844   { 
    845     CTimer::get("XIOS").resume(); 
    846     domaingroup_hdl->zoom_jbegin.setValue(zoom_jbegin); 
    847     CTimer::get("XIOS").suspend(); 
    848   } 
    849  
    850   void cxios_get_domaingroup_zoom_jbegin(domaingroup_Ptr domaingroup_hdl, int* zoom_jbegin) 
    851   { 
    852     CTimer::get("XIOS").resume(); 
    853     *zoom_jbegin = domaingroup_hdl->zoom_jbegin.getInheritedValue(); 
    854     CTimer::get("XIOS").suspend(); 
    855   } 
    856  
    857   bool cxios_is_defined_domaingroup_zoom_jbegin(domaingroup_Ptr domaingroup_hdl) 
    858   { 
    859      CTimer::get("XIOS").resume(); 
    860      bool isDefined = domaingroup_hdl->zoom_jbegin.hasInheritedValue(); 
    861      CTimer::get("XIOS").suspend(); 
    862      return isDefined; 
    863   } 
    864  
    865  
    866   void cxios_set_domaingroup_zoom_jbegin_loc(domaingroup_Ptr domaingroup_hdl, int zoom_jbegin_loc) 
    867   { 
    868     CTimer::get("XIOS").resume(); 
    869     domaingroup_hdl->zoom_jbegin_loc.setValue(zoom_jbegin_loc); 
    870     CTimer::get("XIOS").suspend(); 
    871   } 
    872  
    873   void cxios_get_domaingroup_zoom_jbegin_loc(domaingroup_Ptr domaingroup_hdl, int* zoom_jbegin_loc) 
    874   { 
    875     CTimer::get("XIOS").resume(); 
    876     *zoom_jbegin_loc = domaingroup_hdl->zoom_jbegin_loc.getInheritedValue(); 
    877     CTimer::get("XIOS").suspend(); 
    878   } 
    879  
    880   bool cxios_is_defined_domaingroup_zoom_jbegin_loc(domaingroup_Ptr domaingroup_hdl) 
    881   { 
    882      CTimer::get("XIOS").resume(); 
    883      bool isDefined = domaingroup_hdl->zoom_jbegin_loc.hasInheritedValue(); 
    884      CTimer::get("XIOS").suspend(); 
    885      return isDefined; 
    886   } 
    887  
    888  
    889   void cxios_set_domaingroup_zoom_ni(domaingroup_Ptr domaingroup_hdl, int zoom_ni) 
    890   { 
    891     CTimer::get("XIOS").resume(); 
    892     domaingroup_hdl->zoom_ni.setValue(zoom_ni); 
    893     CTimer::get("XIOS").suspend(); 
    894   } 
    895  
    896   void cxios_get_domaingroup_zoom_ni(domaingroup_Ptr domaingroup_hdl, int* zoom_ni) 
    897   { 
    898     CTimer::get("XIOS").resume(); 
    899     *zoom_ni = domaingroup_hdl->zoom_ni.getInheritedValue(); 
    900     CTimer::get("XIOS").suspend(); 
    901   } 
    902  
    903   bool cxios_is_defined_domaingroup_zoom_ni(domaingroup_Ptr domaingroup_hdl) 
    904   { 
    905      CTimer::get("XIOS").resume(); 
    906      bool isDefined = domaingroup_hdl->zoom_ni.hasInheritedValue(); 
    907      CTimer::get("XIOS").suspend(); 
    908      return isDefined; 
    909   } 
    910  
    911  
    912   void cxios_set_domaingroup_zoom_ni_loc(domaingroup_Ptr domaingroup_hdl, int zoom_ni_loc) 
    913   { 
    914     CTimer::get("XIOS").resume(); 
    915     domaingroup_hdl->zoom_ni_loc.setValue(zoom_ni_loc); 
    916     CTimer::get("XIOS").suspend(); 
    917   } 
    918  
    919   void cxios_get_domaingroup_zoom_ni_loc(domaingroup_Ptr domaingroup_hdl, int* zoom_ni_loc) 
    920   { 
    921     CTimer::get("XIOS").resume(); 
    922     *zoom_ni_loc = domaingroup_hdl->zoom_ni_loc.getInheritedValue(); 
    923     CTimer::get("XIOS").suspend(); 
    924   } 
    925  
    926   bool cxios_is_defined_domaingroup_zoom_ni_loc(domaingroup_Ptr domaingroup_hdl) 
    927   { 
    928      CTimer::get("XIOS").resume(); 
    929      bool isDefined = domaingroup_hdl->zoom_ni_loc.hasInheritedValue(); 
    930      CTimer::get("XIOS").suspend(); 
    931      return isDefined; 
    932   } 
    933  
    934  
    935   void cxios_set_domaingroup_zoom_nj(domaingroup_Ptr domaingroup_hdl, int zoom_nj) 
    936   { 
    937     CTimer::get("XIOS").resume(); 
    938     domaingroup_hdl->zoom_nj.setValue(zoom_nj); 
    939     CTimer::get("XIOS").suspend(); 
    940   } 
    941  
    942   void cxios_get_domaingroup_zoom_nj(domaingroup_Ptr domaingroup_hdl, int* zoom_nj) 
    943   { 
    944     CTimer::get("XIOS").resume(); 
    945     *zoom_nj = domaingroup_hdl->zoom_nj.getInheritedValue(); 
    946     CTimer::get("XIOS").suspend(); 
    947   } 
    948  
    949   bool cxios_is_defined_domaingroup_zoom_nj(domaingroup_Ptr domaingroup_hdl) 
    950   { 
    951      CTimer::get("XIOS").resume(); 
    952      bool isDefined = domaingroup_hdl->zoom_nj.hasInheritedValue(); 
    953      CTimer::get("XIOS").suspend(); 
    954      return isDefined; 
    955   } 
    956  
    957  
    958   void cxios_set_domaingroup_zoom_nj_loc(domaingroup_Ptr domaingroup_hdl, int zoom_nj_loc) 
    959   { 
    960     CTimer::get("XIOS").resume(); 
    961     domaingroup_hdl->zoom_nj_loc.setValue(zoom_nj_loc); 
    962     CTimer::get("XIOS").suspend(); 
    963   } 
    964  
    965   void cxios_get_domaingroup_zoom_nj_loc(domaingroup_Ptr domaingroup_hdl, int* zoom_nj_loc) 
    966   { 
    967     CTimer::get("XIOS").resume(); 
    968     *zoom_nj_loc = domaingroup_hdl->zoom_nj_loc.getInheritedValue(); 
    969     CTimer::get("XIOS").suspend(); 
    970   } 
    971  
    972   bool cxios_is_defined_domaingroup_zoom_nj_loc(domaingroup_Ptr domaingroup_hdl) 
    973   { 
    974      CTimer::get("XIOS").resume(); 
    975      bool isDefined = domaingroup_hdl->zoom_nj_loc.hasInheritedValue(); 
    976      CTimer::get("XIOS").suspend(); 
    977      return isDefined; 
    978   } 
    979749} 
  • XIOS/trunk/src/interface/fortran_attr/domain_interface_attr.F90

    r611 r657  
    277277 
    278278 
    279     SUBROUTINE cxios_set_domain_i_index(domain_hdl, i_index, extent1, extent2) BIND(C) 
     279    SUBROUTINE cxios_set_domain_i_index(domain_hdl, i_index, extent1) BIND(C) 
    280280      USE ISO_C_BINDING 
    281281      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl 
    282282      INTEGER (KIND=C_INT)     , DIMENSION(*) :: i_index 
    283283      INTEGER (kind = C_INT), VALUE  :: extent1 
    284       INTEGER (kind = C_INT), VALUE  :: extent2 
    285284    END SUBROUTINE cxios_set_domain_i_index 
    286285 
    287     SUBROUTINE cxios_get_domain_i_index(domain_hdl, i_index, extent1, extent2) BIND(C) 
     286    SUBROUTINE cxios_get_domain_i_index(domain_hdl, i_index, extent1) BIND(C) 
    288287      USE ISO_C_BINDING 
    289288      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl 
    290289      INTEGER (KIND=C_INT)     , DIMENSION(*) :: i_index 
    291290      INTEGER (kind = C_INT), VALUE  :: extent1 
    292       INTEGER (kind = C_INT), VALUE  :: extent2 
    293291    END SUBROUTINE cxios_get_domain_i_index 
    294292 
     
    319317 
    320318 
    321     SUBROUTINE cxios_set_domain_iend(domain_hdl, iend) BIND(C) 
    322       USE ISO_C_BINDING 
    323       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    324       INTEGER (KIND=C_INT)      , VALUE :: iend 
    325     END SUBROUTINE cxios_set_domain_iend 
    326  
    327     SUBROUTINE cxios_get_domain_iend(domain_hdl, iend) BIND(C) 
    328       USE ISO_C_BINDING 
    329       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    330       INTEGER (KIND=C_INT)             :: iend 
    331     END SUBROUTINE cxios_get_domain_iend 
    332  
    333     FUNCTION cxios_is_defined_domain_iend(domain_hdl) BIND(C) 
    334       USE ISO_C_BINDING 
    335       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_iend 
    336       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    337     END FUNCTION cxios_is_defined_domain_iend 
    338  
    339  
    340     SUBROUTINE cxios_set_domain_j_index(domain_hdl, j_index, extent1, extent2) BIND(C) 
     319    SUBROUTINE cxios_set_domain_j_index(domain_hdl, j_index, extent1) BIND(C) 
    341320      USE ISO_C_BINDING 
    342321      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl 
    343322      INTEGER (KIND=C_INT)     , DIMENSION(*) :: j_index 
    344323      INTEGER (kind = C_INT), VALUE  :: extent1 
    345       INTEGER (kind = C_INT), VALUE  :: extent2 
    346324    END SUBROUTINE cxios_set_domain_j_index 
    347325 
    348     SUBROUTINE cxios_get_domain_j_index(domain_hdl, j_index, extent1, extent2) BIND(C) 
     326    SUBROUTINE cxios_get_domain_j_index(domain_hdl, j_index, extent1) BIND(C) 
    349327      USE ISO_C_BINDING 
    350328      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl 
    351329      INTEGER (KIND=C_INT)     , DIMENSION(*) :: j_index 
    352330      INTEGER (kind = C_INT), VALUE  :: extent1 
    353       INTEGER (kind = C_INT), VALUE  :: extent2 
    354331    END SUBROUTINE cxios_get_domain_j_index 
    355332 
     
    378355      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    379356    END FUNCTION cxios_is_defined_domain_jbegin 
    380  
    381  
    382     SUBROUTINE cxios_set_domain_jend(domain_hdl, jend) BIND(C) 
    383       USE ISO_C_BINDING 
    384       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    385       INTEGER (KIND=C_INT)      , VALUE :: jend 
    386     END SUBROUTINE cxios_set_domain_jend 
    387  
    388     SUBROUTINE cxios_get_domain_jend(domain_hdl, jend) BIND(C) 
    389       USE ISO_C_BINDING 
    390       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    391       INTEGER (KIND=C_INT)             :: jend 
    392     END SUBROUTINE cxios_get_domain_jend 
    393  
    394     FUNCTION cxios_is_defined_domain_jend(domain_hdl) BIND(C) 
    395       USE ISO_C_BINDING 
    396       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_jend 
    397       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    398     END FUNCTION cxios_is_defined_domain_jend 
    399357 
    400358 
     
    642600    END FUNCTION cxios_is_defined_domain_type 
    643601 
    644  
    645     SUBROUTINE cxios_set_domain_zoom_ibegin(domain_hdl, zoom_ibegin) BIND(C) 
    646       USE ISO_C_BINDING 
    647       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    648       INTEGER (KIND=C_INT)      , VALUE :: zoom_ibegin 
    649     END SUBROUTINE cxios_set_domain_zoom_ibegin 
    650  
    651     SUBROUTINE cxios_get_domain_zoom_ibegin(domain_hdl, zoom_ibegin) BIND(C) 
    652       USE ISO_C_BINDING 
    653       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    654       INTEGER (KIND=C_INT)             :: zoom_ibegin 
    655     END SUBROUTINE cxios_get_domain_zoom_ibegin 
    656  
    657     FUNCTION cxios_is_defined_domain_zoom_ibegin(domain_hdl) BIND(C) 
    658       USE ISO_C_BINDING 
    659       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_zoom_ibegin 
    660       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    661     END FUNCTION cxios_is_defined_domain_zoom_ibegin 
    662  
    663  
    664     SUBROUTINE cxios_set_domain_zoom_ibegin_loc(domain_hdl, zoom_ibegin_loc) BIND(C) 
    665       USE ISO_C_BINDING 
    666       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    667       INTEGER (KIND=C_INT)      , VALUE :: zoom_ibegin_loc 
    668     END SUBROUTINE cxios_set_domain_zoom_ibegin_loc 
    669  
    670     SUBROUTINE cxios_get_domain_zoom_ibegin_loc(domain_hdl, zoom_ibegin_loc) BIND(C) 
    671       USE ISO_C_BINDING 
    672       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    673       INTEGER (KIND=C_INT)             :: zoom_ibegin_loc 
    674     END SUBROUTINE cxios_get_domain_zoom_ibegin_loc 
    675  
    676     FUNCTION cxios_is_defined_domain_zoom_ibegin_loc(domain_hdl) BIND(C) 
    677       USE ISO_C_BINDING 
    678       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_zoom_ibegin_loc 
    679       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    680     END FUNCTION cxios_is_defined_domain_zoom_ibegin_loc 
    681  
    682  
    683     SUBROUTINE cxios_set_domain_zoom_jbegin(domain_hdl, zoom_jbegin) BIND(C) 
    684       USE ISO_C_BINDING 
    685       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    686       INTEGER (KIND=C_INT)      , VALUE :: zoom_jbegin 
    687     END SUBROUTINE cxios_set_domain_zoom_jbegin 
    688  
    689     SUBROUTINE cxios_get_domain_zoom_jbegin(domain_hdl, zoom_jbegin) BIND(C) 
    690       USE ISO_C_BINDING 
    691       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    692       INTEGER (KIND=C_INT)             :: zoom_jbegin 
    693     END SUBROUTINE cxios_get_domain_zoom_jbegin 
    694  
    695     FUNCTION cxios_is_defined_domain_zoom_jbegin(domain_hdl) BIND(C) 
    696       USE ISO_C_BINDING 
    697       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_zoom_jbegin 
    698       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    699     END FUNCTION cxios_is_defined_domain_zoom_jbegin 
    700  
    701  
    702     SUBROUTINE cxios_set_domain_zoom_jbegin_loc(domain_hdl, zoom_jbegin_loc) BIND(C) 
    703       USE ISO_C_BINDING 
    704       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    705       INTEGER (KIND=C_INT)      , VALUE :: zoom_jbegin_loc 
    706     END SUBROUTINE cxios_set_domain_zoom_jbegin_loc 
    707  
    708     SUBROUTINE cxios_get_domain_zoom_jbegin_loc(domain_hdl, zoom_jbegin_loc) BIND(C) 
    709       USE ISO_C_BINDING 
    710       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    711       INTEGER (KIND=C_INT)             :: zoom_jbegin_loc 
    712     END SUBROUTINE cxios_get_domain_zoom_jbegin_loc 
    713  
    714     FUNCTION cxios_is_defined_domain_zoom_jbegin_loc(domain_hdl) BIND(C) 
    715       USE ISO_C_BINDING 
    716       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_zoom_jbegin_loc 
    717       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    718     END FUNCTION cxios_is_defined_domain_zoom_jbegin_loc 
    719  
    720  
    721     SUBROUTINE cxios_set_domain_zoom_ni(domain_hdl, zoom_ni) BIND(C) 
    722       USE ISO_C_BINDING 
    723       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    724       INTEGER (KIND=C_INT)      , VALUE :: zoom_ni 
    725     END SUBROUTINE cxios_set_domain_zoom_ni 
    726  
    727     SUBROUTINE cxios_get_domain_zoom_ni(domain_hdl, zoom_ni) BIND(C) 
    728       USE ISO_C_BINDING 
    729       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    730       INTEGER (KIND=C_INT)             :: zoom_ni 
    731     END SUBROUTINE cxios_get_domain_zoom_ni 
    732  
    733     FUNCTION cxios_is_defined_domain_zoom_ni(domain_hdl) BIND(C) 
    734       USE ISO_C_BINDING 
    735       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_zoom_ni 
    736       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    737     END FUNCTION cxios_is_defined_domain_zoom_ni 
    738  
    739  
    740     SUBROUTINE cxios_set_domain_zoom_ni_loc(domain_hdl, zoom_ni_loc) BIND(C) 
    741       USE ISO_C_BINDING 
    742       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    743       INTEGER (KIND=C_INT)      , VALUE :: zoom_ni_loc 
    744     END SUBROUTINE cxios_set_domain_zoom_ni_loc 
    745  
    746     SUBROUTINE cxios_get_domain_zoom_ni_loc(domain_hdl, zoom_ni_loc) BIND(C) 
    747       USE ISO_C_BINDING 
    748       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    749       INTEGER (KIND=C_INT)             :: zoom_ni_loc 
    750     END SUBROUTINE cxios_get_domain_zoom_ni_loc 
    751  
    752     FUNCTION cxios_is_defined_domain_zoom_ni_loc(domain_hdl) BIND(C) 
    753       USE ISO_C_BINDING 
    754       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_zoom_ni_loc 
    755       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    756     END FUNCTION cxios_is_defined_domain_zoom_ni_loc 
    757  
    758  
    759     SUBROUTINE cxios_set_domain_zoom_nj(domain_hdl, zoom_nj) BIND(C) 
    760       USE ISO_C_BINDING 
    761       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    762       INTEGER (KIND=C_INT)      , VALUE :: zoom_nj 
    763     END SUBROUTINE cxios_set_domain_zoom_nj 
    764  
    765     SUBROUTINE cxios_get_domain_zoom_nj(domain_hdl, zoom_nj) BIND(C) 
    766       USE ISO_C_BINDING 
    767       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    768       INTEGER (KIND=C_INT)             :: zoom_nj 
    769     END SUBROUTINE cxios_get_domain_zoom_nj 
    770  
    771     FUNCTION cxios_is_defined_domain_zoom_nj(domain_hdl) BIND(C) 
    772       USE ISO_C_BINDING 
    773       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_zoom_nj 
    774       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    775     END FUNCTION cxios_is_defined_domain_zoom_nj 
    776  
    777  
    778     SUBROUTINE cxios_set_domain_zoom_nj_loc(domain_hdl, zoom_nj_loc) BIND(C) 
    779       USE ISO_C_BINDING 
    780       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    781       INTEGER (KIND=C_INT)      , VALUE :: zoom_nj_loc 
    782     END SUBROUTINE cxios_set_domain_zoom_nj_loc 
    783  
    784     SUBROUTINE cxios_get_domain_zoom_nj_loc(domain_hdl, zoom_nj_loc) BIND(C) 
    785       USE ISO_C_BINDING 
    786       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    787       INTEGER (KIND=C_INT)             :: zoom_nj_loc 
    788     END SUBROUTINE cxios_get_domain_zoom_nj_loc 
    789  
    790     FUNCTION cxios_is_defined_domain_zoom_nj_loc(domain_hdl) BIND(C) 
    791       USE ISO_C_BINDING 
    792       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_zoom_nj_loc 
    793       INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    794     END FUNCTION cxios_is_defined_domain_zoom_nj_loc 
    795  
    796602  END INTERFACE 
    797603 
  • XIOS/trunk/src/interface/fortran_attr/domaingroup_interface_attr.F90

    r611 r657  
    298298 
    299299 
    300     SUBROUTINE cxios_set_domaingroup_i_index(domaingroup_hdl, i_index, extent1, extent2) BIND(C) 
     300    SUBROUTINE cxios_set_domaingroup_i_index(domaingroup_hdl, i_index, extent1) BIND(C) 
    301301      USE ISO_C_BINDING 
    302302      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl 
    303303      INTEGER (KIND=C_INT)     , DIMENSION(*) :: i_index 
    304304      INTEGER (kind = C_INT), VALUE  :: extent1 
    305       INTEGER (kind = C_INT), VALUE  :: extent2 
    306305    END SUBROUTINE cxios_set_domaingroup_i_index 
    307306 
    308     SUBROUTINE cxios_get_domaingroup_i_index(domaingroup_hdl, i_index, extent1, extent2) BIND(C) 
     307    SUBROUTINE cxios_get_domaingroup_i_index(domaingroup_hdl, i_index, extent1) BIND(C) 
    309308      USE ISO_C_BINDING 
    310309      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl 
    311310      INTEGER (KIND=C_INT)     , DIMENSION(*) :: i_index 
    312311      INTEGER (kind = C_INT), VALUE  :: extent1 
    313       INTEGER (kind = C_INT), VALUE  :: extent2 
    314312    END SUBROUTINE cxios_get_domaingroup_i_index 
    315313 
     
    340338 
    341339 
    342     SUBROUTINE cxios_set_domaingroup_iend(domaingroup_hdl, iend) BIND(C) 
    343       USE ISO_C_BINDING 
    344       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    345       INTEGER (KIND=C_INT)      , VALUE :: iend 
    346     END SUBROUTINE cxios_set_domaingroup_iend 
    347  
    348     SUBROUTINE cxios_get_domaingroup_iend(domaingroup_hdl, iend) BIND(C) 
    349       USE ISO_C_BINDING 
    350       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    351       INTEGER (KIND=C_INT)             :: iend 
    352     END SUBROUTINE cxios_get_domaingroup_iend 
    353  
    354     FUNCTION cxios_is_defined_domaingroup_iend(domaingroup_hdl) BIND(C) 
    355       USE ISO_C_BINDING 
    356       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_iend 
    357       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    358     END FUNCTION cxios_is_defined_domaingroup_iend 
    359  
    360  
    361     SUBROUTINE cxios_set_domaingroup_j_index(domaingroup_hdl, j_index, extent1, extent2) BIND(C) 
     340    SUBROUTINE cxios_set_domaingroup_j_index(domaingroup_hdl, j_index, extent1) BIND(C) 
    362341      USE ISO_C_BINDING 
    363342      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl 
    364343      INTEGER (KIND=C_INT)     , DIMENSION(*) :: j_index 
    365344      INTEGER (kind = C_INT), VALUE  :: extent1 
    366       INTEGER (kind = C_INT), VALUE  :: extent2 
    367345    END SUBROUTINE cxios_set_domaingroup_j_index 
    368346 
    369     SUBROUTINE cxios_get_domaingroup_j_index(domaingroup_hdl, j_index, extent1, extent2) BIND(C) 
     347    SUBROUTINE cxios_get_domaingroup_j_index(domaingroup_hdl, j_index, extent1) BIND(C) 
    370348      USE ISO_C_BINDING 
    371349      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl 
    372350      INTEGER (KIND=C_INT)     , DIMENSION(*) :: j_index 
    373351      INTEGER (kind = C_INT), VALUE  :: extent1 
    374       INTEGER (kind = C_INT), VALUE  :: extent2 
    375352    END SUBROUTINE cxios_get_domaingroup_j_index 
    376353 
     
    399376      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    400377    END FUNCTION cxios_is_defined_domaingroup_jbegin 
    401  
    402  
    403     SUBROUTINE cxios_set_domaingroup_jend(domaingroup_hdl, jend) BIND(C) 
    404       USE ISO_C_BINDING 
    405       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    406       INTEGER (KIND=C_INT)      , VALUE :: jend 
    407     END SUBROUTINE cxios_set_domaingroup_jend 
    408  
    409     SUBROUTINE cxios_get_domaingroup_jend(domaingroup_hdl, jend) BIND(C) 
    410       USE ISO_C_BINDING 
    411       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    412       INTEGER (KIND=C_INT)             :: jend 
    413     END SUBROUTINE cxios_get_domaingroup_jend 
    414  
    415     FUNCTION cxios_is_defined_domaingroup_jend(domaingroup_hdl) BIND(C) 
    416       USE ISO_C_BINDING 
    417       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_jend 
    418       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    419     END FUNCTION cxios_is_defined_domaingroup_jend 
    420378 
    421379 
     
    663621    END FUNCTION cxios_is_defined_domaingroup_type 
    664622 
    665  
    666     SUBROUTINE cxios_set_domaingroup_zoom_ibegin(domaingroup_hdl, zoom_ibegin) BIND(C) 
    667       USE ISO_C_BINDING 
    668       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    669       INTEGER (KIND=C_INT)      , VALUE :: zoom_ibegin 
    670     END SUBROUTINE cxios_set_domaingroup_zoom_ibegin 
    671  
    672     SUBROUTINE cxios_get_domaingroup_zoom_ibegin(domaingroup_hdl, zoom_ibegin) BIND(C) 
    673       USE ISO_C_BINDING 
    674       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    675       INTEGER (KIND=C_INT)             :: zoom_ibegin 
    676     END SUBROUTINE cxios_get_domaingroup_zoom_ibegin 
    677  
    678     FUNCTION cxios_is_defined_domaingroup_zoom_ibegin(domaingroup_hdl) BIND(C) 
    679       USE ISO_C_BINDING 
    680       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_zoom_ibegin 
    681       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    682     END FUNCTION cxios_is_defined_domaingroup_zoom_ibegin 
    683  
    684  
    685     SUBROUTINE cxios_set_domaingroup_zoom_ibegin_loc(domaingroup_hdl, zoom_ibegin_loc) BIND(C) 
    686       USE ISO_C_BINDING 
    687       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    688       INTEGER (KIND=C_INT)      , VALUE :: zoom_ibegin_loc 
    689     END SUBROUTINE cxios_set_domaingroup_zoom_ibegin_loc 
    690  
    691     SUBROUTINE cxios_get_domaingroup_zoom_ibegin_loc(domaingroup_hdl, zoom_ibegin_loc) BIND(C) 
    692       USE ISO_C_BINDING 
    693       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    694       INTEGER (KIND=C_INT)             :: zoom_ibegin_loc 
    695     END SUBROUTINE cxios_get_domaingroup_zoom_ibegin_loc 
    696  
    697     FUNCTION cxios_is_defined_domaingroup_zoom_ibegin_loc(domaingroup_hdl) BIND(C) 
    698       USE ISO_C_BINDING 
    699       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_zoom_ibegin_loc 
    700       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    701     END FUNCTION cxios_is_defined_domaingroup_zoom_ibegin_loc 
    702  
    703  
    704     SUBROUTINE cxios_set_domaingroup_zoom_jbegin(domaingroup_hdl, zoom_jbegin) BIND(C) 
    705       USE ISO_C_BINDING 
    706       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    707       INTEGER (KIND=C_INT)      , VALUE :: zoom_jbegin 
    708     END SUBROUTINE cxios_set_domaingroup_zoom_jbegin 
    709  
    710     SUBROUTINE cxios_get_domaingroup_zoom_jbegin(domaingroup_hdl, zoom_jbegin) BIND(C) 
    711       USE ISO_C_BINDING 
    712       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    713       INTEGER (KIND=C_INT)             :: zoom_jbegin 
    714     END SUBROUTINE cxios_get_domaingroup_zoom_jbegin 
    715  
    716     FUNCTION cxios_is_defined_domaingroup_zoom_jbegin(domaingroup_hdl) BIND(C) 
    717       USE ISO_C_BINDING 
    718       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_zoom_jbegin 
    719       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    720     END FUNCTION cxios_is_defined_domaingroup_zoom_jbegin 
    721  
    722  
    723     SUBROUTINE cxios_set_domaingroup_zoom_jbegin_loc(domaingroup_hdl, zoom_jbegin_loc) BIND(C) 
    724       USE ISO_C_BINDING 
    725       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    726       INTEGER (KIND=C_INT)      , VALUE :: zoom_jbegin_loc 
    727     END SUBROUTINE cxios_set_domaingroup_zoom_jbegin_loc 
    728  
    729     SUBROUTINE cxios_get_domaingroup_zoom_jbegin_loc(domaingroup_hdl, zoom_jbegin_loc) BIND(C) 
    730       USE ISO_C_BINDING 
    731       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    732       INTEGER (KIND=C_INT)             :: zoom_jbegin_loc 
    733     END SUBROUTINE cxios_get_domaingroup_zoom_jbegin_loc 
    734  
    735     FUNCTION cxios_is_defined_domaingroup_zoom_jbegin_loc(domaingroup_hdl) BIND(C) 
    736       USE ISO_C_BINDING 
    737       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_zoom_jbegin_loc 
    738       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    739     END FUNCTION cxios_is_defined_domaingroup_zoom_jbegin_loc 
    740  
    741  
    742     SUBROUTINE cxios_set_domaingroup_zoom_ni(domaingroup_hdl, zoom_ni) BIND(C) 
    743       USE ISO_C_BINDING 
    744       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    745       INTEGER (KIND=C_INT)      , VALUE :: zoom_ni 
    746     END SUBROUTINE cxios_set_domaingroup_zoom_ni 
    747  
    748     SUBROUTINE cxios_get_domaingroup_zoom_ni(domaingroup_hdl, zoom_ni) BIND(C) 
    749       USE ISO_C_BINDING 
    750       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    751       INTEGER (KIND=C_INT)             :: zoom_ni 
    752     END SUBROUTINE cxios_get_domaingroup_zoom_ni 
    753  
    754     FUNCTION cxios_is_defined_domaingroup_zoom_ni(domaingroup_hdl) BIND(C) 
    755       USE ISO_C_BINDING 
    756       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_zoom_ni 
    757       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    758     END FUNCTION cxios_is_defined_domaingroup_zoom_ni 
    759  
    760  
    761     SUBROUTINE cxios_set_domaingroup_zoom_ni_loc(domaingroup_hdl, zoom_ni_loc) BIND(C) 
    762       USE ISO_C_BINDING 
    763       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    764       INTEGER (KIND=C_INT)      , VALUE :: zoom_ni_loc 
    765     END SUBROUTINE cxios_set_domaingroup_zoom_ni_loc 
    766  
    767     SUBROUTINE cxios_get_domaingroup_zoom_ni_loc(domaingroup_hdl, zoom_ni_loc) BIND(C) 
    768       USE ISO_C_BINDING 
    769       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    770       INTEGER (KIND=C_INT)             :: zoom_ni_loc 
    771     END SUBROUTINE cxios_get_domaingroup_zoom_ni_loc 
    772  
    773     FUNCTION cxios_is_defined_domaingroup_zoom_ni_loc(domaingroup_hdl) BIND(C) 
    774       USE ISO_C_BINDING 
    775       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_zoom_ni_loc 
    776       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    777     END FUNCTION cxios_is_defined_domaingroup_zoom_ni_loc 
    778  
    779  
    780     SUBROUTINE cxios_set_domaingroup_zoom_nj(domaingroup_hdl, zoom_nj) BIND(C) 
    781       USE ISO_C_BINDING 
    782       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    783       INTEGER (KIND=C_INT)      , VALUE :: zoom_nj 
    784     END SUBROUTINE cxios_set_domaingroup_zoom_nj 
    785  
    786     SUBROUTINE cxios_get_domaingroup_zoom_nj(domaingroup_hdl, zoom_nj) BIND(C) 
    787       USE ISO_C_BINDING 
    788       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    789       INTEGER (KIND=C_INT)             :: zoom_nj 
    790     END SUBROUTINE cxios_get_domaingroup_zoom_nj 
    791  
    792     FUNCTION cxios_is_defined_domaingroup_zoom_nj(domaingroup_hdl) BIND(C) 
    793       USE ISO_C_BINDING 
    794       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_zoom_nj 
    795       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    796     END FUNCTION cxios_is_defined_domaingroup_zoom_nj 
    797  
    798  
    799     SUBROUTINE cxios_set_domaingroup_zoom_nj_loc(domaingroup_hdl, zoom_nj_loc) BIND(C) 
    800       USE ISO_C_BINDING 
    801       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    802       INTEGER (KIND=C_INT)      , VALUE :: zoom_nj_loc 
    803     END SUBROUTINE cxios_set_domaingroup_zoom_nj_loc 
    804  
    805     SUBROUTINE cxios_get_domaingroup_zoom_nj_loc(domaingroup_hdl, zoom_nj_loc) BIND(C) 
    806       USE ISO_C_BINDING 
    807       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    808       INTEGER (KIND=C_INT)             :: zoom_nj_loc 
    809     END SUBROUTINE cxios_get_domaingroup_zoom_nj_loc 
    810  
    811     FUNCTION cxios_is_defined_domaingroup_zoom_nj_loc(domaingroup_hdl) BIND(C) 
    812       USE ISO_C_BINDING 
    813       LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_zoom_nj_loc 
    814       INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    815     END FUNCTION cxios_is_defined_domaingroup_zoom_nj_loc 
    816  
    817623  END INTERFACE 
    818624 
  • XIOS/trunk/src/interface/fortran_attr/idomain_attr.F90

    r611 r657  
    1414    ( domain_id, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    1515    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, i_index, ibegin  & 
    16     , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
    17     , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
    18     , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     16    , j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex  & 
     17    , standard_name, type ) 
    1918 
    2019    IMPLICIT NONE 
     
    3433      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref 
    3534      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 
    36       INTEGER  , OPTIONAL, INTENT(IN) :: i_index(:,:) 
     35      INTEGER  , OPTIONAL, INTENT(IN) :: i_index(:) 
    3736      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin 
    38       INTEGER  , OPTIONAL, INTENT(IN) :: iend 
    39       INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:,:) 
     37      INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:) 
    4038      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin 
    41       INTEGER  , OPTIONAL, INTENT(IN) :: jend 
    4239      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue(:) 
    4340      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
     
    5350      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 
    5451      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 
    55       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin 
    56       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc 
    57       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin 
    58       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc 
    59       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni 
    60       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni_loc 
    61       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj 
    62       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_loc 
    6352 
    6453      CALL xios(get_domain_handle)(domain_id,domain_hdl) 
     
    6655      ( domain_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    6756      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, i_index, ibegin  & 
    68       , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
    69       , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
    70       , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     57      , j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex  & 
     58      , standard_name, type ) 
    7159 
    7260  END SUBROUTINE xios(set_domain_attr) 
     
    7563    ( domain_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    7664    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, i_index, ibegin  & 
    77     , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
    78     , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
    79     , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     65    , j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex  & 
     66    , standard_name, type ) 
    8067 
    8168    IMPLICIT NONE 
     
    9481      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref 
    9582      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 
    96       INTEGER  , OPTIONAL, INTENT(IN) :: i_index(:,:) 
     83      INTEGER  , OPTIONAL, INTENT(IN) :: i_index(:) 
    9784      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin 
    98       INTEGER  , OPTIONAL, INTENT(IN) :: iend 
    99       INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:,:) 
     85      INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:) 
    10086      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin 
    101       INTEGER  , OPTIONAL, INTENT(IN) :: jend 
    10287      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue(:) 
    10388      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
     
    11398      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 
    11499      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 
    115       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin 
    116       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc 
    117       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin 
    118       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc 
    119       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni 
    120       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni_loc 
    121       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj 
    122       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_loc 
    123100 
    124101      CALL xios(set_domain_attr_hdl_)  & 
    125102      ( domain_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    126103      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, i_index, ibegin  & 
    127       , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
    128       , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
    129       , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     104      , j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex  & 
     105      , standard_name, type ) 
    130106 
    131107  END SUBROUTINE xios(set_domain_attr_hdl) 
     
    134110    ( domain_hdl, area_, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  & 
    135111    , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, domain_ref_, i_index_  & 
    136     , ibegin_, iend_, j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_  & 
    137     , ni_glo_, nj_, nj_glo_, nvertex_, standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_, zoom_jbegin_  & 
    138     , zoom_jbegin_loc_, zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
     112    , ibegin_, j_index_, jbegin_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_  & 
     113    , nj_glo_, nvertex_, standard_name_, type_ ) 
    139114 
    140115    IMPLICIT NONE 
     
    153128      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref_ 
    154129      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_ 
    155       INTEGER  , OPTIONAL, INTENT(IN) :: i_index_(:,:) 
     130      INTEGER  , OPTIONAL, INTENT(IN) :: i_index_(:) 
    156131      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin_ 
    157       INTEGER  , OPTIONAL, INTENT(IN) :: iend_ 
    158       INTEGER  , OPTIONAL, INTENT(IN) :: j_index_(:,:) 
     132      INTEGER  , OPTIONAL, INTENT(IN) :: j_index_(:) 
    159133      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin_ 
    160       INTEGER  , OPTIONAL, INTENT(IN) :: jend_ 
    161134      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_(:) 
    162135      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ 
     
    172145      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_ 
    173146      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_ 
    174       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin_ 
    175       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc_ 
    176       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin_ 
    177       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc_ 
    178       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni_ 
    179       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni_loc_ 
    180       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_ 
    181       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_loc_ 
    182147 
    183148      IF (PRESENT(area_)) THEN 
     
    234199 
    235200      IF (PRESENT(i_index_)) THEN 
    236         CALL cxios_set_domain_i_index(domain_hdl%daddr, i_index_, size(i_index_,1), size(i_index_,2)) 
     201        CALL cxios_set_domain_i_index(domain_hdl%daddr, i_index_, size(i_index_,1)) 
    237202      ENDIF 
    238203 
     
    241206      ENDIF 
    242207 
    243       IF (PRESENT(iend_)) THEN 
    244         CALL cxios_set_domain_iend(domain_hdl%daddr, iend_) 
    245       ENDIF 
    246  
    247208      IF (PRESENT(j_index_)) THEN 
    248         CALL cxios_set_domain_j_index(domain_hdl%daddr, j_index_, size(j_index_,1), size(j_index_,2)) 
     209        CALL cxios_set_domain_j_index(domain_hdl%daddr, j_index_, size(j_index_,1)) 
    249210      ENDIF 
    250211 
    251212      IF (PRESENT(jbegin_)) THEN 
    252213        CALL cxios_set_domain_jbegin(domain_hdl%daddr, jbegin_) 
    253       ENDIF 
    254  
    255       IF (PRESENT(jend_)) THEN 
    256         CALL cxios_set_domain_jend(domain_hdl%daddr, jend_) 
    257214      ENDIF 
    258215 
     
    307264      ENDIF 
    308265 
    309       IF (PRESENT(zoom_ibegin_)) THEN 
    310         CALL cxios_set_domain_zoom_ibegin(domain_hdl%daddr, zoom_ibegin_) 
    311       ENDIF 
    312  
    313       IF (PRESENT(zoom_ibegin_loc_)) THEN 
    314         CALL cxios_set_domain_zoom_ibegin_loc(domain_hdl%daddr, zoom_ibegin_loc_) 
    315       ENDIF 
    316  
    317       IF (PRESENT(zoom_jbegin_)) THEN 
    318         CALL cxios_set_domain_zoom_jbegin(domain_hdl%daddr, zoom_jbegin_) 
    319       ENDIF 
    320  
    321       IF (PRESENT(zoom_jbegin_loc_)) THEN 
    322         CALL cxios_set_domain_zoom_jbegin_loc(domain_hdl%daddr, zoom_jbegin_loc_) 
    323       ENDIF 
    324  
    325       IF (PRESENT(zoom_ni_)) THEN 
    326         CALL cxios_set_domain_zoom_ni(domain_hdl%daddr, zoom_ni_) 
    327       ENDIF 
    328  
    329       IF (PRESENT(zoom_ni_loc_)) THEN 
    330         CALL cxios_set_domain_zoom_ni_loc(domain_hdl%daddr, zoom_ni_loc_) 
    331       ENDIF 
    332  
    333       IF (PRESENT(zoom_nj_)) THEN 
    334         CALL cxios_set_domain_zoom_nj(domain_hdl%daddr, zoom_nj_) 
    335       ENDIF 
    336  
    337       IF (PRESENT(zoom_nj_loc_)) THEN 
    338         CALL cxios_set_domain_zoom_nj_loc(domain_hdl%daddr, zoom_nj_loc_) 
    339       ENDIF 
    340  
    341266  END SUBROUTINE xios(set_domain_attr_hdl_) 
    342267 
     
    344269    ( domain_id, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    345270    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, i_index, ibegin  & 
    346     , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
    347     , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
    348     , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     271    , j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex  & 
     272    , standard_name, type ) 
    349273 
    350274    IMPLICIT NONE 
     
    364288      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref 
    365289      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 
    366       INTEGER  , OPTIONAL, INTENT(OUT) :: i_index(:,:) 
     290      INTEGER  , OPTIONAL, INTENT(OUT) :: i_index(:) 
    367291      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin 
    368       INTEGER  , OPTIONAL, INTENT(OUT) :: iend 
    369       INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:,:) 
     292      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:) 
    370293      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin 
    371       INTEGER  , OPTIONAL, INTENT(OUT) :: jend 
    372294      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue(:) 
    373295      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
     
    383305      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 
    384306      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 
    385       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin 
    386       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc 
    387       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin 
    388       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc 
    389       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni 
    390       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni_loc 
    391       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj 
    392       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_loc 
    393307 
    394308      CALL xios(get_domain_handle)(domain_id,domain_hdl) 
     
    396310      ( domain_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    397311      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, i_index, ibegin  & 
    398       , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
    399       , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
    400       , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     312      , j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex  & 
     313      , standard_name, type ) 
    401314 
    402315  END SUBROUTINE xios(get_domain_attr) 
     
    405318    ( domain_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    406319    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, i_index, ibegin  & 
    407     , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
    408     , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
    409     , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     320    , j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex  & 
     321    , standard_name, type ) 
    410322 
    411323    IMPLICIT NONE 
     
    424336      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref 
    425337      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 
    426       INTEGER  , OPTIONAL, INTENT(OUT) :: i_index(:,:) 
     338      INTEGER  , OPTIONAL, INTENT(OUT) :: i_index(:) 
    427339      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin 
    428       INTEGER  , OPTIONAL, INTENT(OUT) :: iend 
    429       INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:,:) 
     340      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:) 
    430341      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin 
    431       INTEGER  , OPTIONAL, INTENT(OUT) :: jend 
    432342      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue(:) 
    433343      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
     
    443353      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 
    444354      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 
    445       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin 
    446       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc 
    447       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin 
    448       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc 
    449       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni 
    450       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni_loc 
    451       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj 
    452       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_loc 
    453355 
    454356      CALL xios(get_domain_attr_hdl_)  & 
    455357      ( domain_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    456358      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, i_index, ibegin  & 
    457       , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
    458       , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
    459       , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     359      , j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex  & 
     360      , standard_name, type ) 
    460361 
    461362  END SUBROUTINE xios(get_domain_attr_hdl) 
     
    464365    ( domain_hdl, area_, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  & 
    465366    , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, domain_ref_, i_index_  & 
    466     , ibegin_, iend_, j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_  & 
    467     , ni_glo_, nj_, nj_glo_, nvertex_, standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_, zoom_jbegin_  & 
    468     , zoom_jbegin_loc_, zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
     367    , ibegin_, j_index_, jbegin_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_  & 
     368    , nj_glo_, nvertex_, standard_name_, type_ ) 
    469369 
    470370    IMPLICIT NONE 
     
    483383      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref_ 
    484384      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref_ 
    485       INTEGER  , OPTIONAL, INTENT(OUT) :: i_index_(:,:) 
     385      INTEGER  , OPTIONAL, INTENT(OUT) :: i_index_(:) 
    486386      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin_ 
    487       INTEGER  , OPTIONAL, INTENT(OUT) :: iend_ 
    488       INTEGER  , OPTIONAL, INTENT(OUT) :: j_index_(:,:) 
     387      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index_(:) 
    489388      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin_ 
    490       INTEGER  , OPTIONAL, INTENT(OUT) :: jend_ 
    491389      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_(:) 
    492390      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_ 
     
    502400      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_ 
    503401      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_ 
    504       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin_ 
    505       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc_ 
    506       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin_ 
    507       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc_ 
    508       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni_ 
    509       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni_loc_ 
    510       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_ 
    511       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_loc_ 
    512402 
    513403      IF (PRESENT(area_)) THEN 
     
    564454 
    565455      IF (PRESENT(i_index_)) THEN 
    566         CALL cxios_get_domain_i_index(domain_hdl%daddr, i_index_, size(i_index_,1), size(i_index_,2)) 
     456        CALL cxios_get_domain_i_index(domain_hdl%daddr, i_index_, size(i_index_,1)) 
    567457      ENDIF 
    568458 
     
    571461      ENDIF 
    572462 
    573       IF (PRESENT(iend_)) THEN 
    574         CALL cxios_get_domain_iend(domain_hdl%daddr, iend_) 
    575       ENDIF 
    576  
    577463      IF (PRESENT(j_index_)) THEN 
    578         CALL cxios_get_domain_j_index(domain_hdl%daddr, j_index_, size(j_index_,1), size(j_index_,2)) 
     464        CALL cxios_get_domain_j_index(domain_hdl%daddr, j_index_, size(j_index_,1)) 
    579465      ENDIF 
    580466 
    581467      IF (PRESENT(jbegin_)) THEN 
    582468        CALL cxios_get_domain_jbegin(domain_hdl%daddr, jbegin_) 
    583       ENDIF 
    584  
    585       IF (PRESENT(jend_)) THEN 
    586         CALL cxios_get_domain_jend(domain_hdl%daddr, jend_) 
    587469      ENDIF 
    588470 
     
    637519      ENDIF 
    638520 
    639       IF (PRESENT(zoom_ibegin_)) THEN 
    640         CALL cxios_get_domain_zoom_ibegin(domain_hdl%daddr, zoom_ibegin_) 
    641       ENDIF 
    642  
    643       IF (PRESENT(zoom_ibegin_loc_)) THEN 
    644         CALL cxios_get_domain_zoom_ibegin_loc(domain_hdl%daddr, zoom_ibegin_loc_) 
    645       ENDIF 
    646  
    647       IF (PRESENT(zoom_jbegin_)) THEN 
    648         CALL cxios_get_domain_zoom_jbegin(domain_hdl%daddr, zoom_jbegin_) 
    649       ENDIF 
    650  
    651       IF (PRESENT(zoom_jbegin_loc_)) THEN 
    652         CALL cxios_get_domain_zoom_jbegin_loc(domain_hdl%daddr, zoom_jbegin_loc_) 
    653       ENDIF 
    654  
    655       IF (PRESENT(zoom_ni_)) THEN 
    656         CALL cxios_get_domain_zoom_ni(domain_hdl%daddr, zoom_ni_) 
    657       ENDIF 
    658  
    659       IF (PRESENT(zoom_ni_loc_)) THEN 
    660         CALL cxios_get_domain_zoom_ni_loc(domain_hdl%daddr, zoom_ni_loc_) 
    661       ENDIF 
    662  
    663       IF (PRESENT(zoom_nj_)) THEN 
    664         CALL cxios_get_domain_zoom_nj(domain_hdl%daddr, zoom_nj_) 
    665       ENDIF 
    666  
    667       IF (PRESENT(zoom_nj_loc_)) THEN 
    668         CALL cxios_get_domain_zoom_nj_loc(domain_hdl%daddr, zoom_nj_loc_) 
    669       ENDIF 
    670  
    671521  END SUBROUTINE xios(get_domain_attr_hdl_) 
    672522 
     
    674524    ( domain_id, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    675525    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, i_index, ibegin  & 
    676     , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
    677     , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
    678     , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     526    , j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex  & 
     527    , standard_name, type ) 
    679528 
    680529    IMPLICIT NONE 
     
    711560      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin 
    712561      LOGICAL(KIND=C_BOOL) :: ibegin_tmp 
    713       LOGICAL, OPTIONAL, INTENT(OUT) :: iend 
    714       LOGICAL(KIND=C_BOOL) :: iend_tmp 
    715562      LOGICAL, OPTIONAL, INTENT(OUT) :: j_index 
    716563      LOGICAL(KIND=C_BOOL) :: j_index_tmp 
    717564      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 
    718565      LOGICAL(KIND=C_BOOL) :: jbegin_tmp 
    719       LOGICAL, OPTIONAL, INTENT(OUT) :: jend 
    720       LOGICAL(KIND=C_BOOL) :: jend_tmp 
    721566      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue 
    722567      LOGICAL(KIND=C_BOOL) :: latvalue_tmp 
     
    743588      LOGICAL, OPTIONAL, INTENT(OUT) :: type 
    744589      LOGICAL(KIND=C_BOOL) :: type_tmp 
    745       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ibegin 
    746       LOGICAL(KIND=C_BOOL) :: zoom_ibegin_tmp 
    747       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc 
    748       LOGICAL(KIND=C_BOOL) :: zoom_ibegin_loc_tmp 
    749       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_jbegin 
    750       LOGICAL(KIND=C_BOOL) :: zoom_jbegin_tmp 
    751       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc 
    752       LOGICAL(KIND=C_BOOL) :: zoom_jbegin_loc_tmp 
    753       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ni 
    754       LOGICAL(KIND=C_BOOL) :: zoom_ni_tmp 
    755       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ni_loc 
    756       LOGICAL(KIND=C_BOOL) :: zoom_ni_loc_tmp 
    757       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_nj 
    758       LOGICAL(KIND=C_BOOL) :: zoom_nj_tmp 
    759       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_nj_loc 
    760       LOGICAL(KIND=C_BOOL) :: zoom_nj_loc_tmp 
    761590 
    762591      CALL xios(get_domain_handle)(domain_id,domain_hdl) 
     
    764593      ( domain_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    765594      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, i_index, ibegin  & 
    766       , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
    767       , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
    768       , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     595      , j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex  & 
     596      , standard_name, type ) 
    769597 
    770598  END SUBROUTINE xios(is_defined_domain_attr) 
     
    773601    ( domain_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    774602    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, i_index, ibegin  & 
    775     , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
    776     , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
    777     , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     603    , j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex  & 
     604    , standard_name, type ) 
    778605 
    779606    IMPLICIT NONE 
     
    809636      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin 
    810637      LOGICAL(KIND=C_BOOL) :: ibegin_tmp 
    811       LOGICAL, OPTIONAL, INTENT(OUT) :: iend 
    812       LOGICAL(KIND=C_BOOL) :: iend_tmp 
    813638      LOGICAL, OPTIONAL, INTENT(OUT) :: j_index 
    814639      LOGICAL(KIND=C_BOOL) :: j_index_tmp 
    815640      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 
    816641      LOGICAL(KIND=C_BOOL) :: jbegin_tmp 
    817       LOGICAL, OPTIONAL, INTENT(OUT) :: jend 
    818       LOGICAL(KIND=C_BOOL) :: jend_tmp 
    819642      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue 
    820643      LOGICAL(KIND=C_BOOL) :: latvalue_tmp 
     
    841664      LOGICAL, OPTIONAL, INTENT(OUT) :: type 
    842665      LOGICAL(KIND=C_BOOL) :: type_tmp 
    843       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ibegin 
    844       LOGICAL(KIND=C_BOOL) :: zoom_ibegin_tmp 
    845       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc 
    846       LOGICAL(KIND=C_BOOL) :: zoom_ibegin_loc_tmp 
    847       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_jbegin 
    848       LOGICAL(KIND=C_BOOL) :: zoom_jbegin_tmp 
    849       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc 
    850       LOGICAL(KIND=C_BOOL) :: zoom_jbegin_loc_tmp 
    851       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ni 
    852       LOGICAL(KIND=C_BOOL) :: zoom_ni_tmp 
    853       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ni_loc 
    854       LOGICAL(KIND=C_BOOL) :: zoom_ni_loc_tmp 
    855       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_nj 
    856       LOGICAL(KIND=C_BOOL) :: zoom_nj_tmp 
    857       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_nj_loc 
    858       LOGICAL(KIND=C_BOOL) :: zoom_nj_loc_tmp 
    859666 
    860667      CALL xios(is_defined_domain_attr_hdl_)  & 
    861668      ( domain_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    862669      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, i_index, ibegin  & 
    863       , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
    864       , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
    865       , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     670      , j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex  & 
     671      , standard_name, type ) 
    866672 
    867673  END SUBROUTINE xios(is_defined_domain_attr_hdl) 
     
    870676    ( domain_hdl, area_, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  & 
    871677    , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, domain_ref_, i_index_  & 
    872     , ibegin_, iend_, j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_  & 
    873     , ni_glo_, nj_, nj_glo_, nvertex_, standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_, zoom_jbegin_  & 
    874     , zoom_jbegin_loc_, zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
     678    , ibegin_, j_index_, jbegin_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_  & 
     679    , nj_glo_, nvertex_, standard_name_, type_ ) 
    875680 
    876681    IMPLICIT NONE 
     
    906711      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin_ 
    907712      LOGICAL(KIND=C_BOOL) :: ibegin__tmp 
    908       LOGICAL, OPTIONAL, INTENT(OUT) :: iend_ 
    909       LOGICAL(KIND=C_BOOL) :: iend__tmp 
    910713      LOGICAL, OPTIONAL, INTENT(OUT) :: j_index_ 
    911714      LOGICAL(KIND=C_BOOL) :: j_index__tmp 
    912715      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin_ 
    913716      LOGICAL(KIND=C_BOOL) :: jbegin__tmp 
    914       LOGICAL, OPTIONAL, INTENT(OUT) :: jend_ 
    915       LOGICAL(KIND=C_BOOL) :: jend__tmp 
    916717      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_ 
    917718      LOGICAL(KIND=C_BOOL) :: latvalue__tmp 
     
    938739      LOGICAL, OPTIONAL, INTENT(OUT) :: type_ 
    939740      LOGICAL(KIND=C_BOOL) :: type__tmp 
    940       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ibegin_ 
    941       LOGICAL(KIND=C_BOOL) :: zoom_ibegin__tmp 
    942       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc_ 
    943       LOGICAL(KIND=C_BOOL) :: zoom_ibegin_loc__tmp 
    944       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_jbegin_ 
    945       LOGICAL(KIND=C_BOOL) :: zoom_jbegin__tmp 
    946       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc_ 
    947       LOGICAL(KIND=C_BOOL) :: zoom_jbegin_loc__tmp 
    948       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ni_ 
    949       LOGICAL(KIND=C_BOOL) :: zoom_ni__tmp 
    950       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ni_loc_ 
    951       LOGICAL(KIND=C_BOOL) :: zoom_ni_loc__tmp 
    952       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_nj_ 
    953       LOGICAL(KIND=C_BOOL) :: zoom_nj__tmp 
    954       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_nj_loc_ 
    955       LOGICAL(KIND=C_BOOL) :: zoom_nj_loc__tmp 
    956741 
    957742      IF (PRESENT(area_)) THEN 
     
    1030815      ENDIF 
    1031816 
    1032       IF (PRESENT(iend_)) THEN 
    1033         iend__tmp = cxios_is_defined_domain_iend(domain_hdl%daddr) 
    1034         iend_ = iend__tmp 
    1035       ENDIF 
    1036  
    1037817      IF (PRESENT(j_index_)) THEN 
    1038818        j_index__tmp = cxios_is_defined_domain_j_index(domain_hdl%daddr) 
     
    1045825      ENDIF 
    1046826 
    1047       IF (PRESENT(jend_)) THEN 
    1048         jend__tmp = cxios_is_defined_domain_jend(domain_hdl%daddr) 
    1049         jend_ = jend__tmp 
    1050       ENDIF 
    1051  
    1052827      IF (PRESENT(latvalue_)) THEN 
    1053828        latvalue__tmp = cxios_is_defined_domain_latvalue(domain_hdl%daddr) 
     
    1110885      ENDIF 
    1111886 
    1112       IF (PRESENT(zoom_ibegin_)) THEN 
    1113         zoom_ibegin__tmp = cxios_is_defined_domain_zoom_ibegin(domain_hdl%daddr) 
    1114         zoom_ibegin_ = zoom_ibegin__tmp 
    1115       ENDIF 
    1116  
    1117       IF (PRESENT(zoom_ibegin_loc_)) THEN 
    1118         zoom_ibegin_loc__tmp = cxios_is_defined_domain_zoom_ibegin_loc(domain_hdl%daddr) 
    1119         zoom_ibegin_loc_ = zoom_ibegin_loc__tmp 
    1120       ENDIF 
    1121  
    1122       IF (PRESENT(zoom_jbegin_)) THEN 
    1123         zoom_jbegin__tmp = cxios_is_defined_domain_zoom_jbegin(domain_hdl%daddr) 
    1124         zoom_jbegin_ = zoom_jbegin__tmp 
    1125       ENDIF 
    1126  
    1127       IF (PRESENT(zoom_jbegin_loc_)) THEN 
    1128         zoom_jbegin_loc__tmp = cxios_is_defined_domain_zoom_jbegin_loc(domain_hdl%daddr) 
    1129         zoom_jbegin_loc_ = zoom_jbegin_loc__tmp 
    1130       ENDIF 
    1131  
    1132       IF (PRESENT(zoom_ni_)) THEN 
    1133         zoom_ni__tmp = cxios_is_defined_domain_zoom_ni(domain_hdl%daddr) 
    1134         zoom_ni_ = zoom_ni__tmp 
    1135       ENDIF 
    1136  
    1137       IF (PRESENT(zoom_ni_loc_)) THEN 
    1138         zoom_ni_loc__tmp = cxios_is_defined_domain_zoom_ni_loc(domain_hdl%daddr) 
    1139         zoom_ni_loc_ = zoom_ni_loc__tmp 
    1140       ENDIF 
    1141  
    1142       IF (PRESENT(zoom_nj_)) THEN 
    1143         zoom_nj__tmp = cxios_is_defined_domain_zoom_nj(domain_hdl%daddr) 
    1144         zoom_nj_ = zoom_nj__tmp 
    1145       ENDIF 
    1146  
    1147       IF (PRESENT(zoom_nj_loc_)) THEN 
    1148         zoom_nj_loc__tmp = cxios_is_defined_domain_zoom_nj_loc(domain_hdl%daddr) 
    1149         zoom_nj_loc_ = zoom_nj_loc__tmp 
    1150       ENDIF 
    1151  
    1152887  END SUBROUTINE xios(is_defined_domain_attr_hdl_) 
    1153888 
  • XIOS/trunk/src/interface/fortran_attr/idomaingroup_attr.F90

    r611 r657  
    1414    ( domaingroup_id, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    1515    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  & 
    16     , ibegin, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  & 
    17     , nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  & 
    18     , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     16    , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     17    , nvertex, standard_name, type ) 
    1918 
    2019    IMPLICIT NONE 
     
    3534      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 
    3635      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
    37       INTEGER  , OPTIONAL, INTENT(IN) :: i_index(:,:) 
     36      INTEGER  , OPTIONAL, INTENT(IN) :: i_index(:) 
    3837      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin 
    39       INTEGER  , OPTIONAL, INTENT(IN) :: iend 
    40       INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:,:) 
     38      INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:) 
    4139      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin 
    42       INTEGER  , OPTIONAL, INTENT(IN) :: jend 
    4340      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue(:) 
    4441      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
     
    5451      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 
    5552      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 
    56       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin 
    57       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc 
    58       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin 
    59       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc 
    60       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni 
    61       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni_loc 
    62       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj 
    63       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_loc 
    6453 
    6554      CALL xios(get_domaingroup_handle)(domaingroup_id,domaingroup_hdl) 
     
    6756      ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    6857      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  & 
    69       , ibegin, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  & 
    70       , nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  & 
    71       , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     58      , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     59      , nvertex, standard_name, type ) 
    7260 
    7361  END SUBROUTINE xios(set_domaingroup_attr) 
     
    7664    ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    7765    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  & 
    78     , ibegin, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  & 
    79     , nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  & 
    80     , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     66    , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     67    , nvertex, standard_name, type ) 
    8168 
    8269    IMPLICIT NONE 
     
    9683      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 
    9784      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
    98       INTEGER  , OPTIONAL, INTENT(IN) :: i_index(:,:) 
     85      INTEGER  , OPTIONAL, INTENT(IN) :: i_index(:) 
    9986      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin 
    100       INTEGER  , OPTIONAL, INTENT(IN) :: iend 
    101       INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:,:) 
     87      INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:) 
    10288      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin 
    103       INTEGER  , OPTIONAL, INTENT(IN) :: jend 
    10489      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue(:) 
    10590      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
     
    115100      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 
    116101      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 
    117       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin 
    118       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc 
    119       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin 
    120       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc 
    121       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni 
    122       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni_loc 
    123       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj 
    124       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_loc 
    125102 
    126103      CALL xios(set_domaingroup_attr_hdl_)  & 
    127104      ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    128105      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  & 
    129       , ibegin, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  & 
    130       , nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  & 
    131       , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     106      , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     107      , nvertex, standard_name, type ) 
    132108 
    133109  END SUBROUTINE xios(set_domaingroup_attr_hdl) 
     
    136112    ( domaingroup_hdl, area_, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  & 
    137113    , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, domain_ref_, group_ref_  & 
    138     , i_index_, ibegin_, iend_, j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_  & 
    139     , name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_  & 
    140     , zoom_jbegin_, zoom_jbegin_loc_, zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
     114    , i_index_, ibegin_, j_index_, jbegin_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_  & 
     115    , ni_glo_, nj_, nj_glo_, nvertex_, standard_name_, type_ ) 
    141116 
    142117    IMPLICIT NONE 
     
    156131      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_ 
    157132      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ 
    158       INTEGER  , OPTIONAL, INTENT(IN) :: i_index_(:,:) 
     133      INTEGER  , OPTIONAL, INTENT(IN) :: i_index_(:) 
    159134      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin_ 
    160       INTEGER  , OPTIONAL, INTENT(IN) :: iend_ 
    161       INTEGER  , OPTIONAL, INTENT(IN) :: j_index_(:,:) 
     135      INTEGER  , OPTIONAL, INTENT(IN) :: j_index_(:) 
    162136      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin_ 
    163       INTEGER  , OPTIONAL, INTENT(IN) :: jend_ 
    164137      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_(:) 
    165138      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ 
     
    175148      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_ 
    176149      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_ 
    177       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin_ 
    178       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc_ 
    179       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin_ 
    180       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc_ 
    181       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni_ 
    182       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni_loc_ 
    183       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_ 
    184       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_loc_ 
    185150 
    186151      IF (PRESENT(area_)) THEN 
     
    241206 
    242207      IF (PRESENT(i_index_)) THEN 
    243         CALL cxios_set_domaingroup_i_index(domaingroup_hdl%daddr, i_index_, size(i_index_,1), size(i_index_,2)) 
     208        CALL cxios_set_domaingroup_i_index(domaingroup_hdl%daddr, i_index_, size(i_index_,1)) 
    244209      ENDIF 
    245210 
     
    248213      ENDIF 
    249214 
    250       IF (PRESENT(iend_)) THEN 
    251         CALL cxios_set_domaingroup_iend(domaingroup_hdl%daddr, iend_) 
    252       ENDIF 
    253  
    254215      IF (PRESENT(j_index_)) THEN 
    255         CALL cxios_set_domaingroup_j_index(domaingroup_hdl%daddr, j_index_, size(j_index_,1), size(j_index_,2)) 
     216        CALL cxios_set_domaingroup_j_index(domaingroup_hdl%daddr, j_index_, size(j_index_,1)) 
    256217      ENDIF 
    257218 
    258219      IF (PRESENT(jbegin_)) THEN 
    259220        CALL cxios_set_domaingroup_jbegin(domaingroup_hdl%daddr, jbegin_) 
    260       ENDIF 
    261  
    262       IF (PRESENT(jend_)) THEN 
    263         CALL cxios_set_domaingroup_jend(domaingroup_hdl%daddr, jend_) 
    264221      ENDIF 
    265222 
     
    314271      ENDIF 
    315272 
    316       IF (PRESENT(zoom_ibegin_)) THEN 
    317         CALL cxios_set_domaingroup_zoom_ibegin(domaingroup_hdl%daddr, zoom_ibegin_) 
    318       ENDIF 
    319  
    320       IF (PRESENT(zoom_ibegin_loc_)) THEN 
    321         CALL cxios_set_domaingroup_zoom_ibegin_loc(domaingroup_hdl%daddr, zoom_ibegin_loc_) 
    322       ENDIF 
    323  
    324       IF (PRESENT(zoom_jbegin_)) THEN 
    325         CALL cxios_set_domaingroup_zoom_jbegin(domaingroup_hdl%daddr, zoom_jbegin_) 
    326       ENDIF 
    327  
    328       IF (PRESENT(zoom_jbegin_loc_)) THEN 
    329         CALL cxios_set_domaingroup_zoom_jbegin_loc(domaingroup_hdl%daddr, zoom_jbegin_loc_) 
    330       ENDIF 
    331  
    332       IF (PRESENT(zoom_ni_)) THEN 
    333         CALL cxios_set_domaingroup_zoom_ni(domaingroup_hdl%daddr, zoom_ni_) 
    334       ENDIF 
    335  
    336       IF (PRESENT(zoom_ni_loc_)) THEN 
    337         CALL cxios_set_domaingroup_zoom_ni_loc(domaingroup_hdl%daddr, zoom_ni_loc_) 
    338       ENDIF 
    339  
    340       IF (PRESENT(zoom_nj_)) THEN 
    341         CALL cxios_set_domaingroup_zoom_nj(domaingroup_hdl%daddr, zoom_nj_) 
    342       ENDIF 
    343  
    344       IF (PRESENT(zoom_nj_loc_)) THEN 
    345         CALL cxios_set_domaingroup_zoom_nj_loc(domaingroup_hdl%daddr, zoom_nj_loc_) 
    346       ENDIF 
    347  
    348273  END SUBROUTINE xios(set_domaingroup_attr_hdl_) 
    349274 
     
    351276    ( domaingroup_id, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    352277    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  & 
    353     , ibegin, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  & 
    354     , nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  & 
    355     , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     278    , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     279    , nvertex, standard_name, type ) 
    356280 
    357281    IMPLICIT NONE 
     
    372296      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 
    373297      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
    374       INTEGER  , OPTIONAL, INTENT(OUT) :: i_index(:,:) 
     298      INTEGER  , OPTIONAL, INTENT(OUT) :: i_index(:) 
    375299      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin 
    376       INTEGER  , OPTIONAL, INTENT(OUT) :: iend 
    377       INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:,:) 
     300      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:) 
    378301      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin 
    379       INTEGER  , OPTIONAL, INTENT(OUT) :: jend 
    380302      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue(:) 
    381303      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
     
    391313      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 
    392314      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 
    393       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin 
    394       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc 
    395       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin 
    396       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc 
    397       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni 
    398       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni_loc 
    399       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj 
    400       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_loc 
    401315 
    402316      CALL xios(get_domaingroup_handle)(domaingroup_id,domaingroup_hdl) 
     
    404318      ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    405319      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  & 
    406       , ibegin, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  & 
    407       , nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  & 
    408       , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     320      , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     321      , nvertex, standard_name, type ) 
    409322 
    410323  END SUBROUTINE xios(get_domaingroup_attr) 
     
    413326    ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    414327    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  & 
    415     , ibegin, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  & 
    416     , nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  & 
    417     , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     328    , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     329    , nvertex, standard_name, type ) 
    418330 
    419331    IMPLICIT NONE 
     
    433345      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 
    434346      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
    435       INTEGER  , OPTIONAL, INTENT(OUT) :: i_index(:,:) 
     347      INTEGER  , OPTIONAL, INTENT(OUT) :: i_index(:) 
    436348      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin 
    437       INTEGER  , OPTIONAL, INTENT(OUT) :: iend 
    438       INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:,:) 
     349      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:) 
    439350      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin 
    440       INTEGER  , OPTIONAL, INTENT(OUT) :: jend 
    441351      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue(:) 
    442352      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
     
    452362      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 
    453363      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 
    454       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin 
    455       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc 
    456       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin 
    457       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc 
    458       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni 
    459       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni_loc 
    460       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj 
    461       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_loc 
    462364 
    463365      CALL xios(get_domaingroup_attr_hdl_)  & 
    464366      ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    465367      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  & 
    466       , ibegin, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  & 
    467       , nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  & 
    468       , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     368      , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     369      , nvertex, standard_name, type ) 
    469370 
    470371  END SUBROUTINE xios(get_domaingroup_attr_hdl) 
     
    473374    ( domaingroup_hdl, area_, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  & 
    474375    , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, domain_ref_, group_ref_  & 
    475     , i_index_, ibegin_, iend_, j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_  & 
    476     , name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_  & 
    477     , zoom_jbegin_, zoom_jbegin_loc_, zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
     376    , i_index_, ibegin_, j_index_, jbegin_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_  & 
     377    , ni_glo_, nj_, nj_glo_, nvertex_, standard_name_, type_ ) 
    478378 
    479379    IMPLICIT NONE 
     
    493393      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref_ 
    494394      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ 
    495       INTEGER  , OPTIONAL, INTENT(OUT) :: i_index_(:,:) 
     395      INTEGER  , OPTIONAL, INTENT(OUT) :: i_index_(:) 
    496396      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin_ 
    497       INTEGER  , OPTIONAL, INTENT(OUT) :: iend_ 
    498       INTEGER  , OPTIONAL, INTENT(OUT) :: j_index_(:,:) 
     397      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index_(:) 
    499398      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin_ 
    500       INTEGER  , OPTIONAL, INTENT(OUT) :: jend_ 
    501399      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_(:) 
    502400      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_ 
     
    512410      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_ 
    513411      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_ 
    514       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin_ 
    515       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc_ 
    516       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin_ 
    517       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc_ 
    518       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni_ 
    519       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni_loc_ 
    520       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_ 
    521       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_loc_ 
    522412 
    523413      IF (PRESENT(area_)) THEN 
     
    578468 
    579469      IF (PRESENT(i_index_)) THEN 
    580         CALL cxios_get_domaingroup_i_index(domaingroup_hdl%daddr, i_index_, size(i_index_,1), size(i_index_,2)) 
     470        CALL cxios_get_domaingroup_i_index(domaingroup_hdl%daddr, i_index_, size(i_index_,1)) 
    581471      ENDIF 
    582472 
     
    585475      ENDIF 
    586476 
    587       IF (PRESENT(iend_)) THEN 
    588         CALL cxios_get_domaingroup_iend(domaingroup_hdl%daddr, iend_) 
    589       ENDIF 
    590  
    591477      IF (PRESENT(j_index_)) THEN 
    592         CALL cxios_get_domaingroup_j_index(domaingroup_hdl%daddr, j_index_, size(j_index_,1), size(j_index_,2)) 
     478        CALL cxios_get_domaingroup_j_index(domaingroup_hdl%daddr, j_index_, size(j_index_,1)) 
    593479      ENDIF 
    594480 
    595481      IF (PRESENT(jbegin_)) THEN 
    596482        CALL cxios_get_domaingroup_jbegin(domaingroup_hdl%daddr, jbegin_) 
    597       ENDIF 
    598  
    599       IF (PRESENT(jend_)) THEN 
    600         CALL cxios_get_domaingroup_jend(domaingroup_hdl%daddr, jend_) 
    601483      ENDIF 
    602484 
     
    651533      ENDIF 
    652534 
    653       IF (PRESENT(zoom_ibegin_)) THEN 
    654         CALL cxios_get_domaingroup_zoom_ibegin(domaingroup_hdl%daddr, zoom_ibegin_) 
    655       ENDIF 
    656  
    657       IF (PRESENT(zoom_ibegin_loc_)) THEN 
    658         CALL cxios_get_domaingroup_zoom_ibegin_loc(domaingroup_hdl%daddr, zoom_ibegin_loc_) 
    659       ENDIF 
    660  
    661       IF (PRESENT(zoom_jbegin_)) THEN 
    662         CALL cxios_get_domaingroup_zoom_jbegin(domaingroup_hdl%daddr, zoom_jbegin_) 
    663       ENDIF 
    664  
    665       IF (PRESENT(zoom_jbegin_loc_)) THEN 
    666         CALL cxios_get_domaingroup_zoom_jbegin_loc(domaingroup_hdl%daddr, zoom_jbegin_loc_) 
    667       ENDIF 
    668  
    669       IF (PRESENT(zoom_ni_)) THEN 
    670         CALL cxios_get_domaingroup_zoom_ni(domaingroup_hdl%daddr, zoom_ni_) 
    671       ENDIF 
    672  
    673       IF (PRESENT(zoom_ni_loc_)) THEN 
    674         CALL cxios_get_domaingroup_zoom_ni_loc(domaingroup_hdl%daddr, zoom_ni_loc_) 
    675       ENDIF 
    676  
    677       IF (PRESENT(zoom_nj_)) THEN 
    678         CALL cxios_get_domaingroup_zoom_nj(domaingroup_hdl%daddr, zoom_nj_) 
    679       ENDIF 
    680  
    681       IF (PRESENT(zoom_nj_loc_)) THEN 
    682         CALL cxios_get_domaingroup_zoom_nj_loc(domaingroup_hdl%daddr, zoom_nj_loc_) 
    683       ENDIF 
    684  
    685535  END SUBROUTINE xios(get_domaingroup_attr_hdl_) 
    686536 
     
    688538    ( domaingroup_id, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    689539    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  & 
    690     , ibegin, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  & 
    691     , nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  & 
    692     , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     540    , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     541    , nvertex, standard_name, type ) 
    693542 
    694543    IMPLICIT NONE 
     
    727576      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin 
    728577      LOGICAL(KIND=C_BOOL) :: ibegin_tmp 
    729       LOGICAL, OPTIONAL, INTENT(OUT) :: iend 
    730       LOGICAL(KIND=C_BOOL) :: iend_tmp 
    731578      LOGICAL, OPTIONAL, INTENT(OUT) :: j_index 
    732579      LOGICAL(KIND=C_BOOL) :: j_index_tmp 
    733580      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 
    734581      LOGICAL(KIND=C_BOOL) :: jbegin_tmp 
    735       LOGICAL, OPTIONAL, INTENT(OUT) :: jend 
    736       LOGICAL(KIND=C_BOOL) :: jend_tmp 
    737582      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue 
    738583      LOGICAL(KIND=C_BOOL) :: latvalue_tmp 
     
    759604      LOGICAL, OPTIONAL, INTENT(OUT) :: type 
    760605      LOGICAL(KIND=C_BOOL) :: type_tmp 
    761       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ibegin 
    762       LOGICAL(KIND=C_BOOL) :: zoom_ibegin_tmp 
    763       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc 
    764       LOGICAL(KIND=C_BOOL) :: zoom_ibegin_loc_tmp 
    765       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_jbegin 
    766       LOGICAL(KIND=C_BOOL) :: zoom_jbegin_tmp 
    767       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc 
    768       LOGICAL(KIND=C_BOOL) :: zoom_jbegin_loc_tmp 
    769       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ni 
    770       LOGICAL(KIND=C_BOOL) :: zoom_ni_tmp 
    771       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ni_loc 
    772       LOGICAL(KIND=C_BOOL) :: zoom_ni_loc_tmp 
    773       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_nj 
    774       LOGICAL(KIND=C_BOOL) :: zoom_nj_tmp 
    775       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_nj_loc 
    776       LOGICAL(KIND=C_BOOL) :: zoom_nj_loc_tmp 
    777606 
    778607      CALL xios(get_domaingroup_handle)(domaingroup_id,domaingroup_hdl) 
     
    780609      ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    781610      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  & 
    782       , ibegin, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  & 
    783       , nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  & 
    784       , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     611      , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     612      , nvertex, standard_name, type ) 
    785613 
    786614  END SUBROUTINE xios(is_defined_domaingroup_attr) 
     
    789617    ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    790618    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  & 
    791     , ibegin, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  & 
    792     , nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  & 
    793     , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     619    , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     620    , nvertex, standard_name, type ) 
    794621 
    795622    IMPLICIT NONE 
     
    827654      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin 
    828655      LOGICAL(KIND=C_BOOL) :: ibegin_tmp 
    829       LOGICAL, OPTIONAL, INTENT(OUT) :: iend 
    830       LOGICAL(KIND=C_BOOL) :: iend_tmp 
    831656      LOGICAL, OPTIONAL, INTENT(OUT) :: j_index 
    832657      LOGICAL(KIND=C_BOOL) :: j_index_tmp 
    833658      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 
    834659      LOGICAL(KIND=C_BOOL) :: jbegin_tmp 
    835       LOGICAL, OPTIONAL, INTENT(OUT) :: jend 
    836       LOGICAL(KIND=C_BOOL) :: jend_tmp 
    837660      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue 
    838661      LOGICAL(KIND=C_BOOL) :: latvalue_tmp 
     
    859682      LOGICAL, OPTIONAL, INTENT(OUT) :: type 
    860683      LOGICAL(KIND=C_BOOL) :: type_tmp 
    861       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ibegin 
    862       LOGICAL(KIND=C_BOOL) :: zoom_ibegin_tmp 
    863       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc 
    864       LOGICAL(KIND=C_BOOL) :: zoom_ibegin_loc_tmp 
    865       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_jbegin 
    866       LOGICAL(KIND=C_BOOL) :: zoom_jbegin_tmp 
    867       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc 
    868       LOGICAL(KIND=C_BOOL) :: zoom_jbegin_loc_tmp 
    869       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ni 
    870       LOGICAL(KIND=C_BOOL) :: zoom_ni_tmp 
    871       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ni_loc 
    872       LOGICAL(KIND=C_BOOL) :: zoom_ni_loc_tmp 
    873       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_nj 
    874       LOGICAL(KIND=C_BOOL) :: zoom_nj_tmp 
    875       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_nj_loc 
    876       LOGICAL(KIND=C_BOOL) :: zoom_nj_loc_tmp 
    877684 
    878685      CALL xios(is_defined_domaingroup_attr_hdl_)  & 
    879686      ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    880687      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  & 
    881       , ibegin, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  & 
    882       , nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  & 
    883       , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     688      , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     689      , nvertex, standard_name, type ) 
    884690 
    885691  END SUBROUTINE xios(is_defined_domaingroup_attr_hdl) 
     
    888694    ( domaingroup_hdl, area_, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  & 
    889695    , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, domain_ref_, group_ref_  & 
    890     , i_index_, ibegin_, iend_, j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_  & 
    891     , name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_  & 
    892     , zoom_jbegin_, zoom_jbegin_loc_, zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
     696    , i_index_, ibegin_, j_index_, jbegin_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_  & 
     697    , ni_glo_, nj_, nj_glo_, nvertex_, standard_name_, type_ ) 
    893698 
    894699    IMPLICIT NONE 
     
    926731      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin_ 
    927732      LOGICAL(KIND=C_BOOL) :: ibegin__tmp 
    928       LOGICAL, OPTIONAL, INTENT(OUT) :: iend_ 
    929       LOGICAL(KIND=C_BOOL) :: iend__tmp 
    930733      LOGICAL, OPTIONAL, INTENT(OUT) :: j_index_ 
    931734      LOGICAL(KIND=C_BOOL) :: j_index__tmp 
    932735      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin_ 
    933736      LOGICAL(KIND=C_BOOL) :: jbegin__tmp 
    934       LOGICAL, OPTIONAL, INTENT(OUT) :: jend_ 
    935       LOGICAL(KIND=C_BOOL) :: jend__tmp 
    936737      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_ 
    937738      LOGICAL(KIND=C_BOOL) :: latvalue__tmp 
     
    958759      LOGICAL, OPTIONAL, INTENT(OUT) :: type_ 
    959760      LOGICAL(KIND=C_BOOL) :: type__tmp 
    960       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ibegin_ 
    961       LOGICAL(KIND=C_BOOL) :: zoom_ibegin__tmp 
    962       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc_ 
    963       LOGICAL(KIND=C_BOOL) :: zoom_ibegin_loc__tmp 
    964       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_jbegin_ 
    965       LOGICAL(KIND=C_BOOL) :: zoom_jbegin__tmp 
    966       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc_ 
    967       LOGICAL(KIND=C_BOOL) :: zoom_jbegin_loc__tmp 
    968       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ni_ 
    969       LOGICAL(KIND=C_BOOL) :: zoom_ni__tmp 
    970       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_ni_loc_ 
    971       LOGICAL(KIND=C_BOOL) :: zoom_ni_loc__tmp 
    972       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_nj_ 
    973       LOGICAL(KIND=C_BOOL) :: zoom_nj__tmp 
    974       LOGICAL, OPTIONAL, INTENT(OUT) :: zoom_nj_loc_ 
    975       LOGICAL(KIND=C_BOOL) :: zoom_nj_loc__tmp 
    976761 
    977762      IF (PRESENT(area_)) THEN 
     
    1055840      ENDIF 
    1056841 
    1057       IF (PRESENT(iend_)) THEN 
    1058         iend__tmp = cxios_is_defined_domaingroup_iend(domaingroup_hdl%daddr) 
    1059         iend_ = iend__tmp 
    1060       ENDIF 
    1061  
    1062842      IF (PRESENT(j_index_)) THEN 
    1063843        j_index__tmp = cxios_is_defined_domaingroup_j_index(domaingroup_hdl%daddr) 
     
    1070850      ENDIF 
    1071851 
    1072       IF (PRESENT(jend_)) THEN 
    1073         jend__tmp = cxios_is_defined_domaingroup_jend(domaingroup_hdl%daddr) 
    1074         jend_ = jend__tmp 
    1075       ENDIF 
    1076  
    1077852      IF (PRESENT(latvalue_)) THEN 
    1078853        latvalue__tmp = cxios_is_defined_domaingroup_latvalue(domaingroup_hdl%daddr) 
     
    1135910      ENDIF 
    1136911 
    1137       IF (PRESENT(zoom_ibegin_)) THEN 
    1138         zoom_ibegin__tmp = cxios_is_defined_domaingroup_zoom_ibegin(domaingroup_hdl%daddr) 
    1139         zoom_ibegin_ = zoom_ibegin__tmp 
    1140       ENDIF 
    1141  
    1142       IF (PRESENT(zoom_ibegin_loc_)) THEN 
    1143         zoom_ibegin_loc__tmp = cxios_is_defined_domaingroup_zoom_ibegin_loc(domaingroup_hdl%daddr) 
    1144         zoom_ibegin_loc_ = zoom_ibegin_loc__tmp 
    1145       ENDIF 
    1146  
    1147       IF (PRESENT(zoom_jbegin_)) THEN 
    1148         zoom_jbegin__tmp = cxios_is_defined_domaingroup_zoom_jbegin(domaingroup_hdl%daddr) 
    1149         zoom_jbegin_ = zoom_jbegin__tmp 
    1150       ENDIF 
    1151  
    1152       IF (PRESENT(zoom_jbegin_loc_)) THEN 
    1153         zoom_jbegin_loc__tmp = cxios_is_defined_domaingroup_zoom_jbegin_loc(domaingroup_hdl%daddr) 
    1154         zoom_jbegin_loc_ = zoom_jbegin_loc__tmp 
    1155       ENDIF 
    1156  
    1157       IF (PRESENT(zoom_ni_)) THEN 
    1158         zoom_ni__tmp = cxios_is_defined_domaingroup_zoom_ni(domaingroup_hdl%daddr) 
    1159         zoom_ni_ = zoom_ni__tmp 
    1160       ENDIF 
    1161  
    1162       IF (PRESENT(zoom_ni_loc_)) THEN 
    1163         zoom_ni_loc__tmp = cxios_is_defined_domaingroup_zoom_ni_loc(domaingroup_hdl%daddr) 
    1164         zoom_ni_loc_ = zoom_ni_loc__tmp 
    1165       ENDIF 
    1166  
    1167       IF (PRESENT(zoom_nj_)) THEN 
    1168         zoom_nj__tmp = cxios_is_defined_domaingroup_zoom_nj(domaingroup_hdl%daddr) 
    1169         zoom_nj_ = zoom_nj__tmp 
    1170       ENDIF 
    1171  
    1172       IF (PRESENT(zoom_nj_loc_)) THEN 
    1173         zoom_nj_loc__tmp = cxios_is_defined_domaingroup_zoom_nj_loc(domaingroup_hdl%daddr) 
    1174         zoom_nj_loc_ = zoom_nj_loc__tmp 
    1175       ENDIF 
    1176  
    1177912  END SUBROUTINE xios(is_defined_domaingroup_attr_hdl_) 
    1178913 
  • XIOS/trunk/src/node/axis.cpp

    r633 r657  
    300300 
    301301    CServerDistributionDescription serverDescription(nGlobDomain); 
    302     serverDescription.computeServerGlobalIndexInRange(nbServer, std::make_pair<size_t,size_t>(indexBegin, indexEnd)); 
    303     CClientServerMappingDistributed clientServerMap(serverDescription.getGlobalIndexRange(), client->intraComm); 
    304     clientServerMap.computeServerIndexMapping(globalIndexAxis); 
    305     const std::map<int, std::vector<size_t> >& globalIndexAxisOnServer = clientServerMap.getGlobalIndexOnServer(); 
     302    serverDescription.computeServerGlobalIndexInRange(nbServer, std::make_pair<size_t,size_t>(indexBegin, indexEnd), 0); 
     303    CClientServerMapping* clientServerMap = new CClientServerMappingDistributed(serverDescription.getGlobalIndexRange(), client->intraComm); 
     304    clientServerMap->computeServerIndexMapping(globalIndexAxis); 
     305    const std::map<int, std::vector<size_t> >& globalIndexAxisOnServer = clientServerMap->getGlobalIndexOnServer(); 
    306306 
    307307    std::map<int, std::vector<size_t> >::const_iterator it = globalIndexAxisOnServer.begin(), 
     
    336336        connectedServerRank_.push_back(it->first); 
    337337    } 
    338     nbConnectedClients_ = clientServerMap.computeConnectedClients(client->serverSize, client->clientSize, client->intraComm, connectedServerRank_); 
    339  
     338    nbConnectedClients_ = clientServerMap->computeConnectedClients(client->serverSize, client->clientSize, client->intraComm, connectedServerRank_); 
     339    delete clientServerMap; 
    340340  } 
    341341 
  • XIOS/trunk/src/node/domain.cpp

    • Property svn:executable set to *
    r635 r657  
    1717#include "client_server_mapping_distributed.hpp" 
    1818#include "zoom_domain.hpp" 
     19#include "interpolate_from_file_domain.hpp" 
    1920 
    2021namespace xios { 
     
    2526      : CObjectTemplate<CDomain>(), CDomainAttributes() 
    2627      , isChecked(false), relFiles(), isClientChecked(false), nbConnectedClients_(), indSrv_(), connectedServerRank_() 
    27       , hasBounds(false), hasArea(false), isDistributed_(false) 
    28       , global_zoom_ibegin(0), global_zoom_ni(0), global_zoom_jbegin(0), global_zoom_nj(0) 
     28      , hasBounds(false), hasArea(false), isDistributed_(false), nGlobDomain_(), isUnstructed_(false) 
     29      , global_zoom_ni(0), global_zoom_ibegin(0), global_zoom_nj(0), global_zoom_jbegin(0), maskInter_() 
     30      , isClientAfterTransformationChecked(false) 
    2931   { /* Ne rien faire de plus */ } 
    3032 
     
    3234      : CObjectTemplate<CDomain>(id), CDomainAttributes() 
    3335      , isChecked(false), relFiles(), isClientChecked(false), nbConnectedClients_(), indSrv_(), connectedServerRank_() 
    34       , hasBounds(false), hasArea(false), isDistributed_(false) 
    35       , global_zoom_ibegin(0), global_zoom_ni(0), global_zoom_jbegin(0), global_zoom_nj(0) 
     36      , hasBounds(false), hasArea(false), isDistributed_(false), nGlobDomain_(), isUnstructed_(false) 
     37      , global_zoom_ni(0), global_zoom_ibegin(0), global_zoom_nj(0), global_zoom_jbegin(0), maskInter_() 
     38      , isClientAfterTransformationChecked(false) 
    3639   { /* Ne rien faire de plus */ } 
    3740 
     
    5962 
    6063   //---------------------------------------------------------------- 
    61  
    62    bool CDomain::hasZoom(void) const 
    63    { 
    64       return ((this->zoom_ni.getValue() != this->ni_glo.getValue()) && 
    65               (this->zoom_nj.getValue() != this->nj_glo.getValue())); 
    66    } 
    67  
    68    //---------------------------------------------------------------- 
    69  
    7064   bool CDomain::isEmpty(void) const 
    7165   { 
     
    7569 
    7670   //---------------------------------------------------------------- 
    77  
    7871   bool CDomain::IsWritten(const StdString & filename) const 
    7972   { 
     
    8275 
    8376   //---------------------------------------------------------------- 
    84  
    8577   bool CDomain::isDistributed(void) const 
    8678   { 
     
    8981 
    9082   //---------------------------------------------------------------- 
    91  
    9283   void CDomain::addRelFile(const StdString & filename) 
    9384   { 
     
    113104               << " check the \'ni_glo\'  value !") 
    114105         } 
    115          nj_glo=ni_glo ; 
    116          ni_glo=1 ; 
    117          if (!ni.isEmpty()) nj=ni ; 
    118          if (!ibegin.isEmpty()) jbegin=ibegin ; 
    119          if (!iend.isEmpty()) jend=iend ; 
    120          if (!i_index.isEmpty()) 
    121          { 
    122           j_index.resize(1,nj) ; 
    123           for(int i=0;i<ni;i++) j_index(0,i)=i_index(i,0) ; 
    124           i_index.resize(1,nj) ; 
    125           for(int j=0;j<nj;j++) i_index(0,j)=0 ; 
    126          } 
    127  
    128          if (!mask.isEmpty()) 
    129          { 
    130           CArray<int,2> mask_tmp(nj,1) ; 
    131           mask_tmp = mask ; 
    132           mask.resize(1,nj) ; 
    133           for(int j=0;j<nj;j++) mask(0,j)=mask_tmp(j,0) ; 
    134          } 
     106         isUnstructed_ = true; 
     107         nj_glo = 1; 
     108         nj = 1; 
     109         jbegin = 0; 
     110         if (ni.isEmpty()) ni = i_index.numElements(); 
     111         j_index.resize(ni); 
     112         for(int i=0;i<ni;++i) j_index(i)=0; 
     113 
     114//         nj_glo=ni_glo ; 
     115//         ni_glo=1 ; 
     116//         if (!ni.isEmpty()) nj=ni ; 
     117//         if (!ibegin.isEmpty()) jbegin=ibegin ; 
     118//         if (!iend.isEmpty()) jend=iend ; 
     119//         if (!i_index.isEmpty()) 
     120//         { 
     121//          j_index.resize(1,nj) ; 
     122//          for(int i=0;i<ni;i++) j_index(0,i)=i_index(i,0) ; 
     123//          i_index.resize(1,nj) ; 
     124//          for(int j=0;j<nj;j++) i_index(0,j)=0 ; 
     125//         } 
     126// 
     127//         if (!mask.isEmpty()) 
     128//         { 
     129//          CArray<int,2> mask_tmp(nj,1); 
     130//          mask_tmp = mask ; 
     131//          mask.resize(1,nj) ; 
     132//          for(int j=0;j<nj;j++) mask(0,j)=mask_tmp(j,0) ; 
     133//         } 
    135134 
    136135         if (!area.isEmpty()) 
    137136           area.transposeSelf(1, 0); 
    138137 
    139          ni=1 ; 
    140          ibegin=0 ; 
    141          iend=0 ; 
     138//         ni=1 ; 
     139//         ibegin=0 ; 
     140//         iend=0 ; 
    142141 
    143142      } 
     
    151150      } 
    152151 
    153       isDistributed_ = !ibegin.isEmpty() || !iend.isEmpty() || !ni.isEmpty() || !jbegin.isEmpty() || !jend.isEmpty() || !nj.isEmpty(); 
     152      isDistributed_ = !ibegin.isEmpty() || !ni.isEmpty() || !jbegin.isEmpty() || !nj.isEmpty(); 
    154153 
    155154      checkLocalIDomain(); 
    156155      checkLocalJDomain(); 
    157156 
    158       ibegin_client = ibegin; iend_client = iend; ni_client = ni; 
    159       jbegin_client = jbegin; jend_client = jend; nj_client = nj; 
     157      ibegin_client = ibegin; ni_client = ni; iend_client = ibegin + ni - 1; 
     158      jbegin_client = jbegin; nj_client = nj; jend_client = jbegin + nj - 1; 
    160159 
    161160      if (i_index.isEmpty()) 
    162161      { 
    163         i_index.resize(ni,nj); 
    164         for (int j = 0; j < nj; j++) 
    165           for (int i = 0; i < ni; i++) i_index(i,j) = i; 
     162        i_index.resize(ni*nj); 
     163        for (int j = 0; j < nj; ++j) 
     164          for (int i = 0; i < ni; ++i) i_index(i+j*ni) = i+ibegin; 
    166165      } 
    167166 
    168167      if (j_index.isEmpty()) 
    169168      { 
    170         j_index.resize(ni,nj); 
    171         for (int j = 0; j < nj; j++) 
    172           for (int i = 0; i < ni; i++) j_index(i,j) = j; 
    173       } 
     169        j_index.resize(ni*nj); 
     170        for (int j = 0; j < nj; ++j) 
     171          for (int i = 0; i < ni; ++i) j_index(i+j*ni) = j+jbegin; 
     172      } 
     173      computeNGlobDomain(); 
    174174   } 
    175175 
     
    178178   void CDomain::checkLocalIDomain(void) 
    179179   { 
    180       if (!ni.isEmpty() && !ibegin.isEmpty() && iend.isEmpty()) 
    181         iend.setValue(ibegin.getValue() + ni.getValue() - 1); 
    182       else if (!ni.isEmpty() && !iend.isEmpty() && ibegin.isEmpty()) 
    183         ibegin.setValue(iend.getValue() - ni.getValue()  + 1); 
    184       else if (!ibegin.isEmpty() && !iend.isEmpty() && ni.isEmpty()) 
    185         ni.setValue(iend.getValue() - ibegin.getValue() + 1); 
    186       else if (!ibegin.isEmpty() && !iend.isEmpty() && !ni.isEmpty()) 
    187       { 
    188         if (iend.getValue() != ibegin.getValue() + ni.getValue() - 1) 
    189           ERROR("CDomain::checkLocalIDomain(void)", 
    190                 << "[ Id = " << this->getId() << " ] " 
    191                 << "The local domain is wrongly defined," 
    192                 << " iend is different from (ibegin + ni - 1)"); 
    193       } 
    194       else if (ibegin.isEmpty() && iend.isEmpty() && ni.isEmpty()) 
     180      if (ibegin.isEmpty() && ni.isEmpty()) 
    195181      { 
    196182        ibegin = 0; 
    197         iend = ni_glo - 1; 
    198183        ni = ni_glo; 
    199184      } 
    200       else 
     185      else if (!i_index.isEmpty()) 
     186      { 
     187        ibegin = i_index(0); 
     188      } 
     189 
     190      if (ni.getValue() < 0 || ibegin.getValue() < 0 || 
     191         (ibegin.getValue() + ni.getValue()) > ni_glo.getValue()) 
    201192      { 
    202193        ERROR("CDomain::checkLocalIDomain(void)", 
    203194              << "[ Id = " << this->getId() << " ] " 
    204195              << "The local domain is wrongly defined," 
    205               << " defining just one attribute among 'ibegin', 'iend' or 'ni' is invalid"); 
    206       } 
    207  
    208       if (ni.getValue() < 0 || ibegin.getValue() > iend.getValue() || 
    209           ibegin.getValue() < 0 || iend.getValue() > (ni_glo.getValue() - 1)) 
    210       { 
    211         ERROR("CDomain::checkLocalIDomain(void)", 
    212               << "[ Id = " << this->getId() << " ] " 
    213               << "The local domain is wrongly defined," 
    214               << " check the attributes 'ni_glo', 'ni', 'ibegin' and 'iend'"); 
    215       } 
    216    } 
    217  
    218    //---------------------------------------------------------------- 
    219  
     196              << " check the attributes 'ni_glo', 'ni' and 'ibegin'"); 
     197      } 
     198   } 
     199 
     200   //---------------------------------------------------------------- 
    220201   void CDomain::checkLocalJDomain(void) 
    221202   { 
    222       if (!nj.isEmpty() && !jbegin.isEmpty() && jend.isEmpty()) 
    223         jend.setValue(jbegin.getValue() + nj.getValue() - 1); 
    224       else if (!nj.isEmpty() && !jend.isEmpty() && jbegin.isEmpty()) 
    225         jbegin.setValue(jend.getValue() - nj.getValue() + 1); 
    226       else if (!jbegin.isEmpty() && !jend.isEmpty() && nj.isEmpty()) 
    227         nj.setValue(jend.getValue() - jbegin.getValue() + 1); 
    228       else if (!jbegin.isEmpty() && !jend.isEmpty() && !nj.isEmpty()) 
    229       { 
    230         if (jend.getValue() != jbegin.getValue() + nj.getValue() - 1) 
    231           ERROR("CDomain::checkLocalJDomain(void)", 
    232                 << "[ Id = " << this->getId() << " ] " 
    233                 << "The local domain is wrongly defined," 
    234                 << " jend is different from (jbegin + nj - 1)"); 
    235       } 
    236       else if (jbegin.isEmpty() && jend.isEmpty() && nj.isEmpty()) 
    237       { 
    238         jbegin = 0; 
    239         jend = nj_glo - 1; 
    240         nj = nj_glo; 
    241       } 
    242       else 
     203     if (jbegin.isEmpty() && nj.isEmpty()) 
     204     { 
     205       jbegin = 0; 
     206       nj = nj_glo; 
     207     } 
     208     else if (!j_index.isEmpty()) 
     209     { 
     210       jbegin = j_index(0); 
     211     } 
     212 
     213      if (nj.getValue() < 0 || jbegin.getValue() < 0 || 
     214         (jbegin.getValue() + nj.getValue()) > nj_glo.getValue()) 
    243215      { 
    244216        ERROR("CDomain::checkLocalJDomain(void)", 
    245217              << "[ Id = " << this->getId() << " ] " 
    246218              << "The local domain is wrongly defined," 
    247               << " defining just one attribute among 'jbegin', 'jend' or 'nj' is invalid"); 
    248       } 
    249  
    250       if (nj.getValue() < 0 || jbegin.getValue() > jend.getValue() || 
    251           jbegin.getValue() < 0 || jend.getValue() > (nj_glo.getValue() - 1)) 
    252       { 
    253         ERROR("CDomain::checkLocalJDomain(void)", 
    254               << "[ Id = " << this->getId() << " ] " 
    255               << "The local domain is wrongly defined," 
    256               << " check the attributes 'nj_glo', 'nj', 'jbegin' and 'jend'"); 
    257       } 
    258    } 
    259  
    260    //---------------------------------------------------------------- 
    261  
     219              << " check the attributes 'nj_glo', 'nj' and 'jbegin'"); 
     220      } 
     221   } 
     222 
     223   //---------------------------------------------------------------- 
    262224   void CDomain::checkMask(void) 
    263225   { 
     
    266228      int ibegin_mask = 0, 
    267229          jbegin_mask = 0, 
    268           iend_mask = iend.getValue() - ibegin.getValue(), 
    269           jend_mask = jend.getValue() - jbegin.getValue(); 
    270  
    271       if (!zoom_ibegin.isEmpty()) 
    272       { 
    273          int zoom_iend = zoom_ibegin.getValue() + zoom_ni.getValue() - 1; 
    274          int zoom_jend = zoom_jbegin.getValue() + zoom_nj.getValue() - 1; 
    275  
    276          ibegin_mask = max (ibegin.getValue(), zoom_ibegin.getValue()); 
    277          jbegin_mask = max (jbegin.getValue(), zoom_jbegin.getValue()); 
    278          iend_mask   = min (iend.getValue(), zoom_iend); 
    279          jend_mask   = min (jend.getValue(), zoom_jend); 
    280  
    281          ibegin_mask -= ibegin.getValue(); 
    282          jbegin_mask -= jbegin.getValue(); 
    283          iend_mask   -= ibegin.getValue(); 
    284          jend_mask   -= jbegin.getValue(); 
    285       } 
    286  
     230          iend_mask = ibegin.getValue() + ni.getValue() - 1, 
     231          jend_mask = jbegin.getValue() + nj.getValue() - 1; 
     232 
     233      if (!mask_1D.isEmpty() && !mask_2D.isEmpty()) 
     234        ERROR("CDomain::checkMask(void)", 
     235             <<"Only one mask is used but both mask_1D and mask_2D are defined! "<<endl 
     236             <<"Define only one mask: mask_1D or mask_2D "); 
     237 
     238      if (!mask_1D.isEmpty() && mask_2D.isEmpty()) 
     239      { 
     240        if (mask_1D.numElements() != i_index.numElements()) 
     241          ERROR("CDomain::checkMask(void)", 
     242                <<"the mask_1D has not the same size than the local domain"<<endl 
     243                <<"Local size is "<<i_index.numElements()<<endl 
     244                <<"Mask size is "<<mask_1D.numElements()); 
     245      } 
     246 
     247      if (mask_1D.isEmpty() && !mask_2D.isEmpty()) 
     248      { 
     249         if ((mask_2D.extent(0) != ni) || 
     250             (mask_2D.extent(1) != nj)) 
     251            ERROR("CDomain::checkMask(void)", 
     252                  <<"the mask has not the same size than the local domain"<<endl 
     253                  <<"Local size is "<<ni<<"x"<<nj<<endl 
     254                  <<"Mask size is "<<mask.extent(0)<<"x"<<mask.extent(1)); 
     255      } 
     256 
     257      if (!mask_1D.isEmpty()) 
     258      { 
     259        maskInter_.resize(mask_1D.numElements()); 
     260        maskInter_ = mask_1D; 
     261      } 
     262      else if (!mask_2D.isEmpty()) 
     263      { 
     264        maskInter_.resize(mask_2D.extent(0) * mask_2D.extent(0)); 
     265        for (int j = 0; j < nj; ++j) 
     266          for (int i = 0; i < ni; ++i) maskInter_(i+j*ni) = mask_2D(i,j); 
     267      } 
     268      else 
     269      { 
     270        maskInter_.resize(i_index.numElements()); 
     271        for (int i = 0; i < i_index.numElements(); ++i) maskInter_(i) = true; 
     272      } 
     273 
     274      if (!mask.isEmpty()) 
     275      { 
     276        maskInter_.resize(mask.extent(0) * mask.extent(1)); 
     277        for (int j = 0; j < nj; ++j) 
     278          for (int i = 0; i < ni; ++i) maskInter_(i+j*ni) = mask(i,j); 
     279      } 
     280      else 
     281      { 
     282        maskInter_.resize(ni*nj); 
     283        for (int i = 0; i < maskInter_.numElements(); ++i) maskInter_(i) = true; 
     284      } 
    287285 
    288286      if (!mask.isEmpty()) 
     
    294292                   <<"Local size is "<<ni<<"x"<<nj<<endl 
    295293                  <<"Mask size is "<<mask.extent(0)<<"x"<<mask.extent(1)); 
    296          for (int i = 0; i < ni; i++) 
    297          { 
    298             for (int j = 0; j < nj; j++) 
    299             { 
    300                if (i < ibegin_mask && i > iend_mask && 
    301                    j < jbegin_mask && j > jend_mask ) 
    302                      mask(i,j) = false; 
    303             } 
    304          } 
     294//         for (int i = 0; i < ni; i++) 
     295//         { 
     296//            for (int j = 0; j < nj; j++) 
     297//            { 
     298//               if (i < ibegin_mask && i > iend_mask && 
     299//                   j < jbegin_mask && j > jend_mask ) 
     300//                     mask(i,j) = false; 
     301//            } 
     302//         } 
    305303      } 
    306304      else // (!mask.hasValue()) 
     
    520518   void CDomain::checkZoom(void) 
    521519   { 
    522       // Résolution et vérification des données globales de zoom. 
    523       if (!this->zoom_ni.isEmpty() || !this->zoom_nj.isEmpty() || 
    524           !this->zoom_ibegin.isEmpty() || !this->zoom_jbegin.isEmpty()) 
    525       { 
    526          if (this->zoom_ni.isEmpty()     || this->zoom_nj.isEmpty() || 
    527              this->zoom_ibegin.isEmpty() || this->zoom_jbegin.isEmpty()) 
    528          { 
    529             ERROR("CDomain::checkZoom(void)", 
    530                   <<"if one of zoom attributes is defined then all zoom attributes must be defined") ; 
    531          } 
    532          else 
    533          { 
    534             int zoom_iend = zoom_ibegin + zoom_ni - 1; 
    535             int zoom_jend = zoom_jbegin + zoom_nj - 1; 
    536  
    537             if (zoom_ibegin < 0  || zoom_jbegin < 0 || zoom_iend > (ni_glo-1) || zoom_jend > (nj_glo-1)) 
    538                ERROR("CDomain::checkZoom(void)", 
    539                      << "Zoom is wrongly defined," 
    540                      << " Check the values : zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin") ; 
    541          } 
    542       } 
    543       else 
    544       { 
    545          zoom_ni = ni_glo; 
    546          zoom_nj = nj_glo; 
    547          zoom_ibegin = 0; 
    548          zoom_jbegin = 0; 
    549       } 
    550  
    551520      // compute client zoom indices 
    552521      // compute client zoom indices 
     
    594563   } 
    595564 
     565//   void CDomain::checkAttributesOnClientBeforeTransformation() 
     566//   { 
     567//      if (this->isClientBeforeTransformationChecked) return; 
     568//      CContext* context=CContext::getCurrent(); 
     569// 
     570//      this->checkDomain(); 
     571//      this->checkBounds(); 
     572//      this->checkArea(); 
     573// 
     574//      if (context->hasClient) 
     575//      { 
     576//        this->checkDomainData(); 
     577//        this->checkCompression(); 
     578//      } 
     579// 
     580//      this->isClientBeforeTransformationChecked = true; 
     581//   } 
     582 
     583   void CDomain::checkAttributesOnClientAfterTransformation() 
     584   { 
     585     CContext* context=CContext::getCurrent() ; 
     586 
     587     this->checkZoom(); 
     588     if (this->isClientAfterTransformationChecked) return; 
     589     if (context->hasClient) 
     590     { 
     591       this->checkMask(); 
     592       this->computeConnectedServer(); 
     593       this->completeLonLatClient(); 
     594     } 
     595 
     596     this->isClientAfterTransformationChecked = true; 
     597   } 
     598 
    596599   //---------------------------------------------------------------- 
    597600   // Divide function checkAttributes into 2 seperate ones 
     
    625628   { 
    626629     if (!this->isClientChecked) checkAttributesOnClient(); 
     630     if (!this->isClientAfterTransformationChecked) checkAttributesOnClientAfterTransformation(); 
    627631     CContext* context=CContext::getCurrent() ; 
    628632 
     
    631635     if (context->hasClient) 
    632636     { 
    633        this->computeConnectedServer(); 
    634        this->completeLonLatClient(); 
     637//       this->computeConnectedServer(); 
     638//       this->completeLonLatClient(); 
    635639 
    636640       sendServerAttribut() ; 
     
    676680  void CDomain::sendServerAttribut(void) 
    677681  { 
    678     std::vector<int> nGlobDomain(2); 
    679     nGlobDomain[0] = ni_glo.getValue(); 
    680     nGlobDomain[1] = nj_glo.getValue(); 
    681     CServerDistributionDescription serverDescription(nGlobDomain); 
     682    CServerDistributionDescription serverDescription(nGlobDomain_); 
    682683 
    683684    CContext* context = CContext::getCurrent(); 
     
    685686    int nbServer = client->serverSize; 
    686687 
    687     serverDescription.computeServerDistribution(nbServer); 
     688    if (isUnstructed_) serverDescription.computeServerDistribution(nbServer,0); 
     689    else serverDescription.computeServerDistribution(nbServer,1); 
     690 
    688691    std::vector<std::vector<int> > serverIndexBegin = serverDescription.getServerIndexBegin(); 
    689692    std::vector<std::vector<int> > serverDimensionSizes = serverDescription.getServerDimensionSizes(); 
     
    718721  } 
    719722 
     723  void CDomain::computeNGlobDomain() 
     724  { 
     725    nGlobDomain_.resize(2); 
     726    nGlobDomain_[0] = ni_glo.getValue(); 
     727    nGlobDomain_[1] = nj_glo.getValue(); 
     728  } 
     729 
    720730  void CDomain::computeConnectedServer(void) 
    721731  { 
    722     ibegin_client=ibegin ; iend_client=iend ; ni_client=ni ; 
    723     jbegin_client=jbegin ; jend_client=jend ; nj_client=nj ; 
     732    ibegin_client=ibegin; ni_client=ni; iend_client=ibegin_client + ni_client - 1; 
     733    jbegin_client=jbegin; nj_client=nj; jend_client=jbegin_client + nj_client - 1; 
    724734 
    725735    CContext* context=CContext::getCurrent() ; 
     
    728738    bool doComputeGlobalIndexServer = true; 
    729739 
    730     int i,j,i_ind,j_ind ; 
     740    int i,j,i_ind,j_ind, nbIndex; 
    731741    int zoom_iend=global_zoom_ibegin+global_zoom_ni-1 ; 
    732742    int zoom_jend=global_zoom_jbegin+global_zoom_nj-1 ; 
     
    734744    // Precompute number of index 
    735745    int globalIndexCountZoom = 0; 
    736     for(j=0;j<nj;j++) 
    737       for(i=0;i<ni;i++) 
    738       { 
    739         i_ind=ibegin+i_index(i,j) ; 
    740         j_ind=jbegin+j_index(i,j) ; 
    741  
    742         if (i_ind >= global_zoom_ibegin && i_ind <= zoom_iend && j_ind >= global_zoom_jbegin && j_ind <= zoom_jend) 
    743         { 
    744           ++globalIndexCountZoom; 
    745         } 
    746       } 
     746    nbIndex = i_index.numElements(); 
     747    for (i = 0; i < nbIndex; ++i) 
     748    { 
     749      i_ind=i_index(i); 
     750      j_ind=j_index(i); 
     751 
     752      if (i_ind >= global_zoom_ibegin && i_ind <= zoom_iend && j_ind >= global_zoom_jbegin && j_ind <= zoom_jend) 
     753      { 
     754        ++globalIndexCountZoom; 
     755      } 
     756    } 
    747757 
    748758    // Fill in index 
    749759    CArray<size_t,1> globalIndexDomainZoom(globalIndexCountZoom); 
    750     CArray<size_t,1> globalIndexDomain(ni*nj); 
     760    CArray<size_t,1> localIndexDomainZoom(globalIndexCountZoom); 
     761    CArray<size_t,1> globalIndexDomain(nbIndex); 
    751762    size_t globalIndex; 
    752763    int globalIndexCount = 0; 
    753764    globalIndexCountZoom = 0; 
    754765 
    755     for(j=0;j<nj;j++) 
    756       for(i=0;i<ni;i++) 
    757       { 
    758         i_ind=ibegin+i_index(i,j) ; 
    759         j_ind=jbegin+j_index(i,j) ; 
    760  
    761         globalIndex = i_ind + j_ind * ni_glo; 
    762         globalIndexDomain(globalIndexCount) = globalIndex; 
    763         ++globalIndexCount; 
    764         if (i_ind >= global_zoom_ibegin && i_ind <= zoom_iend && j_ind >= global_zoom_jbegin && j_ind <= zoom_jend) 
    765         { 
    766           globalIndexDomainZoom(globalIndexCountZoom) = globalIndex; 
    767           ++globalIndexCountZoom; 
    768         } 
    769       } 
    770  
    771      std::vector<int> nGlobDomain(2); 
    772      nGlobDomain[0] = ni_glo.getValue(); 
    773      nGlobDomain[1] = nj_glo.getValue(); 
     766    for (i = 0; i < nbIndex; ++i) 
     767    { 
     768      i_ind=i_index(i); 
     769      j_ind=j_index(i); 
     770      globalIndex = i_ind + j_ind * ni_glo; 
     771      globalIndexDomain(globalIndexCount) = globalIndex; 
     772      ++globalIndexCount; 
     773      if (i_ind >= global_zoom_ibegin && i_ind <= zoom_iend && j_ind >= global_zoom_jbegin && j_ind <= zoom_jend) 
     774      { 
     775        globalIndexDomainZoom(globalIndexCountZoom) = globalIndex; 
     776        localIndexDomainZoom(globalIndexCountZoom) = i; 
     777        ++globalIndexCountZoom; 
     778      } 
     779    } 
     780 
    774781     size_t globalSizeIndex = 1, indexBegin, indexEnd; 
    775782     int range, clientSize = client->clientSize; 
    776      for (int i = 0; i < nGlobDomain.size(); ++i) globalSizeIndex *= nGlobDomain[i]; 
     783     for (int i = 0; i < nGlobDomain_.size(); ++i) globalSizeIndex *= nGlobDomain_[i]; 
    777784     indexBegin = 0; 
    778785     for (int i = 0; i < clientSize; ++i) 
     
    785792     indexEnd = indexBegin + range - 1; 
    786793 
    787     CServerDistributionDescription serverDescription(nGlobDomain); 
    788     serverDescription.computeServerGlobalIndexInRange(nbServer, std::make_pair<size_t,size_t>(indexBegin, indexEnd)); 
     794    CServerDistributionDescription serverDescription(nGlobDomain_); 
     795    if (isUnstructed_) serverDescription.computeServerGlobalIndexInRange(nbServer, std::make_pair<size_t,size_t>(indexBegin, indexEnd), 0); 
     796    else serverDescription.computeServerGlobalIndexInRange(nbServer, std::make_pair<size_t,size_t>(indexBegin, indexEnd), 1); 
     797 
    789798    CClientServerMapping* clientServerMap = new CClientServerMappingDistributed(serverDescription.getGlobalIndexRange(), 
    790799                                                                                client->intraComm); 
     
    805814        if (iteVec != std::find(itbVec, iteVec, globalIndexDomainZoom(i))) 
    806815        { 
    807           indSrv_[rank].push_back(globalIndexDomainZoom(i)); 
     816          indSrv_[rank].push_back(localIndexDomainZoom(i)); 
    808817        } 
    809818      } 
     
    824833 
    825834    delete clientServerMap; 
     835  } 
     836 
     837  const std::map<int, vector<size_t> >& CDomain::getIndexServer() const 
     838  { 
     839    return indSrv_; 
    826840  } 
    827841 
     
    871885      CArray<double,1>& lon = list_lon.back(); 
    872886      CArray<double,1>& lat = list_lat.back(); 
    873  
     887      const std::vector<size_t>& temp = it->second; 
    874888      for (n = 0; n < nbData; ++n) 
    875889      { 
    876890        idx = static_cast<int>(it->second[n]); 
    877         i = idx % ni_glo; 
    878         j = idx / ni_glo; 
    879         ind = (i - zoom_ibegin_client) + (j - zoom_jbegin_client) * zoom_ni_client; 
     891        i = i_index(idx); 
     892        j = j_index(idx); 
     893        ind = n; 
     894//        ind = (i - zoom_ibegin_client) + (j - zoom_jbegin_client) * zoom_ni_client; 
    880895 
    881896        lon(n) = lonvalue(ind); 
     
    894909        } 
    895910 
    896         indi(n) = ibegin + i_index(i - ibegin, j - jbegin); 
    897         indj(n) = jbegin + j_index(i - ibegin, j - jbegin); 
     911        indi(n) = i; 
     912        indj(n) = j; 
    898913 
    899914        if (hasArea) 
     
    11921207      StdString zoomDomainDefRoot("zoom_domain_definition"); 
    11931208      StdString zoom("zoom_domain"); 
     1209      StdString interpFromFileDomainDefRoot("interpolate_from_file_domain_definition"); 
     1210      StdString interpFromFile("interpolate_from_file_domain"); 
    11941211      do 
    11951212      { 
     
    11991216          transformationMap_.push_back(std::make_pair(TRANS_ZOOM_DOMAIN,tmp)); 
    12001217        } 
     1218        else if (node.getElementName() == interpFromFile) 
     1219        { 
     1220          CInterpolateFromFileDomain* tmp = (CInterpolateFromFileDomainGroup::get(interpFromFileDomainDefRoot))->createChild(); 
     1221          tmp->parse(node); 
     1222          transformationMap_.push_back(std::make_pair(TRANS_INTERPOLATE_DOMAIN_FROM_FILE,tmp)); 
     1223        } 
    12011224      } while (node.goToNextElement()) ; 
    12021225      node.goToParentElement(); 
  • XIOS/trunk/src/node/domain.hpp

    r631 r657  
    6868 
    6969         void checkAttributesOnClient(); 
     70         void checkAttributesOnClientAfterTransformation(); 
    7071 
    7172         void sendCheckedAttributes(); 
     
    100101         /// Test /// 
    101102         bool IsWritten(const StdString & filename) const; 
    102          bool hasZoom(void) const; 
     103//         bool hasZoom(void) const; 
    103104         bool isEmpty(void) const; 
    104105         bool isDistributed(void) const; 
     
    165166 
    166167         static ENodeType GetType(void); 
    167  
     168         const std::map<int, vector<size_t> >& getIndexServer() const; 
    168169         CArray<int, 2> local_mask; 
    169170         bool isCurvilinear ; 
     
    173174         void checkTransformations(); 
    174175         void setTransformations(const TransMapTypes&); 
     176         void computeNGlobDomain(); 
    175177 
    176178       private : 
     
    178180         std::set<StdString> relFiles; 
    179181         bool isClientChecked; // Verify whether all attributes of domain on the client side are good 
     182         bool isClientAfterTransformationChecked; 
    180183         std::map<int, CArray<int,1> > indiSrv, indjSrv; 
    181184         std::map<int,int> nbConnectedClients_; // Mapping of number of communicating client to a server 
     
    184187         bool isDistributed_; 
    185188         TransMapTypes transformationMap_; 
     189         std::vector<int> nGlobDomain_; 
     190         bool isUnstructed_; 
     191         CArray<bool,1> maskInter_; 
     192 
    186193 
    187194         DECLARE_REF_FUNC(Domain,domain) 
  • XIOS/trunk/src/node/grid.cpp

    r656 r657  
    1313#include "context_server.hpp" 
    1414#include "array_new.hpp" 
     15#include "server_distribution_description.hpp" 
    1516#include "client_server_mapping_distributed.hpp" 
    1617 
     
    2324      , isChecked(false), isDomainAxisChecked(false) 
    2425      , vDomainGroup_(), vAxisGroup_(), axisList_(), isAxisListSet(false), isDomListSet(false), clientDistribution_(0), isIndexSent(false) 
    25       , serverDistribution_(0), serverDistributionDescription_(0), clientServerMap_(0), writtenDataSize_(0), globalDim_() 
     26      , serverDistribution_(0), clientServerMap_(0), writtenDataSize_(0), globalDim_() 
    2627      , connectedDataSize_(), connectedServerRank_(), isDataDistributed_(true), transformations_(0), isTransformed_(false) 
    27       , axisPositionInGrid_() 
     28      , axisPositionInGrid_(), positionDimensionDistributed_(1) 
    2829   { 
    2930     setVirtualDomainGroup(); 
     
    3536      , isChecked(false), isDomainAxisChecked(false) 
    3637      , vDomainGroup_(), vAxisGroup_(), axisList_(), isAxisListSet(false), isDomListSet(false), clientDistribution_(0), isIndexSent(false) 
    37       , serverDistribution_(0), serverDistributionDescription_(0), clientServerMap_(0), writtenDataSize_(0), globalDim_() 
     38      , serverDistribution_(0), clientServerMap_(0), writtenDataSize_(0), globalDim_() 
    3839      , connectedDataSize_(), connectedServerRank_(), isDataDistributed_(true), transformations_(0), isTransformed_(false) 
    39       , axisPositionInGrid_() 
     40      , axisPositionInGrid_(), positionDimensionDistributed_(1) 
    4041   { 
    4142     setVirtualDomainGroup(); 
     
    4748    if (0 != clientDistribution_) delete clientDistribution_; 
    4849    if (0 != serverDistribution_) delete serverDistribution_; 
    49     if (0 != serverDistributionDescription_) delete serverDistributionDescription_; 
    5050    if (0 != clientServerMap_) delete clientServerMap_; 
    5151    if (0 != transformations_) delete transformations_; 
     
    5858   ENodeType CGrid::GetType(void)    { return eGrid; } 
    5959 
    60    //--------------------------------------------------------------- 
    6160 
    6261   StdSize CGrid::getDimension(void) const 
     
    112111     } 
    113112 
     113     // In some cases in which domain is masked, we need to count for connected server for longitude and latitude 
     114     std::vector<CDomain*> domListP = this->getDomains(); 
     115     if (!domListP.empty()) 
     116     { 
     117       for (int i = 0; i < domListP.size(); ++i) 
     118       { 
     119         const std::map<int, vector<size_t> >& indexDomainServer = domListP[i]->getIndexServer(); 
     120         std::map<int, vector<size_t> >::const_iterator itDom = indexDomainServer.begin(), iteDom = indexDomainServer.end(); 
     121         for (; itDom != iteDom; ++itDom) 
     122         { 
     123           if (ret.end() == ret.find(itDom->first)) 
     124           { 
     125              retVal = (itDom->second).size(); 
     126              retVal *= secureFactor; 
     127              ret.insert(std::make_pair<int,StdSize>(itDom->first, retVal)); 
     128           } 
     129         } 
     130       } 
     131     } 
     132 
    114133     return ret; 
    115134   } 
    116135 
     136   void CGrid::checkAttributesAfterTransformation() 
     137   { 
     138     setDomainList(); 
     139     std::vector<CDomain*> domListP = this->getDomains(); 
     140     if (!domListP.empty()) 
     141     { 
     142       for (int i = 0; i < domListP.size(); ++i) 
     143       { 
     144         domListP[i]->checkAttributesOnClientAfterTransformation(); 
     145       } 
     146     } 
     147   } 
    117148 
    118149   void CGrid::solveDomainAxisRef(bool areAttributesChecked) 
     
    122153     this->solveAxisRef(areAttributesChecked); 
    123154     this->solveDomainRef(areAttributesChecked); 
    124  
     155     computeGridGlobalDimension(getDomains(), getAxis(), axis_domain_order); 
    125156     this->isDomainAxisChecked = areAttributesChecked; 
    126157   } 
     
    153184     if (context->hasClient) 
    154185     { 
    155         checkMask(); 
     186        this->checkAttributesAfterTransformation(); 
     187        this->checkMask(); 
    156188        this->computeIndex(); 
    157189     } 
     
    229261      if (!domListP.empty()) 
    230262      { 
    231         computeGridGlobalDimension(getDomains(), getAxis(), axis_domain_order); 
    232263        for (int i = 0; i < domListP.size(); ++i) 
    233264        { 
     
    258289        } 
    259290 
    260         computeGridGlobalDimension(getDomains(), getAxis(), axis_domain_order); 
    261291        for (int i = 0; i < axisListP.size(); ++i) 
    262292        { 
     
    267297          ++idx; 
    268298        } 
    269  
    270299      } 
    271300   } 
     
    275304     return axisPositionInGrid_; 
    276305   } 
    277  
    278306 
    279307   //--------------------------------------------------------------- 
     
    317345 
    318346     // Then compute distribution on server side 
    319      serverDistributionDescription_ = new CServerDistributionDescription(clientDistribution_->getNGlob()); 
    320      serverDistributionDescription_->computeServerDistribution(client->serverSize, true); 
    321      serverDistributionDescription_->computeServerGlobalIndexInRange(client->serverSize, 
    322                                                                      std::make_pair<size_t,size_t>(indexBegin, indexEnd)); 
     347     CServerDistributionDescription serverDistributionDescription(globalDim_); 
     348     serverDistributionDescription.computeServerGlobalIndexInRange(client->serverSize, 
     349                                                                   std::make_pair<size_t,size_t>(indexBegin, indexEnd), 
     350                                                                   positionDimensionDistributed_); 
    323351 
    324352     // Finally, compute index mapping between client(s) and server(s) 
    325      clientServerMap_ = new CClientServerMappingDistributed(serverDistributionDescription_->getGlobalIndexRange(), 
     353     clientServerMap_ = new CClientServerMappingDistributed(serverDistributionDescription.getGlobalIndexRange(), 
    326354                                                            client->intraComm, 
    327355                                                            clientDistribution_->isDataDistributed()); 
     
    330358     const std::map<int, std::vector<size_t> >& globalIndexOnServer = clientServerMap_->getGlobalIndexOnServer(); 
    331359     const CArray<size_t,1>& globalIndexSendToServer = clientDistribution_->getGlobalDataIndexSendToServer(); 
    332  
    333360     std::map<int, std::vector<size_t> >::const_iterator iteGlobalMap, itbGlobalMap, itGlobalMap; 
    334361     itbGlobalMap = itGlobalMap = globalIndexOnServer.begin(); 
     
    640667      if (axisDomainOrder(i)) 
    641668      { 
     669        if (!(domains[idxDomain]->type.isEmpty()) && (domains[idxDomain]->type==CDomain::type_attr::unstructured)) 
     670        { 
     671          positionDimensionDistributed_ = idx; 
     672        } 
     673        else 
     674        { 
     675          positionDimensionDistributed_ = idx +1; 
     676        } 
     677 
    642678        globalDim_[idx]   = domains[idxDomain]->ni_glo.getValue(); 
    643679        globalDim_[idx+1] = domains[idxDomain]->nj_glo.getValue(); 
     680 
    644681        ++idxDomain; 
    645682        idx += 2; 
  • XIOS/trunk/src/node/grid.hpp

    r650 r657  
    1313#include "distribution_client.hpp" 
    1414#include "distribution_server.hpp" 
    15 #include "server_distribution_description.hpp" 
    1615#include "client_server_mapping.hpp" 
    1716#include "utils.hpp" 
     
    218217        CDomainGroup* getVirtualDomainGroup() const; 
    219218 
     219        void checkAttributesAfterTransformation(); 
     220 
    220221 
    221222        void setTransformationAlgorithms(); 
     
    230231        CDistributionClient* clientDistribution_; 
    231232        CDistributionServer* serverDistribution_; 
    232         CServerDistributionDescription* serverDistributionDescription_; 
    233233        CClientServerMapping* clientServerMap_; 
    234234        size_t writtenDataSize_; 
     
    236236        std::vector<int> connectedServerRank_; 
    237237        bool isDataDistributed_; 
     238        int positionDimensionDistributed_; 
    238239 
    239240        bool isTransformed_; 
  • XIOS/trunk/src/node/node_enum.hpp

    r631 r657  
    2323         eZoomAxis, 
    2424         eInterpolateAxis, 
    25          eZoomDomain 
     25         eZoomDomain, 
     26         eInterpolateFromFileDomain 
    2627 
    2728      } ENodeType; 
  • XIOS/trunk/src/node/node_type.hpp

    r631 r657  
    1414#include "interpolate_axis.hpp" 
    1515#include "zoom_domain.hpp" 
     16#include "interpolate_from_file_domain.hpp" 
    1617 
    1718#endif // __XIOS_NODE_TYPE__ 
  • XIOS/trunk/src/node/transformation_enum.hpp

    r631 r657  
    1010        TRANS_INVERSE_AXIS, 
    1111        TRANS_INTERPOLATE_AXIS, 
    12         TRANS_ZOOM_DOMAIN 
     12        TRANS_ZOOM_DOMAIN, 
     13        TRANS_INTERPOLATE_DOMAIN_FROM_FILE 
    1314      } ETranformationType; 
    1415 
  • XIOS/trunk/src/object_factory_decl.cpp

    r631 r657  
    2828  macro(CInterpolateAxis) 
    2929  macro(CZoomDomain) 
     30  macro(CInterpolateFromFileDomain) 
    3031 
    3132  macro(CFieldGroup) 
     
    4041  macro(CInterpolateAxisGroup) 
    4142  macro(CZoomDomainGroup) 
     43  macro(CInterpolateFromFileDomainGroup) 
    4244} 
  • XIOS/trunk/src/object_template_decl.cpp

    r631 r657  
    11#include "object_template_impl.hpp" 
    22#include "xios_spl.hpp" 
    3 #include "field.hpp" 
    4 #include "context.hpp" 
    5 #include "file.hpp" 
    6 #include "domain.hpp" 
    7 #include "grid.hpp" 
    8 #include "axis.hpp" 
    9 #include "variable.hpp" 
    10 #include "transformation.hpp" 
    11 #include "inverse_axis.hpp" 
    12 #include "zoom_axis.hpp" 
    13 #include "interpolate_axis.hpp" 
    14 #include "zoom_domain.hpp" 
     3#include "node_type.hpp" 
    154 
    165namespace xios 
     
    2817  template class CObjectTemplate<CInterpolateAxis>; 
    2918  template class CObjectTemplate<CZoomDomain>; 
     19  template class CObjectTemplate<CInterpolateFromFileDomain>; 
    3020 
    3121  template class CObjectTemplate<CContextGroup>; 
     
    4030  template class CObjectTemplate<CInterpolateAxisGroup>; 
    4131  template class CObjectTemplate<CZoomDomainGroup>; 
     32  template class CObjectTemplate<CInterpolateFromFileDomainGroup>; 
    4233} 
  • XIOS/trunk/src/output/nc4_data_output.cpp

    r651 r657  
    457457                 dim0.push_back(dimXid); 
    458458 
    459                  SuperClassWriter::addDimension(dimXid, domain->zoom_nj_srv); 
     459                 SuperClassWriter::addDimension(dimXid, domain->zoom_ni_srv); 
    460460                 SuperClassWriter::addVariable(latid, NC_FLOAT, dim0); 
    461461                 SuperClassWriter::addVariable(lonid, NC_FLOAT, dim0); 
  • XIOS/trunk/src/server_distribution_description.cpp

    r653 r657  
    33   \author Ha NGUYEN 
    44   \since 04 Jan 2015 
    5    \date 09 Mars 2015 
     5   \date 24 Jul 2015 
    66 
    77   \brief Description of index distribution on server(s). 
     
    99 
    1010#include "server_distribution_description.hpp" 
     11#include "exception.hpp" 
    1112 
    1213namespace xios 
     
    2728*/ 
    2829void CServerDistributionDescription::computeServerDistribution(int nServer, 
     30                                                               int positionDimensionDistributed, 
    2931                                                               bool doComputeGlobalIndex, 
    3032                                                               ServerDistributionType serType) 
     
    3234  switch (serType) { 
    3335    case BAND_DISTRIBUTION: 
    34       computeBandDistribution(nServer); 
     36      computeBandDistribution(nServer, positionDimensionDistributed); 
    3537      break; 
    3638    default: 
     
    9597*/ 
    9698void CServerDistributionDescription::computeServerGlobalIndexInRange(int nServer, 
    97                                         const std::pair<size_t, size_t>& indexBeginEnd, 
    98                                         ServerDistributionType distributionType) 
     99                                                                     const std::pair<size_t, size_t>& indexBeginEnd, 
     100                                                                     int positionDimensionDistributed, 
     101                                                                     ServerDistributionType distributionType) 
    99102{ 
    100103  switch (distributionType) { 
    101104    case BAND_DISTRIBUTION: 
    102       computeBandDistribution(nServer); 
     105      computeBandDistribution(nServer, positionDimensionDistributed); 
    103106      break; 
    104107    default: 
     
    161164  \param [in] nServer number of server 
    162165*/ 
    163 void CServerDistributionDescription::computeBandDistribution(int nServer) 
     166void CServerDistributionDescription::computeBandDistribution(int nServer, int positionDimensionDistributed) 
    164167{ 
    165168  int dim = nGlobal_.size(); 
     169  if (positionDimensionDistributed > dim) 
     170    ERROR("CServerDistributionDescription::computeBandDistribution(int nServer, int positionDimensionDistributed)", 
     171          << "Position of distributed dimension is invalid" << std::endl 
     172          << "Position of distributed dimension is " << positionDimensionDistributed 
     173          << "Dimension " << dim) 
     174 
    166175  indexBegin_.resize(nServer); 
    167176  dimensionSizes_.resize(nServer); 
     
    178187  std::vector<int> njRangeEnd(nServer,0); 
    179188 
    180   if (1<dim) nGlobTemp = nGlobal_[1]; 
    181   else nGlobTemp = nGlobal_[0]; 
     189  int positionDistributed = (1<dim) ? positionDimensionDistributed : 0; 
     190  nGlobTemp = nGlobal_[positionDistributed]; 
    182191 
    183192  for (int i = 0; i < nServer; ++i) 
     
    194203    for (int j = 0; j < dim; ++j) 
    195204    { 
    196       if (1 != j) 
     205      if (positionDistributed != j) 
    197206      { 
    198207        if (1 == dim) 
  • XIOS/trunk/src/server_distribution_description.hpp

    r653 r657  
    33   \author Ha NGUYEN 
    44   \since 04 Jan 2015 
    5    \date 09 Feb 2015 
     5   \date 24 Jul 2015 
    66 
    77   \brief Description of index distribution on server(s). 
     
    3434    virtual ~CServerDistributionDescription(); 
    3535 
    36     void computeServerDistribution(int nServer, bool doComputeGlobalIndex = false, 
     36    void computeServerDistribution(int nServer, int positionDimensionDistributed = 1, 
     37                                   bool doComputeGlobalIndex = false, 
    3738                                   ServerDistributionType type = BAND_DISTRIBUTION); 
    3839 
    3940    void computeServerGlobalIndexInRange(int nServer, 
    4041                                         const std::pair<size_t, size_t>& indexBeginEnd, 
     42                                         int positionDimensionDistributed = 1, 
    4143                                         ServerDistributionType = BAND_DISTRIBUTION); 
    4244 
     
    4749 
    4850  protected: 
    49     void computeBandDistribution(int nServer); 
     51    void computeBandDistribution(int nServer, int positionDimensionDistributed = 1); 
    5052    void computePlanDistribution(int nServer); 
    5153 
  • XIOS/trunk/src/test/test_new_features.f90

    r655 r657  
    1515  CHARACTER(len=15) :: calendar_type 
    1616  TYPE(xios_context) :: ctx_hdl 
    17   INTEGER,PARAMETER :: ni_glo=5 
    18   INTEGER,PARAMETER :: nj_glo=5 
    19   INTEGER,PARAMETER :: llm=5 
     17  INTEGER,PARAMETER :: ni_glo=10 
     18  INTEGER,PARAMETER :: nj_glo=10 
     19  INTEGER,PARAMETER :: llm=2 
    2020  INTEGER,PARAMETER :: llmInterPolated=5 
    2121  DOUBLE PRECISION  :: lval(llm)=1, tsTemp, lvalInterPolated(llmInterPolated)=1 
     
    2929  DOUBLE PRECISION :: field_A_glo(ni_glo,nj_glo,llm), lval_ni_glo(ni_glo), lval_nj_glo(nj_glo) 
    3030  DOUBLE PRECISION,ALLOCATABLE :: lon(:,:),lat(:,:),field_A(:,:,:), field_All_Axis(:,:,:), lonvalue(:) , & 
    31                                   field_Axis(:), lvaln(:), lval_ni(:), lval_nj(:), field_Two_Axis(:,:), lvalnInterp(:) 
    32   INTEGER :: ni,ibegin,iend,nj,jbegin,jend, nAxis, axisBegin, axisEnd, axisterpBegin, nAxisinterp, axisinterpEnd 
     31                                  field_Axis(:), lvaln(:), lval_ni(:), lval_nj(:), field_Two_Axis(:,:), lvalnInterp(:), & 
     32                                  lontransformed(:,:), lattransformed(:,:), lon_glotransformed(:,:), lat_glotransformed(:,:) 
     33  INTEGER :: ni,ibegin,iend,nj,jbegin,jend, nAxis, axisBegin, axisEnd 
     34  INTEGER :: axisterpBegin, nAxisinterp, axisinterpEnd 
     35  INTEGER :: niDomInterp,ibeginDomInterp,iendDomInterp,njDomInterp,jbeginDomInterp,jendDomInterp, niDomGlo, njDomGlo 
    3336  INTEGER :: i,j,l,ts,n 
    3437 
     
    7477  CALL Distribute_index(axisterpBegin, axisinterpEnd, nAxisinterp, llmInterPolated, rank, size) 
    7578 
     79  niDomGlo = ni_glo - 4 
     80  njDomGlo = nj_glo - 4 
     81  ALLOCATE(lon_glotransformed(niDomGlo,njDomGlo), lat_glotransformed(niDomGlo,njDomGlo)) 
     82  DO j=1,njDomGlo 
     83    DO i=1,niDomGlo 
     84      lon_glotransformed(i,j)=(i-1)+(j-1)*niDomGlo 
     85      lat_glotransformed(i,j)=1000+(i-1)+(j-1)*niDomGlo 
     86    ENDDO 
     87  ENDDO 
     88 
     89  niDomInterp = niDomGlo; ibeginDomInterp = 0 
     90  jbeginDomInterp = 0 
     91  CALL Distribute_index(jbeginDomInterp, jendDomInterp, njDomInterp, njDomGlo, rank, size) 
     92 
    7693  ALLOCATE(field_A(0:ni+1,-1:nj+2,llm), field_Two_Axis(ni_glo,1:nj), field_Axis(nAxis), field_All_Axis(1:ni,1:nj,llm), & 
    7794          lon(ni,nj),lat(ni,nj), lonvalue(ni*nj), & 
    78           lvaln(nAxis), lval_ni(ni), lval_nj(nj), lvalnInterp(nAxisinterp)) 
     95          lvaln(nAxis), lval_ni(ni), lval_nj(nj), lvalnInterp(nAxisinterp), & 
     96          lontransformed(niDomInterp, njDomInterp), lattransformed(niDomInterp, njDomInterp)) 
    7997 
    8098  ALLOCATE(mask(nj)) 
     
    88106  lon(:,:)=lon_glo(ibegin+1:iend+1,jbegin+1:jend+1) 
    89107  lat(:,:)=lat_glo(ibegin+1:iend+1,jbegin+1:jend+1) 
     108  lontransformed(:,:) = lon_glotransformed(ibeginDomInterp+1:iendDomInterp+1,jbeginDomInterp+1:jendDomInterp+1) 
     109  lattransformed(:,:) = lat_glotransformed(ibeginDomInterp+1:iendDomInterp+1,jbeginDomInterp+1:jendDomInterp+1) 
    90110  field_A(1:ni,1:nj,:) = field_A_glo(ibegin+1:iend+1,jbegin+1:jend+1,:) 
    91111  field_Axis(1:nAxis)  = field_A_glo(1,1,axisBegin+1:axisEnd+1) 
     
    109129  CALL xios_set_axis_attr("axis_C", size=llm, value=lval) 
    110130  CALL xios_set_axis_attr("axis_D", size=llm, ibegin=axisBegin, ni=nAxis, value=lvaln) 
    111 !  CALL xios_set_axis_attr("axis_D", size=llm, value=lval) 
    112131  CALL xios_set_axis_attr("axis_G", size=llmInterPolated, value=lvalnInterp, ibegin=axisterpBegin, ni=nAxisinterp) 
    113132  CALL xios_set_domain_attr("domain_A",ni_glo=ni_glo, nj_glo=nj_glo, ibegin=ibegin, ni=ni,jbegin=jbegin,nj=nj) 
    114133  CALL xios_set_domain_attr("domain_A",data_dim=2, data_ibegin=-1, data_ni=ni+2, data_jbegin=-2, data_nj=nj+4) 
    115134  CALL xios_set_domain_attr("domain_A",lonvalue=RESHAPE(lon,(/ni*nj/)),latvalue=RESHAPE(lat,(/ni*nj/))) 
    116 !  CALL xios_set_domain_attr("domain_A",zoom_ibegin=40, zoom_ni=20, zoom_jbegin=40, zoom_nj=10) 
     135 
     136  CALL xios_set_domain_attr("domain_A_transformed",ni_glo=niDomGlo, nj_glo=njDomGlo, ibegin=ibeginDomInterp, ni=niDomInterp,jbegin=jbeginDomInterp,nj=njDomInterp) 
     137  CALL xios_set_domain_attr("domain_A_transformed",lonvalue=RESHAPE(lontransformed,(/niDomInterp*njDomInterp/)),latvalue=RESHAPE(lattransformed,(/niDomInterp*njDomInterp/))) 
     138 
    117139  CALL xios_set_fieldgroup_attr("field_definition",enabled=.TRUE.) 
    118140 
  • XIOS/trunk/src/test/test_unstruct_complete.f90

    r655 r657  
    199199  CALL xios_set_current_context(ctx_hdl) 
    200200 
    201   CALL xios_define_calendar(type="Julian", & 
    202                             start_date=xios_date(2012, 03, 01, 15, 00, 00), & 
    203                             time_origin=xios_date(2012, 02, 29, 15, 00, 00)) 
    204  
    205201  CALL xios_set_axis_attr("axis_srf",size=llm ,value=lval) ; 
    206   CALL xios_set_domain_attr("domain_srf",ni_glo=ncell_glo, ni=ncell, ibegin=1, i_index=RESHAPE(i_index,(/ncell,1/) )) 
     202!  CALL xios_set_domain_attr("domain_srf",ni_glo=ncell_glo, ni=ncell, ibegin=1, i_index=RESHAPE(i_index,(/ncell,1/) )) 
     203  CALL xios_set_domain_attr("domain_srf",ni_glo=ncell_glo, ni=ncell, ibegin=1, i_index=i_index) 
    207204  CALL xios_set_domain_attr("domain_srf",data_dim=1, data_ni=data_n_index, data_n_index=data_n_index, data_i_index=data_i_index, type='unstructured') 
    208205  CALL xios_set_domain_attr("domain_srf",lonvalue=lon,latvalue=lat) 
    209206  CALL xios_set_domain_attr("domain_srf", nvertex=4, bounds_lon=bounds_lon, bounds_lat=bounds_lat ) 
     207!  CALL xios_set_domain_attr("domain_srf", mask=RESHAPE(mask,(/ncell,1/) )) 
    210208 
    211209 
    212210  dtime%second=3600 
    213   CALL xios_set_context_attr("surface", timestep=dtime) 
     211  CALL xios_set_timestep(dtime) 
    214212  CALL xios_close_context_definition() 
    215213 
  • XIOS/trunk/src/transformation/domain_algorithm_transformation.cpp

    r631 r657  
    172172        for (int k = 1; k < globalDim; ++k) 
    173173        { 
    174           mulDim *= gridDestGlobalDim[k-1]; 
     174          mulDim *= gridSrcGlobalDim[k-1]; 
    175175          globIndex += (currentIndex[k])*mulDim; 
    176176        } 
  • XIOS/trunk/src/transformation/generic_algorithm_transformation.cpp

    r631 r657  
    5252                                                   globalIndexSrcGrid); 
    5353    size_t globalIndexSize = globalIndexDestGrid.numElements(); 
    54     std::vector<double> currentVecWeight = itTransWeight->second; 
     54    const std::vector<double>& currentVecWeight = itTransWeight->second; 
    5555    for (size_t idx = 0; idx < globalIndexSize; ++idx) 
    5656    { 
  • XIOS/trunk/src/transformation/grid_transformation.cpp

    r653 r657  
    1212#include "axis_algorithm_interpolate.hpp" 
    1313#include "domain_algorithm_zoom.hpp" 
     14#include "domain_algorithm_interpolate_from_file.hpp" 
    1415#include "context.hpp" 
    1516#include "context_client.hpp" 
     
    277278 
    278279  CZoomDomain* zoomDomain = 0; 
     280  CInterpolateFromFileDomain* interpFileDomain = 0; 
    279281  CGenericAlgorithmTransformation* algo = 0; 
    280282  switch (transType) 
    281283  { 
     284    case TRANS_INTERPOLATE_DOMAIN_FROM_FILE: 
     285      interpFileDomain = dynamic_cast<CInterpolateFromFileDomain*> (it->second); 
     286      algo = new CDomainAlgorithmInterpolateFromFile(domainListDestP[domainIndex], domainListSrcP[domainIndex],interpFileDomain); 
     287      break; 
    282288    case TRANS_ZOOM_DOMAIN: 
    283289      zoomDomain = dynamic_cast<CZoomDomain*> (it->second); 
     
    308314  switch (transType) 
    309315  { 
     316    case TRANS_INTERPOLATE_DOMAIN_FROM_FILE: 
    310317    case TRANS_ZOOM_DOMAIN: 
    311318      domainIndex = elementPosition2DomainPositionInGrid_[elementPositionInGrid]; 
  • XIOS/trunk/src/type/type_util.hpp

    r631 r657  
    2828    class CZoomDomain; 
    2929    class CZoomDomainGroup; 
     30    class CInterpolateFromFileDomainGroup; 
    3031 
    3132  template <typename T> inline string getStrType(void); 
     
    7273  macro(CZoomDomain) 
    7374  macro(CZoomDomainGroup) 
     75  macro(CInterpolateFromFileDomain) 
     76  macro(CInterpolateFromFileDomainGroup) 
    7477#undef macro 
    7578} 
  • XIOS/trunk/src/xml_parser_decl.cpp

    r631 r657  
    11#include "xml_parser_impl.hpp" 
    22#include "group_template.hpp" 
    3 #include "context.hpp" 
    4 #include "axis.hpp" 
    5 #include "domain.hpp" 
    6 #include "field.hpp" 
    7 #include "file.hpp" 
    8 #include "variable.hpp" 
    9 #include "inverse_axis.hpp" 
    10 #include "zoom_axis.hpp" 
    11 #include "interpolate_axis.hpp" 
    12 #include "zoom_domain.hpp" 
     3#include "node_type.hpp" 
    134 
    145namespace xios 
     
    3223    macro( InterpolateAxis ) 
    3324    macro( ZoomDomain ) 
     25    macro( InterpolateFromFileDomain ) 
    3426  } 
    3527} 
Note: See TracChangeset for help on using the changeset viewer.