Compute alpha coefficients.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(alpha_coefficients), | intent(inout) | :: | self | Alpha coefficients. |
||
integer(kind=I_P), | intent(in) | :: | S | Number of stencils used. |
||
real(kind=R_P), | intent(in) | :: | weight_opt(1:2,0:S-1) | Optimal weight of the stencil. |
||
real(kind=R_P), | intent(in) | :: | IS(1:2,0:S-1) | Smoothness indicators of the stencils. |
||
real(kind=R_P), | intent(in) | :: | eps | Parameter for avoiding divided by zero. |
||
integer(kind=I_P), | intent(in) | :: | f1 | Faces to be computed. |
||
integer(kind=I_P), | intent(in) | :: | f2 | Faces to be computed. |
pure subroutine compute(self, S, weight_opt, IS, eps, f1, f2)
!< Compute alpha coefficients.
class(alpha_coefficients), intent(inout) :: self !< Alpha coefficients.
integer(I_P), intent(in) :: S !< Number of stencils used.
real(R_P), intent(in) :: weight_opt(1:2, 0:S-1) !< Optimal weight of the stencil.
real(R_P), intent(in) :: IS(1:2, 0:S-1) !< Smoothness indicators of the stencils.
real(R_P), intent(in) :: eps !< Parameter for avoiding divided by zero.
integer(I_P), intent(in) :: f1, f2 !< Faces to be computed.
#ifndef DEBUG
! error stop in pure procedure is a F2015 feature not yet supported in debug mode
error stop 'alpha_coefficients%compute to be implemented by your concrete alpha coefficients object'
#endif
endsubroutine compute