Imposes boundary conditions for a scalar variable.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(in) | :: | this |
Boundary conditions utility |
||
| type(eulerian_obj_r), | intent(inout) | :: | var |
Eulerian variable |
impure subroutine bc_set_UpdateBoundaryScalar(this,var) !> Imposes boundary conditions for a scalar variable. class(bc_set), intent(in) :: this !! Boundary conditions utility type(eulerian_obj_r), intent(inout) :: var !! Eulerian variable ! Work variables logical :: found integer :: n if (.not.allocated(this%region)) return do n=1,this%count ! Check Whether we have a BC for this variable on this region found = this%CheckBCExists(this%region(n)%name,var%name) if (.not.found) cycle select case (this%GetBCType(this%region(n)%name,var%name)) case (BC_DIRICHLET) call this%UpdateBoundaryDirichlet(this%region(n)%name,var) case (BC_NEUMANN ) call this%UpdateBoundaryNeumann (this%region(n)%name,var) case (BC_SYMMETRY ) call this%UpdateBoundarySymmetryPLUS(this%region(n)%name,var) end select end do if (this%count.ne.0.and. (.not.found)) & call this%parallel%Stop('Unable to find any boundary conditions for variable '//trim(adjustl(var%name))) call var%UpdateGhostCells() return end subroutine bc_set_UpdateBoundaryScalar