SUBROUTINE Y_EQ_AX_PROJECTION (nunk, X, Y, status)[snip] type(JT_vector_type), intent(in) :: X [snip]
! Compute a vertex-averaged solution and gather it. call VERTEX_AVG (X%Values, Solution_Vtx, BOUNDARY=X%Aux2) call EN_GATHER (Solution_Vertex, Solution_Vtx, BOUNDARY=X%Aux3)
! Gather the solution from element neighbors. call EE_GATHER (Solution_Ngbr, X%Values, BOUNDARY=X%Aux1)
! Loop over faces, accumulating the product ! (Face_Area/Rho_Face)*(Grad_X*Face_Normal). Y = zero do f = 1,nfc
! Get the face solution gradient. call FACE_GRADIENT (..., X%Values, ...)
! Dot the solution gradient with the face unit normal. N_Dot_Grad_X = zero do n = 1,ndim N_Dot_Grad_X = N_Dot_Grad_X + Grad_X(n,:)*Cell%Face_Normal(n,f) end do
[snip]
! Accumulate the contribution for this face. Y = Y + Coeff(f,:)*N_Dot_Grad_X end do
return END SUBROUTINE Y_EQ_AX_PROJECTION