1654
1655
1658
1660# ifdef DISTRIBUTE
1662# endif
1663
1664
1665
1666 integer, intent(in) :: ng, tile, model, boundary
1667 integer, intent(in) :: edge(4)
1668 integer, intent(in) :: LBij, UBij
1669 integer, intent(in) :: LBi, UBi, LBj, UBj, LBk, UBk
1670 integer, intent(in) :: IminS, ImaxS, JminS, JmaxS
1671 integer, intent(in) :: Nghost, NHsteps, NVsteps
1672
1673 real(r8), intent(in) :: DTsizeH, DTsizeV
1674
1675# ifdef ASSUMED_SHAPE
1676 real(r8), intent(in) :: pm(LBi:,LBj:)
1677 real(r8), intent(in) :: pn(LBi:,LBj:)
1678 real(r8), intent(in) :: pmon_p(LBi:,LBj:)
1679 real(r8), intent(in) :: pnom_r(LBi:,LBj:)
1680# ifdef MASKING
1681 real(r8), intent(in) :: vmask(LBi:,LBj:)
1682 real(r8), intent(in) :: pmask(LBi:,LBj:)
1683# endif
1684 real(r8), intent(in) :: Hz(LBi:,LBj:,:)
1685 real(r8), intent(in) :: z_r(LBi:,LBj:,:)
1686
1687 real(r8), intent(in) :: Kh(LBi:,LBj:)
1688 real(r8), intent(in) :: Kv(LBi:,LBj:,0:)
1689 real(r8), intent(inout) :: tl_A(LBij:,LBk:)
1690# else
1691 real(r8), intent(in) :: pm(LBi:UBi,LBj:UBj)
1692 real(r8), intent(in) :: pn(LBi:UBi,LBj:UBj)
1693 real(r8), intent(in) :: pmon_p(LBi:UBi,LBj:UBj)
1694 real(r8), intent(in) :: pnom_r(LBi:UBi,LBj:UBj)
1695# ifdef MASKING
1696 real(r8), intent(in) :: vmask(LBi:UBi,LBj:UBj)
1697 real(r8), intent(in) :: pmask(LBi:UBi,LBj:UBj)
1698# endif
1699 real(r8), intent(in) :: Hz(LBi:UBi,LBj:UBj,N(ng))
1700 real(r8), intent(in) :: z_r(LBi:UBi,LBj:UBj,N(ng))
1701
1702 real(r8), intent(in) :: Kh(LBi:UBi,LBj:UBj)
1703 real(r8), intent(in) :: Kv(LBi:UBi,LBj:UBj,0:UBk)
1704 real(r8), intent(inout) :: tl_A(LBij:UBij,LBk:UBk)
1705# endif
1706
1707
1708
1709 logical, dimension(4) :: Lconvolve
1710
1711 integer :: Nnew, Nold, Nsav, i, ib, j, k, step
1712
1713 real(r8) :: cff, cff1
1714
1715 real(r8), dimension(LBij:UBij,LBk:UBk,2) :: tl_Awrk
1716
1717 real(r8), dimension(JminS:JmaxS,LBk:UBk) :: tl_FE
1718 real(r8), dimension(IminS:ImaxS,LBk:UBk) :: tl_FX
1719 real(r8), dimension(LBij:UBij) :: Hfac
1720# ifdef VCONVOLUTION
1721# ifndef SPLINES_VCONV
1722 real(r8), dimension(LBij:UBij,0:N(ng)) :: FC
1723# endif
1724# if !defined IMPLICIT_VCONV || defined SPLINES_VCONV
1725 real(r8), dimension(LBij:UBij,N(ng)) :: oHz
1726# endif
1727# if defined IMPLICIT_VCONV || defined SPLINES_VCONV
1728 real(r8), dimension(LBij:UBij,0:N(ng)) :: BC
1729 real(r8), dimension(LBij:UBij,0:N(ng)) :: CF
1730# ifdef SPLINES_VCONV
1731 real(r8), dimension(LBij:UBij,0:N(ng)) :: FC
1732# endif
1733 real(r8), dimension(LBij:UBij,0:N(ng)) :: tl_DC
1734# else
1735 real(r8), dimension(LBij:UBij,0:N(ng)) :: tl_FS
1736# endif
1737# endif
1738
1739# include "set_bounds.h"
1740
1741
1742
1743
1744
1745
1750
1751
1752
1753
1754
1755 IF (lconvolve(boundary)) THEN
1756 cff=dtsizeh*0.25_r8
1757 IF ((boundary.eq.
iwest).or.(boundary.eq.
ieast))
THEN
1758 i=edge(boundary)
1759 DO j=jstrv-1,jend+1
1760 hfac(j)=cff*(pm(i,j-1)+pm(i,j))*(pn(i,j-1)+pn(i,j))
1761# ifdef VCONVOLUTION
1762# ifndef SPLINES_VCONV
1765# ifdef IMPLICIT_VCONV
1766 fc(j,k)=-dtsizev*(kv(i,j-1,k)+kv(i,j,k))/ &
1767 & (z_r(i,j-1,k+1)+z_r(i,j,k+1)- &
1768 & z_r(i,j-1,k )-z_r(i,j,k ))
1769# else
1770 fc(j,k)=dtsizev*(kv(i,j-1,k)+kv(i,j,k))/ &
1771 & (z_r(i,j-1,k+1)+z_r(i,j,k+1)- &
1772 & z_r(i,j-1,k )-z_r(i,j,k ))
1773# endif
1774 END DO
1775 fc(j,0)=0.0_r8
1776# endif
1777# if !defined IMPLICIT_VCONV || defined SPLINES_VCONV
1779 ohz(j,k)=2.0_r8/(hz(i,j-1,k)+hz(i,j,k))
1780 END DO
1781# endif
1782# endif
1783 END DO
1784 ELSE IF ((boundary.eq.
isouth).or.(boundary.eq.
inorth))
THEN
1785 j=edge(boundary)
1786 DO i=istr-1,iend+1
1787 hfac(i)=cff*(pm(i,j-1)+pm(i,j))*(pn(i,j-1)+pn(i,j))
1788# ifdef VCONVOLUTION
1789# ifndef SPLINES_VCONV
1792# ifdef IMPLICIT_VCONV
1793 fc(i,k)=-dtsizev*(kv(i,j-1,k)+kv(i,j,k))/ &
1794 & (z_r(i,j-1,k+1)+z_r(i,j,k+1)- &
1795 & z_r(i,j-1,k )-z_r(i,j,k ))
1796# else
1797 fc(i,k)=dtsizev*(kv(i,j-1,k)+kv(i,j,k))/ &
1798 & (z_r(i,j-1,k+1)+z_r(i,j,k+1)- &
1799 & z_r(i,j-1,k )-z_r(i,j,k ))
1800# endif
1801 END DO
1802 fc(i,0)=0.0_r8
1803# endif
1804# if !defined IMPLICIT_VCONV || defined SPLINES_VCONV
1806 ohz(i,k)=2.0_r8/(hz(i,j-1,k)+hz(i,j,k))
1807 END DO
1808# endif
1809# endif
1810 END DO
1811 END IF
1812 END IF
1813
1814
1815
1816 nold=1
1817 nnew=2
1818
1819
1820
1821
1822
1824 & lbij, ubij, 1,
n(ng), &
1825 & tl_a)
1826# ifdef DISTRIBUTE
1827
1828
1829
1830
1831
1832
1834 & lbij, ubij, 1,
n(ng), &
1835 & nghost, &
1837 & tl_a)
1838# endif
1839 IF (lconvolve(boundary)) THEN
1840 IF ((boundary.eq.
iwest).or.(boundary.eq.
ieast))
THEN
1842 DO j=jstrv-1,jend+1
1843
1844
1845 tl_awrk(j,k,nold)=tl_a(j,k)
1846 END DO
1847 END DO
1848 ELSE IF ((boundary.eq.
isouth).or.(boundary.eq.
inorth))
THEN
1850 DO i=istr-1,iend+1
1851
1852
1853 tl_awrk(i,k,nold)=tl_a(i,k)
1854 END DO
1855 END DO
1856 END IF
1857 END IF
1858
1859
1860
1861
1862
1863 DO step=1,nhsteps
1864
1865
1866
1867 IF (lconvolve(boundary)) THEN
1868 IF ((boundary.eq.
iwest).or.(boundary.eq.
ieast))
THEN
1869 i=edge(boundary)
1871 DO j=jstrv-1,jend
1872
1873
1874
1875
1876 tl_fe(j,k)=pnom_r(i,j)*kh(i,j)* &
1877 & (tl_awrk(j+1,k,nold)- &
1878 & tl_awrk(j ,k,nold))
1879 END DO
1880 END DO
1881 ELSE IF ((boundary.eq.
isouth).or.(boundary.eq.
inorth))
THEN
1882 j=edge(boundary)
1884 DO i=istr,iend+1
1885
1886
1887
1888
1889
1890
1891 tl_fx(i,k)=pmon_p(i,j)* &
1892 & 0.25_r8*(kh(i-1,j )+kh(i,j )+ &
1893 & kh(i-1,j-1)+kh(i,j-1))* &
1894 & (tl_awrk(i ,k,nold)- &
1895 & tl_awrk(i-1,k,nold))
1896# ifdef MASKING
1897
1898
1899 tl_fx(i,k)=tl_fx(i,k)*pmask(i,j)
1900# endif
1901 END DO
1902 END DO
1903 END IF
1904 END IF
1905
1906
1907
1908 IF (lconvolve(boundary)) THEN
1909 IF ((boundary.eq.
iwest).or.(boundary.eq.
ieast))
THEN
1911 DO j=jstrv,jend
1912
1913
1914
1915
1916 tl_awrk(j,k,nnew)=tl_awrk(j,k,nold)+ &
1917 & hfac(j)* &
1918 & (tl_fe(j,k)-tl_fe(j-1,k))
1919 END DO
1920 END DO
1921 ELSE IF ((boundary.eq.
isouth).or.(boundary.eq.
inorth))
THEN
1923 DO i=istr,iend
1924
1925
1926
1927
1928 tl_awrk(i,k,nnew)=tl_awrk(i,k,nold)+ &
1929 & hfac(i)* &
1930 & (tl_fx(i+1,k)-tl_fx(i,k))
1931 END DO
1932 END DO
1933 END IF
1934 END IF
1935
1936
1937
1938
1939
1940
1941
1943 & lbij, ubij, 1,
n(ng), &
1944 & tl_awrk(:,:,nnew))
1945# ifdef DISTRIBUTE
1946
1947
1948
1949
1950
1951
1953 & lbij, ubij, 1,
n(ng), &
1954 & nghost, &
1956 & tl_awrk(:,:,nnew))
1957# endif
1958
1959
1960
1961 nsav=nold
1962 nold=nnew
1963 nnew=nsav
1964 END DO
1965
1966# ifdef VCONVOLUTION
1967# ifdef IMPLICIT_VCONV
1968# ifdef SPLINES_VCONV
1969
1970
1971
1972
1973
1974
1975 DO step=1,nvsteps
1976
1977
1978
1979
1980
1981 IF (lconvolve(boundary)) THEN
1982 IF ((boundary.eq.
iwest).or.(boundary.eq.
ieast))
THEN
1983 i=edge(boundary)
1984 cff1=0.5_r8*(1.0_r8/6.0_r8)
1985 DO j=jstrv,jend
1987 fc(j,k)=cff1*(hz(i,j-1,k )+hz(i,j,k ))- &
1988 & dtsizev*kv(i,j,k-1)*ohz(j,k )
1989 cf(j,k)=cff1*(hz(i,j-1,k+1)+hz(i,j,k+1))- &
1990 & dtsizev*kv(i,j,k+1)*ohz(j,k+1)
1991 END DO
1992 cf(j,0)=0.0_r8
1993
1994
1995 tl_dc(j,0)=0.0_r8
1996 END DO
1997 ELSE IF ((boundary.eq.
isouth).or.(boundary.eq.
inorth))
THEN
1998 j=edge(boundary)
1999 cff1=0.5_r8*(1.0_r8/6.0_r8)
2000 DO i=istr,iend
2002 fc(i,k)=cff1*(hz(i,j-1,k )+hz(i,j,k ))- &
2003 & dtsizev*kv(i,j,k-1)*ohz(i,k )
2004 cf(i,k)=cff1*(hz(i,j-1,k+1)+hz(i,j,k+1))- &
2005 & dtsizev*kv(i,j,k+1)*ohz(i,k+1)
2006 END DO
2007 cf(i,0)=0.0_r8
2008
2009
2010 tl_dc(i,0)=0.0_r8
2011 END DO
2012 END IF
2013
2014
2015
2016 IF ((boundary.eq.
iwest).or.(boundary.eq.
ieast))
THEN
2017 i=edge(boundary)
2018 cff1=0.5_r8*(1.0_r8/3.0_r8)
2020 DO j=jstrv,jend
2021 bc(j,k)=cff1*(hz(i,j-1,k )+hz(i,j,k )+ &
2022 & hz(i,j-1,k+1)+hz(i,j,k+1))+ &
2023 & dtsizev*kv(i,j,k)* &
2024 & (ohz(j,k)+ohz(j,k+1))
2025 cff=1.0_r8/(bc(j,k)-fc(j,k)*cf(j,k-1))
2026 cf(j,k)=cff*cf(j,k)
2027
2028
2029
2030
2031 tl_dc(j,k)=cff*(tl_awrk(j,k+1,nold)- &
2032 & tl_awrk(j,k ,nold)- &
2033 & fc(j,k)*tl_dc(j,k-1))
2034 END DO
2035 END DO
2036 ELSE IF ((boundary.eq.
isouth).or.(boundary.eq.
inorth))
THEN
2037 j=edge(boundary)
2038 cff1=0.5_r8*(1.0_r8/3.0_r8)
2040 DO i=istr,iend
2041 bc(i,k)=cff1*(hz(i,j-1,k )+hz(i,j,k )+ &
2042 & hz(i,j-1,k+1)+hz(i,j,k+1))+ &
2043 & dtsizev*kv(i,j,k)* &
2044 & (ohz(i,k)+ohz(i,k+1))
2045 cff=1.0_r8/(bc(i,k)-fc(i,k)*cf(i,k-1))
2046 cf(i,k)=cff*cf(i,k)
2047
2048
2049
2050
2051 tl_dc(i,k)=cff*(tl_awrk(i,k+1,nold)- &
2052 & tl_awrk(i,k ,nold)- &
2053 & fc(i,k)*tl_dc(i,k-1))
2054 END DO
2055 END DO
2056 END IF
2057
2058
2059
2060 IF ((boundary.eq.
iwest).or.(boundary.eq.
ieast))
THEN
2061 i=edge(boundary)
2062 DO j=jstrv,jend
2063
2064
2065 tl_dc(j,
n(ng))=0.0_r8
2066 END DO
2068 DO j=jstrv,jend
2069
2070
2071 tl_dc(j,k)=tl_dc(j,k)-cf(j,k)*tl_dc(j,k+1)
2072 END DO
2073 END DO
2075 DO j=jstrv,jend
2076
2077
2078 tl_dc(j,k)=tl_dc(j,k)*kv(i,j,k)
2079
2080
2081
2082
2083 tl_awrk(j,k,nnew)=tl_awrk(j,k,nold)+ &
2084 & dtsizev*ohz(j,k)* &
2085 & (tl_dc(j,k)-tl_dc(j,k-1))
2086 END DO
2087 END DO
2088 ELSE IF ((boundary.eq.
isouth).or.(boundary.eq.
inorth))
THEN
2089 j=edge(boundary)
2090 DO i=istr,iend
2091
2092
2093 tl_dc(i,
n(ng))=0.0_r8
2094 END DO
2096 DO i=istr,iend
2097
2098
2099 tl_dc(i,k)=tl_dc(i,k)-cf(i,k)*tl_dc(i,k+1)
2100 END DO
2101 END DO
2103 DO i=istr,iend
2104
2105
2106 tl_dc(i,k)=tl_dc(i,k)*kv(i,j,k)
2107
2108
2109
2110
2111 tl_awrk(i,k,nnew)=tl_awrk(i,k,nold)+ &
2112 & dtsizev*ohz(i,k)* &
2113 & (tl_dc(i,k)-tl_dc(i,k-1))
2114 END DO
2115 END DO
2116 END IF
2117 END IF
2118
2119
2120
2121 nsav=nold
2122 nold=nnew
2123 nnew=nsav
2124 END DO
2125
2126# else
2127
2128
2129
2130
2131
2132 DO step=1,nvsteps
2133
2134
2135
2136
2137 IF (lconvolve(boundary)) THEN
2138 IF ((boundary.eq.
iwest).or.(boundary.eq.
ieast))
THEN
2139 i=edge(boundary)
2141 DO j=jstrv,jend
2142 cff=0.5_r8*(hz(i,j-1,k)+hz(i,j,k))
2143 bc(j,k)=cff-fc(j,k)-fc(j,k-1)
2144
2145
2146 tl_dc(j,k)=tl_awrk(j,k,nold)*cff
2147 END DO
2148 END DO
2149 ELSE IF ((boundary.eq.
isouth).or.(boundary.eq.
inorth))
THEN
2150 j=edge(boundary)
2152 DO i=istr,iend
2153 cff=0.5_r8*(hz(i,j-1,k)+hz(i,j,k))
2154 bc(i,k)=cff-fc(i,k)-fc(i,k-1)
2155
2156
2157 tl_dc(i,k)=tl_awrk(i,k,nold)*cff
2158 END DO
2159 END DO
2160 END IF
2161
2162
2163
2164 IF ((boundary.eq.
iwest).or.(boundary.eq.
ieast))
THEN
2165 DO j=jstrv,jend
2166 cff=1.0_r8/bc(j,1)
2167 cf(j,1)=cff*fc(j,1)
2168
2169
2170 tl_dc(j,1)=cff*tl_dc(j,1)
2171 END DO
2173 DO j=jstrv,jend
2174 cff=1.0_r8/(bc(j,k)-fc(j,k-1)*cf(j,k-1))
2175 cf(j,k)=cff*fc(j,k)
2176
2177
2178 tl_dc(j,k)=cff*(tl_dc(j,k)-fc(j,k-1)*tl_dc(j,k-1))
2179 END DO
2180 END DO
2181 ELSE IF ((boundary.eq.
isouth).or.(boundary.eq.
inorth))
THEN
2182 DO i=istr,iend
2183 cff=1.0_r8/bc(i,1)
2184 cf(i,1)=cff*fc(i,1)
2185
2186
2187 tl_dc(i,1)=cff*tl_dc(i,1)
2188 END DO
2190 DO i=istr,iend
2191 cff=1.0_r8/(bc(i,k)-fc(i,k-1)*cf(i,k-1))
2192 cf(i,k)=cff*fc(i,k)
2193
2194
2195 tl_dc(i,k)=cff*(tl_dc(i,k)-fc(i,k-1)*tl_dc(i,k-1))
2196 END DO
2197 END DO
2198 END IF
2199
2200
2201
2202 IF ((boundary.eq.
iwest).or.(boundary.eq.
ieast))
THEN
2203 i=edge(boundary)
2204 DO j=jstrv,jend
2205
2206
2207
2208
2209
2210 tl_dc(j,
n(ng))=(tl_dc(j,
n(ng))- &
2211 & fc(j,
n(ng)-1)*tl_dc(j,
n(ng)-1))/ &
2213 & fc(j,
n(ng)-1)*cf(j,
n(ng)-1))
2214
2215
2216 tl_awrk(j,
n(ng),nnew)=tl_dc(j,
n(ng))
2217# ifdef MASKING
2218
2219
2220 tl_awrk(j,
n(ng),nnew)=tl_awrk(j,
n(ng),nnew)*vmask(i,j)
2221# endif
2222 END DO
2224 DO j=jstrv,jend
2225
2226
2227 tl_dc(j,k)=tl_dc(j,k)-cf(j,k)*tl_dc(j,k+1)
2228
2229
2230 tl_awrk(j,k,nnew)=tl_dc(j,k)
2231# ifdef MASKING
2232
2233
2234 tl_awrk(j,k,nnew)=tl_awrk(j,k,nnew)*vmask(i,j)
2235# endif
2236 END DO
2237 END DO
2238 ELSE IF ((boundary.eq.
isouth).or.(boundary.eq.
inorth))
THEN
2239 j=edge(boundary)
2240 DO i=istr,iend
2241
2242
2243
2244
2245
2246 tl_dc(i,
n(ng))=(tl_dc(i,
n(ng))- &
2247 & fc(i,
n(ng)-1)*tl_dc(i,
n(ng)-1))/ &
2249 & fc(i,
n(ng)-1)*cf(i,
n(ng)-1))
2250
2251
2252 tl_awrk(i,
n(ng),nnew)=tl_dc(i,
n(ng))
2253# ifdef MASKING
2254
2255
2256 tl_awrk(i,
n(ng),nnew)=tl_awrk(i,
n(ng),nnew)*vmask(i,j)
2257# endif
2258 END DO
2260 DO i=istr,iend
2261
2262
2263 tl_dc(i,k)=tl_dc(i,k)-cf(i,k)*tl_dc(i,k+1)
2264
2265
2266 tl_awrk(i,k,nnew)=tl_dc(i,k)
2267# ifdef MASKING
2268
2269
2270 tl_awrk(i,k,nnew)=tl_awrk(i,k,nnew)*vmask(i,j)
2271# endif
2272 END DO
2273 END DO
2274 END IF
2275 END IF
2276
2277
2278
2279 nsav=nold
2280 nold=nnew
2281 nnew=nsav
2282 END DO
2283# endif
2284
2285# else
2286
2287
2288
2289
2290
2291 DO step=1,nvsteps
2292
2293
2294
2295
2296 IF (lconvolve(boundary)) THEN
2297 IF ((boundary.eq.
iwest).or.(boundary.eq.
ieast))
THEN
2298 i=edge(boundary)
2299 DO j=jstrv,jend
2301
2302
2303
2304 tl_fs(j,k)=fc(j,k)*(tl_awrk(j,k+1,nold)- &
2305 & tl_awrk(j,k ,nold))
2306# ifdef MASKING
2307
2308
2309 tl_fs(j,k)=tl_fs(j,k)*vmask(i,j)
2310# endif
2311 END DO
2312
2313
2314 tl_fs(j,0)=0.0_r8
2315
2316
2317 tl_fs(j,
n(ng))=0.0_r8
2318 END DO
2319 ELSE IF ((boundary.eq.
isouth).or.(boundary.eq.
inorth))
THEN
2320 j=edge(boundary)
2321 DO i=istr,iend
2323
2324
2325
2326 tl_fs(i,k)=fc(i,k)*(tl_awrk(i,k+1,nold)- &
2327 & tl_awrk(i,k ,nold))
2328# ifdef MASKING
2329
2330
2331 tl_fs(i,k)=tl_fs(i,k)*vmask(i,j)
2332# endif
2333 END DO
2334
2335
2336 tl_fs(i,0)=0.0_r8
2337
2338
2339 tl_fs(i,
n(ng))=0.0_r8
2340 END DO
2341 END IF
2342
2343
2344
2345
2346 IF ((boundary.eq.
iwest).or.(boundary.eq.
ieast))
THEN
2348 DO j=jstrv,jend
2349
2350
2351
2352
2353 tl_awrk(j,k,nnew)=tl_awrk(j,k,nold)+ &
2354 & ohz(j,k)*(tl_fs(j,k )- &
2355 & tl_fs(j,k-1))
2356 END DO
2357 END DO
2358 ELSE IF ((boundary.eq.
isouth).or.(boundary.eq.
inorth))
THEN
2360 DO i=istr,iend
2361
2362
2363
2364
2365 tl_awrk(i,k,nnew)=tl_awrk(i,k,nold)+ &
2366 & ohz(i,k)*(tl_fs(i,k )- &
2367 & tl_fs(i,k-1))
2368 END DO
2369 END DO
2370 END IF
2371 END IF
2372
2373
2374
2375 nsav=nold
2376 nold=nnew
2377 nnew=nsav
2378 END DO
2379# endif
2380# endif
2381
2382
2383
2384
2385
2386 IF (lconvolve(boundary)) THEN
2387 IF ((boundary.eq.
iwest).or.(boundary.eq.
ieast))
THEN
2389 DO j=jstrv,jend
2390
2391
2392 tl_a(j,k)=tl_awrk(j,k,nold)
2393 END DO
2394 END DO
2395 ELSE IF ((boundary.eq.
isouth).or.(boundary.eq.
inorth))
THEN
2397 DO i=istr,iend
2398
2399
2400 tl_a(i,k)=tl_awrk(i,k,nold)
2401 END DO
2402 END DO
2403 END IF
2404 END IF
2405
2406
2407
2408
2410 & lbij, ubij, 1,
n(ng), &
2411 & tl_a)
2412# ifdef DISTRIBUTE
2413
2414
2415
2416
2417
2418
2420 & lbij, ubij, 1,
n(ng), &
2421 & nghost, &
2423 & tl_a)
2424# endif
2425
2426 RETURN
subroutine bc_v3d_bry_tile(ng, tile, boundary, lbij, ubij, lbk, ubk, a)