Call reconstruction based on the flag and boundary condition
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp), | intent(in), | dimension(-2:dims%imx+2, -2:dims%jmx+2, -2:dims%kmx+2, 1:dims%n_var) | :: | qp | ||
type(controltype), | intent(in) | :: | control | |||
type(schemetype), | intent(in) | :: | scheme | |||
type(boundarytype), | intent(in) | :: | bc | |||
type(extent), | intent(in) | :: | dims |
subroutine reconstruct_boundary_state(qp, control, scheme, bc, dims)
!< Call reconstruction based on the flag and boundary condition
implicit none
type(extent), intent(in) :: dims
real(wp), dimension(-2:dims%imx+2, -2:dims%jmx+2, -2:dims%kmx+2, 1:dims%n_var), intent(in) :: qp
type(controltype), intent(in) :: control
type(schemetype), intent(in) :: scheme
type(boundarytype), intent(in) :: bc
DebugCall('recons_boundary_state')
imx = dims%imx
jmx = dims%jmx
kmx = dims%kmx
n_var = control%n_var
if (scheme%interpolant == 'ppm' .or. scheme%interpolant=='weno' .or. scheme%interpolant=='weno_NM') ppm_flag=1
if (bc%imin_id==-7 .or. bc%jmin_id==-7 .or. bc%kmin_id==-7) ppm_flag=1
if (bc%imax_id==-7 .or. bc%jmax_id==-7 .or. bc%kmax_id==-7) ppm_flag=1
if(scheme%interpolant /='none')then
if(bc%imin_id<0 .and. bc%imin_id/=-10)then
DebugCall('recons_bndry_state: imin')
call reconstruct_imin(qp, scheme, bc)
end if
if(bc%imax_id<0 .and. bc%imax_id/=-10)then
DebugCall('recons_bndry_state: imax')
call reconstruct_imax(qp, scheme, bc)
end if
if(bc%jmin_id<0 .and. bc%jmin_id/=-10)then
DebugCall('recons_bndry_state: jmin')
call reconstruct_jmin(qp, scheme, bc)
end if
if(bc%jmax_id<0 .and. bc%jmax_id/=-10)then
DebugCall('recons_bndry_state: jmax')
call reconstruct_jmax(qp, scheme, bc)
end if
if(bc%kmin_id<0 .and. bc%kmin_id/=-10)then
DebugCall('recons_bndry_state: kmin')
call reconstruct_kmin(qp, scheme, bc)
end if
if(bc%kmax_id<0 .and. bc%kmax_id/=-10)then
DebugCall('recons_bndry_state: kmax')
call reconstruct_kmax(qp, scheme, bc)
end if
end if
end subroutine reconstruct_boundary_state