@@ -1619,257 +1619,4 @@ contains
16191619
16201620 end subroutine s_beta_reflective
16211621
1622- #ifndef MFC_PRE_PROCESS
1623- !> Apply periodic boundary conditions to grid variables by copying cell widths from opposite domain boundary.
1624- subroutine s_grid_periodic_bc (bc_dir , bc_loc , offset_dir )
1625-
1626- integer , intent (in ) :: bc_dir, bc_loc
1627- type(int_bounds_info), intent (in ) :: offset_dir
1628- integer :: i
1629-
1630- if (bc_dir == 1 ) then
1631- if (bc_loc == - 1 ) then
1632- do i = 1 , buff_size
1633- dx(- i) = dx(m - (i - 1 ))
1634- end do
1635- do i = 1 , offset_dir%beg
1636- x_cb(- 1 - i) = x_cb(- i) - dx(- i)
1637- end do
1638- do i = 1 , buff_size
1639- x_cc(- i) = x_cc(1 - i) - (dx(1 - i) + dx(- i))/ 2._wp
1640- end do
1641- else
1642- do i = 1 , buff_size
1643- dx(m + i) = dx(i - 1 )
1644- end do
1645- do i = 1 , offset_dir%end
1646- x_cb(m + i) = x_cb(m + (i - 1 )) + dx(m + i)
1647- end do
1648- do i = 1 , buff_size
1649- x_cc(m + i) = x_cc(m + (i - 1 )) + (dx(m + (i - 1 )) + dx(m + i))/ 2._wp
1650- end do
1651- end if
1652- else if (bc_dir == 2 ) then
1653- if (bc_loc == - 1 ) then
1654- do i = 1 , buff_size
1655- dy(- i) = dy(n - (i - 1 ))
1656- end do
1657- do i = 1 , offset_dir%beg
1658- y_cb(- 1 - i) = y_cb(- i) - dy(- i)
1659- end do
1660- do i = 1 , buff_size
1661- y_cc(- i) = y_cc(1 - i) - (dy(1 - i) + dy(- i))/ 2._wp
1662- end do
1663- else
1664- do i = 1 , buff_size
1665- dy(n + i) = dy(i - 1 )
1666- end do
1667- do i = 1 , offset_dir%end
1668- y_cb(n + i) = y_cb(n + (i - 1 )) + dy(n + i)
1669- end do
1670- do i = 1 , buff_size
1671- y_cc(n + i) = y_cc(n + (i - 1 )) + (dy(n + (i - 1 )) + dy(n + i))/ 2._wp
1672- end do
1673- end if
1674- else
1675- if (bc_loc == - 1 ) then
1676- do i = 1 , buff_size
1677- dz(- i) = dz(p - (i - 1 ))
1678- end do
1679- do i = 1 , offset_dir%beg
1680- z_cb(- 1 - i) = z_cb(- i) - dz(- i)
1681- end do
1682- do i = 1 , buff_size
1683- z_cc(- i) = z_cc(1 - i) - (dz(1 - i) + dz(- i))/ 2._wp
1684- end do
1685- else
1686- do i = 1 , buff_size
1687- dz(p + i) = dz(i - 1 )
1688- end do
1689- do i = 1 , offset_dir%end
1690- z_cb(p + i) = z_cb(p + (i - 1 )) + dz(p + i)
1691- end do
1692- do i = 1 , buff_size
1693- z_cc(p + i) = z_cc(p + (i - 1 )) + (dz(p + (i - 1 )) + dz(p + i))/ 2._wp
1694- end do
1695- end if
1696- end if
1697-
1698- end subroutine s_grid_periodic_bc
1699-
1700- !> Apply reflective boundary conditions to grid variables by mirroring cell widths across the boundary.
1701- subroutine s_grid_reflective_bc (bc_dir , bc_loc , offset_dir )
1702-
1703- integer , intent (in ) :: bc_dir, bc_loc
1704- type(int_bounds_info), intent (in ) :: offset_dir
1705- integer :: i
1706-
1707- if (bc_dir == 1 ) then
1708- if (bc_loc == - 1 ) then
1709- do i = 1 , buff_size
1710- dx(- i) = dx(i - 1 )
1711- end do
1712- do i = 1 , offset_dir%beg
1713- x_cb(- 1 - i) = x_cb(- i) - dx(- i)
1714- end do
1715- do i = 1 , buff_size
1716- x_cc(- i) = x_cc(1 - i) - (dx(1 - i) + dx(- i))/ 2._wp
1717- end do
1718- else
1719- do i = 1 , buff_size
1720- dx(m + i) = dx(m - (i - 1 ))
1721- end do
1722- do i = 1 , offset_dir%end
1723- x_cb(m + i) = x_cb(m + (i - 1 )) + dx(m + i)
1724- end do
1725- do i = 1 , buff_size
1726- x_cc(m + i) = x_cc(m + (i - 1 )) + (dx(m + (i - 1 )) + dx(m + i))/ 2._wp
1727- end do
1728- end if
1729- else if (bc_dir == 2 ) then
1730- if (bc_loc == - 1 ) then
1731- do i = 1 , buff_size
1732- dy(- i) = dy(i - 1 )
1733- end do
1734- do i = 1 , offset_dir%beg
1735- y_cb(- 1 - i) = y_cb(- i) - dy(- i)
1736- end do
1737- do i = 1 , buff_size
1738- y_cc(- i) = y_cc(1 - i) - (dy(1 - i) + dy(- i))/ 2._wp
1739- end do
1740- else
1741- do i = 1 , buff_size
1742- dy(n + i) = dy(n - (i - 1 ))
1743- end do
1744- do i = 1 , offset_dir%end
1745- y_cb(n + i) = y_cb(n + (i - 1 )) + dy(n + i)
1746- end do
1747- do i = 1 , buff_size
1748- y_cc(n + i) = y_cc(n + (i - 1 )) + (dy(n + (i - 1 )) + dy(n + i))/ 2._wp
1749- end do
1750- end if
1751- else
1752- if (bc_loc == - 1 ) then
1753- do i = 1 , buff_size
1754- dz(- i) = dz(i - 1 )
1755- end do
1756- do i = 1 , offset_dir%beg
1757- z_cb(- 1 - i) = z_cb(- i) - dz(- i)
1758- end do
1759- do i = 1 , buff_size
1760- z_cc(- i) = z_cc(1 - i) - (dz(1 - i) + dz(- i))/ 2._wp
1761- end do
1762- else
1763- do i = 1 , buff_size
1764- dz(p + i) = dz(p - (i - 1 ))
1765- end do
1766- do i = 1 , offset_dir%end
1767- z_cb(p + i) = z_cb(p + (i - 1 )) + dz(p + i)
1768- end do
1769- do i = 1 , buff_size
1770- z_cc(p + i) = z_cc(p + (i - 1 )) + (dz(p + (i - 1 )) + dz(p + i))/ 2._wp
1771- end do
1772- end if
1773- end if
1774-
1775- end subroutine s_grid_reflective_bc
1776-
1777- !> Extrapolate grid variables by copying boundary cell width into ghost cells.
1778- subroutine s_grid_ghost_cell_extrapolation_bc (bc_dir , bc_loc , offset_dir )
1779-
1780- integer , intent (in ) :: bc_dir, bc_loc
1781- type(int_bounds_info), intent (in ) :: offset_dir
1782- integer :: i
1783-
1784- if (bc_dir == 1 ) then
1785- if (bc_loc == - 1 ) then
1786- do i = 1 , buff_size
1787- dx(- i) = dx(0 )
1788- end do
1789- do i = 1 , offset_dir%beg
1790- x_cb(- 1 - i) = x_cb(- i) - dx(- i)
1791- end do
1792- do i = 1 , buff_size
1793- x_cc(- i) = x_cc(1 - i) - (dx(1 - i) + dx(- i))/ 2._wp
1794- end do
1795- else
1796- do i = 1 , buff_size
1797- dx(m + i) = dx(m)
1798- end do
1799- do i = 1 , offset_dir%end
1800- x_cb(m + i) = x_cb(m + (i - 1 )) + dx(m + i)
1801- end do
1802- do i = 1 , buff_size
1803- x_cc(m + i) = x_cc(m + (i - 1 )) + (dx(m + (i - 1 )) + dx(m + i))/ 2._wp
1804- end do
1805- end if
1806- else if (bc_dir == 2 ) then
1807- if (bc_loc == - 1 ) then
1808- do i = 1 , buff_size
1809- dy(- i) = dy(0 )
1810- end do
1811- do i = 1 , offset_dir%beg
1812- y_cb(- 1 - i) = y_cb(- i) - dy(- i)
1813- end do
1814- do i = 1 , buff_size
1815- y_cc(- i) = y_cc(1 - i) - (dy(1 - i) + dy(- i))/ 2._wp
1816- end do
1817- else
1818- do i = 1 , buff_size
1819- dy(n + i) = dy(n)
1820- end do
1821- do i = 1 , offset_dir%end
1822- y_cb(n + i) = y_cb(n + (i - 1 )) + dy(n + i)
1823- end do
1824- do i = 1 , buff_size
1825- y_cc(n + i) = y_cc(n + (i - 1 )) + (dy(n + (i - 1 )) + dy(n + i))/ 2._wp
1826- end do
1827- end if
1828- else
1829- if (bc_loc == - 1 ) then
1830- do i = 1 , buff_size
1831- dz(- i) = dz(0 )
1832- end do
1833- do i = 1 , offset_dir%beg
1834- z_cb(- 1 - i) = z_cb(- i) - dz(- i)
1835- end do
1836- do i = 1 , buff_size
1837- z_cc(- i) = z_cc(1 - i) - (dz(1 - i) + dz(- i))/ 2._wp
1838- end do
1839- else
1840- do i = 1 , buff_size
1841- dz(p + i) = dz(p)
1842- end do
1843- do i = 1 , offset_dir%end
1844- z_cb(p + i) = z_cb(p + (i - 1 )) + dz(p + i)
1845- end do
1846- do i = 1 , buff_size
1847- z_cc(p + i) = z_cc(p + (i - 1 )) + (dz(p + (i - 1 )) + dz(p + i))/ 2._wp
1848- end do
1849- end if
1850- end if
1851-
1852- end subroutine s_grid_ghost_cell_extrapolation_bc
1853-
1854- !> Apply axis boundary conditions to grid variables for cylindrical coordinates.
1855- subroutine s_grid_axis_bc (bc_loc , offset_dir )
1856-
1857- integer , intent (in ) :: bc_loc
1858- type(int_bounds_info), intent (in ) :: offset_dir
1859- integer :: i
1860-
1861- if (bc_loc == - 1 ) then
1862- do i = 1 , buff_size
1863- dy(- i) = dy(i - 1 )
1864- end do
1865- do i = 1 , offset_dir%beg
1866- y_cb(- 1 - i) = y_cb(- i) - dy(- i)
1867- end do
1868- do i = 1 , buff_size
1869- y_cc(- i) = y_cc(1 - i) - (dy(1 - i) + dy(- i))/ 2._wp
1870- end do
1871- end if
1872-
1873- end subroutine s_grid_axis_bc
1874- #endif
18751622end module m_boundary_primitives
0 commit comments