@@ -12,6 +12,9 @@ program sameloc
1212 integer ,dimension (9 ,10 ),codimension[* ] :: m
1313 integer ,dimension (10 ) :: t
1414 integer :: i,j
15+ logical :: tests_passed
16+
17+ tests_passed = .true.
1518
1619 a = 10
1720 b(1 :5 ) = 1
@@ -36,9 +39,11 @@ program sameloc
3639 if (this_image() == 1 ) then
3740 c = m(1 ,:)[1 ]
3841 if (any (c(:) /= t(:))) then
39- call abort()
42+ tests_passed = .false.
43+ error stop " get row failed"
4044 else
41- write (* ,* ) ' ok get row'
45+ tests_passed = tests_passed .and. .true.
46+ write (* ,* ) ' ok get row'
4247 endif
4348 endif
4449
@@ -48,12 +53,15 @@ program sameloc
4853 do i= 1 ,10
4954 if (m(9 ,i)[1 ] /= t(i)) then
5055 write (* ,* ) ' pos' ,i,' value get' ,m(9 ,i)[1 ],' value t' ,t(i)
51- call abort()
56+ tests_passed = .false.
57+ error stop " get element from matrix failed"
58+ else
59+ tests_passed = tests_passed .and. .true.
5260 endif
5361 enddo
5462 endif
5563
56- if (this_image() == 1 ) write (* ,* ) ' Ok get element from matrix'
64+ if (this_image() == 1 ) write (* ,* ) ' Ok get element from matrix'
5765
5866 sync all
5967
@@ -64,12 +72,15 @@ program sameloc
6472 m(9 ,i)[1 ] = i
6573 if (m(9 ,i)[1 ] /= t(i)) then
6674 write (* ,* ) ' pos' ,i,' value get' ,m(9 ,i)[1 ],' value t' ,t(i)
67- call abort()
75+ tests_passed = .false.
76+ error stop " put element from matrix failed"
77+ else
78+ tests_passed = tests_passed .and. .true.
6879 endif
6980 enddo
7081 endif
7182
72- if (this_image() == 1 ) write (* ,* ) ' Ok put element from matrix'
83+ if (this_image() == 1 ) write (* ,* ) ' Ok put element from matrix'
7384
7485 t(:) = b(:)
7586 t(1 :5 ) = b(2 :6 )
@@ -82,8 +93,10 @@ program sameloc
8293 if (this_image() == 1 ) then
8394 b(1 :5 )[1 ] = b(2 :6 )
8495 if (any (b(:) /= t(:))) then
85- call abort()
96+ tests_passed = .false.
97+ error stop " put overlapped failed"
8698 else
99+ tests_passed = tests_passed .and. .true.
87100 write (* ,* ) ' OK put overlapped'
88101 endif
89102 endif
@@ -96,8 +109,10 @@ program sameloc
96109 if (this_image() == 1 ) then
97110 b(1 :5 )[1 ] = b(2 :6 )[1 ]
98111 if (any (b(:) /= t(:))) then
99- call abort()
112+ tests_passed = .false.
113+ error stop " putget overlapped failed"
100114 else
115+ tests_passed = tests_passed .and. .true.
101116 write (* ,* ) ' OK putget overlapped'
102117 endif
103118 endif
@@ -110,11 +125,13 @@ program sameloc
110125 if (this_image() == 1 ) then
111126 c(10 :1 :- 1 )[1 ] = c(:)
112127 if (any (t(:) /= c(:))) then
128+ tests_passed = .false.
113129 write (* ,* ) ' Error in put reversed'
114130 write (* ,* ) c
115131 write (* ,* ) t
116- call abort()
132+ error stop " put reversed failed "
117133 else
134+ tests_passed = tests_passed .and. .true.
118135 write (* ,* ) ' OK put reversed'
119136 endif
120137 endif
@@ -128,12 +145,24 @@ program sameloc
128145 if (this_image() == 1 ) then
129146 c(:) = c(10 :1 :- 1 )[1 ]
130147 if (any (t(:) /= c(:))) then
148+ tests_passed = .false.
131149 write (* ,* ) c
132150 write (* ,* ) t
133- call abort()
151+ error stop " get reversed failed "
134152 else
153+ tests_passed = tests_passed .and. .true.
135154 write (* ,* ) ' OK get reversed'
136155 endif
137156 endif
138157
158+ if ( .not. tests_passed ) then
159+ error stop " Test failures exist!"
160+ end if
161+
162+ sync all
163+
164+ if ( tests_passed ) then
165+ if (this_image() == 1 ) write (* ,* ) ' Test passed'
166+ end if
167+
139168end program
0 commit comments