aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/pr70754.f90
blob: 593acf917ee63d92cdce43fbd159f89a50918f11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
! { dg-do compile }
! { dg-options "-Ofast" }
module m
  implicit none
  private
  save

  integer, parameter, public :: &
    ii4          = selected_int_kind(6), &
    rr8          = selected_real_kind(13)

  integer (ii4), dimension(40,40,199), public :: xyz
  public :: foo
contains
  subroutine foo(a)
    real (rr8), dimension(40,40), intent(out) :: a
    real (rr8), dimension(40,40) :: b
    integer (ii4), dimension(40,40) :: c
    integer  i, j

    j = 10
    do i=11,30
       b(i,j) = 123 * a(i,j) + 34 * a(i,j+1) &
            + 34 * a(i,j-1) + a(i+1,j+1) &
            + a(i+1,j-1) + a(i-1,j+1) &
            + a(i-1,j-1)
       c(i,j) = 123
    end do

    where ((xyz(:,:,2) /= 0) .and. (c /= 0))
      a = b/real(c)
    elsewhere
      a = 456
    endwhere
 end subroutine foo
end module m