| ! { dg-do run } |
| ! |
| ! PR fortran/112371 |
| ! The library used to incorrectly set an extent of zero for the first |
| ! dimension of the resulting array of a reduction function if that array was |
| ! empty. |
| |
| program p |
| implicit none |
| call check_iparity |
| call check_sum |
| call check_minloc_int |
| call check_minloc_char |
| call check_maxloc_char4 |
| call check_minval_char |
| call check_maxval_char4 |
| call check_any |
| call check_count4 |
| call check_findloc_int |
| call check_findloc_char |
| contains |
| subroutine check_iparity |
| integer :: a(9,3,0,7) |
| logical :: m1(9,3,0,7) |
| logical(kind=4) :: m4 |
| integer :: i |
| integer, allocatable :: r(:,:,:) |
| a = reshape((/ integer:: /), shape(a)) |
| m1 = reshape((/ logical:: /), shape(m1)) |
| m4 = .false. |
| i = 1 |
| r = iparity(a, dim=i) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 111 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 112 |
| i = 2 |
| r = iparity(a, dim=i) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 113 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 114 |
| i = 3 |
| r = iparity(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 115 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 116 |
| i = 4 |
| r = iparity(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 117 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 118 |
| i = 1 |
| r = iparity(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 121 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 122 |
| i = 2 |
| r = iparity(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 123 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 124 |
| i = 3 |
| r = iparity(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 125 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 126 |
| i = 4 |
| r = iparity(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 127 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 128 |
| i = 1 |
| r = iparity(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 131 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 132 |
| i = 2 |
| r = iparity(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 133 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 134 |
| i = 3 |
| r = iparity(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 135 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 136 |
| i = 4 |
| r = iparity(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 137 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 138 |
| end subroutine |
| subroutine check_sum |
| integer :: a(9,3,0,7) |
| logical :: m1(9,3,0,7) |
| logical(kind=4) :: m4 |
| integer :: i |
| integer, allocatable :: r(:,:,:) |
| a = reshape((/ integer:: /), shape(a)) |
| m1 = reshape((/ logical:: /), shape(m1)) |
| m4 = .false. |
| i = 1 |
| r = sum(a, dim=i) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 211 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 212 |
| i = 2 |
| r = sum(a, dim=i) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 213 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 214 |
| i = 3 |
| r = sum(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 215 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 216 |
| i = 4 |
| r = sum(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 217 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 218 |
| i = 1 |
| r = sum(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 221 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 222 |
| i = 2 |
| r = sum(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 223 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 224 |
| i = 3 |
| r = sum(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 225 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 226 |
| i = 4 |
| r = sum(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 227 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 228 |
| i = 1 |
| r = sum(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 231 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 232 |
| i = 2 |
| r = sum(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 233 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 234 |
| i = 3 |
| r = sum(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 235 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 236 |
| i = 4 |
| r = sum(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 237 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 238 |
| end subroutine |
| subroutine check_minloc_int |
| integer :: a(9,3,0,7) |
| logical :: m1(9,3,0,7) |
| logical(kind=4) :: m4 |
| integer :: i |
| integer, allocatable :: r(:,:,:) |
| a = reshape((/ integer:: /), shape(a)) |
| m1 = reshape((/ logical:: /), shape(m1)) |
| m4 = .false. |
| i = 1 |
| r = minloc(a, dim=i) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 311 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 312 |
| i = 2 |
| r = minloc(a, dim=i) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 313 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 314 |
| i = 3 |
| r = minloc(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 315 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 316 |
| i = 4 |
| r = minloc(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 317 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 318 |
| i = 1 |
| r = minloc(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 321 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 322 |
| i = 2 |
| r = minloc(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 323 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 324 |
| i = 3 |
| r = minloc(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 325 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 326 |
| i = 4 |
| r = minloc(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 327 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 328 |
| i = 1 |
| r = minloc(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 331 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 332 |
| i = 2 |
| r = minloc(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 333 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 334 |
| i = 3 |
| r = minloc(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 335 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 336 |
| i = 4 |
| r = minloc(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 337 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 338 |
| end subroutine |
| subroutine check_minloc_char |
| character :: a(9,3,0,7) |
| logical :: m1(9,3,0,7) |
| logical(kind=4) :: m4 |
| integer :: i |
| integer, allocatable :: r(:,:,:) |
| a = reshape((/ character:: /), shape(a)) |
| m1 = reshape((/ logical:: /), shape(m1)) |
| m4 = .false. |
| i = 1 |
| r = minloc(a, dim=i) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 411 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 412 |
| i = 2 |
| r = minloc(a, dim=i) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 413 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 414 |
| i = 3 |
| r = minloc(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 415 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 416 |
| i = 4 |
| r = minloc(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 417 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 418 |
| i = 1 |
| r = minloc(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 421 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 422 |
| i = 2 |
| r = minloc(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 423 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 424 |
| i = 3 |
| r = minloc(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 425 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 426 |
| i = 4 |
| r = minloc(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 427 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 428 |
| i = 1 |
| r = minloc(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 431 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 432 |
| i = 2 |
| r = minloc(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 433 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 434 |
| i = 3 |
| r = minloc(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 435 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 436 |
| i = 4 |
| r = minloc(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 437 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 438 |
| end subroutine |
| subroutine check_maxloc_char4 |
| character(kind=4) :: a(9,3,0,7) |
| logical :: m1(9,3,0,7) |
| logical(kind=4) :: m4 |
| integer :: i |
| integer, allocatable :: r(:,:,:) |
| a = reshape((/ character(kind=4):: /), shape(a)) |
| m1 = reshape((/ logical:: /), shape(m1)) |
| m4 = .false. |
| i = 1 |
| r = maxloc(a, dim=i) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 511 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 512 |
| i = 2 |
| r = maxloc(a, dim=i) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 513 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 514 |
| i = 3 |
| r = maxloc(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 515 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 516 |
| i = 4 |
| r = maxloc(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 517 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 518 |
| i = 1 |
| r = maxloc(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 521 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 522 |
| i = 2 |
| r = maxloc(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 523 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 524 |
| i = 3 |
| r = maxloc(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 525 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 526 |
| i = 4 |
| r = maxloc(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 527 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 528 |
| i = 1 |
| r = maxloc(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 531 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 532 |
| i = 2 |
| r = maxloc(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 533 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 534 |
| i = 3 |
| r = maxloc(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 535 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 536 |
| i = 4 |
| r = maxloc(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 537 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 538 |
| end subroutine |
| subroutine check_minval_char |
| character :: a(9,3,0,7) |
| logical :: m1(9,3,0,7) |
| logical(kind=4) :: m4 |
| integer :: i |
| character, allocatable :: r(:,:,:) |
| a = reshape((/ character:: /), shape(a)) |
| m1 = reshape((/ logical:: /), shape(m1)) |
| m4 = .false. |
| i = 1 |
| r = minval(a, dim=i) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 611 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 612 |
| i = 2 |
| r = minval(a, dim=i) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 613 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 614 |
| i = 3 |
| r = minval(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 615 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 616 |
| i = 4 |
| r = minval(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 617 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 618 |
| i = 1 |
| r = minval(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 621 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 622 |
| i = 2 |
| r = minval(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 623 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 624 |
| i = 3 |
| r = minval(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 625 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 626 |
| i = 4 |
| r = minval(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 627 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 628 |
| i = 1 |
| r = minval(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 631 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 632 |
| i = 2 |
| r = minval(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 633 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 634 |
| i = 3 |
| r = minval(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 635 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 636 |
| i = 4 |
| r = minval(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 637 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 638 |
| end subroutine |
| subroutine check_maxval_char4 |
| character(kind=4) :: a(9,3,0,7) |
| logical :: m1(9,3,0,7) |
| logical(kind=4) :: m4 |
| integer :: i |
| character(kind=4), allocatable :: r(:,:,:) |
| a = reshape((/ character(kind=4):: /), shape(a)) |
| m1 = reshape((/ logical:: /), shape(m1)) |
| m4 = .false. |
| i = 1 |
| r = maxval(a, dim=i) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 711 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 712 |
| i = 2 |
| r = maxval(a, dim=i) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 713 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 714 |
| i = 3 |
| r = maxval(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 715 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 716 |
| i = 4 |
| r = maxval(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 717 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 718 |
| i = 1 |
| r = maxval(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 721 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 722 |
| i = 2 |
| r = maxval(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 723 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 724 |
| i = 3 |
| r = maxval(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 725 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 726 |
| i = 4 |
| r = maxval(a, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 727 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 728 |
| i = 1 |
| r = maxval(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 731 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 732 |
| i = 2 |
| r = maxval(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 733 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 734 |
| i = 3 |
| r = maxval(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 735 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 736 |
| i = 4 |
| r = maxval(a, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 737 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 738 |
| end subroutine |
| subroutine check_any |
| logical :: a(9,3,0,7) |
| integer :: i |
| logical, allocatable :: r(:,:,:) |
| a = reshape((/ logical:: /), shape(a)) |
| i = 1 |
| r = any(a, dim=i) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 811 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 812 |
| i = 2 |
| r = any(a, dim=i) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 813 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 814 |
| i = 3 |
| r = any(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 815 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 816 |
| i = 4 |
| r = any(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 817 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 818 |
| end subroutine |
| subroutine check_count4 |
| logical(kind=4) :: a(9,3,0,7) |
| integer :: i |
| integer, allocatable :: r(:,:,:) |
| a = reshape((/ logical(kind=4):: /), shape(a)) |
| i = 1 |
| r = count(a, dim=i) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 911 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 912 |
| i = 2 |
| r = count(a, dim=i) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 913 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 914 |
| i = 3 |
| r = count(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 915 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 916 |
| i = 4 |
| r = count(a, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 917 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 918 |
| end subroutine |
| subroutine check_findloc_int |
| integer :: a(9,3,0,7) |
| logical :: m1(9,3,0,7) |
| logical(kind=4) :: m4 |
| integer :: i |
| integer, allocatable :: r(:,:,:) |
| a = reshape((/ integer:: /), shape(a)) |
| m1 = reshape((/ logical:: /), shape(m1)) |
| m4 = .false. |
| i = 1 |
| r = findloc(a, 10, dim=i) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 1011 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 1012 |
| i = 2 |
| r = findloc(a, 10, dim=i) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 1013 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 1014 |
| i = 3 |
| r = findloc(a, 10, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 1015 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 1016 |
| i = 4 |
| r = findloc(a, 10, dim=i) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 1017 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 1018 |
| i = 1 |
| r = findloc(a, 10, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 1021 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 1022 |
| i = 2 |
| r = findloc(a, 10, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 1023 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 1024 |
| i = 3 |
| r = findloc(a, 10, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 1025 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 1026 |
| i = 4 |
| r = findloc(a, 10, dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 1027 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 1028 |
| i = 1 |
| r = findloc(a, 10, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 1031 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 1032 |
| i = 2 |
| r = findloc(a, 10, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 1033 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 1034 |
| i = 3 |
| r = findloc(a, 10, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 1035 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 1036 |
| i = 4 |
| r = findloc(a, 10, dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 1037 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 1038 |
| end subroutine |
| subroutine check_findloc_char |
| character :: a(9,3,0,7) |
| logical :: m1(9,3,0,7) |
| logical(kind=4) :: m4 |
| integer :: i |
| integer, allocatable :: r(:,:,:) |
| a = reshape((/ character:: /), shape(a)) |
| m1 = reshape((/ logical:: /), shape(m1)) |
| m4 = .false. |
| i = 1 |
| r = findloc(a, "a", dim=i) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 1111 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 1112 |
| i = 2 |
| r = findloc(a, "a", dim=i) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 1113 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 1114 |
| i = 3 |
| r = findloc(a, "a", dim=i) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 1115 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 1116 |
| i = 4 |
| r = findloc(a, "a", dim=i) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 1117 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 1118 |
| i = 1 |
| r = findloc(a, "a", dim=i, mask=m1) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 1121 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 1122 |
| i = 2 |
| r = findloc(a, "a", dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 1123 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 1124 |
| i = 3 |
| r = findloc(a, "a", dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 1125 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 1126 |
| i = 4 |
| r = findloc(a, "a", dim=i, mask=m1) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 1127 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 1128 |
| i = 1 |
| r = findloc(a, "a", dim=i, mask=m4) |
| if (any(shape(r) /= (/ 3, 0, 7 /))) stop 1131 |
| if (any(ubound(r) /= (/ 3, 0, 7 /))) stop 1132 |
| i = 2 |
| r = findloc(a, "a", dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 0, 7 /))) stop 1133 |
| if (any(ubound(r) /= (/ 9, 0, 7 /))) stop 1134 |
| i = 3 |
| r = findloc(a, "a", dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 7 /))) stop 1135 |
| if (any(ubound(r) /= (/ 9, 3, 7 /))) stop 1136 |
| i = 4 |
| r = findloc(a, "a", dim=i, mask=m4) |
| if (any(shape(r) /= (/ 9, 3, 0 /))) stop 1137 |
| if (any(ubound(r) /= (/ 9, 3, 0 /))) stop 1138 |
| end subroutine |
| end program |