- Timestamp:
- 01/29/14 11:49:29 (11 years ago)
- Location:
- XIOS/trunk/src
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/attribute_array_decl.cpp
r449 r467 8 8 template class CAttributeArray<double,2> ; 9 9 template class CAttributeArray<int,1> ; 10 template class CAttributeArray<int,2> ; 10 11 template class CAttributeArray<bool,2> ; 11 12 template class CAttributeArray<bool,3> ; -
XIOS/trunk/src/config/domain_attribute.conf
r449 r467 20 20 DECLARE_ATTRIBUTE(int , jend) 21 21 DECLARE_ATTRIBUTE(int , nj) 22 23 24 DECLARE_ARRAY(int,2 , i_index) 25 DECLARE_ARRAY(int,2 , j_index) 22 26 23 27 /* LOCAL */ … … 48 52 DECLARE_ATTRIBUTE(int , data_n_index) 49 53 DECLARE_ARRAY(int, 1 , data_i_index) 50 DECLARE_ARRAY(int, 1, data_j_index)54 DECLARE_ARRAY(int, 1, data_j_index) 51 55 52 56 /* LOCAL */ -
XIOS/trunk/src/interface/c_attr/icdomain_attr.cpp
r449 r467 280 280 281 281 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 282 308 void cxios_set_domain_ibegin(domain_Ptr domain_hdl, int ibegin) 283 309 { … … 319 345 CTimer::get("XIOS").resume(); 320 346 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(); 321 373 CTimer::get("XIOS").suspend(); 322 374 } -
XIOS/trunk/src/interface/c_attr/icdomaingroup_attr.cpp
r449 r467 307 307 308 308 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 309 335 void cxios_set_domaingroup_ibegin(domaingroup_Ptr domaingroup_hdl, int ibegin) 310 336 { … … 346 372 CTimer::get("XIOS").resume(); 347 373 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(); 348 400 CTimer::get("XIOS").suspend(); 349 401 } -
XIOS/trunk/src/interface/fortran_attr/domain_interface_attr.f90
r449 r467 232 232 233 233 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 234 257 SUBROUTINE cxios_set_domain_ibegin(domain_hdl, ibegin) BIND(C) 235 258 USE ISO_C_BINDING … … 268 291 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 269 292 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 270 316 271 317 -
XIOS/trunk/src/interface/fortran_attr/domaingroup_interface_attr.f90
r449 r467 253 253 254 254 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 255 278 SUBROUTINE cxios_set_domaingroup_ibegin(domaingroup_hdl, ibegin) BIND(C) 256 279 USE ISO_C_BINDING … … 289 312 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 290 313 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 291 337 292 338 -
XIOS/trunk/src/interface/fortran_attr/idomain_attr.F90
r449 r467 13 13 SUBROUTINE xios(set_domain_attr) & 14 14 ( 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 ) 18 19 19 20 IMPLICIT NONE … … 31 32 INTEGER , OPTIONAL, INTENT(IN) :: data_nj 32 33 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref 34 INTEGER , OPTIONAL, INTENT(IN) :: i_index(:,:) 33 35 INTEGER , OPTIONAL, INTENT(IN) :: ibegin 34 36 INTEGER , OPTIONAL, INTENT(IN) :: iend 37 INTEGER , OPTIONAL, INTENT(IN) :: j_index(:,:) 35 38 INTEGER , OPTIONAL, INTENT(IN) :: jbegin 36 39 INTEGER , OPTIONAL, INTENT(IN) :: jend … … 60 63 CALL xios(set_domain_attr_hdl_) & 61 64 ( 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 ) 65 69 66 70 END SUBROUTINE xios(set_domain_attr) … … 68 72 SUBROUTINE xios(set_domain_attr_hdl) & 69 73 ( 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 ) 73 78 74 79 IMPLICIT NONE … … 85 90 INTEGER , OPTIONAL, INTENT(IN) :: data_nj 86 91 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref 92 INTEGER , OPTIONAL, INTENT(IN) :: i_index(:,:) 87 93 INTEGER , OPTIONAL, INTENT(IN) :: ibegin 88 94 INTEGER , OPTIONAL, INTENT(IN) :: iend 95 INTEGER , OPTIONAL, INTENT(IN) :: j_index(:,:) 89 96 INTEGER , OPTIONAL, INTENT(IN) :: jbegin 90 97 INTEGER , OPTIONAL, INTENT(IN) :: jend … … 113 120 CALL xios(set_domain_attr_hdl_) & 114 121 ( 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 ) 118 126 119 127 END SUBROUTINE xios(set_domain_attr_hdl) … … 121 129 SUBROUTINE xios(set_domain_attr_hdl_) & 122 130 ( 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_, i begin_, iend_, jbegin_ &124 , j end_, 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_ ) 127 135 128 136 IMPLICIT NONE … … 139 147 INTEGER , OPTIONAL, INTENT(IN) :: data_nj_ 140 148 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref_ 149 INTEGER , OPTIONAL, INTENT(IN) :: i_index_(:,:) 141 150 INTEGER , OPTIONAL, INTENT(IN) :: ibegin_ 142 151 INTEGER , OPTIONAL, INTENT(IN) :: iend_ 152 INTEGER , OPTIONAL, INTENT(IN) :: j_index_(:,:) 143 153 INTEGER , OPTIONAL, INTENT(IN) :: jbegin_ 144 154 INTEGER , OPTIONAL, INTENT(IN) :: jend_ … … 209 219 ENDIF 210 220 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 211 225 IF (PRESENT(ibegin_)) THEN 212 226 CALL cxios_set_domain_ibegin(domain_hdl%daddr, ibegin_) … … 215 229 IF (PRESENT(iend_)) THEN 216 230 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)) 217 235 ENDIF 218 236 … … 313 331 SUBROUTINE xios(get_domain_attr) & 314 332 ( 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 ) 318 337 319 338 IMPLICIT NONE … … 331 350 INTEGER , OPTIONAL, INTENT(OUT) :: data_nj 332 351 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref 352 INTEGER , OPTIONAL, INTENT(OUT) :: i_index(:,:) 333 353 INTEGER , OPTIONAL, INTENT(OUT) :: ibegin 334 354 INTEGER , OPTIONAL, INTENT(OUT) :: iend 355 INTEGER , OPTIONAL, INTENT(OUT) :: j_index(:,:) 335 356 INTEGER , OPTIONAL, INTENT(OUT) :: jbegin 336 357 INTEGER , OPTIONAL, INTENT(OUT) :: jend … … 360 381 CALL xios(get_domain_attr_hdl_) & 361 382 ( 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 ) 365 387 366 388 END SUBROUTINE xios(get_domain_attr) … … 368 390 SUBROUTINE xios(get_domain_attr_hdl) & 369 391 ( 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 ) 373 396 374 397 IMPLICIT NONE … … 385 408 INTEGER , OPTIONAL, INTENT(OUT) :: data_nj 386 409 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref 410 INTEGER , OPTIONAL, INTENT(OUT) :: i_index(:,:) 387 411 INTEGER , OPTIONAL, INTENT(OUT) :: ibegin 388 412 INTEGER , OPTIONAL, INTENT(OUT) :: iend 413 INTEGER , OPTIONAL, INTENT(OUT) :: j_index(:,:) 389 414 INTEGER , OPTIONAL, INTENT(OUT) :: jbegin 390 415 INTEGER , OPTIONAL, INTENT(OUT) :: jend … … 413 438 CALL xios(get_domain_attr_hdl_) & 414 439 ( 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 ) 418 444 419 445 END SUBROUTINE xios(get_domain_attr_hdl) … … 421 447 SUBROUTINE xios(get_domain_attr_hdl_) & 422 448 ( 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_, i begin_, iend_, jbegin_ &424 , j end_, 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_ ) 427 453 428 454 IMPLICIT NONE … … 439 465 INTEGER , OPTIONAL, INTENT(OUT) :: data_nj_ 440 466 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref_ 467 INTEGER , OPTIONAL, INTENT(OUT) :: i_index_(:,:) 441 468 INTEGER , OPTIONAL, INTENT(OUT) :: ibegin_ 442 469 INTEGER , OPTIONAL, INTENT(OUT) :: iend_ 470 INTEGER , OPTIONAL, INTENT(OUT) :: j_index_(:,:) 443 471 INTEGER , OPTIONAL, INTENT(OUT) :: jbegin_ 444 472 INTEGER , OPTIONAL, INTENT(OUT) :: jend_ … … 509 537 ENDIF 510 538 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 511 543 IF (PRESENT(ibegin_)) THEN 512 544 CALL cxios_get_domain_ibegin(domain_hdl%daddr, ibegin_) … … 515 547 IF (PRESENT(iend_)) THEN 516 548 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)) 517 553 ENDIF 518 554 … … 613 649 SUBROUTINE xios(is_defined_domain_attr) & 614 650 ( 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 ) 618 655 619 656 IMPLICIT NONE … … 642 679 LOGICAL, OPTIONAL, INTENT(OUT) :: domain_group_ref 643 680 LOGICAL(KIND=C_BOOL) :: domain_group_ref_tmp 681 LOGICAL, OPTIONAL, INTENT(OUT) :: i_index 682 LOGICAL(KIND=C_BOOL) :: i_index_tmp 644 683 LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin 645 684 LOGICAL(KIND=C_BOOL) :: ibegin_tmp 646 685 LOGICAL, OPTIONAL, INTENT(OUT) :: iend 647 686 LOGICAL(KIND=C_BOOL) :: iend_tmp 687 LOGICAL, OPTIONAL, INTENT(OUT) :: j_index 688 LOGICAL(KIND=C_BOOL) :: j_index_tmp 648 689 LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 649 690 LOGICAL(KIND=C_BOOL) :: jbegin_tmp … … 694 735 CALL xios(is_defined_domain_attr_hdl_) & 695 736 ( 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 ) 699 741 700 742 END SUBROUTINE xios(is_defined_domain_attr) … … 702 744 SUBROUTINE xios(is_defined_domain_attr_hdl) & 703 745 ( 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 ) 707 750 708 751 IMPLICIT NONE … … 730 773 LOGICAL, OPTIONAL, INTENT(OUT) :: domain_group_ref 731 774 LOGICAL(KIND=C_BOOL) :: domain_group_ref_tmp 775 LOGICAL, OPTIONAL, INTENT(OUT) :: i_index 776 LOGICAL(KIND=C_BOOL) :: i_index_tmp 732 777 LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin 733 778 LOGICAL(KIND=C_BOOL) :: ibegin_tmp 734 779 LOGICAL, OPTIONAL, INTENT(OUT) :: iend 735 780 LOGICAL(KIND=C_BOOL) :: iend_tmp 781 LOGICAL, OPTIONAL, INTENT(OUT) :: j_index 782 LOGICAL(KIND=C_BOOL) :: j_index_tmp 736 783 LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 737 784 LOGICAL(KIND=C_BOOL) :: jbegin_tmp … … 781 828 CALL xios(is_defined_domain_attr_hdl_) & 782 829 ( 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 ) 786 834 787 835 END SUBROUTINE xios(is_defined_domain_attr_hdl) … … 789 837 SUBROUTINE xios(is_defined_domain_attr_hdl_) & 790 838 ( 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_, i begin_, iend_, jbegin_ &792 , j end_, 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_ ) 795 843 796 844 IMPLICIT NONE … … 818 866 LOGICAL, OPTIONAL, INTENT(OUT) :: domain_group_ref_ 819 867 LOGICAL(KIND=C_BOOL) :: domain_group_ref__tmp 868 LOGICAL, OPTIONAL, INTENT(OUT) :: i_index_ 869 LOGICAL(KIND=C_BOOL) :: i_index__tmp 820 870 LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin_ 821 871 LOGICAL(KIND=C_BOOL) :: ibegin__tmp 822 872 LOGICAL, OPTIONAL, INTENT(OUT) :: iend_ 823 873 LOGICAL(KIND=C_BOOL) :: iend__tmp 874 LOGICAL, OPTIONAL, INTENT(OUT) :: j_index_ 875 LOGICAL(KIND=C_BOOL) :: j_index__tmp 824 876 LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin_ 825 877 LOGICAL(KIND=C_BOOL) :: jbegin__tmp … … 922 974 ENDIF 923 975 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 924 981 IF (PRESENT(ibegin_)) THEN 925 982 ibegin__tmp=cxios_is_defined_domain_ibegin(domain_hdl%daddr) … … 932 989 ENDIF 933 990 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 934 996 IF (PRESENT(jbegin_)) THEN 935 997 jbegin__tmp=cxios_is_defined_domain_jbegin(domain_hdl%daddr) -
XIOS/trunk/src/interface/fortran_attr/idomaingroup_attr.F90
r449 r467 13 13 SUBROUTINE xios(set_domaingroup_attr) & 14 14 ( 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, i begin, 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_n j_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 ) 19 19 20 20 IMPLICIT NONE … … 33 33 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref 34 34 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 35 INTEGER , OPTIONAL, INTENT(IN) :: i_index(:,:) 35 36 INTEGER , OPTIONAL, INTENT(IN) :: ibegin 36 37 INTEGER , OPTIONAL, INTENT(IN) :: iend 38 INTEGER , OPTIONAL, INTENT(IN) :: j_index(:,:) 37 39 INTEGER , OPTIONAL, INTENT(IN) :: jbegin 38 40 INTEGER , OPTIONAL, INTENT(IN) :: jend … … 62 64 CALL xios(set_domaingroup_attr_hdl_) & 63 65 ( 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, i begin, 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_n j_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 ) 68 70 69 71 END SUBROUTINE xios(set_domaingroup_attr) … … 71 73 SUBROUTINE xios(set_domaingroup_attr_hdl) & 72 74 ( 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, i begin, 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_n j_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 ) 77 79 78 80 IMPLICIT NONE … … 90 92 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref 91 93 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 94 INTEGER , OPTIONAL, INTENT(IN) :: i_index(:,:) 92 95 INTEGER , OPTIONAL, INTENT(IN) :: ibegin 93 96 INTEGER , OPTIONAL, INTENT(IN) :: iend 97 INTEGER , OPTIONAL, INTENT(IN) :: j_index(:,:) 94 98 INTEGER , OPTIONAL, INTENT(IN) :: jbegin 95 99 INTEGER , OPTIONAL, INTENT(IN) :: jend … … 118 122 CALL xios(set_domaingroup_attr_hdl_) & 119 123 ( 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, i begin, 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_n j_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 ) 124 128 125 129 END SUBROUTINE xios(set_domaingroup_attr_hdl) … … 127 131 SUBROUTINE xios(set_domaingroup_attr_hdl_) & 128 132 ( 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_, i begin_, iend_ &130 , jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_, nj_glo_ &131 , n vertex_, 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_ ) 133 137 134 138 IMPLICIT NONE … … 146 150 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref_ 147 151 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ 152 INTEGER , OPTIONAL, INTENT(IN) :: i_index_(:,:) 148 153 INTEGER , OPTIONAL, INTENT(IN) :: ibegin_ 149 154 INTEGER , OPTIONAL, INTENT(IN) :: iend_ 155 INTEGER , OPTIONAL, INTENT(IN) :: j_index_(:,:) 150 156 INTEGER , OPTIONAL, INTENT(IN) :: jbegin_ 151 157 INTEGER , OPTIONAL, INTENT(IN) :: jend_ … … 220 226 ENDIF 221 227 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 222 232 IF (PRESENT(ibegin_)) THEN 223 233 CALL cxios_set_domaingroup_ibegin(domaingroup_hdl%daddr, ibegin_) … … 226 236 IF (PRESENT(iend_)) THEN 227 237 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)) 228 242 ENDIF 229 243 … … 324 338 SUBROUTINE xios(get_domaingroup_attr) & 325 339 ( 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, i begin, 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_n j_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 ) 330 344 331 345 IMPLICIT NONE … … 344 358 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref 345 359 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 360 INTEGER , OPTIONAL, INTENT(OUT) :: i_index(:,:) 346 361 INTEGER , OPTIONAL, INTENT(OUT) :: ibegin 347 362 INTEGER , OPTIONAL, INTENT(OUT) :: iend 363 INTEGER , OPTIONAL, INTENT(OUT) :: j_index(:,:) 348 364 INTEGER , OPTIONAL, INTENT(OUT) :: jbegin 349 365 INTEGER , OPTIONAL, INTENT(OUT) :: jend … … 373 389 CALL xios(get_domaingroup_attr_hdl_) & 374 390 ( 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, i begin, 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_n j_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 ) 379 395 380 396 END SUBROUTINE xios(get_domaingroup_attr) … … 382 398 SUBROUTINE xios(get_domaingroup_attr_hdl) & 383 399 ( 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, i begin, 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_n j_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 ) 388 404 389 405 IMPLICIT NONE … … 401 417 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref 402 418 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 419 INTEGER , OPTIONAL, INTENT(OUT) :: i_index(:,:) 403 420 INTEGER , OPTIONAL, INTENT(OUT) :: ibegin 404 421 INTEGER , OPTIONAL, INTENT(OUT) :: iend 422 INTEGER , OPTIONAL, INTENT(OUT) :: j_index(:,:) 405 423 INTEGER , OPTIONAL, INTENT(OUT) :: jbegin 406 424 INTEGER , OPTIONAL, INTENT(OUT) :: jend … … 429 447 CALL xios(get_domaingroup_attr_hdl_) & 430 448 ( 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, i begin, 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_n j_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 ) 435 453 436 454 END SUBROUTINE xios(get_domaingroup_attr_hdl) … … 438 456 SUBROUTINE xios(get_domaingroup_attr_hdl_) & 439 457 ( 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_, i begin_, iend_ &441 , jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_, nj_glo_ &442 , n vertex_, 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_ ) 444 462 445 463 IMPLICIT NONE … … 457 475 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref_ 458 476 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ 477 INTEGER , OPTIONAL, INTENT(OUT) :: i_index_(:,:) 459 478 INTEGER , OPTIONAL, INTENT(OUT) :: ibegin_ 460 479 INTEGER , OPTIONAL, INTENT(OUT) :: iend_ 480 INTEGER , OPTIONAL, INTENT(OUT) :: j_index_(:,:) 461 481 INTEGER , OPTIONAL, INTENT(OUT) :: jbegin_ 462 482 INTEGER , OPTIONAL, INTENT(OUT) :: jend_ … … 531 551 ENDIF 532 552 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 533 557 IF (PRESENT(ibegin_)) THEN 534 558 CALL cxios_get_domaingroup_ibegin(domaingroup_hdl%daddr, ibegin_) … … 537 561 IF (PRESENT(iend_)) THEN 538 562 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)) 539 567 ENDIF 540 568 … … 635 663 SUBROUTINE xios(is_defined_domaingroup_attr) & 636 664 ( 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, i begin, 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_n j_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 ) 641 669 642 670 IMPLICIT NONE … … 667 695 LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 668 696 LOGICAL(KIND=C_BOOL) :: group_ref_tmp 697 LOGICAL, OPTIONAL, INTENT(OUT) :: i_index 698 LOGICAL(KIND=C_BOOL) :: i_index_tmp 669 699 LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin 670 700 LOGICAL(KIND=C_BOOL) :: ibegin_tmp 671 701 LOGICAL, OPTIONAL, INTENT(OUT) :: iend 672 702 LOGICAL(KIND=C_BOOL) :: iend_tmp 703 LOGICAL, OPTIONAL, INTENT(OUT) :: j_index 704 LOGICAL(KIND=C_BOOL) :: j_index_tmp 673 705 LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 674 706 LOGICAL(KIND=C_BOOL) :: jbegin_tmp … … 719 751 CALL xios(is_defined_domaingroup_attr_hdl_) & 720 752 ( 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, i begin, 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_n j_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 ) 725 757 726 758 END SUBROUTINE xios(is_defined_domaingroup_attr) … … 728 760 SUBROUTINE xios(is_defined_domaingroup_attr_hdl) & 729 761 ( 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, i begin, 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_n j_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 ) 734 766 735 767 IMPLICIT NONE … … 759 791 LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 760 792 LOGICAL(KIND=C_BOOL) :: group_ref_tmp 793 LOGICAL, OPTIONAL, INTENT(OUT) :: i_index 794 LOGICAL(KIND=C_BOOL) :: i_index_tmp 761 795 LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin 762 796 LOGICAL(KIND=C_BOOL) :: ibegin_tmp 763 797 LOGICAL, OPTIONAL, INTENT(OUT) :: iend 764 798 LOGICAL(KIND=C_BOOL) :: iend_tmp 799 LOGICAL, OPTIONAL, INTENT(OUT) :: j_index 800 LOGICAL(KIND=C_BOOL) :: j_index_tmp 765 801 LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 766 802 LOGICAL(KIND=C_BOOL) :: jbegin_tmp … … 810 846 CALL xios(is_defined_domaingroup_attr_hdl_) & 811 847 ( 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, i begin, 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_n j_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 ) 816 852 817 853 END SUBROUTINE xios(is_defined_domaingroup_attr_hdl) … … 819 855 SUBROUTINE xios(is_defined_domaingroup_attr_hdl_) & 820 856 ( 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_, i begin_, iend_ &822 , jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_, nj_glo_ &823 , n vertex_, 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_ ) 825 861 826 862 IMPLICIT NONE … … 850 886 LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref_ 851 887 LOGICAL(KIND=C_BOOL) :: group_ref__tmp 888 LOGICAL, OPTIONAL, INTENT(OUT) :: i_index_ 889 LOGICAL(KIND=C_BOOL) :: i_index__tmp 852 890 LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin_ 853 891 LOGICAL(KIND=C_BOOL) :: ibegin__tmp 854 892 LOGICAL, OPTIONAL, INTENT(OUT) :: iend_ 855 893 LOGICAL(KIND=C_BOOL) :: iend__tmp 894 LOGICAL, OPTIONAL, INTENT(OUT) :: j_index_ 895 LOGICAL(KIND=C_BOOL) :: j_index__tmp 856 896 LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin_ 857 897 LOGICAL(KIND=C_BOOL) :: jbegin__tmp … … 959 999 ENDIF 960 1000 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 961 1006 IF (PRESENT(ibegin_)) THEN 962 1007 ibegin__tmp=cxios_is_defined_domaingroup_ibegin(domaingroup_hdl%daddr) … … 969 1014 ENDIF 970 1015 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 971 1021 IF (PRESENT(jbegin_)) THEN 972 1022 jbegin__tmp=cxios_is_defined_domaingroup_jbegin(domaingroup_hdl%daddr) -
XIOS/trunk/src/node/domain.cpp
r456 r467 77 77 //---------------------------------------------------------------- 78 78 79 void CDomain::check GlobalDomain(void)79 void CDomain::checkDomain(void) 80 80 { 81 81 if (!type.isEmpty() && type==type_attr::unstructured) … … 93 93 if (!ibegin.isEmpty()) jbegin=ibegin ; 94 94 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 } 95 110 ni=1 ; 96 111 ibegin=1 ; 97 112 iend=1 ; 113 98 114 } 99 115 else if ((ni_glo.isEmpty() || ni_glo.getValue() <= 0 ) || … … 105 121 << " check the \'ni_glo\' et \'nj_glo\' values !") 106 122 } 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 107 140 } 108 141 … … 214 247 if (!mask.isEmpty()) 215 248 { 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)) 219 251 ERROR("CDomain::checkAttributes(void)", 220 252 <<"the mask has not the same size than the local domain"<<endl 221 <<"Local size is "<<ni u<<"x"<<nju<<endl253 <<"Local size is "<<ni<<"x"<<nj<<endl 222 254 <<"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++) 226 258 { 227 259 if (i < ibegin_mask && i > iend_mask && … … 423 455 for (int j = 0; j < zoom_nj_client; j++) 424 456 { 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 );427 457 lonvalue(i + j * zoom_ni_client) = lonvalue_temp( (i + zoom_ibegin_client-ibegin) + (j + zoom_jbegin_client -jbegin)*ni ); 428 458 latvalue(i + j * zoom_ni_client) = latvalue_temp( (i + zoom_ibegin_client - ibegin)+(j + zoom_jbegin_client - jbegin)*ni ); … … 431 461 for(int n=0;n<nvertex;n++) 432 462 { 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 );435 463 bounds_lon(n,i + j * zoom_ni_client) = bounds_lon_temp( n, (i + zoom_ibegin_client - ibegin) + (j + zoom_jbegin_client -jbegin)*ni ); 436 464 bounds_lat(n,i + j * zoom_ni_client) = bounds_lat_temp( n, (i + zoom_ibegin_client - ibegin)+(j + zoom_jbegin_client -jbegin)*ni ); … … 489 517 zoom_nj_client=zoom_jend_client-zoom_jbegin_client+1 ; 490 518 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 531 520 } 532 521 … … 552 541 CContext* context=CContext::getCurrent() ; 553 542 554 this->checkGlobalDomain(); 555 this->checkLocalIDomain(); 556 this->checkLocalJDomain(); 557 543 this->checkDomain(); 558 544 this->checkZoom(); 559 545 this->checkBounds(); … … 617 603 else client->sendEvent(event) ; 618 604 } 619 605 620 606 void CDomain::computeConnectedServer(void) 621 607 { 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 ; 635 612 636 613 CContext* context = CContext::getCurrent() ; … … 638 615 int nbServer=client->serverSize ; 639 616 640 /*641 // compute client zoom indices642 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 */654 617 // find how much client are connected to a server 655 618 int zoom_iend=zoom_ibegin+zoom_ni-1 ; 656 619 int zoom_jend=zoom_jbegin+zoom_nj-1 ; 657 620 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 ; 675 636 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) 689 642 { 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]++ ; 699 645 } 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) 701 666 { 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) ; 704 671 } 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 719 674 int nbConnectedServer=connectedServer.size() ; 675 720 676 int* recvCount=new int[client->clientSize] ; 721 677 int* displ=new int[client->clientSize] ; … … 744 700 delete [] recvBuff ; 745 701 } 746 702 703 747 704 void CDomain::sendLonLat(void) 748 705 { 706 int ns,n,i,j,ind,nv ; 749 707 CContext* context = CContext::getCurrent() ; 750 708 CContextClient* client=context->client ; … … 752 710 CEventClient event(getType(),EVENT_ID_LON_LAT) ; 753 711 754 int ib,ie,in ;755 int jb,je,jn ;756 757 712 list<shared_ptr<CMessage> > list_msg ; 758 713 list< CArray<int,1>* > list_indi,list_indj ; … … 762 717 for(int ns=0;ns<connectedServer.size();ns++) 763 718 { 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) 779 736 { 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++) 785 738 { 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); 791 741 } 792 indi(ind_loc)=i ;793 indj(ind_loc)=j ;794 742 } 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 796 747 list_indi.push_back(new CArray<int,1>(indi.copy())) ; 797 748 list_indj.push_back(new CArray<int,1>(indj.copy())) ; … … 818 769 for(list<CArray<double,1>* >::iterator it=list_lat.begin();it!=list_lat.end();it++) delete *it; 819 770 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; 821 772 822 773 } 774 823 775 824 776 bool CDomain::dispatchEvent(CEventServer& event) … … 860 812 861 813 buffer>>ni_srv>>ibegin_srv>>iend_srv>>nj_srv>>jbegin_srv>>jend_srv; 814 862 815 863 816 zoom_ibegin_srv = zoom_ibegin.getValue() > ibegin_srv ? zoom_ibegin.getValue() : ibegin_srv ; … … 874 827 zoom_jbegin_srv=1 ; zoom_jend_srv=0 ; zoom_nj_srv=0 ; 875 828 } 876 877 829 lonvalue_srv.resize(zoom_ni_srv*zoom_nj_srv) ; 878 830 lonvalue_srv = 0. ; … … 908 860 CArray<double,2> boundslon ; 909 861 CArray<double,2> boundslat ; 910 862 911 863 int type_int ; 912 864 buffer>>type_int>>isCurvilinear>>indi>>indj>>lon>>lat ; … … 915 867 916 868 int i,j,ind_srv ; 917 918 869 for(int ind=0;ind<indi.numElements();ind++) 919 870 { 920 871 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 ; 922 873 lonvalue_srv(ind_srv)=lon(ind) ; 923 874 latvalue_srv(ind_srv)=lat(ind) ; 924 875 if (hasBounds) 925 876 { 926 for(int n =0;n<nvertex;n++)877 for(int nv=0;nv<nvertex;nv++) 927 878 { 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) ; 930 881 } 931 882 } -
XIOS/trunk/src/node/domain.hpp
r449 r467 60 60 private : 61 61 62 void check GlobalDomain(void);62 void checkDomain(void); 63 63 64 64 void checkLocalIDomain(void); … … 102 102 103 103 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 ; 107 114 108 115 public : -
XIOS/trunk/src/node/grid.cpp
r435 r467 425 425 { 426 426 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] ;431 427 432 428 int i,j ; … … 434 430 for(int k=0;k<storeIndex_client.numElements();k++) 435 431 { 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++ ; 439 435 } 440 436 … … 448 444 for(int k=0;k<storeIndex_client.numElements();k++) 449 445 { 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) 453 449 { 454 450 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; 457 453 out_l(nb)=out_l_client(k) ; 458 454 nb++ ;
Note: See TracChangeset
for help on using the changeset viewer.