| ! { dg-do compile } |
| ! { dg-options "-O2 -floop-nest-optimize" } |
| MODULE LES3D_DATA |
| PARAMETER ( NSCHEME = 4, ICHEM = 0, ISGSK = 0, IVISC = 1 ) |
| DOUBLE PRECISION DT, TIME, STATTIME, CFL, RELNO, TSTND, ALREF |
| INTEGER IDYN, IMAX, JMAX, KMAX |
| PARAMETER( RUNIV = 8.3145D3, |
| > TPRANDLT = 0.91D0) |
| DOUBLE PRECISION,ALLOCATABLE,DIMENSION(:,:,:) :: |
| > U, V, W, P, T, H, EK, |
| > UAV, VAV, WAV, PAV, TAV, HAV, EKAV |
| DOUBLE PRECISION,ALLOCATABLE,DIMENSION(:,:,:,:) :: |
| > CONC, HF, QAV, COAV, HFAV, DU |
| DOUBLE PRECISION,ALLOCATABLE,DIMENSION(:,:,:,:,:) :: |
| > Q |
| END MODULE LES3D_DATA |
| SUBROUTINE FLUXJ() |
| USE LES3D_DATA |
| ALLOCATABLE QS(:), FSJ(:,:,:) |
| ALLOCATABLE DWDX(:),DWDY(:),DWDZ(:) |
| ALLOCATABLE DHDY(:), DKDY(:) |
| PARAMETER ( R12I = 1.0D0 / 12.0D0, |
| > TWO3 = 2.0D0 / 3.0D0 ) |
| ALLOCATE( QS(IMAX-1), FSJ(IMAX-1,0:JMAX-1,ND)) |
| ALLOCATE( DWDX(IMAX-1),DWDY(IMAX-1),DWDZ(IMAX-1)) |
| I1 = 1 |
| DO K = K1,K2 |
| DO J = J1,J2 |
| DO I = I1, I2 |
| FSJ(I,J,5) = FSJ(I,J,5) + PAV(I,J,K) * QS(I) |
| END DO |
| DO I = I1, I2 |
| DWDX(I) = DXI * R12I * (WAV(I-2,J,K) - WAV(I+2,J,K) + |
| > 8.0D0 * (WAV(I+1,J,K) - WAV(I-1,J,K))) |
| END DO |
| END DO |
| END DO |
| DEALLOCATE( QS, FSJ, DHDY, DKDY) |
| END |