Changeset 40 for XMLIO_SERVER/trunk/src/IOSERVER/mod_pack.f90
- Timestamp:
- 09/17/09 10:02:37 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_SERVER/trunk/src/IOSERVER/mod_pack.f90
r8 r40 9 9 pack_i,pack_i1,pack_i2,pack_i3,pack_i4, & 10 10 pack_l,pack_l1,pack_l2,pack_l3,pack_l4, & 11 pack_c,pack_c1,pack_c2,pack_c3,pack_c4 11 pack_c,pack_c1,pack_c2,pack_c3,pack_c4, & 12 pack_attr 12 13 END INTERFACE pack 13 14 … … 16 17 unpack_i,unpack_i1,unpack_i2,unpack_i3,unpack_i4, & 17 18 unpack_l,unpack_l1,unpack_l2,unpack_l3,unpack_l4, & 18 unpack_c,unpack_c1,unpack_c2,unpack_c3,unpack_c4 19 unpack_c,unpack_c1,unpack_c2,unpack_c3,unpack_c4, & 20 unpack_attr 19 21 END INTERFACE unpack 20 22 … … 466 468 END SUBROUTINE unpack_field4 467 469 470 SUBROUTINE pack_attr(attrib) 471 USE mod_attribut 472 USE mod_stdtype 473 IMPLICIT NONE 474 TYPE(attribut) :: attrib 475 476 CALL pack(attrib%object) 477 CALL pack(attrib%name) 478 CALL pack(attrib%type) 479 CALL pack(attrib%dim) 480 CALL pack(attrib%ndim) 481 CALL pack(attrib%string_len) 482 483 SELECT CASE(attrib%type) 484 CASE (integer0) 485 CALL pack(attrib%integer0_ptr) 486 CASE (integer1) 487 CALL pack(attrib%integer1_ptr) 488 CASE (integer2) 489 CALL pack(attrib%integer2_ptr) 490 CASE (real0) 491 CALL pack(attrib%real0_ptr) 492 CASE (real1) 493 CALL pack(attrib%real1_ptr) 494 CASE (real2) 495 CALL pack(attrib%real2_ptr) 496 CASE (logical0) 497 CALL pack(attrib%logical0_ptr) 498 CASE (logical1) 499 CALL pack(attrib%logical1_ptr) 500 CASE (logical2) 501 CALL pack(attrib%logical2_ptr) 502 CASE (string0) 503 CALL pack_string0(attrib%string0_ptr) 504 CASE (string1) 505 CALL pack_string1(attrib%string1_ptr) 506 CASE (string2) 507 CALL pack(attrib%string2_ptr) 508 END SELECT 509 510 CONTAINS 511 512 SUBROUTINE pack_string0(str) 513 CHARACTER(LEN=attrib%string_len) ::str 514 CALL pack(str) 515 END SUBROUTINE 516 517 SUBROUTINE pack_string1(str) 518 CHARACTER(LEN=attrib%string_len) ::str(:) 519 CALL pack(str) 520 END SUBROUTINE 521 522 SUBROUTINE pack_string2(str) 523 CHARACTER(LEN=attrib%string_len) ::str(:,:) 524 CALL pack(str) 525 END SUBROUTINE 526 527 END SUBROUTINE pack_attr 528 529 SUBROUTINE unpack_attr(attrib) 530 USE mod_attribut 531 USE mod_stdtype 532 IMPLICIT NONE 533 TYPE(attribut) :: attrib 534 535 CALL unpack(attrib%object) 536 CALL unpack(attrib%name) 537 CALL unpack(attrib%type) 538 CALL unpack(attrib%dim) 539 CALL unpack(attrib%ndim) 540 CALL unpack(attrib%string_len) 541 542 SELECT CASE(attrib%type) 543 CASE (integer0) 544 ALLOCATE(attrib%integer0_ptr) 545 CALL unpack(attrib%integer0_ptr) 546 CASE (integer1) 547 ALLOCATE(attrib%integer1_ptr(attrib%dim(1))) 548 CALL unpack(attrib%integer1_ptr) 549 CASE (integer2) 550 ALLOCATE(attrib%integer2_ptr(attrib%dim(1),attrib%dim(2))) 551 CALL unpack(attrib%integer2_ptr) 552 CASE (real0) 553 ALLOCATE(attrib%real0_ptr) 554 CALL unpack(attrib%real0_ptr) 555 CASE (real1) 556 ALLOCATE(attrib%real1_ptr(attrib%dim(1))) 557 CALL unpack(attrib%real1_ptr) 558 CASE (real2) 559 ALLOCATE(attrib%real2_ptr(attrib%dim(1),attrib%dim(2))) 560 CASE (logical0) 561 ALLOCATE(attrib%logical0_ptr) 562 CALL unpack(attrib%logical0_ptr) 563 CASE (logical1) 564 ALLOCATE(attrib%logical1_ptr(attrib%dim(1))) 565 CALL unpack(attrib%logical1_ptr) 566 CASE (logical2) 567 ALLOCATE(attrib%logical2_ptr(attrib%dim(1),attrib%dim(2))) 568 CALL unpack(attrib%logical2_ptr) 569 CASE (string0) 570 ALLOCATE(attrib%string0_ptr) 571 CALL unpack_string0 572 CASE (string1) 573 ALLOCATE(attrib%string1_ptr(attrib%dim(1))) 574 CALL unpack_string1 575 CASE (string2) 576 ALLOCATE(attrib%string2_ptr(attrib%dim(1),attrib%dim(2))) 577 CALL unpack_string2 578 END SELECT 579 580 CONTAINS 581 582 SUBROUTINE unpack_string0 583 CHARACTER(LEN=attrib%string_len) ::str 584 CALL unpack(str) 585 attrib%string0_ptr=str 586 END SUBROUTINE 587 588 SUBROUTINE unpack_string1 589 CHARACTER(LEN=attrib%string_len) ::str(attrib%dim(1)) 590 CALL unpack(str) 591 attrib%string1_ptr=str 592 END SUBROUTINE 593 594 SUBROUTINE unpack_string2 595 CHARACTER(LEN=attrib%string_len) ::str(attrib%dim(1),attrib%dim(2)) 596 CALL unpack(str) 597 attrib%string2_ptr=str 598 END SUBROUTINE 599 600 END SUBROUTINE unpack_attr 601 602 468 603 END MODULE mod_pack
Note: See TracChangeset
for help on using the changeset viewer.