Changeset 674 for XIOS/trunk/src/generate_interface_impl.hpp
- Timestamp:
- 08/25/15 10:50:21 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/generate_interface_impl.hpp
r672 r674 378 378 string typeName=getStrType<T>(); \ 379 379 \ 380 oss << "void cxios_set_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int extent1)" << iendl; \380 oss << "void cxios_set_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int* extent)" << iendl; \ 381 381 oss << "{" << iendl; \ 382 382 oss << " CTimer::get(\"XIOS\").resume();" << iendl; \ 383 oss << " CArray<" << typeName << ",1> tmp(" << name << ", shape(extent 1), neverDeleteData);" << iendl; \383 oss << " CArray<" << typeName << ",1> tmp(" << name << ", shape(extent[0]), neverDeleteData);" << iendl; \ 384 384 oss << " " << className << "_hdl->" << name << ".reference(tmp.copy());" << iendl; \ 385 385 /*oss << " " << className << "_hdl->sendAttributToServer(" << className << "_hdl->" << name << ");" << iendl;*/ \ … … 387 387 oss << "}" << std::endl; \ 388 388 oss << iendl; \ 389 oss << "void cxios_get_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int extent1)" << iendl; \389 oss << "void cxios_get_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int* extent)" << iendl; \ 390 390 oss << "{" << iendl; \ 391 391 oss << " CTimer::get(\"XIOS\").resume();" << iendl; \ 392 oss << " CArray<" << typeName << ",1> tmp(" << name << ", shape(extent 1), neverDeleteData);" << iendl; \392 oss << " CArray<" << typeName << ",1> tmp(" << name << ", shape(extent[0]), neverDeleteData);" << iendl; \ 393 393 oss << " tmp=" << className << "_hdl->" << name << ".getInheritedValue();" << iendl; \ 394 394 oss << " CTimer::get(\"XIOS\").suspend();" << iendl; \ … … 401 401 string typeName=getStrType<T>(); \ 402 402 \ 403 oss << "void cxios_set_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int extent1, int extent2)" << iendl; \403 oss << "void cxios_set_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int* extent)" << iendl; \ 404 404 oss << "{" << iendl; \ 405 405 oss << " CTimer::get(\"XIOS\").resume();" << iendl; \ 406 oss << " CArray<" << typeName << ",2> tmp(" << name << ", shape(extent 1, extent2), neverDeleteData);" << iendl; \406 oss << " CArray<" << typeName << ",2> tmp(" << name << ", shape(extent[0], extent[1]), neverDeleteData);" << iendl; \ 407 407 oss << " " << className << "_hdl->" << name << ".reference(tmp.copy());" << iendl; \ 408 408 /*oss << " " << className << "_hdl->sendAttributToServer(" << className << "_hdl->" << name << ");" << iendl;*/ \ … … 410 410 oss << "}" << std::endl; \ 411 411 oss << iendl; \ 412 oss << "void cxios_get_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int extent1, int extent2)" << iendl; \412 oss << "void cxios_get_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int* extent)" << iendl; \ 413 413 oss << "{" << iendl; \ 414 414 oss << " CTimer::get(\"XIOS\").resume();" << iendl; \ 415 oss << " CArray<" << typeName << ",2> tmp(" << name << ", shape(extent 1, extent2), neverDeleteData);" << iendl; \415 oss << " CArray<" << typeName << ",2> tmp(" << name << ", shape(extent[0], extent[1]), neverDeleteData);" << iendl; \ 416 416 oss << " tmp=" << className << "_hdl->" << name << ".getInheritedValue();" << iendl; \ 417 417 oss << " CTimer::get(\"XIOS\").suspend();" << iendl; \ … … 424 424 string typeName=getStrType<T>(); \ 425 425 \ 426 oss << "void cxios_set_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int extent1, int extent2, int extent3)" << iendl; \426 oss << "void cxios_set_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int* extent)" << iendl; \ 427 427 oss << "{" << iendl; \ 428 428 oss << " CTimer::get(\"XIOS\").resume();" << iendl; \ 429 oss << " CArray<" << typeName << ",3> tmp(" << name << ", shape(extent 1, extent2, extent3), neverDeleteData);" << iendl; \429 oss << " CArray<" << typeName << ",3> tmp(" << name << ", shape(extent[0], extent[1], extent[2]), neverDeleteData);" << iendl; \ 430 430 oss << " " << className << "_hdl->" << name << ".reference(tmp.copy());" << iendl; \ 431 431 /*oss << " " << className << "_hdl->sendAttributToServer(" << className << "_hdl->" << name << ");" << iendl;*/ \ … … 433 433 oss << "}" << std::endl; \ 434 434 oss << iendl; \ 435 oss << "void cxios_get_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int extent1, int extent2, int extent3)" << iendl; \435 oss << "void cxios_get_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int* extent)" << iendl; \ 436 436 oss << "{" << iendl; \ 437 437 oss << " CTimer::get(\"XIOS\").resume();" << iendl; \ 438 oss << " CArray<" << typeName << ",3> tmp(" << name << ", shape(extent 1, extent2, extent3), neverDeleteData);" << iendl; \438 oss << " CArray<" << typeName << ",3> tmp(" << name << ", shape(extent[0], extent[1], extent[2]), neverDeleteData);" << iendl; \ 439 439 oss << " tmp=" << className << "_hdl->" << name << ".getInheritedValue();" << iendl; \ 440 440 oss << " CTimer::get(\"XIOS\").suspend();" << iendl; \ … … 459 459 string fortranKindC=getStrFortranKindC<T>(); \ 460 460 \ 461 oss << "SUBROUTINE cxios_set_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent 1) BIND(C)" << iendl; \461 oss << "SUBROUTINE cxios_set_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent) BIND(C)" << iendl; \ 462 462 oss << " USE ISO_C_BINDING" << iendl; \ 463 463 oss << " INTEGER (kind = C_INTPTR_T), VALUE :: " << className << "_hdl" << iendl; \ 464 464 oss << " " << fortranType << " " << fortranKindC << " , DIMENSION(*) :: " << name << iendl; \ 465 oss << " INTEGER (kind = C_INT), VALUE :: extent1" << iendl; \465 oss << " INTEGER (kind = C_INT), DIMENSION(*) :: extent" << iendl; \ 466 466 oss << "END SUBROUTINE cxios_set_" << className << "_" << name << std::endl; \ 467 467 oss << iendl; \ 468 oss << "SUBROUTINE cxios_get_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent 1) BIND(C)" << iendl; \468 oss << "SUBROUTINE cxios_get_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent) BIND(C)" << iendl; \ 469 469 oss << " USE ISO_C_BINDING" << iendl; \ 470 470 oss << " INTEGER (kind = C_INTPTR_T), VALUE :: " << className << "_hdl" << iendl; \ 471 471 oss << " " << fortranType << " " << fortranKindC << " , DIMENSION(*) :: " << name << iendl; \ 472 oss << " INTEGER (kind = C_INT), VALUE :: extent1" << iendl; \472 oss << " INTEGER (kind = C_INT), DIMENSION(*) :: extent" << iendl; \ 473 473 oss << "END SUBROUTINE cxios_get_" << className << "_" << name << std::endl; \ 474 474 } \ … … 480 480 string fortranKindC=getStrFortranKindC<T>(); \ 481 481 \ 482 oss << "SUBROUTINE cxios_set_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent 1, extent2) BIND(C)" << iendl; \482 oss << "SUBROUTINE cxios_set_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent) BIND(C)" << iendl; \ 483 483 oss << " USE ISO_C_BINDING" << iendl; \ 484 484 oss << " INTEGER (kind = C_INTPTR_T), VALUE :: " << className << "_hdl" << iendl; \ 485 485 oss << " " << fortranType << " " << fortranKindC << " , DIMENSION(*) :: " << name << iendl; \ 486 oss << " INTEGER (kind = C_INT), VALUE :: extent1" << iendl; \ 487 oss << " INTEGER (kind = C_INT), VALUE :: extent2" << iendl; \ 486 oss << " INTEGER (kind = C_INT), DIMENSION(*) :: extent" << iendl; \ 488 487 oss << "END SUBROUTINE cxios_set_" << className << "_" << name << std::endl; \ 489 488 oss << iendl; \ 490 oss << "SUBROUTINE cxios_get_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent 1, extent2) BIND(C)" << iendl; \489 oss << "SUBROUTINE cxios_get_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent) BIND(C)" << iendl; \ 491 490 oss << " USE ISO_C_BINDING" << iendl; \ 492 491 oss << " INTEGER (kind = C_INTPTR_T), VALUE :: " << className << "_hdl" << iendl; \ 493 492 oss << " " << fortranType << " " << fortranKindC << " , DIMENSION(*) :: " << name << iendl; \ 494 oss << " INTEGER (kind = C_INT), VALUE :: extent1" << iendl; \ 495 oss << " INTEGER (kind = C_INT), VALUE :: extent2" << iendl; \ 493 oss << " INTEGER (kind = C_INT), DIMENSION(*) :: extent" << iendl; \ 496 494 oss << "END SUBROUTINE cxios_get_" << className << "_" << name << std::endl; \ 497 495 } \ … … 503 501 string fortranKindC=getStrFortranKindC<T>(); \ 504 502 \ 505 oss << "SUBROUTINE cxios_set_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent 1, extent2, extent3) BIND(C)" << iendl; \503 oss << "SUBROUTINE cxios_set_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent) BIND(C)" << iendl; \ 506 504 oss << " USE ISO_C_BINDING" << iendl; \ 507 505 oss << " INTEGER (kind = C_INTPTR_T), VALUE :: " << className << "_hdl" << iendl; \ 508 506 oss << " " << fortranType << " " << fortranKindC << " , DIMENSION(*) :: " << name << iendl; \ 509 oss << " INTEGER (kind = C_INT), VALUE :: extent1" << iendl; \ 510 oss << " INTEGER (kind = C_INT), VALUE :: extent2" << iendl; \ 511 oss << " INTEGER (kind = C_INT), VALUE :: extent3" << iendl; \ 507 oss << " INTEGER (kind = C_INT), DIMENSION(*) :: extent" << iendl; \ 512 508 oss << "END SUBROUTINE cxios_set_" << className << "_" << name << std::endl; \ 513 509 oss << iendl; \ 514 oss << "SUBROUTINE cxios_get_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent 1, extent2, extent3) BIND(C)" << iendl; \510 oss << "SUBROUTINE cxios_get_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent) BIND(C)" << iendl; \ 515 511 oss << " USE ISO_C_BINDING" << iendl; \ 516 512 oss << " INTEGER (kind = C_INTPTR_T), VALUE :: " << className << "_hdl" << iendl; \ 517 513 oss << " " << fortranType << " " << fortranKindC << " , DIMENSION(*) :: " << name << iendl; \ 518 oss << " INTEGER (kind = C_INT), VALUE :: extent1" << iendl; \ 519 oss << " INTEGER (kind = C_INT), VALUE :: extent2" << iendl; \ 520 oss << " INTEGER (kind = C_INT), VALUE :: extent3" << iendl; \ 514 oss << " INTEGER (kind = C_INT), DIMENSION(*) :: extent" << iendl; \ 521 515 oss << "END SUBROUTINE cxios_get_" << className << "_" << name << std::endl; \ 522 516 } … … 585 579 if (!matchingTypeCFortran<T>()) \ 586 580 { \ 587 oss << " ALLOCATE(" << name_tmp << "( size(" << name << "_,1)))" << iendl; \581 oss << " ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1)))" << iendl; \ 588 582 oss << " " << name_tmp << " = " << name << "_" << iendl; \ 589 oss << " CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", size(" << name << "_,1))" << iendl; \583 oss << " CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 590 584 } \ 591 else oss << " CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, size(" << name << "_,1))" << iendl; \585 else oss << " CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, SHAPE(" << name << "_))" << iendl; \ 592 586 oss << "ENDIF"; \ 593 587 } \ … … 601 595 if (!matchingTypeCFortran<T>()) \ 602 596 { \ 603 oss << " ALLOCATE(" << name_tmp << "( size(" << name << "_,1), size(" << name << "_,2)))" << iendl; \597 oss << " ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1), SIZE(" << name << "_,2)))" << iendl; \ 604 598 oss << " " << name_tmp << " = " << name << "_" << iendl; \ 605 oss << " CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", size(" << name << "_,1), size(" << name << "_,2))" << iendl; \599 oss << " CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 606 600 } \ 607 else oss << " CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, size(" << name << "_,1), size(" << name << "_,2))" << iendl; \601 else oss << " CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, SHAPE(" << name << "_))" << iendl; \ 608 602 oss << "ENDIF"; \ 609 603 } \ … … 617 611 if (!matchingTypeCFortran<T>()) \ 618 612 { \ 619 oss << " ALLOCATE(" << name_tmp << "( size(" << name << "_,1), size(" << name << "_,2), size(" << name << "_,3)))" << iendl; \613 oss << " ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1), SIZE(" << name << "_,2), SIZE(" << name << "_,3)))" << iendl; \ 620 614 oss << " " << name_tmp << " = " << name << "_" << iendl; \ 621 oss << " CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", size(" << name << "_,1), size(" << name << "_,2), size(" << name << "_,3))" << iendl; \615 oss << " CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 622 616 } \ 623 else oss << " CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, size(" << name << "_,1), size(" << name << "_,2), size(" << name << "_,3))" << iendl; \617 else oss << " CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, SHAPE(" << name << "_))" << iendl; \ 624 618 oss << "ENDIF"; \ 625 619 } … … 640 634 if (!matchingTypeCFortran<T>()) \ 641 635 { \ 642 oss << " ALLOCATE(" << name_tmp << "( size(" << name << "_,1)))" << iendl; \643 oss << " CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", size(" << name << "_,1))" << iendl; \636 oss << " ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1)))" << iendl; \ 637 oss << " CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 644 638 oss << " " << name << "_ = " << name_tmp << iendl; \ 645 639 } \ 646 else oss << " CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, size(" << name << "_,1))" << iendl; \640 else oss << " CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, SHAPE(" << name << "_))" << iendl; \ 647 641 oss << "ENDIF"; \ 648 642 } \ … … 656 650 if (!matchingTypeCFortran<T>()) \ 657 651 { \ 658 oss << " ALLOCATE(" << name_tmp << "( size(" << name << "_,1), size(" << name << "_,2)))" << iendl; \659 oss << " CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", size(" << name << "_,1), size(" << name << "_,2))" << iendl; \652 oss << " ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1), SIZE(" << name << "_,2)))" << iendl; \ 653 oss << " CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 660 654 oss << " " << name << "_ = " << name_tmp << iendl; \ 661 655 } \ 662 else oss << " CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, size(" << name << "_,1), size(" << name << "_,2))" << iendl; \656 else oss << " CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, SHAPE(" << name << "_))" << iendl; \ 663 657 oss << "ENDIF"; \ 664 658 } \ … … 672 666 if (!matchingTypeCFortran<T>()) \ 673 667 { \ 674 oss << " ALLOCATE(" << name_tmp << "( size(" << name << "_,1), size(" << name << "_,2), size(" << name << "_,3)))" << iendl; \675 oss << " CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", size(" << name << "_,1), size(" << name << "_,2), size(" << name << "_,3))" << iendl; \668 oss << " ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1), SIZE(" << name << "_,2), SIZE(" << name << "_,3)))" << iendl; \ 669 oss << " CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 676 670 oss << " " << name << "_ = " << name_tmp << iendl; \ 677 671 } \ 678 else oss << " CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, size(" << name << "_,1), size(" << name << "_,2), size(" << name << "_,3))" << iendl; \672 else oss << " CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, SHAPE(" << name << "_))" << iendl; \ 679 673 oss << "ENDIF"; \ 680 674 }
Note: See TracChangeset
for help on using the changeset viewer.