1! { dg-do compile } 2! { dg-additional-options "-mavx2" { target x86_64-*-* i?86-*-* } } 3 subroutine tranx3 (ibeg,jbeg,jend,kbeg,kend 4 & ,dlo,den 5 & ,edn) 6 parameter(in = 128+5 7 & , jn = 128+5 8 & , kn = 128+5) 9 parameter(ijkn = 128+5) 10 real*8 e (in,jn,kn), dqm, dvl3a (kn), dvl3ai (kn) 11 & , dtwid (ijkn,4), dd (ijkn,4) 12 & , etwid (ijkn,4), deod (ijkn,4) 13 real*8 dlo (in,jn,kn), den (in,jn,kn) 14 & , edn (in,jn,kn) 15 do 2100 j=jbeg-1,jend 16 i = ibeg - 1 17 do 1080 k=kbeg,kend 18 den(i ,j,k) = ( dlo(i ,j,k) * dvl3a(k) 19 1 - etwid (k+1,1) + etwid (k,1) ) * dvl3a i(k) 201080 continue 21 do 2030 k=max(kbeg-2,ks-1),kend+1 22 dqm = (dlo(i+2,j,k ) - dlo(i+2,j,k-1)) * dx3bi(k ) 23 dd(k,4) = max ( dqm * dqp, zro ) 242030 continue 25 dtwid (k,3) = ( 0.5 + q1 ) * ( dlo(i+2,j,k-1) 26 1 + ( dx3a(k-1) - xi ) * dd (k-1,3) ) 27 2 + ( 0.5 - q1 ) * ( dlo(i+2,j,k ) 28 3 - ( dx3a(k ) + xi ) * deod (k ,3) ) 29 do 2080 k=kbeg,kend 30 den(i ,j,k) = ( dlo(i ,j,k) * dvl3a(k) 31 1 - dtwid (k+1,3) + dtwid (k,3) ) * dvl3a i(k) 32 e (i+2,j,k) = ( e (i+2,j,k) * dvl3a(k) 33 1 - etwid (k+1,3) + etwid (k,3) ) * dvl3a i(k) 34 edn(i+2,j,k) = e(i+2,j,k) / den(i+2,j,k) 35 e (i+3,j,k) = ( e (i+3,j,k) * dvl3a(k) 36 1 - etwid (k+1,4) + etwid (k,4) ) * dvl3a i(k) 37 edn(i+3,j,k) = e(i+3,j,k) / den(i+3,j,k) 382080 continue 392100 continue 40 end 41