Changeset 836 for XIOS/trunk/src/interface
- Timestamp:
- 04/08/16 15:00:45 (8 years ago)
- Location:
- XIOS/trunk/src/interface
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/interface/c/icxml_tree.cpp
r835 r836 21 21 #include "domain.hpp" 22 22 #include "variable.hpp" 23 #include "zoom_domain.hpp" 24 #include "interpolate_domain.hpp" 25 #include "generate_rectilinear_domain.hpp" 26 #include "zoom_axis.hpp" 27 #include "interpolate_axis.hpp" 28 #include "inverse_axis.hpp" 23 29 24 30 extern "C" … … 48 54 typedef xios::CVariableGroup * XVariableGroupPtr; 49 55 56 typedef xios::CTransformation<CDomain> * XTransformationDomainPtr; 57 typedef xios::CZoomDomain * XZoomDomainPtr; 58 typedef xios::CInterpolateDomain * XInterpolateDomainPtr; 59 typedef xios::CGenerateRectilinearDomain * XGenerateRectilinearDomainPtr; 60 61 typedef xios::CTransformation<CAxis> * XTransformationAxisPtr; 62 typedef xios::CZoomAxis * XZoomAxisPtr; 63 typedef xios::CInterpolateAxis * XInterpolateAxisPtr; 64 typedef xios::CInverseAxis * XInverseAxisPtr; 65 50 66 // ----------------------- Ajout d'enfant à un parent ----------------------- 51 67 … … 339 355 *child_ = parent_->addDomain(); 340 356 } 357 CTimer::get("XIOS").suspend() ; 358 } 359 360 void cxios_xml_tree_add_zoomdomaintodomain 361 (XDomainPtr parent_, XZoomDomainPtr * child_, const char * child_id, int child_id_size) 362 { 363 std::string child_id_str; 364 XTransformationDomainPtr tmpChild_; 365 CTimer::get("XIOS").resume() ; 366 if (cstr2string(child_id, child_id_size, child_id_str)) 367 { 368 tmpChild_ = parent_->addTransformation(TRANS_ZOOM_DOMAIN, child_id_str); 369 } 370 else 371 { 372 tmpChild_ = parent_->addTransformation(TRANS_ZOOM_DOMAIN); 373 } 374 *child_ = static_cast<XZoomDomainPtr>(tmpChild_); 375 CTimer::get("XIOS").suspend() ; 376 } 377 378 void cxios_xml_tree_add_interpolatedomaintodomain 379 (XDomainPtr parent_, XInterpolateDomainPtr * child_, const char * child_id, int child_id_size) 380 { 381 std::string child_id_str; 382 XTransformationDomainPtr tmpChild_; 383 CTimer::get("XIOS").resume() ; 384 if (cstr2string(child_id, child_id_size, child_id_str)) 385 { 386 tmpChild_ = parent_->addTransformation(TRANS_INTERPOLATE_DOMAIN, child_id_str); 387 } 388 else 389 { 390 tmpChild_ = parent_->addTransformation(TRANS_INTERPOLATE_DOMAIN); 391 } 392 *child_ = static_cast<XInterpolateDomainPtr>(tmpChild_); 393 CTimer::get("XIOS").suspend() ; 394 } 395 396 void cxios_xml_tree_add_generatedomaintodomain 397 (XDomainPtr parent_, XGenerateRectilinearDomainPtr * child_, const char * child_id, int child_id_size) 398 { 399 std::string child_id_str; 400 XTransformationDomainPtr tmpChild_; 401 CTimer::get("XIOS").resume() ; 402 if (cstr2string(child_id, child_id_size, child_id_str)) 403 { 404 tmpChild_ = parent_->addTransformation(TRANS_GENERATE_RECTILINEAR_DOMAIN, child_id_str); 405 } 406 else 407 { 408 tmpChild_ = parent_->addTransformation(TRANS_GENERATE_RECTILINEAR_DOMAIN); 409 } 410 *child_ = static_cast<XGenerateRectilinearDomainPtr>(tmpChild_); 411 CTimer::get("XIOS").suspend() ; 412 } 413 414 void cxios_xml_tree_add_zoomaxistoaxis 415 (XAxisPtr parent_, XZoomAxisPtr * child_, const char * child_id, int child_id_size) 416 { 417 std::string child_id_str; 418 XTransformationAxisPtr tmpChild_; 419 CTimer::get("XIOS").resume() ; 420 if (cstr2string(child_id, child_id_size, child_id_str)) 421 { 422 tmpChild_ = parent_->addTransformation(TRANS_ZOOM_AXIS, child_id_str); 423 } 424 else 425 { 426 tmpChild_ = parent_->addTransformation(TRANS_ZOOM_AXIS); 427 } 428 *child_ = static_cast<XZoomAxisPtr>(tmpChild_); 429 CTimer::get("XIOS").suspend() ; 430 } 431 432 void cxios_xml_tree_add_interpolateaxistoaxis 433 (XAxisPtr parent_, XInterpolateAxisPtr * child_, const char * child_id, int child_id_size) 434 { 435 std::string child_id_str; 436 XTransformationAxisPtr tmpChild_; 437 CTimer::get("XIOS").resume() ; 438 if (cstr2string(child_id, child_id_size, child_id_str)) 439 { 440 tmpChild_ = parent_->addTransformation(TRANS_INTERPOLATE_AXIS, child_id_str); 441 } 442 else 443 { 444 tmpChild_ = parent_->addTransformation(TRANS_INTERPOLATE_AXIS); 445 } 446 *child_ = static_cast<XInterpolateAxisPtr>(tmpChild_); 447 CTimer::get("XIOS").suspend() ; 448 } 449 450 void cxios_xml_tree_add_inverseaxistoaxis 451 (XAxisPtr parent_, XInverseAxisPtr * child_, const char * child_id, int child_id_size) 452 { 453 std::string child_id_str; 454 XTransformationAxisPtr tmpChild_; 455 CTimer::get("XIOS").resume() ; 456 if (cstr2string(child_id, child_id_size, child_id_str)) 457 { 458 tmpChild_ = parent_->addTransformation(TRANS_INVERSE_AXIS, child_id_str); 459 } 460 else 461 { 462 tmpChild_ = parent_->addTransformation(TRANS_INVERSE_AXIS); 463 } 464 *child_ = static_cast<XInverseAxisPtr>(tmpChild_); 341 465 CTimer::get("XIOS").suspend() ; 342 466 } -
XIOS/trunk/src/interface/fortran/ixios_interfaces.F90
r835 r836 83 83 xios(add_axisgroup), xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup), & 84 84 xios(add_domaingroup), xios(add_fieldgrouptofile), xios(add_variablegrouptofile), & 85 xios(add_variablegrouptofield), xios(add_axistogrid), xios(add_domaintogrid) 85 xios(add_variablegrouptofield), xios(add_axistogrid), xios(add_domaintogrid), & 86 xios(add_zoomdomaintodomain), xios(add_interpolatedomaintodomain), & 87 xios(add_generatedomaintodomain), xios(add_zoomaxistoaxis), & 88 xios(add_interpolateaxistoaxis), xios(add_inverseaxistoaxis) 86 89 87 90 PRIVATE … … 136 139 xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup), xios(add_domaingroup), & 137 140 xios(add_fieldgrouptofile), xios(add_variablegrouptofile),xios(add_variablegrouptofield), & 138 xios(add_axistogrid), xios(add_domaintogrid) 141 xios(add_axistogrid), xios(add_domaintogrid), xios(add_zoomdomaintodomain), & 142 xios(add_interpolatedomaintodomain), xios(add_generatedomaintodomain), & 143 xios(add_zoomaxistoaxis), xios(add_interpolateaxistoaxis), xios(add_inverseaxistoaxis) 139 144 END INTERFACE xios(add_child) 140 145 -
XIOS/trunk/src/interface/fortran/ixml_tree.F90
r835 r836 9 9 USE IDOMAIN 10 10 USE IVARIABLE 11 USE IZOOM_DOMAIN 12 USE IINTERPOLATE_DOMAIN 13 USE IGENERATE_RECTILINEAR_DOMAIN 14 USE IZOOM_AXIS 15 USE IINTERPOLATE_AXIS 16 USE IINVERSE_AXIS 11 17 12 18 INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 … … 157 163 INTEGER (kind = C_INT) , VALUE :: child_id_size 158 164 END SUBROUTINE cxios_xml_tree_add_domaintogrid 165 166 SUBROUTINE cxios_xml_tree_add_zoomdomaintodomain(parent_, child_, child_id, child_id_size) BIND(C) 167 USE ISO_C_BINDING 168 INTEGER (kind = C_INTPTR_T), VALUE :: parent_ 169 INTEGER (kind = C_INTPTR_T) :: child_ 170 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id 171 INTEGER (kind = C_INT) , VALUE :: child_id_size 172 END SUBROUTINE cxios_xml_tree_add_zoomdomaintodomain 173 174 SUBROUTINE cxios_xml_tree_add_interpolatedomaintodomain(parent_, child_, child_id, child_id_size) BIND(C) 175 USE ISO_C_BINDING 176 INTEGER (kind = C_INTPTR_T), VALUE :: parent_ 177 INTEGER (kind = C_INTPTR_T) :: child_ 178 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id 179 INTEGER (kind = C_INT) , VALUE :: child_id_size 180 END SUBROUTINE cxios_xml_tree_add_interpolatedomaintodomain 181 182 SUBROUTINE cxios_xml_tree_add_generatedomaintodomain(parent_, child_, child_id, child_id_size) BIND(C) 183 USE ISO_C_BINDING 184 INTEGER (kind = C_INTPTR_T), VALUE :: parent_ 185 INTEGER (kind = C_INTPTR_T) :: child_ 186 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id 187 INTEGER (kind = C_INT) , VALUE :: child_id_size 188 END SUBROUTINE cxios_xml_tree_add_generatedomaintodomain 189 190 SUBROUTINE cxios_xml_tree_add_zoomaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C) 191 USE ISO_C_BINDING 192 INTEGER (kind = C_INTPTR_T), VALUE :: parent_ 193 INTEGER (kind = C_INTPTR_T) :: child_ 194 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id 195 INTEGER (kind = C_INT) , VALUE :: child_id_size 196 END SUBROUTINE cxios_xml_tree_add_zoomaxistoaxis 197 198 SUBROUTINE cxios_xml_tree_add_interpolateaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C) 199 USE ISO_C_BINDING 200 INTEGER (kind = C_INTPTR_T), VALUE :: parent_ 201 INTEGER (kind = C_INTPTR_T) :: child_ 202 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id 203 INTEGER (kind = C_INT) , VALUE :: child_id_size 204 END SUBROUTINE cxios_xml_tree_add_interpolateaxistoaxis 205 206 SUBROUTINE cxios_xml_tree_add_inverseaxistoaxis(parent_, child_, child_id, child_id_size) BIND(C) 207 USE ISO_C_BINDING 208 INTEGER (kind = C_INTPTR_T), VALUE :: parent_ 209 INTEGER (kind = C_INTPTR_T) :: child_ 210 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id 211 INTEGER (kind = C_INT) , VALUE :: child_id_size 212 END SUBROUTINE cxios_xml_tree_add_inverseaxistoaxis 159 213 160 214 SUBROUTINE cxios_xml_tree_show(filename, filename_size) BIND(C) … … 417 471 418 472 END SUBROUTINE xios(add_domaintogrid) 473 474 SUBROUTINE xios(add_zoomdomaintodomain)(parent_hdl, child_hdl, child_id) 475 TYPE(txios(domain)) , INTENT(IN) :: parent_hdl 476 TYPE(txios(zoom_domain)) , INTENT(OUT):: child_hdl 477 CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id 478 479 IF (PRESENT(child_id)) THEN 480 CALL cxios_xml_tree_add_zoomdomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 481 ELSE 482 CALL cxios_xml_tree_add_zoomdomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 483 END IF 484 485 END SUBROUTINE xios(add_zoomdomaintodomain) 486 487 SUBROUTINE xios(add_interpolatedomaintodomain)(parent_hdl, child_hdl, child_id) 488 TYPE(txios(domain)) , INTENT(IN) :: parent_hdl 489 TYPE(txios(interpolate_domain)) , INTENT(OUT):: child_hdl 490 CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id 491 492 IF (PRESENT(child_id)) THEN 493 CALL cxios_xml_tree_add_interpolatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 494 ELSE 495 CALL cxios_xml_tree_add_interpolatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 496 END IF 497 498 END SUBROUTINE xios(add_interpolatedomaintodomain) 499 500 SUBROUTINE xios(add_generatedomaintodomain)(parent_hdl, child_hdl, child_id) 501 TYPE(txios(domain)) , INTENT(IN) :: parent_hdl 502 TYPE(txios(generate_rectilinear_domain)) , INTENT(OUT):: child_hdl 503 CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id 504 505 IF (PRESENT(child_id)) THEN 506 CALL cxios_xml_tree_add_generatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 507 ELSE 508 CALL cxios_xml_tree_add_generatedomaintodomain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 509 END IF 510 511 END SUBROUTINE xios(add_generatedomaintodomain) 512 513 SUBROUTINE xios(add_zoomaxistoaxis)(parent_hdl, child_hdl, child_id) 514 TYPE(txios(axis)) , INTENT(IN) :: parent_hdl 515 TYPE(txios(zoom_axis)) , INTENT(OUT):: child_hdl 516 CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id 517 518 IF (PRESENT(child_id)) THEN 519 CALL cxios_xml_tree_add_zoomaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 520 ELSE 521 CALL cxios_xml_tree_add_zoomaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 522 END IF 523 524 END SUBROUTINE xios(add_zoomaxistoaxis) 525 526 SUBROUTINE xios(add_interpolateaxistoaxis)(parent_hdl, child_hdl, child_id) 527 TYPE(txios(axis)) , INTENT(IN) :: parent_hdl 528 TYPE(txios(interpolate_axis)) , INTENT(OUT):: child_hdl 529 CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id 530 531 IF (PRESENT(child_id)) THEN 532 CALL cxios_xml_tree_add_interpolateaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 533 ELSE 534 CALL cxios_xml_tree_add_interpolateaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 535 END IF 536 537 END SUBROUTINE xios(add_interpolateaxistoaxis) 538 539 SUBROUTINE xios(add_inverseaxistoaxis)(parent_hdl, child_hdl, child_id) 540 TYPE(txios(axis)) , INTENT(IN) :: parent_hdl 541 TYPE(txios(zoom_axis)) , INTENT(OUT):: child_hdl 542 CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id 543 544 IF (PRESENT(child_id)) THEN 545 CALL cxios_xml_tree_add_inverseaxistoaxis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 546 ELSE 547 CALL cxios_xml_tree_add_inverseaxistoaxis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 548 END IF 549 550 END SUBROUTINE xios(add_inverseaxistoaxis) 419 551 END MODULE IXML_TREE
Note: See TracChangeset
for help on using the changeset viewer.