CheckSweep_ColumnOperators3D_t Subroutine

public 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.

Arguments

TypeIntentOptionalAttributesName
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

Calls

proc~~checksweep_columnoperators3d_t~~CallsGraph proc~checksweep_columnoperators3d_t CheckSweep_ColumnOperators3D_t proc~checkfields_columnoperators3d_t CheckFields_ColumnOperators3D_t proc~checksweep_columnoperators3d_t->proc~checkfields_columnoperators3d_t

Called by

proc~~checksweep_columnoperators3d_t~~CalledByGraph proc~checksweep_columnoperators3d_t CheckSweep_ColumnOperators3D_t proc~verticalsweepdown_columnoperators3d_t VerticalSweepDown_ColumnOperators3D_t proc~verticalsweepdown_columnoperators3d_t->proc~checksweep_columnoperators3d_t proc~verticalsweepup_columnoperators3d_t VerticalSweepUp_ColumnOperators3D_t proc~verticalsweepup_columnoperators3d_t->proc~checksweep_columnoperators3d_t proc~verticalsweepdown_columnoperators3d VerticalSweepDown_ColumnOperators3D proc~verticalsweepdown_columnoperators3d->proc~checksweep_columnoperators3d_t proc~verticalsweepup_columnoperators3d VerticalSweepUp_ColumnOperators3D proc~verticalsweepup_columnoperators3d->proc~checksweep_columnoperators3d_t

Contents


Source Code

  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