/home/eoseret/qaas_runs_CPU_9468/171-152-3172/intel/CloverLeafFC/build/CloverLeafFC/CloverLeaf_ref/kernels/viscosity_kernel.f90: 50 - 94
--------------------------------------------------------------------------------

50:     !$OMP PARALLEL
51: 
52:     !$OMP DO PRIVATE(ugrad,vgrad,div,strain2,pgradx,pgrady,pgradx2,pgrady2,limiter,pgrad,xgrad,ygrad,grad,grad2,dirx,diry)
53:     DO k=y_min,y_max
54:     !$OMP SIMD
55:       DO j=x_min,x_max
56:         ugrad=(xvel0(j+1,k  )+xvel0(j+1,k+1))-(xvel0(j  ,k  )+xvel0(j  ,k+1))
57: 
58:         vgrad=(yvel0(j  ,k+1)+yvel0(j+1,k+1))-(yvel0(j  ,k  )+yvel0(j+1,k  ))
59: 
60:         div = (celldx(j)*(ugrad)+  celldy(k)*(vgrad))
61: 
62:         strain2 = 0.5_8*(xvel0(j,  k+1) + xvel0(j+1,k+1)-xvel0(j  ,k  )-xvel0(j+1,k  ))/celldy(k) &
63:           + 0.5_8*(yvel0(j+1,k  ) + yvel0(j+1,k+1)-yvel0(j  ,k  )-yvel0(j  ,k+1))/celldx(j)
64: 
65:         pgradx=(pressure(j+1,k)-pressure(j-1,k))/(celldx(j)+celldx(j+1))
66:         pgrady=(pressure(j,k+1)-pressure(j,k-1))/(celldy(k)+celldy(k+1))
67: 
68:         pgradx2 = pgradx*pgradx
69:         pgrady2 = pgrady*pgrady
70: 
71:         limiter = ((0.5_8*(ugrad)/celldx(j))*pgradx2+(0.5_8*(vgrad)/celldy(k))*pgrady2+strain2*pgradx*pgrady)  &
72:           /MAX(pgradx2+pgrady2,1.0e-16_8)
73: 
74:         IF ((limiter.GT.0.0).OR.(div.GE.0.0))THEN
75:           viscosity(j,k) = 0.0
76:         ELSE
77:           dirx=1.0_8
78:           IF(pgradx.LT.0.0) dirx=-1.0_8
79:           pgradx = dirx*MAX(1.0e-16_8,ABS(pgradx))
80:           diry=1.0_8
81:           IF(pgradx.LT.0.0) diry=-1.0_8
82:           pgrady = diry*MAX(1.0e-16_8,ABS(pgrady))
83:           pgrad = SQRT(pgradx**2+pgrady**2)
84:           xgrad = ABS(celldx(j)*pgrad/pgradx)
85:           ygrad = ABS(celldy(k)*pgrad/pgrady)
86:           grad  = MIN(xgrad,ygrad)
87:           grad2 = grad*grad
88: 
89:           viscosity(j,k)=2.0_8*density0(j,k)*grad2*limiter*limiter
90:         ENDIF
91: 
92:       ENDDO
93:     ENDDO
94:   !$OMP END DO
