Changeset 467 for XIOS


Ignore:
Timestamp:
01/29/14 11:49:29 (10 years ago)
Author:
ymipsl
Message:

Add functionnalities for reduced gaussian grid support.

YM

Location:
XIOS/trunk/src
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/attribute_array_decl.cpp

    r449 r467  
    88  template class CAttributeArray<double,2> ; 
    99  template class CAttributeArray<int,1> ; 
     10  template class CAttributeArray<int,2> ; 
    1011  template class CAttributeArray<bool,2> ; 
    1112  template class CAttributeArray<bool,3> ; 
  • XIOS/trunk/src/config/domain_attribute.conf

    r449 r467  
    2020DECLARE_ATTRIBUTE(int             , jend) 
    2121DECLARE_ATTRIBUTE(int             , nj) 
     22 
     23 
     24DECLARE_ARRAY(int,2             , i_index) 
     25DECLARE_ARRAY(int,2             , j_index) 
    2226 
    2327/* LOCAL */ 
     
    4852DECLARE_ATTRIBUTE(int             , data_n_index) 
    4953DECLARE_ARRAY(int, 1 , data_i_index) 
    50 DECLARE_ARRAY(int, 1, data_j_index) 
     54DECLARE_ARRAY(int, 1,  data_j_index) 
    5155 
    5256/* LOCAL */ 
  • XIOS/trunk/src/interface/c_attr/icdomain_attr.cpp

    r449 r467  
    280280   
    281281   
     282  void cxios_set_domain_i_index(domain_Ptr domain_hdl, int* i_index, int extent1, int extent2) 
     283  { 
     284    CTimer::get("XIOS").resume(); 
     285    CArray<int,2> tmp(i_index,shape(extent1,extent2),neverDeleteData) ; 
     286    domain_hdl->i_index.reference(tmp.copy()); 
     287    domain_hdl->sendAttributToServer(domain_hdl->i_index); 
     288     CTimer::get("XIOS").suspend(); 
     289  } 
     290   
     291  void cxios_get_domain_i_index(domain_Ptr domain_hdl, int* i_index, int extent1, int extent2) 
     292  { 
     293    CTimer::get("XIOS").resume(); 
     294    CArray<int,2> tmp(i_index,shape(extent1,extent2),neverDeleteData) ; 
     295    tmp=domain_hdl->i_index.getInheritedValue() ; 
     296     CTimer::get("XIOS").suspend(); 
     297  } 
     298   
     299  bool cxios_is_defined_domain_i_index(domain_Ptr domain_hdl ) 
     300  { 
     301     CTimer::get("XIOS").resume(); 
     302    return domain_hdl->i_index.hasInheritedValue(); 
     303     CTimer::get("XIOS").suspend(); 
     304  } 
     305   
     306   
     307   
    282308  void cxios_set_domain_ibegin(domain_Ptr domain_hdl, int ibegin) 
    283309  { 
     
    319345     CTimer::get("XIOS").resume(); 
    320346    return domain_hdl->iend.hasInheritedValue(); 
     347     CTimer::get("XIOS").suspend(); 
     348  } 
     349   
     350   
     351   
     352  void cxios_set_domain_j_index(domain_Ptr domain_hdl, int* j_index, int extent1, int extent2) 
     353  { 
     354    CTimer::get("XIOS").resume(); 
     355    CArray<int,2> tmp(j_index,shape(extent1,extent2),neverDeleteData) ; 
     356    domain_hdl->j_index.reference(tmp.copy()); 
     357    domain_hdl->sendAttributToServer(domain_hdl->j_index); 
     358     CTimer::get("XIOS").suspend(); 
     359  } 
     360   
     361  void cxios_get_domain_j_index(domain_Ptr domain_hdl, int* j_index, int extent1, int extent2) 
     362  { 
     363    CTimer::get("XIOS").resume(); 
     364    CArray<int,2> tmp(j_index,shape(extent1,extent2),neverDeleteData) ; 
     365    tmp=domain_hdl->j_index.getInheritedValue() ; 
     366     CTimer::get("XIOS").suspend(); 
     367  } 
     368   
     369  bool cxios_is_defined_domain_j_index(domain_Ptr domain_hdl ) 
     370  { 
     371     CTimer::get("XIOS").resume(); 
     372    return domain_hdl->j_index.hasInheritedValue(); 
    321373     CTimer::get("XIOS").suspend(); 
    322374  } 
  • XIOS/trunk/src/interface/c_attr/icdomaingroup_attr.cpp

    r449 r467  
    307307   
    308308   
     309  void cxios_set_domaingroup_i_index(domaingroup_Ptr domaingroup_hdl, int* i_index, int extent1, int extent2) 
     310  { 
     311    CTimer::get("XIOS").resume(); 
     312    CArray<int,2> tmp(i_index,shape(extent1,extent2),neverDeleteData) ; 
     313    domaingroup_hdl->i_index.reference(tmp.copy()); 
     314    domaingroup_hdl->sendAttributToServer(domaingroup_hdl->i_index); 
     315     CTimer::get("XIOS").suspend(); 
     316  } 
     317   
     318  void cxios_get_domaingroup_i_index(domaingroup_Ptr domaingroup_hdl, int* i_index, int extent1, int extent2) 
     319  { 
     320    CTimer::get("XIOS").resume(); 
     321    CArray<int,2> tmp(i_index,shape(extent1,extent2),neverDeleteData) ; 
     322    tmp=domaingroup_hdl->i_index.getInheritedValue() ; 
     323     CTimer::get("XIOS").suspend(); 
     324  } 
     325   
     326  bool cxios_is_defined_domaingroup_i_index(domaingroup_Ptr domaingroup_hdl ) 
     327  { 
     328     CTimer::get("XIOS").resume(); 
     329    return domaingroup_hdl->i_index.hasInheritedValue(); 
     330     CTimer::get("XIOS").suspend(); 
     331  } 
     332   
     333   
     334   
    309335  void cxios_set_domaingroup_ibegin(domaingroup_Ptr domaingroup_hdl, int ibegin) 
    310336  { 
     
    346372     CTimer::get("XIOS").resume(); 
    347373    return domaingroup_hdl->iend.hasInheritedValue(); 
     374     CTimer::get("XIOS").suspend(); 
     375  } 
     376   
     377   
     378   
     379  void cxios_set_domaingroup_j_index(domaingroup_Ptr domaingroup_hdl, int* j_index, int extent1, int extent2) 
     380  { 
     381    CTimer::get("XIOS").resume(); 
     382    CArray<int,2> tmp(j_index,shape(extent1,extent2),neverDeleteData) ; 
     383    domaingroup_hdl->j_index.reference(tmp.copy()); 
     384    domaingroup_hdl->sendAttributToServer(domaingroup_hdl->j_index); 
     385     CTimer::get("XIOS").suspend(); 
     386  } 
     387   
     388  void cxios_get_domaingroup_j_index(domaingroup_Ptr domaingroup_hdl, int* j_index, int extent1, int extent2) 
     389  { 
     390    CTimer::get("XIOS").resume(); 
     391    CArray<int,2> tmp(j_index,shape(extent1,extent2),neverDeleteData) ; 
     392    tmp=domaingroup_hdl->j_index.getInheritedValue() ; 
     393     CTimer::get("XIOS").suspend(); 
     394  } 
     395   
     396  bool cxios_is_defined_domaingroup_j_index(domaingroup_Ptr domaingroup_hdl ) 
     397  { 
     398     CTimer::get("XIOS").resume(); 
     399    return domaingroup_hdl->j_index.hasInheritedValue(); 
    348400     CTimer::get("XIOS").suspend(); 
    349401  } 
  • XIOS/trunk/src/interface/fortran_attr/domain_interface_attr.f90

    r449 r467  
    232232     
    233233     
     234    SUBROUTINE cxios_set_domain_i_index(domain_hdl, i_index, extent1, extent2) BIND(C) 
     235      USE ISO_C_BINDING 
     236      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl 
     237      INTEGER (KIND=C_INT)     , DIMENSION(*) :: i_index 
     238      INTEGER (kind = C_INT), VALUE  :: extent1 
     239      INTEGER (kind = C_INT), VALUE  :: extent2 
     240    END SUBROUTINE cxios_set_domain_i_index 
     241     
     242    SUBROUTINE cxios_get_domain_i_index(domain_hdl, i_index, extent1, extent2) BIND(C) 
     243      USE ISO_C_BINDING 
     244      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl 
     245      INTEGER (KIND=C_INT)     , DIMENSION(*) :: i_index 
     246      INTEGER (kind = C_INT), VALUE  :: extent1 
     247      INTEGER (kind = C_INT), VALUE  :: extent2 
     248    END SUBROUTINE cxios_get_domain_i_index 
     249     
     250    FUNCTION cxios_is_defined_domain_i_index(domain_hdl ) BIND(C) 
     251      USE ISO_C_BINDING 
     252      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_i_index 
     253      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     254    END FUNCTION cxios_is_defined_domain_i_index 
     255     
     256     
    234257    SUBROUTINE cxios_set_domain_ibegin(domain_hdl, ibegin) BIND(C) 
    235258      USE ISO_C_BINDING 
     
    268291      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    269292    END FUNCTION cxios_is_defined_domain_iend 
     293     
     294     
     295    SUBROUTINE cxios_set_domain_j_index(domain_hdl, j_index, extent1, extent2) BIND(C) 
     296      USE ISO_C_BINDING 
     297      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl 
     298      INTEGER (KIND=C_INT)     , DIMENSION(*) :: j_index 
     299      INTEGER (kind = C_INT), VALUE  :: extent1 
     300      INTEGER (kind = C_INT), VALUE  :: extent2 
     301    END SUBROUTINE cxios_set_domain_j_index 
     302     
     303    SUBROUTINE cxios_get_domain_j_index(domain_hdl, j_index, extent1, extent2) BIND(C) 
     304      USE ISO_C_BINDING 
     305      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl 
     306      INTEGER (KIND=C_INT)     , DIMENSION(*) :: j_index 
     307      INTEGER (kind = C_INT), VALUE  :: extent1 
     308      INTEGER (kind = C_INT), VALUE  :: extent2 
     309    END SUBROUTINE cxios_get_domain_j_index 
     310     
     311    FUNCTION cxios_is_defined_domain_j_index(domain_hdl ) BIND(C) 
     312      USE ISO_C_BINDING 
     313      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_j_index 
     314      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     315    END FUNCTION cxios_is_defined_domain_j_index 
    270316     
    271317     
  • XIOS/trunk/src/interface/fortran_attr/domaingroup_interface_attr.f90

    r449 r467  
    253253     
    254254     
     255    SUBROUTINE cxios_set_domaingroup_i_index(domaingroup_hdl, i_index, extent1, extent2) BIND(C) 
     256      USE ISO_C_BINDING 
     257      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl 
     258      INTEGER (KIND=C_INT)     , DIMENSION(*) :: i_index 
     259      INTEGER (kind = C_INT), VALUE  :: extent1 
     260      INTEGER (kind = C_INT), VALUE  :: extent2 
     261    END SUBROUTINE cxios_set_domaingroup_i_index 
     262     
     263    SUBROUTINE cxios_get_domaingroup_i_index(domaingroup_hdl, i_index, extent1, extent2) BIND(C) 
     264      USE ISO_C_BINDING 
     265      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl 
     266      INTEGER (KIND=C_INT)     , DIMENSION(*) :: i_index 
     267      INTEGER (kind = C_INT), VALUE  :: extent1 
     268      INTEGER (kind = C_INT), VALUE  :: extent2 
     269    END SUBROUTINE cxios_get_domaingroup_i_index 
     270     
     271    FUNCTION cxios_is_defined_domaingroup_i_index(domaingroup_hdl ) BIND(C) 
     272      USE ISO_C_BINDING 
     273      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_i_index 
     274      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     275    END FUNCTION cxios_is_defined_domaingroup_i_index 
     276     
     277     
    255278    SUBROUTINE cxios_set_domaingroup_ibegin(domaingroup_hdl, ibegin) BIND(C) 
    256279      USE ISO_C_BINDING 
     
    289312      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    290313    END FUNCTION cxios_is_defined_domaingroup_iend 
     314     
     315     
     316    SUBROUTINE cxios_set_domaingroup_j_index(domaingroup_hdl, j_index, extent1, extent2) BIND(C) 
     317      USE ISO_C_BINDING 
     318      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl 
     319      INTEGER (KIND=C_INT)     , DIMENSION(*) :: j_index 
     320      INTEGER (kind = C_INT), VALUE  :: extent1 
     321      INTEGER (kind = C_INT), VALUE  :: extent2 
     322    END SUBROUTINE cxios_set_domaingroup_j_index 
     323     
     324    SUBROUTINE cxios_get_domaingroup_j_index(domaingroup_hdl, j_index, extent1, extent2) BIND(C) 
     325      USE ISO_C_BINDING 
     326      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl 
     327      INTEGER (KIND=C_INT)     , DIMENSION(*) :: j_index 
     328      INTEGER (kind = C_INT), VALUE  :: extent1 
     329      INTEGER (kind = C_INT), VALUE  :: extent2 
     330    END SUBROUTINE cxios_get_domaingroup_j_index 
     331     
     332    FUNCTION cxios_is_defined_domaingroup_j_index(domaingroup_hdl ) BIND(C) 
     333      USE ISO_C_BINDING 
     334      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_j_index 
     335      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     336    END FUNCTION cxios_is_defined_domaingroup_j_index 
    291337     
    292338     
  • XIOS/trunk/src/interface/fortran_attr/idomain_attr.F90

    r449 r467  
    1313  SUBROUTINE xios(set_domain_attr)  & 
    1414    ( domain_id, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin  & 
    15     , data_n_index, data_ni, data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  & 
    16     , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc  & 
    17     , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     15    , data_n_index, data_ni, data_nj, domain_group_ref, i_index, ibegin, iend, j_index, jbegin, jend  & 
     16    , latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
     17    , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
     18    , zoom_nj_loc ) 
    1819     
    1920    IMPLICIT NONE 
     
    3132      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj 
    3233      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref 
     34      INTEGER  , OPTIONAL, INTENT(IN) :: i_index(:,:) 
    3335      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin 
    3436      INTEGER  , OPTIONAL, INTENT(IN) :: iend 
     37      INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:,:) 
    3538      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin 
    3639      INTEGER  , OPTIONAL, INTENT(IN) :: jend 
     
    6063      CALL xios(set_domain_attr_hdl_)   & 
    6164      ( domain_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin  & 
    62       , data_n_index, data_ni, data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  & 
    63       , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc  & 
    64       , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     65      , data_n_index, data_ni, data_nj, domain_group_ref, i_index, ibegin, iend, j_index, jbegin, jend  & 
     66      , latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
     67      , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
     68      , zoom_nj_loc ) 
    6569     
    6670  END SUBROUTINE xios(set_domain_attr) 
     
    6872  SUBROUTINE xios(set_domain_attr_hdl)  & 
    6973    ( domain_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin  & 
    70     , data_n_index, data_ni, data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  & 
    71     , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc  & 
    72     , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     74    , data_n_index, data_ni, data_nj, domain_group_ref, i_index, ibegin, iend, j_index, jbegin, jend  & 
     75    , latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
     76    , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
     77    , zoom_nj_loc ) 
    7378     
    7479    IMPLICIT NONE 
     
    8590      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj 
    8691      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref 
     92      INTEGER  , OPTIONAL, INTENT(IN) :: i_index(:,:) 
    8793      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin 
    8894      INTEGER  , OPTIONAL, INTENT(IN) :: iend 
     95      INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:,:) 
    8996      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin 
    9097      INTEGER  , OPTIONAL, INTENT(IN) :: jend 
     
    113120      CALL xios(set_domain_attr_hdl_)  & 
    114121      ( domain_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin  & 
    115       , data_n_index, data_ni, data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  & 
    116       , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc  & 
    117       , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     122      , data_n_index, data_ni, data_nj, domain_group_ref, i_index, ibegin, iend, j_index, jbegin, jend  & 
     123      , latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
     124      , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
     125      , zoom_nj_loc ) 
    118126     
    119127  END SUBROUTINE xios(set_domain_attr_hdl) 
     
    121129  SUBROUTINE xios(set_domain_attr_hdl_)   & 
    122130    ( domain_hdl, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  & 
    123     , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, ibegin_, iend_, jbegin_  & 
    124     , jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_  & 
    125     , standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_, zoom_jbegin_, zoom_jbegin_loc_, zoom_ni_  & 
    126     , zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
     131    , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, i_index_, ibegin_, iend_  & 
     132    , j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_  & 
     133    , nj_glo_, nvertex_, standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_, zoom_jbegin_, zoom_jbegin_loc_  & 
     134    , zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
    127135     
    128136    IMPLICIT NONE 
     
    139147      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj_ 
    140148      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref_ 
     149      INTEGER  , OPTIONAL, INTENT(IN) :: i_index_(:,:) 
    141150      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin_ 
    142151      INTEGER  , OPTIONAL, INTENT(IN) :: iend_ 
     152      INTEGER  , OPTIONAL, INTENT(IN) :: j_index_(:,:) 
    143153      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin_ 
    144154      INTEGER  , OPTIONAL, INTENT(IN) :: jend_ 
     
    209219      ENDIF 
    210220       
     221      IF (PRESENT(i_index_)) THEN 
     222        CALL cxios_set_domain_i_index(domain_hdl%daddr, i_index_,size(i_index_,1),size(i_index_,2)) 
     223      ENDIF 
     224       
    211225      IF (PRESENT(ibegin_)) THEN 
    212226        CALL cxios_set_domain_ibegin(domain_hdl%daddr, ibegin_) 
     
    215229      IF (PRESENT(iend_)) THEN 
    216230        CALL cxios_set_domain_iend(domain_hdl%daddr, iend_) 
     231      ENDIF 
     232       
     233      IF (PRESENT(j_index_)) THEN 
     234        CALL cxios_set_domain_j_index(domain_hdl%daddr, j_index_,size(j_index_,1),size(j_index_,2)) 
    217235      ENDIF 
    218236       
     
    313331  SUBROUTINE xios(get_domain_attr)  & 
    314332    ( domain_id, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin  & 
    315     , data_n_index, data_ni, data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  & 
    316     , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc  & 
    317     , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     333    , data_n_index, data_ni, data_nj, domain_group_ref, i_index, ibegin, iend, j_index, jbegin, jend  & 
     334    , latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
     335    , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
     336    , zoom_nj_loc ) 
    318337     
    319338    IMPLICIT NONE 
     
    331350      INTEGER  , OPTIONAL, INTENT(OUT) :: data_nj 
    332351      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref 
     352      INTEGER  , OPTIONAL, INTENT(OUT) :: i_index(:,:) 
    333353      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin 
    334354      INTEGER  , OPTIONAL, INTENT(OUT) :: iend 
     355      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:,:) 
    335356      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin 
    336357      INTEGER  , OPTIONAL, INTENT(OUT) :: jend 
     
    360381      CALL xios(get_domain_attr_hdl_)   & 
    361382      ( domain_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin  & 
    362       , data_n_index, data_ni, data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  & 
    363       , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc  & 
    364       , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     383      , data_n_index, data_ni, data_nj, domain_group_ref, i_index, ibegin, iend, j_index, jbegin, jend  & 
     384      , latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
     385      , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
     386      , zoom_nj_loc ) 
    365387     
    366388  END SUBROUTINE xios(get_domain_attr) 
     
    368390  SUBROUTINE xios(get_domain_attr_hdl)  & 
    369391    ( domain_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin  & 
    370     , data_n_index, data_ni, data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  & 
    371     , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc  & 
    372     , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     392    , data_n_index, data_ni, data_nj, domain_group_ref, i_index, ibegin, iend, j_index, jbegin, jend  & 
     393    , latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
     394    , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
     395    , zoom_nj_loc ) 
    373396     
    374397    IMPLICIT NONE 
     
    385408      INTEGER  , OPTIONAL, INTENT(OUT) :: data_nj 
    386409      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref 
     410      INTEGER  , OPTIONAL, INTENT(OUT) :: i_index(:,:) 
    387411      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin 
    388412      INTEGER  , OPTIONAL, INTENT(OUT) :: iend 
     413      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:,:) 
    389414      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin 
    390415      INTEGER  , OPTIONAL, INTENT(OUT) :: jend 
     
    413438      CALL xios(get_domain_attr_hdl_)  & 
    414439      ( domain_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin  & 
    415       , data_n_index, data_ni, data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  & 
    416       , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc  & 
    417       , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     440      , data_n_index, data_ni, data_nj, domain_group_ref, i_index, ibegin, iend, j_index, jbegin, jend  & 
     441      , latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
     442      , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
     443      , zoom_nj_loc ) 
    418444     
    419445  END SUBROUTINE xios(get_domain_attr_hdl) 
     
    421447  SUBROUTINE xios(get_domain_attr_hdl_)   & 
    422448    ( domain_hdl, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  & 
    423     , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, ibegin_, iend_, jbegin_  & 
    424     , jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_  & 
    425     , standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_, zoom_jbegin_, zoom_jbegin_loc_, zoom_ni_  & 
    426     , zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
     449    , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, i_index_, ibegin_, iend_  & 
     450    , j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_  & 
     451    , nj_glo_, nvertex_, standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_, zoom_jbegin_, zoom_jbegin_loc_  & 
     452    , zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
    427453     
    428454    IMPLICIT NONE 
     
    439465      INTEGER  , OPTIONAL, INTENT(OUT) :: data_nj_ 
    440466      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref_ 
     467      INTEGER  , OPTIONAL, INTENT(OUT) :: i_index_(:,:) 
    441468      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin_ 
    442469      INTEGER  , OPTIONAL, INTENT(OUT) :: iend_ 
     470      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index_(:,:) 
    443471      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin_ 
    444472      INTEGER  , OPTIONAL, INTENT(OUT) :: jend_ 
     
    509537      ENDIF 
    510538       
     539      IF (PRESENT(i_index_)) THEN 
     540        CALL cxios_get_domain_i_index(domain_hdl%daddr, i_index_,size(i_index_,1),size(i_index_,2)) 
     541      ENDIF 
     542       
    511543      IF (PRESENT(ibegin_)) THEN 
    512544        CALL cxios_get_domain_ibegin(domain_hdl%daddr, ibegin_) 
     
    515547      IF (PRESENT(iend_)) THEN 
    516548        CALL cxios_get_domain_iend(domain_hdl%daddr, iend_) 
     549      ENDIF 
     550       
     551      IF (PRESENT(j_index_)) THEN 
     552        CALL cxios_get_domain_j_index(domain_hdl%daddr, j_index_,size(j_index_,1),size(j_index_,2)) 
    517553      ENDIF 
    518554       
     
    613649  SUBROUTINE xios(is_defined_domain_attr)  & 
    614650    ( domain_id, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin  & 
    615     , data_n_index, data_ni, data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  & 
    616     , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc  & 
    617     , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     651    , data_n_index, data_ni, data_nj, domain_group_ref, i_index, ibegin, iend, j_index, jbegin, jend  & 
     652    , latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
     653    , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
     654    , zoom_nj_loc ) 
    618655     
    619656    IMPLICIT NONE 
     
    642679      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_group_ref 
    643680      LOGICAL(KIND=C_BOOL) :: domain_group_ref_tmp 
     681      LOGICAL, OPTIONAL, INTENT(OUT) :: i_index 
     682      LOGICAL(KIND=C_BOOL) :: i_index_tmp 
    644683      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin 
    645684      LOGICAL(KIND=C_BOOL) :: ibegin_tmp 
    646685      LOGICAL, OPTIONAL, INTENT(OUT) :: iend 
    647686      LOGICAL(KIND=C_BOOL) :: iend_tmp 
     687      LOGICAL, OPTIONAL, INTENT(OUT) :: j_index 
     688      LOGICAL(KIND=C_BOOL) :: j_index_tmp 
    648689      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 
    649690      LOGICAL(KIND=C_BOOL) :: jbegin_tmp 
     
    694735      CALL xios(is_defined_domain_attr_hdl_)   & 
    695736      ( domain_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin  & 
    696       , data_n_index, data_ni, data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  & 
    697       , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc  & 
    698       , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     737      , data_n_index, data_ni, data_nj, domain_group_ref, i_index, ibegin, iend, j_index, jbegin, jend  & 
     738      , latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
     739      , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
     740      , zoom_nj_loc ) 
    699741     
    700742  END SUBROUTINE xios(is_defined_domain_attr) 
     
    702744  SUBROUTINE xios(is_defined_domain_attr_hdl)  & 
    703745    ( domain_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin  & 
    704     , data_n_index, data_ni, data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  & 
    705     , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc  & 
    706     , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     746    , data_n_index, data_ni, data_nj, domain_group_ref, i_index, ibegin, iend, j_index, jbegin, jend  & 
     747    , latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
     748    , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
     749    , zoom_nj_loc ) 
    707750     
    708751    IMPLICIT NONE 
     
    730773      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_group_ref 
    731774      LOGICAL(KIND=C_BOOL) :: domain_group_ref_tmp 
     775      LOGICAL, OPTIONAL, INTENT(OUT) :: i_index 
     776      LOGICAL(KIND=C_BOOL) :: i_index_tmp 
    732777      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin 
    733778      LOGICAL(KIND=C_BOOL) :: ibegin_tmp 
    734779      LOGICAL, OPTIONAL, INTENT(OUT) :: iend 
    735780      LOGICAL(KIND=C_BOOL) :: iend_tmp 
     781      LOGICAL, OPTIONAL, INTENT(OUT) :: j_index 
     782      LOGICAL(KIND=C_BOOL) :: j_index_tmp 
    736783      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 
    737784      LOGICAL(KIND=C_BOOL) :: jbegin_tmp 
     
    781828      CALL xios(is_defined_domain_attr_hdl_)  & 
    782829      ( domain_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin  & 
    783       , data_n_index, data_ni, data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  & 
    784       , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc  & 
    785       , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
     830      , data_n_index, data_ni, data_nj, domain_group_ref, i_index, ibegin, iend, j_index, jbegin, jend  & 
     831      , latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
     832      , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
     833      , zoom_nj_loc ) 
    786834     
    787835  END SUBROUTINE xios(is_defined_domain_attr_hdl) 
     
    789837  SUBROUTINE xios(is_defined_domain_attr_hdl_)   & 
    790838    ( domain_hdl, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  & 
    791     , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, ibegin_, iend_, jbegin_  & 
    792     , jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_  & 
    793     , standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_, zoom_jbegin_, zoom_jbegin_loc_, zoom_ni_  & 
    794     , zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
     839    , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, i_index_, ibegin_, iend_  & 
     840    , j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_  & 
     841    , nj_glo_, nvertex_, standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_, zoom_jbegin_, zoom_jbegin_loc_  & 
     842    , zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
    795843     
    796844    IMPLICIT NONE 
     
    818866      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_group_ref_ 
    819867      LOGICAL(KIND=C_BOOL) :: domain_group_ref__tmp 
     868      LOGICAL, OPTIONAL, INTENT(OUT) :: i_index_ 
     869      LOGICAL(KIND=C_BOOL) :: i_index__tmp 
    820870      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin_ 
    821871      LOGICAL(KIND=C_BOOL) :: ibegin__tmp 
    822872      LOGICAL, OPTIONAL, INTENT(OUT) :: iend_ 
    823873      LOGICAL(KIND=C_BOOL) :: iend__tmp 
     874      LOGICAL, OPTIONAL, INTENT(OUT) :: j_index_ 
     875      LOGICAL(KIND=C_BOOL) :: j_index__tmp 
    824876      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin_ 
    825877      LOGICAL(KIND=C_BOOL) :: jbegin__tmp 
     
    922974      ENDIF 
    923975       
     976      IF (PRESENT(i_index_)) THEN 
     977        i_index__tmp=cxios_is_defined_domain_i_index(domain_hdl%daddr) 
     978        i_index_=i_index__tmp 
     979      ENDIF 
     980       
    924981      IF (PRESENT(ibegin_)) THEN 
    925982        ibegin__tmp=cxios_is_defined_domain_ibegin(domain_hdl%daddr) 
     
    932989      ENDIF 
    933990       
     991      IF (PRESENT(j_index_)) THEN 
     992        j_index__tmp=cxios_is_defined_domain_j_index(domain_hdl%daddr) 
     993        j_index_=j_index__tmp 
     994      ENDIF 
     995       
    934996      IF (PRESENT(jbegin_)) THEN 
    935997        jbegin__tmp=cxios_is_defined_domain_jbegin(domain_hdl%daddr) 
  • XIOS/trunk/src/interface/fortran_attr/idomaingroup_attr.F90

    r449 r467  
    1313  SUBROUTINE xios(set_domaingroup_attr)  & 
    1414    ( domaingroup_id, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    15     , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin  & 
    16     , jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
    17     , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
    18     , zoom_nj_loc ) 
     15    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_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 ) 
    1919     
    2020    IMPLICIT NONE 
     
    3333      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref 
    3434      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
     35      INTEGER  , OPTIONAL, INTENT(IN) :: i_index(:,:) 
    3536      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin 
    3637      INTEGER  , OPTIONAL, INTENT(IN) :: iend 
     38      INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:,:) 
    3739      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin 
    3840      INTEGER  , OPTIONAL, INTENT(IN) :: jend 
     
    6264      CALL xios(set_domaingroup_attr_hdl_)   & 
    6365      ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    64       , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin  & 
    65       , jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
    66       , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
    67       , zoom_nj_loc ) 
     66      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, i_index, ibegin  & 
     67      , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     68      , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
     69      , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
    6870     
    6971  END SUBROUTINE xios(set_domaingroup_attr) 
     
    7173  SUBROUTINE xios(set_domaingroup_attr_hdl)  & 
    7274    ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    73     , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin  & 
    74     , jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
    75     , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
    76     , zoom_nj_loc ) 
     75    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, i_index, ibegin  & 
     76    , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     77    , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
     78    , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
    7779     
    7880    IMPLICIT NONE 
     
    9092      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref 
    9193      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
     94      INTEGER  , OPTIONAL, INTENT(IN) :: i_index(:,:) 
    9295      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin 
    9396      INTEGER  , OPTIONAL, INTENT(IN) :: iend 
     97      INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:,:) 
    9498      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin 
    9599      INTEGER  , OPTIONAL, INTENT(IN) :: jend 
     
    118122      CALL xios(set_domaingroup_attr_hdl_)  & 
    119123      ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    120       , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin  & 
    121       , jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
    122       , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
    123       , zoom_nj_loc ) 
     124      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, i_index, ibegin  & 
     125      , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     126      , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
     127      , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
    124128     
    125129  END SUBROUTINE xios(set_domaingroup_attr_hdl) 
     
    127131  SUBROUTINE xios(set_domaingroup_attr_hdl_)   & 
    128132    ( domaingroup_hdl, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  & 
    129     , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, group_ref_, ibegin_, iend_  & 
    130     , jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_, nj_glo_  & 
    131     , nvertex_, standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_, zoom_jbegin_, zoom_jbegin_loc_  & 
    132     , zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
     133    , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, group_ref_, i_index_, ibegin_  & 
     134    , iend_, j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_  & 
     135    , nj_, nj_glo_, nvertex_, standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_, zoom_jbegin_  & 
     136    , zoom_jbegin_loc_, zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
    133137     
    134138    IMPLICIT NONE 
     
    146150      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref_ 
    147151      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ 
     152      INTEGER  , OPTIONAL, INTENT(IN) :: i_index_(:,:) 
    148153      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin_ 
    149154      INTEGER  , OPTIONAL, INTENT(IN) :: iend_ 
     155      INTEGER  , OPTIONAL, INTENT(IN) :: j_index_(:,:) 
    150156      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin_ 
    151157      INTEGER  , OPTIONAL, INTENT(IN) :: jend_ 
     
    220226      ENDIF 
    221227       
     228      IF (PRESENT(i_index_)) THEN 
     229        CALL cxios_set_domaingroup_i_index(domaingroup_hdl%daddr, i_index_,size(i_index_,1),size(i_index_,2)) 
     230      ENDIF 
     231       
    222232      IF (PRESENT(ibegin_)) THEN 
    223233        CALL cxios_set_domaingroup_ibegin(domaingroup_hdl%daddr, ibegin_) 
     
    226236      IF (PRESENT(iend_)) THEN 
    227237        CALL cxios_set_domaingroup_iend(domaingroup_hdl%daddr, iend_) 
     238      ENDIF 
     239       
     240      IF (PRESENT(j_index_)) THEN 
     241        CALL cxios_set_domaingroup_j_index(domaingroup_hdl%daddr, j_index_,size(j_index_,1),size(j_index_,2)) 
    228242      ENDIF 
    229243       
     
    324338  SUBROUTINE xios(get_domaingroup_attr)  & 
    325339    ( domaingroup_id, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    326     , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin  & 
    327     , jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
    328     , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
    329     , zoom_nj_loc ) 
     340    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, i_index, ibegin  & 
     341    , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     342    , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
     343    , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
    330344     
    331345    IMPLICIT NONE 
     
    344358      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref 
    345359      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
     360      INTEGER  , OPTIONAL, INTENT(OUT) :: i_index(:,:) 
    346361      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin 
    347362      INTEGER  , OPTIONAL, INTENT(OUT) :: iend 
     363      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:,:) 
    348364      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin 
    349365      INTEGER  , OPTIONAL, INTENT(OUT) :: jend 
     
    373389      CALL xios(get_domaingroup_attr_hdl_)   & 
    374390      ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    375       , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin  & 
    376       , jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
    377       , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
    378       , zoom_nj_loc ) 
     391      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, i_index, ibegin  & 
     392      , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     393      , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
     394      , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
    379395     
    380396  END SUBROUTINE xios(get_domaingroup_attr) 
     
    382398  SUBROUTINE xios(get_domaingroup_attr_hdl)  & 
    383399    ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    384     , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin  & 
    385     , jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
    386     , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
    387     , zoom_nj_loc ) 
     400    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, i_index, ibegin  & 
     401    , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     402    , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
     403    , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
    388404     
    389405    IMPLICIT NONE 
     
    401417      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref 
    402418      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
     419      INTEGER  , OPTIONAL, INTENT(OUT) :: i_index(:,:) 
    403420      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin 
    404421      INTEGER  , OPTIONAL, INTENT(OUT) :: iend 
     422      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:,:) 
    405423      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin 
    406424      INTEGER  , OPTIONAL, INTENT(OUT) :: jend 
     
    429447      CALL xios(get_domaingroup_attr_hdl_)  & 
    430448      ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    431       , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin  & 
    432       , jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
    433       , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
    434       , zoom_nj_loc ) 
     449      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, i_index, ibegin  & 
     450      , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     451      , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
     452      , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
    435453     
    436454  END SUBROUTINE xios(get_domaingroup_attr_hdl) 
     
    438456  SUBROUTINE xios(get_domaingroup_attr_hdl_)   & 
    439457    ( domaingroup_hdl, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  & 
    440     , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, group_ref_, ibegin_, iend_  & 
    441     , jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_, nj_glo_  & 
    442     , nvertex_, standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_, zoom_jbegin_, zoom_jbegin_loc_  & 
    443     , zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
     458    , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, group_ref_, i_index_, ibegin_  & 
     459    , iend_, j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_  & 
     460    , nj_, nj_glo_, nvertex_, standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_, zoom_jbegin_  & 
     461    , zoom_jbegin_loc_, zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
    444462     
    445463    IMPLICIT NONE 
     
    457475      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref_ 
    458476      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ 
     477      INTEGER  , OPTIONAL, INTENT(OUT) :: i_index_(:,:) 
    459478      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin_ 
    460479      INTEGER  , OPTIONAL, INTENT(OUT) :: iend_ 
     480      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index_(:,:) 
    461481      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin_ 
    462482      INTEGER  , OPTIONAL, INTENT(OUT) :: jend_ 
     
    531551      ENDIF 
    532552       
     553      IF (PRESENT(i_index_)) THEN 
     554        CALL cxios_get_domaingroup_i_index(domaingroup_hdl%daddr, i_index_,size(i_index_,1),size(i_index_,2)) 
     555      ENDIF 
     556       
    533557      IF (PRESENT(ibegin_)) THEN 
    534558        CALL cxios_get_domaingroup_ibegin(domaingroup_hdl%daddr, ibegin_) 
     
    537561      IF (PRESENT(iend_)) THEN 
    538562        CALL cxios_get_domaingroup_iend(domaingroup_hdl%daddr, iend_) 
     563      ENDIF 
     564       
     565      IF (PRESENT(j_index_)) THEN 
     566        CALL cxios_get_domaingroup_j_index(domaingroup_hdl%daddr, j_index_,size(j_index_,1),size(j_index_,2)) 
    539567      ENDIF 
    540568       
     
    635663  SUBROUTINE xios(is_defined_domaingroup_attr)  & 
    636664    ( domaingroup_id, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    637     , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin  & 
    638     , jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
    639     , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
    640     , zoom_nj_loc ) 
     665    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, i_index, ibegin  & 
     666    , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     667    , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
     668    , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
    641669     
    642670    IMPLICIT NONE 
     
    667695      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 
    668696      LOGICAL(KIND=C_BOOL) :: group_ref_tmp 
     697      LOGICAL, OPTIONAL, INTENT(OUT) :: i_index 
     698      LOGICAL(KIND=C_BOOL) :: i_index_tmp 
    669699      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin 
    670700      LOGICAL(KIND=C_BOOL) :: ibegin_tmp 
    671701      LOGICAL, OPTIONAL, INTENT(OUT) :: iend 
    672702      LOGICAL(KIND=C_BOOL) :: iend_tmp 
     703      LOGICAL, OPTIONAL, INTENT(OUT) :: j_index 
     704      LOGICAL(KIND=C_BOOL) :: j_index_tmp 
    673705      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 
    674706      LOGICAL(KIND=C_BOOL) :: jbegin_tmp 
     
    719751      CALL xios(is_defined_domaingroup_attr_hdl_)   & 
    720752      ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    721       , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin  & 
    722       , jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
    723       , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
    724       , zoom_nj_loc ) 
     753      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, i_index, ibegin  & 
     754      , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     755      , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
     756      , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
    725757     
    726758  END SUBROUTINE xios(is_defined_domaingroup_attr) 
     
    728760  SUBROUTINE xios(is_defined_domaingroup_attr_hdl)  & 
    729761    ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    730     , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin  & 
    731     , jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
    732     , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
    733     , zoom_nj_loc ) 
     762    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, i_index, ibegin  & 
     763    , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     764    , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
     765    , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
    734766     
    735767    IMPLICIT NONE 
     
    759791      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 
    760792      LOGICAL(KIND=C_BOOL) :: group_ref_tmp 
     793      LOGICAL, OPTIONAL, INTENT(OUT) :: i_index 
     794      LOGICAL(KIND=C_BOOL) :: i_index_tmp 
    761795      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin 
    762796      LOGICAL(KIND=C_BOOL) :: ibegin_tmp 
    763797      LOGICAL, OPTIONAL, INTENT(OUT) :: iend 
    764798      LOGICAL(KIND=C_BOOL) :: iend_tmp 
     799      LOGICAL, OPTIONAL, INTENT(OUT) :: j_index 
     800      LOGICAL(KIND=C_BOOL) :: j_index_tmp 
    765801      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 
    766802      LOGICAL(KIND=C_BOOL) :: jbegin_tmp 
     
    810846      CALL xios(is_defined_domaingroup_attr_hdl_)  & 
    811847      ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  & 
    812       , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin  & 
    813       , jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  & 
    814       , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  & 
    815       , zoom_nj_loc ) 
     848      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, group_ref, i_index, ibegin  & 
     849      , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  & 
     850      , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  & 
     851      , zoom_ni_loc, zoom_nj, zoom_nj_loc ) 
    816852     
    817853  END SUBROUTINE xios(is_defined_domaingroup_attr_hdl) 
     
    819855  SUBROUTINE xios(is_defined_domaingroup_attr_hdl_)   & 
    820856    ( domaingroup_hdl, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  & 
    821     , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, group_ref_, ibegin_, iend_  & 
    822     , jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_, nj_glo_  & 
    823     , nvertex_, standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_, zoom_jbegin_, zoom_jbegin_loc_  & 
    824     , zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
     857    , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, group_ref_, i_index_, ibegin_  & 
     858    , iend_, j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_  & 
     859    , nj_, nj_glo_, nvertex_, standard_name_, type_, zoom_ibegin_, zoom_ibegin_loc_, zoom_jbegin_  & 
     860    , zoom_jbegin_loc_, zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ ) 
    825861     
    826862    IMPLICIT NONE 
     
    850886      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref_ 
    851887      LOGICAL(KIND=C_BOOL) :: group_ref__tmp 
     888      LOGICAL, OPTIONAL, INTENT(OUT) :: i_index_ 
     889      LOGICAL(KIND=C_BOOL) :: i_index__tmp 
    852890      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin_ 
    853891      LOGICAL(KIND=C_BOOL) :: ibegin__tmp 
    854892      LOGICAL, OPTIONAL, INTENT(OUT) :: iend_ 
    855893      LOGICAL(KIND=C_BOOL) :: iend__tmp 
     894      LOGICAL, OPTIONAL, INTENT(OUT) :: j_index_ 
     895      LOGICAL(KIND=C_BOOL) :: j_index__tmp 
    856896      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin_ 
    857897      LOGICAL(KIND=C_BOOL) :: jbegin__tmp 
     
    959999      ENDIF 
    9601000       
     1001      IF (PRESENT(i_index_)) THEN 
     1002        i_index__tmp=cxios_is_defined_domaingroup_i_index(domaingroup_hdl%daddr) 
     1003        i_index_=i_index__tmp 
     1004      ENDIF 
     1005       
    9611006      IF (PRESENT(ibegin_)) THEN 
    9621007        ibegin__tmp=cxios_is_defined_domaingroup_ibegin(domaingroup_hdl%daddr) 
     
    9691014      ENDIF 
    9701015       
     1016      IF (PRESENT(j_index_)) THEN 
     1017        j_index__tmp=cxios_is_defined_domaingroup_j_index(domaingroup_hdl%daddr) 
     1018        j_index_=j_index__tmp 
     1019      ENDIF 
     1020       
    9711021      IF (PRESENT(jbegin_)) THEN 
    9721022        jbegin__tmp=cxios_is_defined_domaingroup_jbegin(domaingroup_hdl%daddr) 
  • XIOS/trunk/src/node/domain.cpp

    r456 r467  
    7777   //---------------------------------------------------------------- 
    7878 
    79    void CDomain::checkGlobalDomain(void) 
     79   void CDomain::checkDomain(void) 
    8080   { 
    8181      if (!type.isEmpty() && type==type_attr::unstructured) 
     
    9393         if (!ibegin.isEmpty()) jbegin=ibegin ; 
    9494         if (!iend.isEmpty()) jend=iend ; 
     95         if (!i_index.isEmpty()) 
     96         { 
     97          j_index.resize(1,nj) ; 
     98          for(int i=0;i<ni;i++) j_index(0,i)=i_index(i,0) ; 
     99          i_index.resize(1,nj) ; 
     100          for(int j=0;j<nj;j++) i_index(0,j)=0 ; 
     101         } 
     102 
     103         if (!mask.isEmpty()) 
     104         { 
     105          CArray<int,2> mask_tmp(nj,1) ; 
     106          mask_tmp = mask ; 
     107          mask.resize(1,nj) ; 
     108          for(int j=0;j<nj;j++) mask(0,j)=mask_tmp(j,0) ; 
     109         } 
    95110         ni=1 ; 
    96111         ibegin=1 ; 
    97112         iend=1 ; 
     113          
    98114      } 
    99115      else if ((ni_glo.isEmpty() || ni_glo.getValue() <= 0 ) || 
     
    105121               << " check the \'ni_glo\' et \'nj_glo\' values !")  
    106122      } 
     123      checkLocalIDomain() ; 
     124      checkLocalJDomain() ; 
     125       
     126     if (i_index.isEmpty()) 
     127     { 
     128       i_index.resize(ni,nj) ; 
     129       for(int j=0;j<nj;j++) 
     130         for(int i=0;i<ni;i++) i_index(i,j)=i ;    
     131     } 
     132      
     133     if (j_index.isEmpty()) 
     134     { 
     135        j_index.resize(ni,nj) ; 
     136        for(int j=0;j<nj;j++) 
     137         for(int i=0;i<ni;i++) j_index(i,j)=j ;    
     138     } 
     139  
    107140   } 
    108141 
     
    214247      if (!mask.isEmpty()) 
    215248      { 
    216          unsigned int niu = ni.getValue(), nju = nj.getValue(); 
    217          if ((mask.extent(0) != niu) || 
    218              (mask.extent(1) != nju)) 
     249         if ((mask.extent(0) != ni) || 
     250             (mask.extent(1) != nj)) 
    219251            ERROR("CDomain::checkAttributes(void)", 
    220252                  <<"the mask has not the same size than the local domain"<<endl 
    221                    <<"Local size is "<<niu<<"x"<<nju<<endl 
     253                   <<"Local size is "<<ni<<"x"<<nj<<endl 
    222254                  <<"Mask size is "<<mask.extent(0)<<"x"<<mask.extent(1));                  
    223          for (int i = 0; i < ni.getValue(); i++) 
    224          { 
    225             for (int j = 0; j < nj.getValue(); j++) 
     255         for (int i = 0; i < ni; i++) 
     256         { 
     257            for (int j = 0; j < nj; j++) 
    226258            { 
    227259               if (i < ibegin_mask && i > iend_mask && 
     
    423455        for (int j = 0; j < zoom_nj_client; j++) 
    424456        { 
    425 //          lonvalue(i + j * zoom_ni_client) = lonvalue_temp( (i + zoom_ibegin_client -1) + (j + zoom_jbegin_client -1)*ni );  
    426 //          latvalue(i + j * zoom_ni_client) = latvalue_temp( (i + zoom_ibegin_client -1)+(j + zoom_jbegin_client -1)*ni ); 
    427457          lonvalue(i + j * zoom_ni_client) = lonvalue_temp( (i + zoom_ibegin_client-ibegin) + (j + zoom_jbegin_client -jbegin)*ni );  
    428458          latvalue(i + j * zoom_ni_client) = latvalue_temp( (i + zoom_ibegin_client - ibegin)+(j + zoom_jbegin_client - jbegin)*ni ); 
     
    431461            for(int n=0;n<nvertex;n++)  
    432462            { 
    433 //              bounds_lon(n,i + j * zoom_ni_client) = bounds_lon_temp( n, (i + zoom_ibegin_client -1) + (j + zoom_jbegin_client -1)*ni );  
    434 //              bounds_lat(n,i + j * zoom_ni_client) = bounds_lat_temp( n, (i + zoom_ibegin_client -1)+(j + zoom_jbegin_client -1)*ni ); 
    435463              bounds_lon(n,i + j * zoom_ni_client) = bounds_lon_temp( n, (i + zoom_ibegin_client - ibegin) + (j + zoom_jbegin_client -jbegin)*ni );  
    436464              bounds_lat(n,i + j * zoom_ni_client) = bounds_lat_temp( n, (i + zoom_ibegin_client - ibegin)+(j + zoom_jbegin_client -jbegin)*ni ); 
     
    489517      zoom_nj_client=zoom_jend_client-zoom_jbegin_client+1 ; 
    490518      if (zoom_nj_client<0) zoom_nj_client=0 ; 
    491        
    492       cout << zoom_ibegin<<"  "<<zoom_ni <<"  "<< zoom_jbegin<<"  "<<zoom_nj<<endl ; 
    493       cout << zoom_ibegin_client<<"  "<<zoom_ni_client <<"  "<< zoom_jbegin_client<<"  "<<zoom_nj_client<<endl ; 
    494       cout << ibegin_client<<"  "<<iend_client <<"  "<< jbegin_client<<"  "<<jend_client<<endl ; 
    495 /*     
    496       { 
    497          int zoom_iend = zoom_ibegin + zoom_ni - 1; 
    498          int zoom_jend = zoom_jbegin + zoom_nj - 1; 
    499           
    500          if ( zoom_ibegin > iend || zoom_iend < ibegin ) 
    501          { 
    502             zoom_ni_loc = 0 ; 
    503             zoom_ibegin_loc = zoom_ibegin ; 
    504          } 
    505          else 
    506          { 
    507             int zoom_ibegin_loc_ = (zoom_ibegin > ibegin) ? zoom_ibegin : ibegin ; 
    508             int zoom_iend_loc_  = (zoom_iend < iend) ? zoom_iend : iend ; 
    509             int zoom_ni_loc_ = zoom_iend_loc_ - zoom_ibegin_loc_ + 1; 
    510              
    511             zoom_ni_loc = zoom_ni_loc_; 
    512             zoom_ibegin_loc = zoom_ibegin_loc_-ibegin.getValue()+1; 
    513          } 
    514           
    515          if ( zoom_jbegin > jend || zoom_jend < jbegin ) 
    516          { 
    517             zoom_nj_loc = 0 ; 
    518             zoom_jbegin_loc = zoom_jbegin ; 
    519          } 
    520          else 
    521          { 
    522             int zoom_jbegin_loc_ = ( zoom_jbegin > jbegin ) ? zoom_jbegin : jbegin ; 
    523             int zoom_jend_loc_  = (zoom_jend < jend) ? zoom_jend : jend ; 
    524             int zoom_nj_loc_ = zoom_jend_loc_ - zoom_jbegin_loc_ + 1; 
    525              
    526             zoom_nj_loc = zoom_nj_loc_; 
    527             zoom_jbegin_loc = zoom_jbegin_loc_-jbegin.getValue()+1; 
    528          } 
    529       } 
    530 */ 
     519 
    531520   } 
    532521    
     
    552541      CContext* context=CContext::getCurrent() ; 
    553542 
    554       this->checkGlobalDomain(); 
    555       this->checkLocalIDomain(); 
    556       this->checkLocalJDomain(); 
    557        
     543      this->checkDomain(); 
    558544      this->checkZoom(); 
    559545      this->checkBounds(); 
     
    617603     else client->sendEvent(event) ; 
    618604  } 
    619    
     605 
    620606  void CDomain::computeConnectedServer(void) 
    621607  { 
    622     int ib,ie,in; 
    623     int jb,je,jn ; 
    624      
    625     int ni_srv=ni_glo.getValue() ; 
    626     int ibegin_srv=1 ; 
    627     int iend_srv=ni_glo.getValue() ; 
    628       
    629     int nj_serv,jbegin_srv, jend_srv ; 
    630     int zoom_ibegin_srv,zoom_iend_srv,zoom_ni_srv ; 
    631     int zoom_jbegin_srv,zoom_jend_srv,zoom_nj_srv ; 
    632      
    633     ibegin_client=ibegin.getValue() ; iend_client=iend.getValue() ; ni_client=ni.getValue() ; 
    634     jbegin_client=jbegin.getValue() ; jend_client=jend.getValue() ; nj_client=nj.getValue() ; 
     608    int i,j,i_ind,j_ind ; 
     609     
     610    ibegin_client=ibegin ; iend_client=iend ; ni_client=ni ; 
     611    jbegin_client=jbegin ; jend_client=jend ; nj_client=nj ; 
    635612      
    636613    CContext* context = CContext::getCurrent() ; 
     
    638615    int nbServer=client->serverSize ; 
    639616 
    640 /*     
    641     // compute client zoom indices 
    642     int zoom_iend=zoom_ibegin.getValue()+zoom_ni.getValue()-1 ; 
    643     zoom_ibegin_client = ibegin_client > zoom_ibegin.getValue() ? ibegin_client : zoom_ibegin.getValue() ; 
    644     zoom_iend_client = iend_client < zoom_iend ? iend_client : zoom_iend ; 
    645     zoom_ni_client=zoom_iend_client-zoom_ibegin_client+1 ; 
    646     if (zoom_ni_client<0) zoom_ni_client=0 ; 
    647  
    648     int zoom_jend=zoom_jbegin.getValue()+zoom_nj.getValue()-1 ; 
    649     zoom_jbegin_client = jbegin_client > zoom_jbegin.getValue() ? jbegin_client : zoom_jbegin.getValue() ; 
    650     zoom_jend_client = jend_client < zoom_jend ? jend_client : zoom_jend ; 
    651     zoom_nj_client=zoom_jend_client-zoom_jbegin_client+1 ; 
    652     if (zoom_nj_client<0) zoom_nj_client=0 ; 
    653 */  
    654617    // find how much client are connected to a server 
    655618    int zoom_iend=zoom_ibegin+zoom_ni-1 ; 
    656619    int zoom_jend=zoom_jbegin+zoom_nj-1 ; 
    657620     
    658     jend_srv=0 ; 
    659     for(int ns=0;ns<nbServer;ns++) 
    660     { 
    661       jbegin_srv=jend_srv+1 ; 
    662       nj_srv=nj_glo.getValue()/nbServer ; 
    663       if (ns<nj_glo.getValue()%nbServer) nj_srv++ ; 
    664       jend_srv=jbegin_srv+nj_srv-1 ; 
    665        
    666       ib = ibegin_client>ibegin_srv ? ibegin_client : ibegin_srv ; 
    667       ie=  iend_client< iend_srv? iend_client : iend_srv ; 
    668       in=ie-ib+1 ;  
    669       if (in<0) in=0 ; 
    670        
    671       jb= jbegin_client>jbegin_srv ? jbegin_client : jbegin_srv ; 
    672       je= jend_client<jend_srv ? jend_client : jend_srv ; 
    673       jn=je-jb+1 ; 
    674       if (jn<0) jn=0 ; 
     621    int blockSize=nj_glo/nbServer ; 
     622    int ns=nj_glo%nbServer ; 
     623    int pos=ns*(blockSize+1) ; 
     624    int serverNum ; 
     625     
     626    mapConnectedServer.resize(ni,nj) ; 
     627    vector<int> nbData(nbServer,0) ; 
     628    vector<int> indServer(nbServer,-1) ; 
     629    vector<bool> IsConnected(nbServer,false) ; 
     630     
     631    for(j=0;j<nj;j++) 
     632      for(i=0;i<ni;i++) 
     633      { 
     634        i_ind=ibegin+i_index(i,j)-1 ; 
     635        j_ind=jbegin+j_index(i,j)-1 ; 
    675636         
    676       if (in>0 && jn>0) 
    677       { 
    678         zoom_ibegin_srv = zoom_ibegin.getValue() > ibegin_srv ? zoom_ibegin.getValue() : ibegin_srv ; 
    679         zoom_iend_srv = zoom_iend < iend_srv ? zoom_iend : iend_srv ; 
    680         zoom_ni_srv=zoom_iend_srv-zoom_ibegin_srv+1 ; 
    681         if (zoom_ni_srv<0) zoom_ni_srv=0 ; 
    682        
    683         zoom_jbegin_srv = zoom_jbegin.getValue() > jbegin_srv ? zoom_jbegin.getValue() : jbegin_srv ; 
    684         zoom_jend_srv = zoom_jend < jend_srv ? zoom_jend : jend_srv ; 
    685         zoom_nj_srv=zoom_jend_srv-zoom_jbegin_srv+1 ; 
    686         if (zoom_nj_srv<0) zoom_nj_srv=0 ; 
    687   
    688         if (zoom_ni_srv>0 && zoom_nj_srv>0 && zoom_ni_client>0 && zoom_nj_client>0) 
     637        if (j_ind<pos) serverNum=j_ind/(blockSize+1) ; 
     638        else serverNum=ns+(j_ind-pos)/blockSize ; 
     639        IsConnected[serverNum]=true ; 
     640                 
     641        if (i_ind >= zoom_ibegin-1 && i_ind <= zoom_iend-1 && j_ind >= zoom_jbegin-1 && j_ind <= zoom_jend-1) 
    689642        { 
    690           ib = zoom_ibegin_client>zoom_ibegin_srv ? zoom_ibegin_client : zoom_ibegin_srv ; 
    691           ie=zoom_iend_client<zoom_iend_srv?zoom_iend_client:zoom_iend_srv ; 
    692           in=ie-ib+1 ; 
    693           if (in<0) in=0 ; 
    694          
    695           jb=zoom_jbegin_client>zoom_jbegin_srv?zoom_jbegin_client:zoom_jbegin_srv ; 
    696           je=zoom_jend_client<zoom_jend_srv?zoom_jend_client:zoom_jend_srv ; 
    697           jn=je-jb+1 ; 
    698           if (jn<0) jn=0 ; 
     643          mapConnectedServer(i,j)=serverNum ; 
     644          nbData[serverNum]++ ; 
    699645        } 
    700         else 
     646        else mapConnectedServer(i,j)=-1 ; 
     647      } 
     648 
     649 
     650    for(serverNum=0 ; serverNum<nbServer ; serverNum++)  
     651      if (IsConnected[serverNum]) 
     652      { 
     653        ns=connectedServer.size() ; 
     654        indServer[serverNum]=ns; 
     655        connectedServer.push_back(serverNum) ; 
     656        nbDataSrv.push_back(nbData[serverNum]) ; 
     657      } 
     658      
     659     i_indSrv.resize(connectedServer.size()) ; 
     660     j_indSrv.resize(connectedServer.size()) ; 
     661 
     662     for(j=0;j<nj;j++) 
     663      for(i=0;i<ni;i++)  
     664      { 
     665        if (mapConnectedServer(i,j)>=0) 
    701666        { 
    702           ib=1 ; ie=0 ; in=0 ; 
    703           jb=1 ; je=0 ; jn=0 ; 
     667          ns=indServer[mapConnectedServer(i,j)] ; 
     668          mapConnectedServer(i,j)= ns ; 
     669          i_indSrv[ns].push_back(i+ibegin-1) ; 
     670          j_indSrv[ns].push_back(j+jbegin-1) ; 
    704671        } 
    705          
    706 //          if (in>0 && jn>0)  
    707 //          {  
    708             connectedServer.push_back(ns) ; 
    709             ib_srv.push_back(ib) ; 
    710             ie_srv.push_back(ie) ; 
    711             in_srv.push_back(in) ; 
    712             jb_srv.push_back(jb) ; 
    713             je_srv.push_back(je) ; 
    714             jn_srv.push_back(jn) ; 
    715 //           } 
    716          
    717       } 
    718     } 
     672      } 
     673           
    719674    int nbConnectedServer=connectedServer.size() ; 
     675 
    720676    int* recvCount=new int[client->clientSize] ; 
    721677    int* displ=new int[client->clientSize] ; 
     
    744700    delete [] recvBuff ; 
    745701  } 
    746    
     702 
     703 
    747704  void CDomain::sendLonLat(void) 
    748705  { 
     706    int ns,n,i,j,ind,nv ; 
    749707    CContext* context = CContext::getCurrent() ; 
    750708    CContextClient* client=context->client ; 
     
    752710    CEventClient event(getType(),EVENT_ID_LON_LAT) ; 
    753711     
    754     int ib,ie,in ; 
    755     int jb,je,jn ; 
    756    
    757712    list<shared_ptr<CMessage> > list_msg ;     
    758713    list< CArray<int,1>* > list_indi,list_indj ; 
     
    762717    for(int ns=0;ns<connectedServer.size();ns++) 
    763718    { 
    764       ib=ib_srv[ns] ; ie=ie_srv[ns] ; in=in_srv[ns] ; 
    765       jb=jb_srv[ns] ; je=je_srv[ns] ; jn=jn_srv[ns] ; 
    766        
    767       CArray<int,1> indi(in*jn) ; 
    768       CArray<int,1> indj(in*jn) ; 
    769       CArray<double,1> lon(in*jn) ; 
    770       CArray<double,1> lat(in*jn) ; 
    771       CArray<double,2> boundslon(nvertex,in*jn) ; 
    772       CArray<double,2> boundslat(nvertex,in*jn) ; 
    773  
    774            
    775       int ind_client,ind_loc ; 
    776        
    777       for(int j=jb;j<=je;j++) 
    778         for(int i=ib;i<=ie;i++) 
     719      int nbData = nbDataSrv[ns] ; 
     720      CArray<int,1> indi(nbData) ; 
     721      CArray<int,1> indj(nbData) ; 
     722      CArray<double,1> lon(nbData) ; 
     723      CArray<double,1> lat(nbData) ; 
     724      CArray<double,2> boundslon(nvertex,nbData) ; 
     725      CArray<double,2> boundslat(nvertex,nbData) ; 
     726       
     727      for(n=0;n<nbData;n++)  
     728      { 
     729        i=i_indSrv[ns][n] ; 
     730        j=j_indSrv[ns][n] ; 
     731        ind=(i-(zoom_ibegin_client-1))+(j-(zoom_jbegin_client-1))*zoom_ni_client ; 
     732         
     733        lon(n)=lonvalue(ind) ; 
     734        lat(n)=latvalue(ind) ; 
     735        if (hasBounds) 
    779736        { 
    780           ind_client=(i-zoom_ibegin_client)+(j-zoom_jbegin_client)*zoom_ni_client ; 
    781           ind_loc=(i-ib)+(j-jb)*in ; 
    782           lon(ind_loc)=lonvalue(ind_client) ; 
    783           lat(ind_loc)=latvalue(ind_client) ; 
    784           if (hasBounds) 
     737          for(nv=0;nv<nvertex;nv++) 
    785738          { 
    786             for(int n=0;n<nvertex;n++) 
    787             { 
    788               boundslon(n,ind_loc)=bounds_lon(n,ind_client); 
    789               boundslat(n,ind_loc)=bounds_lat(n,ind_client); 
    790             } 
     739            boundslon(nv,n)=bounds_lon(nv,ind); 
     740            boundslat(nv,n)=bounds_lat(nv,ind); 
    791741          } 
    792           indi(ind_loc)=i ; 
    793           indj(ind_loc)=j ; 
    794742        } 
    795        
     743        indi(n)=ibegin+i_index(i-ibegin+1,j-jbegin+1)-1  ; 
     744        indj(n)=jbegin+j_index(i-ibegin+1,j-jbegin+1)-1  ; 
     745      } 
     746     
    796747      list_indi.push_back(new CArray<int,1>(indi.copy())) ; 
    797748      list_indj.push_back(new CArray<int,1>(indj.copy())) ; 
     
    818769    for(list<CArray<double,1>* >::iterator it=list_lat.begin();it!=list_lat.end();it++)   delete *it; 
    819770    if (hasBounds) for(list<CArray<double,2>* >::iterator it=list_boundslon.begin();it!=list_boundslon.end();it++)   delete *it; 
    820     if (hasBounds) for(list<CArray<double,2>* >::iterator it=list_boundslat.begin();it!=list_boundslat.end();it++)   delete *it; 
     771    if (hasBounds) for(list<CArray<double,2>* >::iterator it=list_boundslat.begin();it!=list_boundslat.end();it++)   delete *it;     
    821772     
    822773  } 
     774   
    823775   
    824776  bool CDomain::dispatchEvent(CEventServer& event) 
     
    860812 
    861813     buffer>>ni_srv>>ibegin_srv>>iend_srv>>nj_srv>>jbegin_srv>>jend_srv; 
     814      
    862815     
    863816    zoom_ibegin_srv = zoom_ibegin.getValue() > ibegin_srv ? zoom_ibegin.getValue() : ibegin_srv ; 
     
    874827      zoom_jbegin_srv=1 ; zoom_jend_srv=0 ; zoom_nj_srv=0 ; 
    875828    } 
    876      
    877829    lonvalue_srv.resize(zoom_ni_srv*zoom_nj_srv) ; 
    878830    lonvalue_srv = 0. ; 
     
    908860    CArray<double,2> boundslon ; 
    909861    CArray<double,2> boundslat ; 
    910  
     862     
    911863    int type_int ; 
    912864    buffer>>type_int>>isCurvilinear>>indi>>indj>>lon>>lat ; 
     
    915867 
    916868    int i,j,ind_srv ; 
    917  
    918869    for(int ind=0;ind<indi.numElements();ind++) 
    919870    { 
    920871      i=indi(ind) ; j=indj(ind) ; 
    921       ind_srv=(i-zoom_ibegin_srv)+(j-zoom_jbegin_srv)*zoom_ni_srv ; 
     872      ind_srv=(i-(zoom_ibegin_srv-1))+(j-(zoom_jbegin_srv-1))*zoom_ni_srv ; 
    922873      lonvalue_srv(ind_srv)=lon(ind) ; 
    923874      latvalue_srv(ind_srv)=lat(ind) ; 
    924875      if (hasBounds)  
    925876      { 
    926         for(int n=0;n<nvertex;n++)  
     877        for(int nv=0;nv<nvertex;nv++)  
    927878        { 
    928           bounds_lon_srv(n,ind_srv)=boundslon(n,ind) ; 
    929           bounds_lat_srv(n,ind_srv)=boundslat(n,ind) ; 
     879          bounds_lon_srv(nv,ind_srv)=boundslon(nv,ind) ; 
     880          bounds_lat_srv(nv,ind_srv)=boundslat(nv,ind) ; 
    930881        } 
    931882      } 
  • XIOS/trunk/src/node/domain.hpp

    r449 r467  
    6060      private : 
    6161 
    62          void checkGlobalDomain(void); 
     62         void checkDomain(void); 
    6363 
    6464         void checkLocalIDomain(void); 
     
    102102          
    103103          
    104         vector<int> connectedServer,nbSenders ; 
    105         vector<int> ib_srv, ie_srv, in_srv ; 
    106         vector<int> jb_srv, je_srv, jn_srv ; 
     104        vector<int> connectedServer ; // list of connected server  
     105        vector<int> nbSenders ; // for each communication with a server, number of communicating client 
     106        vector<int> nbDataSrv ; // size of data to send to each server  
     107        vector< vector<int> > i_indSrv ; // for each server, i global index to send 
     108        vector< vector<int> > j_indSrv ; // for each server, j global index to send 
     109        
     110        CArray<int,2> mapConnectedServer ;  // (ni,nj) => mapped to connected server number, -1 if no server is target 
     111                
     112//        vector<int> ib_srv, ie_srv, in_srv ; 
     113//        vector<int> jb_srv, je_srv, jn_srv ; 
    107114          
    108115      public : 
  • XIOS/trunk/src/node/grid.cpp

    r435 r467  
    425425    { 
    426426       rank=domain->connectedServer[ns] ; 
    427        int ib=domain->ib_srv[ns] ; 
    428        int ie=domain->ie_srv[ns] ; 
    429        int jb=domain->jb_srv[ns] ; 
    430        int je=domain->je_srv[ns] ; 
    431427        
    432428       int i,j ; 
     
    434430       for(int k=0;k<storeIndex_client.numElements();k++) 
    435431       { 
    436          i=out_i_client(k) ; 
    437          j=out_j_client(k) ; 
    438          if (i>=ib-1 && i<=ie-1 && j>=jb-1 && j<=je-1) nb++ ;  
     432         i=out_i_client(k)- domain->ibegin +1; 
     433         j=out_j_client(k)- domain->jbegin +1; 
     434         if (domain->mapConnectedServer(i,j)==ns)  nb++ ; 
    439435       } 
    440436        
     
    448444       for(int k=0;k<storeIndex_client.numElements();k++) 
    449445       { 
    450          i=out_i_client(k) ; 
    451          j=out_j_client(k) ; 
    452          if (i>=ib-1 && i<=ie-1 && j>=jb-1 && j<=je-1)  
     446         i=out_i_client(k)- domain->ibegin +1 ; 
     447         j=out_j_client(k)- domain->jbegin +1 ; 
     448         if (domain->mapConnectedServer(i,j)==ns) 
    453449         { 
    454450            storeIndex(nb)=k ; 
    455             out_i(nb)=out_i_client(k) ; 
    456             out_j(nb)=out_j_client(k) ; 
     451            out_i(nb)=domain->i_index(i,j) + domain->ibegin-1; 
     452            out_j(nb)=domain->j_index(i,j) + domain->jbegin-1;  
    457453            out_l(nb)=out_l_client(k) ; 
    458454            nb++ ; 
Note: See TracChangeset for help on using the changeset viewer.