The checks of CheckFields for a vertical sweep, plus the requirement of Gauss-Lobatto nodes and of a right hand side and solution of the same shape.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ColumnOperators3D_t), | intent(in) | :: | this | |||
| class(Scalar3D), | intent(in) | :: | r | |||
| class(Scalar2D), | intent(in) | :: | inflow | |||
| class(Scalar3D), | intent(in) | :: | q | |||
| character, | intent(in) | :: | caller |
subroutine CheckSweep_ColumnOperators3D_t(this,r,inflow,q,caller)
!! The checks of CheckFields for a vertical sweep, plus the requirement of
!! Gauss-Lobatto nodes and of a right hand side and solution of the same shape.
implicit none
class(ColumnOperators3D_t),intent(in) :: this
class(Scalar3D),intent(in) :: r
class(Scalar2D),intent(in) :: inflow
class(Scalar3D),intent(in) :: q
character(*),intent(in) :: caller
call CheckFields_ColumnOperators3D_t(this,r,inflow,caller)
if(.not. this%lobatto) then
print*,"ColumnOperators3D%",caller," : Error : the vertical sweeps need Gauss-Lobatto control nodes,", &
" since the inflow is imposed at the end nodes zeta = -1 and zeta = 1"
error stop 1
endif
if(q%N /= r%N .or. q%nElem /= r%nElem .or. q%nVar /= r%nVar) then
print*,"ColumnOperators3D%",caller," : Error : the solution and the right hand side differ in shape"
error stop 1
endif
endsubroutine CheckSweep_ColumnOperators3D_t