Changeset 364 for codes/icosagcm/trunk/src/transfert_mpi.f90
- Timestamp:
- 10/09/15 16:13:43 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/transfert_mpi.f90
r358 r364 61 61 62 62 TYPE t_message 63 CHARACTER(LEN=100) :: name ! for debug 63 64 TYPE(t_request), POINTER :: request(:) 64 65 INTEGER :: nreq … … 72 73 LOGICAL :: completed 73 74 LOGICAL :: pending 75 LOGICAL :: open ! for debug 74 76 INTEGER :: number 75 77 END TYPE t_message … … 816 818 817 819 818 SUBROUTINE init_message_seq(field, request, message )820 SUBROUTINE init_message_seq(field, request, message, name) 819 821 USE field_mod 820 822 USE domain_mod … … 826 828 TYPE(t_request),POINTER :: request(:) 827 829 TYPE(t_message) :: message 828 830 CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: name 829 831 !$OMP MASTER 830 832 message%request=>request 833 IF(PRESENT(name)) THEN 834 message%name = TRIM(name) 835 ELSE 836 message%name = 'unknown' 837 END IF 831 838 !$OMP END MASTER 832 839 !$OMP BARRIER … … 879 886 880 887 881 SUBROUTINE init_message_mpi(field,request, message )888 SUBROUTINE init_message_mpi(field,request, message, name) 882 889 USE field_mod 883 890 USE domain_mod … … 890 897 TYPE(t_request),POINTER :: request(:) 891 898 TYPE(t_message) :: message 899 CHARACTER(LEN=*), INTENT(IN),OPTIONAL :: name 892 900 893 901 TYPE(ARRAY),POINTER :: recv,send … … 904 912 !$OMP BARRIER 905 913 !$OMP MASTER 914 IF(PRESENT(name)) THEN 915 message%name = TRIM(name) 916 ELSE 917 message%name = 'unknown' 918 END IF 906 919 message%number=message_number 907 920 message_number=message_number+1 … … 921 934 message%pending=.FALSE. 922 935 message%completed=.FALSE. 923 936 message%open=.FALSE. 937 924 938 DO ind=1,ndomain 925 939 req=>request(ind) … … 1046 1060 ENDIF 1047 1061 1048 1062 DEALLOCATE(message%mpi_req) 1063 DEALLOCATE(message%buffers) 1064 DEALLOCATE(message%status) 1049 1065 1050 1066 !$OMP END MASTER … … 1112 1128 1113 1129 !$OMP MASTER 1130 IF(message%open) THEN 1131 PRINT *, 'send_message_mpi : message ' // TRIM(message%name) // & 1132 ' is still open, no call to wait_message_mpi after last send_message_mpi' 1133 CALL ABORT 1134 END IF 1135 message%open=.TRUE. ! will be set to .FALSE. by wait_message_mpi 1136 1114 1137 message%field=>field 1115 1138 … … 1461 1484 INTEGER :: offset 1462 1485 1486 message%open=.FALSE. 1463 1487 IF (.NOT. message%pending) RETURN 1464 1488
Note: See TracChangeset
for help on using the changeset viewer.