Defines boundary conditions.
subroutine SetUpCaseBCS() !> Defines boundary conditions. use leapBC implicit none ! Work variables type(bc_set) :: bcs real(wp) :: xhi(3) real(wp) :: xlo(3) ! Initialize utility that handles boundary conditions call bcs%Initialize(block,parallel) associate (pmin => block%pmin, pmax => block%pmax) ! - Left boundary xlo = [pmin(1),pmin(2),pmin(3)] xhi = [pmin(1),pmax(2),pmax(3)] call bcs%Add('xL', xlo, xhi, normal = '+x1') ! - xR boundary xlo = [pmax(1),pmin(2),pmin(3)] xhi = [pmax(1),pmax(2),pmax(3)] call bcs%Add('xR', xlo, xhi, normal = '-x1') ! - yL boundary xlo = [pmin(1),pmin(2),pmin(3)] xhi = [pmax(1),pmin(2),pmax(3)] call bcs%Add('yL', xlo, xhi, normal = '+x2') ! - yR boundary xlo = [pmin(1),pmax(2),pmin(3)] xhi = [pmax(1),pmax(2),pmax(3)] call bcs%Add('yR', xlo, xhi, normal = '-x2') end associate call bcs%SetBC('yR', BC_SYMMETRY, 'V1' ) call bcs%SetBC('yR', BC_SYMMETRY, 'V2' ) call bcs%SetBC('yR', BC_SYMMETRY, 'V3' ) call bcs%SetBC('yR', BC_SYMMETRY, 'P' ) call bcs%SetBC('yR', BC_SYMMETRY, 'dP' ) call bcs%SetBC('yL', BC_SYMMETRY, 'V1' ) call bcs%SetBC('yL', BC_SYMMETRY, 'V2' ) call bcs%SetBC('yL', BC_SYMMETRY, 'V3' ) call bcs%SetBC('yL', BC_SYMMETRY, 'P' ) call bcs%SetBC('yL', BC_SYMMETRY, 'dP' ) call bcs%SetBC('xL', BC_SYMMETRY, 'V1' ) call bcs%SetBC('xL', BC_SYMMETRY, 'V2' ) call bcs%SetBC('xL', BC_SYMMETRY, 'V3' ) call bcs%SetBC('xL', BC_SYMMETRY, 'P' ) call bcs%SetBC('xL', BC_SYMMETRY, 'dP' ) call bcs%SetBC('xR', BC_SYMMETRY, 'V1' ) call bcs%SetBC('xR', BC_SYMMETRY, 'V2' ) call bcs%SetBC('xR', BC_SYMMETRY, 'V3' ) call bcs%SetBC('xR', BC_SYMMETRY, 'P' ) call bcs%SetBC('xR', BC_SYMMETRY, 'dP' ) ! Write boundary conditions call bcs%Write(0,0.0_wp) ! Clear data call bcs%Finalize() return end subroutine SetUpCaseBCS