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