1! { dg-do compile }
2! { dg-options "-O2 -floop-nest-optimize" }
3      MODULE LES3D_DATA
4      PARAMETER ( NSCHEME = 4, ICHEM = 0, ISGSK = 0, IVISC = 1 )
5      DOUBLE PRECISION DT, TIME, STATTIME, CFL, RELNO, TSTND, ALREF
6      INTEGER IDYN, IMAX, JMAX, KMAX
7      PARAMETER( RUNIV =  8.3145D3,
8     >        TPRANDLT =    0.91D0)
9      DOUBLE PRECISION,ALLOCATABLE,DIMENSION(:,:,:) ::
10     >             U, V, W, P, T, H, EK,
11     >         UAV, VAV, WAV, PAV, TAV, HAV, EKAV
12      DOUBLE PRECISION,ALLOCATABLE,DIMENSION(:,:,:,:) ::
13     >             CONC, HF, QAV, COAV, HFAV, DU
14      DOUBLE PRECISION,ALLOCATABLE,DIMENSION(:,:,:,:,:) ::
15     >             Q
16      END MODULE LES3D_DATA
17      SUBROUTINE FLUXJ()
18      USE LES3D_DATA
19      ALLOCATABLE QS(:), FSJ(:,:,:)
20      ALLOCATABLE DWDX(:),DWDY(:),DWDZ(:)
21      ALLOCATABLE DHDY(:), DKDY(:)
22      PARAMETER (  R12I = 1.0D0 / 12.0D0,
23     >             TWO3 = 2.0D0 / 3.0D0 )
24      ALLOCATE( QS(IMAX-1), FSJ(IMAX-1,0:JMAX-1,ND))
25      ALLOCATE( DWDX(IMAX-1),DWDY(IMAX-1),DWDZ(IMAX-1))
26      I1 = 1
27      DO K = K1,K2
28         DO J = J1,J2
29            DO I = I1, I2
30               FSJ(I,J,5) = FSJ(I,J,5) + PAV(I,J,K) * QS(I)
31            END DO
32            DO I = I1, I2
33               DWDX(I) = DXI * R12I * (WAV(I-2,J,K) - WAV(I+2,J,K) +
34     >                        8.0D0 * (WAV(I+1,J,K) - WAV(I-1,J,K)))
35            END DO
36         END DO
37      END DO
38      DEALLOCATE( QS, FSJ, DHDY, DKDY)
39      END
40