765 integer,
intent(in) :: ng
769 integer :: lbi, ubi, lbj, ubj
770#ifdef ADJUST_BOUNDARY
771 integer :: lbij, ubij
775 real(
r8) :: xsize, ysize
776#ifdef ADJUST_BOUNDARY
789 lbi=
bounds(ng)%LBi(my_tile)
790 ubi=
bounds(ng)%UBi(my_tile)
791 lbj=
bounds(ng)%LBj(my_tile)
792 ubj=
bounds(ng)%UBj(my_tile)
793#ifdef ADJUST_BOUNDARY
800 xsize=real(ubi-lbi,
r8)
801 ysize=real(ubj-lbj,
r8)
802#ifdef ADJUST_BOUNDARY
803 xysize=real(ubij-lbij,
r8)
819 allocate (
lbc_apply(ng) % west(lbj:ubj) )
823 allocate (
lbc_apply(ng) % east(lbj:ubj) )
827 allocate (
lbc_apply(ng) % south(lbi:ubi) )
831 allocate (
lbc_apply(ng) % north(lbi:ubi) )
839#if defined ADJOINT || defined TANGENT || defined TL_IOMS
845 allocate (
boundary(ng) % zeta_west(lbj:ubj) )
848#if defined CELERITY_READ || defined CELERITY_WRITE
849 allocate (
boundary(ng) % zeta_west_C2(lbj:ubj) )
852 allocate (
boundary(ng) % zeta_west_Ce(lbj:ubj) )
855 allocate (
boundary(ng) % zeta_west_Cx(lbj:ubj) )
859 allocate (
boundary(ng) % zetaG_west(lbj:ubj,2) )
864#if defined ADJOINT || defined TANGENT || defined TL_IOMS
870 allocate (
boundary(ng) % zeta_east(lbj:ubj) )
873#if defined CELERITY_READ || defined CELERITY_WRITE
874 allocate (
boundary(ng) % zeta_east_C2(lbj:ubj) )
877 allocate (
boundary(ng) % zeta_east_Ce(lbj:ubj) )
880 allocate (
boundary(ng) % zeta_east_Cx(lbj:ubj) )
884 allocate (
boundary(ng) % zetaG_east(lbj:ubj,2) )
889#if defined ADJOINT || defined TANGENT || defined TL_IOMS
895 allocate (
boundary(ng) % zeta_south(lbi:ubi) )
898#if defined CELERITY_READ || defined CELERITY_WRITE
899 allocate (
boundary(ng) % zeta_south_C2(lbi:ubi) )
902 allocate (
boundary(ng) % zeta_south_Ce(lbi:ubi) )
905 allocate (
boundary(ng) % zeta_south_Cx(lbi:ubi) )
909 allocate (
boundary(ng) % zetaG_south(lbi:ubi,2) )
914#if defined ADJOINT || defined TANGENT || defined TL_IOMS
920 allocate (
boundary(ng) % zeta_north(lbi:ubi) )
923#if defined CELERITY_READ || defined CELERITY_WRITE
924 allocate (
boundary(ng) % zeta_north_C2(lbi:ubi) )
927 allocate (
boundary(ng) % zeta_north_Ce(lbi:ubi) )
930 allocate (
boundary(ng) % zeta_north_Cx(lbi:ubi) )
934 allocate (
boundary(ng) % zetaG_north(lbi:ubi,2) )
939#if defined ADJOINT || defined TANGENT || defined TL_IOMS
945 allocate (
boundary(ng) % ubar_west(lbj:ubj) )
948#if defined CELERITY_READ || defined CELERITY_WRITE
949 allocate (
boundary(ng) % ubar_west_C2(lbj:ubj) )
952 allocate (
boundary(ng) % ubar_west_Ce(lbj:ubj) )
955 allocate (
boundary(ng) % ubar_west_Cx(lbj:ubj) )
959 allocate (
boundary(ng) % ubarG_west(lbj:ubj,2) )
964 IF (
lbc(
iwest,isu2sd,ng)%acquire)
THEN
965 allocate (
boundary(ng) % ubarstokes_west(lbj:ubj) )
970#if defined ADJOINT || defined TANGENT || defined TL_IOMS
976 allocate (
boundary(ng) % ubar_east(lbj:ubj) )
979#if defined CELERITY_READ || defined CELERITY_WRITE
980 allocate (
boundary(ng) % ubar_east_C2(lbj:ubj) )
983 allocate (
boundary(ng) % ubar_east_Ce(lbj:ubj) )
986 allocate (
boundary(ng) % ubar_east_Cx(lbj:ubj) )
990 allocate (
boundary(ng) % ubarG_east(lbj:ubj,2) )
995 IF (
lbc(
ieast,isu2sd,ng)%acquire)
THEN
996 allocate (
boundary(ng) % ubarstokes_east(lbj:ubj) )
1001#if defined ADJOINT || defined TANGENT || defined TL_IOMS
1007 allocate (
boundary(ng) % ubar_south(lbi:ubi) )
1009#if defined CELERITY_READ || defined CELERITY_WRITE
1010 allocate (
boundary(ng) % ubar_south_C2(lbi:ubi) )
1013 allocate (
boundary(ng) % ubar_south_Ce(lbi:ubi) )
1016 allocate (
boundary(ng) % ubar_south_Cx(lbi:ubi) )
1020 allocate (
boundary(ng) % ubarG_south(lbi:ubi,2) )
1026 allocate (
boundary(ng) % ubarstokes_south(lbi:ubi) )
1031#if defined ADJOINT || defined TANGENT || defined TL_IOMS
1037 allocate (
boundary(ng) % ubar_north(lbi:ubi) )
1040#if defined CELERITY_READ || defined CELERITY_WRITE
1041 allocate (
boundary(ng) % ubar_north_C2(lbi:ubi) )
1044 allocate (
boundary(ng) % ubar_north_Ce(lbi:ubi) )
1047 allocate (
boundary(ng) % ubar_north_Cx(lbi:ubi) )
1051 allocate (
boundary(ng) % ubarG_north(lbi:ubi,2) )
1057 allocate (
boundary(ng) % ubarstokes_north(lbi:ubi) )
1062#if defined ADJOINT || defined TANGENT || defined TL_IOMS
1068 allocate (
boundary(ng) % vbar_west(lbj:ubj) )
1071#if defined CELERITY_READ || defined CELERITY_WRITE
1072 allocate (
boundary(ng) % vbar_west_C2(lbj:ubj) )
1075 allocate (
boundary(ng) % vbar_west_Ce(lbj:ubj) )
1078 allocate (
boundary(ng) % vbar_west_Cx(lbj:ubj) )
1082 allocate (
boundary(ng) % vbarG_west(lbj:ubj,2) )
1087 IF (
lbc(
iwest,isv2sd,ng)%acquire)
THEN
1088 allocate (
boundary(ng) % vbarstokes_west(lbj:ubj) )
1093#if defined ADJOINT || defined TANGENT || defined TL_IOMS
1099 allocate (
boundary(ng) % vbar_east(lbj:ubj) )
1102#if defined CELERITY_READ || defined CELERITY_WRITE
1103 allocate (
boundary(ng) % vbar_east_C2(lbj:ubj) )
1106 allocate (
boundary(ng) % vbar_east_Ce(lbj:ubj) )
1109 allocate (
boundary(ng) % vbar_east_Cx(lbj:ubj) )
1113 allocate (
boundary(ng) % vbarG_east(lbj:ubj,2) )
1118 IF (
lbc(
ieast,isv2sd,ng)%acquire)
THEN
1119 allocate (
boundary(ng) % vbarstokes_east(lbj:ubj) )
1124#if defined ADJOINT || defined TANGENT || defined TL_IOMS
1130 allocate (
boundary(ng) % vbar_south(lbi:ubi) )
1133#if defined CELERITY_READ || defined CELERITY_WRITE
1134 allocate (
boundary(ng) % vbar_south_C2(lbi:ubi) )
1137 allocate (
boundary(ng) % vbar_south_Ce(lbi:ubi) )
1140 allocate (
boundary(ng) % vbar_south_Cx(lbi:ubi) )
1144 allocate (
boundary(ng) % vbarG_south(lbi:ubi,2) )
1150 allocate (
boundary(ng) % vbarstokes_south(lbj:ubj) )
1155#if defined ADJOINT || defined TANGENT || defined TL_IOMS
1161 allocate (
boundary(ng) % vbar_north(lbi:ubi) )
1164#if defined CELERITY_READ || defined CELERITY_WRITE
1165 allocate (
boundary(ng) % vbar_north_C2(lbi:ubi) )
1168 allocate (
boundary(ng) % vbar_north_Ce(lbi:ubi) )
1171 allocate (
boundary(ng) % vbar_north_Cx(lbi:ubi) )
1175 allocate (
boundary(ng) % vbarG_north(lbi:ubi,2) )
1181 allocate (
boundary(ng) % vbarstokes_north(lbj:ubj) )
1188# if defined ADJOINT || defined TANGENT || defined TL_IOMS
1194 allocate (
boundary(ng) % u_west(lbj:ubj,
n(ng)) )
1197# if defined CELERITY_READ || defined CELERITY_WRITE
1198 allocate (
boundary(ng) % u_west_C2(lbj:ubj,
n(ng)) )
1201 allocate (
boundary(ng) % u_west_Ce(lbj:ubj,
n(ng)) )
1204 allocate (
boundary(ng) % u_west_Cx(lbj:ubj,
n(ng)) )
1208 allocate (
boundary(ng) % uG_west(lbj:ubj,
n(ng),2) )
1213 IF (
lbc(
iwest,isu3sd,ng)%acquire)
THEN
1214 allocate (
boundary(ng) % ustokes_west(lbj:ubj,
n(ng)) )
1219# if defined ADJOINT || defined TANGENT || defined TL_IOMS
1225 allocate (
boundary(ng) % u_east(lbj:ubj,
n(ng)) )
1228# if defined CELERITY_READ || defined CELERITY_WRITE
1229 allocate (
boundary(ng) % u_east_C2(lbj:ubj,
n(ng)) )
1232 allocate (
boundary(ng) % u_east_Ce(lbj:ubj,
n(ng)) )
1235 allocate (
boundary(ng) % u_east_Cx(lbj:ubj,
n(ng)) )
1239 allocate (
boundary(ng) % uG_east(lbj:ubj,
n(ng),2) )
1244 IF (
lbc(
ieast,isu3sd,ng)%acquire)
THEN
1245 allocate (
boundary(ng) % ustokes_east(lbj:ubj,
n(ng)) )
1250# if defined ADJOINT || defined TANGENT || defined TL_IOMS
1256 allocate (
boundary(ng) % u_south(lbi:ubi,
n(ng)) )
1259# if defined CELERITY_READ || defined CELERITY_WRITE
1260 allocate (
boundary(ng) % u_south_C2(lbi:ubi,
n(ng)) )
1263 allocate (
boundary(ng) % u_south_Ce(lbi:ubi,
n(ng)) )
1266 allocate (
boundary(ng) % u_south_Cx(lbi:ubi,
n(ng)) )
1270 allocate (
boundary(ng) % uG_south(lbi:ubi,
n(ng),2) )
1276 allocate (
boundary(ng) % ustokes_south(lbi:ubi,
n(ng)) )
1281# if defined ADJOINT || defined TANGENT || defined TL_IOMS
1287 allocate (
boundary(ng) % u_north(lbi:ubi,
n(ng)) )
1290# if defined CELERITY_READ || defined CELERITY_WRITE
1291 allocate (
boundary(ng) % u_north_C2(lbi:ubi,
n(ng)) )
1294 allocate (
boundary(ng) % u_north_Ce(lbi:ubi,
n(ng)) )
1297 allocate (
boundary(ng) % u_north_Cx(lbi:ubi,
n(ng)) )
1301 allocate (
boundary(ng) % uG_north(lbi:ubi,
n(ng),2) )
1307 allocate (
boundary(ng) % ustokes_north(lbi:ubi,
n(ng)) )
1312# if defined ADJOINT || defined TANGENT || defined TL_IOMS
1318 allocate (
boundary(ng) % v_west(lbj:ubj,
n(ng)) )
1321# if defined CELERITY_READ || defined CELERITY_WRITE
1322 allocate (
boundary(ng) % v_west_C2(lbj:ubj,
n(ng)) )
1325 allocate (
boundary(ng) % v_west_Ce(lbj:ubj,
n(ng)) )
1328 allocate (
boundary(ng) % v_west_Cx(lbj:ubj,
n(ng)) )
1332 allocate (
boundary(ng) % vG_west(lbj:ubj,
n(ng),2) )
1337 IF (
lbc(
iwest,isv3sd,ng)%acquire)
THEN
1338 allocate (
boundary(ng) % vstokes_west(lbj:ubj,
n(ng)) )
1343# if defined ADJOINT || defined TANGENT || defined TL_IOMS
1349 allocate (
boundary(ng) % v_east(lbj:ubj,
n(ng)) )
1352# if defined CELERITY_READ || defined CELERITY_WRITE
1353 allocate (
boundary(ng) % v_east_C2(lbj:ubj,
n(ng)) )
1356 allocate (
boundary(ng) % v_east_Ce(lbj:ubj,
n(ng)) )
1359 allocate (
boundary(ng) % v_east_Cx(lbj:ubj,
n(ng)) )
1363 allocate (
boundary(ng) % vG_east(lbj:ubj,
n(ng),2) )
1368 IF (
lbc(
ieast,isv3sd,ng)%acquire)
THEN
1369 allocate (
boundary(ng) % vstokes_east(lbj:ubj,
n(ng)) )
1374# if defined ADJOINT || defined TANGENT || defined TL_IOMS
1380 allocate (
boundary(ng) % v_south(lbi:ubi,
n(ng)) )
1383# if defined CELERITY_READ || defined CELERITY_WRITE
1384 allocate (
boundary(ng) % v_south_C2(lbi:ubi,
n(ng)) )
1387 allocate (
boundary(ng) % v_south_Ce(lbi:ubi,
n(ng)) )
1390 allocate (
boundary(ng) % v_south_Cx(lbi:ubi,
n(ng)) )
1394 allocate (
boundary(ng) % vG_south(lbi:ubi,
n(ng),2) )
1400 allocate (
boundary(ng) % vstokes_south(lbi:ubi,
n(ng)) )
1405# if defined ADJOINT || defined TANGENT || defined TL_IOMS
1411 allocate (
boundary(ng) % v_north(lbi:ubi,
n(ng)) )
1414# if defined CELERITY_READ || defined CELERITY_WRITE
1415 allocate (
boundary(ng) % u_north_C2(lbi:ubi,
n(ng)) )
1418 allocate (
boundary(ng) % u_north_Ce(lbi:ubi,
n(ng)) )
1421 allocate (
boundary(ng) % u_north_Cx(lbi:ubi,
n(ng)) )
1425 allocate (
boundary(ng) % vG_north(lbi:ubi,
n(ng),2) )
1431 allocate (
boundary(ng) % vstokes_north(lbi:ubi,
n(ng)) )
1436# if defined ADJOINT || defined TANGENT || defined TL_IOMS
1442 allocate (
boundary(ng) % t_west(lbj:ubj,
n(ng),
nt(ng)) )
1445# if defined CELERITY_READ || defined CELERITY_WRITE
1446 allocate (
boundary(ng) % t_west_C2(lbj:ubj,
n(ng),
nt(ng)) )
1449 allocate (
boundary(ng) % t_west_Ce(lbj:ubj,
n(ng),
nt(ng)) )
1452 allocate (
boundary(ng) % t_west_Cx(lbj:ubj,
n(ng),
nt(ng)) )
1456 allocate (
boundary(ng) % tG_west(lbj:ubj,
n(ng),2,
nt(ng)) )
1461# if defined ADJOINT || defined TANGENT || defined TL_IOMS
1467 allocate (
boundary(ng) % t_east(lbj:ubj,
n(ng),
nt(ng)) )
1470# if defined CELERITY_READ || defined CELERITY_WRITE
1471 allocate (
boundary(ng) % t_east_C2(lbj:ubj,
n(ng),
nt(ng)) )
1474 allocate (
boundary(ng) % t_east_Ce(lbj:ubj,
n(ng),
nt(ng)) )
1477 allocate (
boundary(ng) % t_east_Cx(lbj:ubj,
n(ng),
nt(ng)) )
1481 allocate (
boundary(ng) % tG_east(lbj:ubj,
n(ng),2,
nt(ng)) )
1486# if defined ADJOINT || defined TANGENT || defined TL_IOMS
1492 allocate (
boundary(ng) % t_south(lbi:ubi,
n(ng),
nt(ng)) )
1495# if defined CELERITY_READ || defined CELERITY_WRITE
1496 allocate (
boundary(ng) % t_south_C2(lbi:ubi,
n(ng),
nt(ng)) )
1499 allocate (
boundary(ng) % t_south_Ce(lbi:ubi,
n(ng),
nt(ng)) )
1502 allocate (
boundary(ng) % t_south_Cx(lbi:ubi,
n(ng),
nt(ng)) )
1506 allocate (
boundary(ng) % tG_south(lbi:ubi,
n(ng),2,
nt(ng)) )
1511# if defined ADJOINT || defined TANGENT || defined TL_IOMS
1517 allocate (
boundary(ng) % t_north(lbi:ubi,
n(ng),
nt(ng)) )
1520# if defined CELERITY_READ || defined CELERITY_WRITE
1521 allocate (
boundary(ng) % t_north_C2(lbi:ubi,
n(ng),
nt(ng)) )
1524 allocate (
boundary(ng) % t_north_Ce(lbi:ubi,
n(ng),
nt(ng)) )
1527 allocate (
boundary(ng) % t_north_Cx(lbi:ubi,
n(ng),
nt(ng)) )
1531 allocate (
boundary(ng) % tG_north(lbi:ubi,
n(ng),2,
nt(ng)) )
1537#if defined TANGENT || defined TL_IOMS
1544 allocate (
boundary(ng) % tl_zeta_west(lbj:ubj) )
1549 allocate (
boundary(ng) % tl_zeta_east(lbj:ubj) )
1554 allocate (
boundary(ng) % tl_zeta_south(lbi:ubi) )
1559 allocate (
boundary(ng) % tl_zeta_north(lbi:ubi) )
1564 allocate (
boundary(ng) % tl_ubar_west(lbj:ubj) )
1569 allocate (
boundary(ng) % tl_ubar_east(lbj:ubj) )
1574 allocate (
boundary(ng) % tl_ubar_south(lbi:ubi) )
1579 allocate (
boundary(ng) % tl_ubar_north(lbi:ubi) )
1584 allocate (
boundary(ng) % tl_vbar_west(lbj:ubj) )
1589 allocate (
boundary(ng) % tl_vbar_east(lbj:ubj) )
1594 allocate (
boundary(ng) % tl_vbar_south(lbi:ubi) )
1599 allocate (
boundary(ng) % tl_vbar_north(lbi:ubi) )
1606 allocate (
boundary(ng) % tl_u_west(lbj:ubj,
n(ng)) )
1611 allocate (
boundary(ng) % tl_u_east(lbj:ubj,
n(ng)) )
1616 allocate (
boundary(ng) % tl_u_south(lbi:ubi,
n(ng)) )
1621 allocate (
boundary(ng) % tl_u_north(lbi:ubi,
n(ng)) )
1626 allocate (
boundary(ng) % tl_v_west(lbj:ubj,
n(ng)) )
1631 allocate (
boundary(ng) % tl_v_east(lbj:ubj,
n(ng)) )
1636 allocate (
boundary(ng) % tl_v_south(lbi:ubi,
n(ng)) )
1641 allocate (
boundary(ng) % tl_v_north(lbi:ubi,
n(ng)) )
1646 allocate (
boundary(ng) % tl_t_west(lbj:ubj,
n(ng),
nt(ng)) )
1651 allocate (
boundary(ng) % tl_t_east(lbj:ubj,
n(ng),
nt(ng)) )
1656 allocate (
boundary(ng) % tl_t_south(lbi:ubi,
n(ng),
nt(ng)) )
1661 allocate (
boundary(ng) % tl_t_north(lbi:ubi,
n(ng),
nt(ng)) )
1674 allocate (
boundary(ng) % ad_zeta_west(lbj:ubj) )
1679 allocate (
boundary(ng) % ad_zeta_east(lbj:ubj) )
1684 allocate (
boundary(ng) % ad_zeta_south(lbi:ubi) )
1689 allocate (
boundary(ng) % ad_zeta_north(lbi:ubi) )
1694 allocate (
boundary(ng) % ad_ubar_west(lbj:ubj) )
1699 allocate (
boundary(ng) % ad_ubar_east(lbj:ubj) )
1704 allocate (
boundary(ng) % ad_ubar_south(lbi:ubi) )
1709 allocate (
boundary(ng) % ad_ubar_north(lbi:ubi) )
1714 allocate (
boundary(ng) % ad_vbar_west(lbj:ubj) )
1719 allocate (
boundary(ng) % ad_vbar_east(lbj:ubj) )
1724 allocate (
boundary(ng) % ad_vbar_south(lbi:ubi) )
1729 allocate (
boundary(ng) % ad_vbar_north(lbi:ubi) )
1736 allocate (
boundary(ng) % ad_u_west(lbj:ubj,
n(ng)) )
1741 allocate (
boundary(ng) % ad_u_east(lbj:ubj,
n(ng)) )
1746 allocate (
boundary(ng) % ad_u_south(lbi:ubi,
n(ng)) )
1751 allocate (
boundary(ng) % ad_u_north(lbi:ubi,
n(ng)) )
1756 allocate (
boundary(ng) % ad_v_west(lbj:ubj,
n(ng)) )
1761 allocate (
boundary(ng) % ad_v_east(lbj:ubj,
n(ng)) )
1766 allocate (
boundary(ng) % ad_v_south(lbi:ubi,
n(ng)) )
1771 allocate (
boundary(ng) % ad_v_north(lbi:ubi,
n(ng)) )
1776 allocate (
boundary(ng) % ad_t_west(lbj:ubj,
n(ng),
nt(ng)) )
1781 allocate (
boundary(ng) % ad_t_east(lbj:ubj,
n(ng),
nt(ng)) )
1786 allocate (
boundary(ng) % ad_t_south(lbi:ubi,
n(ng),
nt(ng)) )
1791 allocate (
boundary(ng) % ad_t_north(lbi:ubi,
n(ng),
nt(ng)) )
1797#ifdef ADJUST_BOUNDARY
1804 allocate (
boundary(ng) % t_obc(lbij:ubij,
n(ng),4, &
1808 allocate (
boundary(ng) % u_obc(lbij:ubij,
n(ng), &
1812 allocate (
boundary(ng) % v_obc(lbij:ubij,
n(ng), &
1816 allocate (
boundary(ng) % ad_t_obc(lbij:ubij,
n(ng),4, &
1820 allocate (
boundary(ng) % ad_u_obc(lbij:ubij,
n(ng), &
1824 allocate (
boundary(ng) % ad_v_obc(lbij:ubij,
n(ng), &
1828 allocate (
boundary(ng) % tl_t_obc(lbij:ubij,
n(ng),4, &
1832 allocate (
boundary(ng) % tl_u_obc(lbij:ubij,
n(ng), &
1836 allocate (
boundary(ng) % tl_v_obc(lbij:ubij,
n(ng), &
1840 allocate (
boundary(ng) % b_t_obc(lbij:ubij,
n(ng),4,
nt(ng)) )
1843 allocate (
boundary(ng) % b_u_obc(lbij:ubij,
n(ng),4) )
1846 allocate (
boundary(ng) % b_v_obc(lbij:ubij,
n(ng),4) )
1849 allocate (
boundary(ng) % d_t_obc(lbij:ubij,
n(ng),4, &
1853 allocate (
boundary(ng) % d_u_obc(lbij:ubij,
n(ng), &
1857 allocate (
boundary(ng) % d_v_obc(lbij:ubij,
n(ng), &
1861 allocate (
boundary(ng) % e_t_obc(lbij:ubij,
n(ng),4,
nt(ng)) )
1864 allocate (
boundary(ng) % e_u_obc(lbij:ubij,
n(ng),4) )
1867 allocate (
boundary(ng) % e_v_obc(lbij:ubij,
n(ng),4) )
1870 allocate (
boundary(ng) % ubar_obc(lbij:ubij,4,
nbrec(ng),2) )
1873 allocate (
boundary(ng) % vbar_obc(lbij:ubij,4,
nbrec(ng),2) )
1876 allocate (
boundary(ng) % zeta_obc(lbij:ubij,4,
nbrec(ng),2) )
1879 allocate (
boundary(ng) % ad_ubar_obc(lbij:ubij,4,
nbrec(ng),2) )
1882 allocate (
boundary(ng) % ad_vbar_obc(lbij:ubij,4,
nbrec(ng),2) )
1885 allocate (
boundary(ng) % ad_zeta_obc(lbij:ubij,4,
nbrec(ng),2) )
1888 allocate (
boundary(ng) % tl_ubar_obc(lbij:ubij,4,
nbrec(ng),2) )
1891 allocate (
boundary(ng) % tl_vbar_obc(lbij:ubij,4,
nbrec(ng),2) )
1894 allocate (
boundary(ng) % tl_zeta_obc(lbij:ubij,4,
nbrec(ng),2) )
1897 allocate (
boundary(ng) % b_ubar_obc(lbij:ubij,4) )
1900 allocate (
boundary(ng) % b_vbar_obc(lbij:ubij,4) )
1903 allocate (
boundary(ng) % b_zeta_obc(lbij:ubij,4) )
1906 allocate (
boundary(ng) % d_ubar_obc(lbij:ubij,4,
nbrec(ng)) )
1909 allocate (
boundary(ng) % d_vbar_obc(lbij:ubij,4,
nbrec(ng)) )
1912 allocate (
boundary(ng) % d_zeta_obc(lbij:ubij,4,
nbrec(ng)) )
1915 allocate (
boundary(ng) % e_ubar_obc(lbij:ubij,4) )
1918 allocate (
boundary(ng) % e_vbar_obc(lbij:ubij,4) )
1921 allocate (
boundary(ng) % e_zeta_obc(lbij:ubij,4) )
1941#ifdef SUBOBJECT_DEALLOCATION
1948 integer,
intent(in) :: ng
1952 character (len=*),
parameter :: myfile = &
1953 & __FILE__//
", deallocate_boundary"
1955#ifdef SUBOBJECT_DEALLOCATION
1965 & __line__,
'LBC_apply(ng)%west'))
RETURN
1968 & __line__,
'LBC_apply(ng)%east'))
RETURN
1971 & __line__,
'LBC_apply(ng)%south'))
RETURN
1974 & __line__,
'LBC_apply(ng)%north'))
RETURN
1978# if defined ADJOINT || defined TANGENT || defined TL_IOMS
1985 & __line__,
'BOUNDARY(ng)%zeta_west'))
RETURN
1987# if defined CELERITY_READ || defined CELERITY_WRITE
1989 & __line__,
'BOUNDARY(ng)%zeta_west_C2'))
RETURN
1992 & __line__,
'BOUNDARY(ng)%zeta_west_Ce'))
RETURN
1995 & __line__,
'BOUNDARY(ng)%zeta_west_Cx'))
RETURN
2000 & __line__,
'BOUNDARY(ng)%zetaG_west'))
RETURN
2004# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2011 & __line__,
'BOUNDARY(ng)%zeta_east'))
RETURN
2013# if defined CELERITY_READ || defined CELERITY_WRITE
2015 & __line__,
'BOUNDARY(ng)%zeta_east_C2'))
RETURN
2018 & __line__,
'BOUNDARY(ng)%zeta_east_Ce'))
RETURN
2021 & __line__,
'BOUNDARY(ng)%zeta_east_Cx'))
RETURN
2026 & __line__,
'BOUNDARY(ng)%zetaG_east'))
RETURN
2030# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2037 & __line__,
'BOUNDARY(ng)%zeta_south'))
RETURN
2039# if defined CELERITY_READ || defined CELERITY_WRITE
2041 & __line__,
'BOUNDARY(ng)%zeta_south_C2'))
RETURN
2044 & __line__,
'BOUNDARY(ng)%zeta_south_Ce'))
RETURN
2047 & __line__,
'BOUNDARY(ng)%zeta_south_Cx'))
RETURN
2052 & __line__,
'BOUNDARY(ng)%zetaG_south'))
RETURN
2056# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2063 & __line__,
'BOUNDARY(ng)%zeta_north'))
RETURN
2065# if defined CELERITY_READ || defined CELERITY_WRITE
2067 & __line__,
'BOUNDARY(ng)%zeta_north_C2'))
RETURN
2070 & __line__,
'BOUNDARY(ng)%zeta_north_Ce'))
RETURN
2073 & __line__,
'BOUNDARY(ng)%zeta_north_Cx'))
RETURN
2078 & __line__,
'BOUNDARY(ng)%zetaG_north'))
RETURN
2082# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2089 & __line__,
'BOUNDARY(ng)%ubar_west'))
RETURN
2091# if defined CELERITY_READ || defined CELERITY_WRITE
2093 & __line__,
'BOUNDARY(ng)%ubar_west_C2'))
RETURN
2096 & __line__,
'BOUNDARY(ng)%ubar_west_Ce'))
RETURN
2099 & __line__,
'BOUNDARY(ng)%ubar_west_Cx'))
RETURN
2104 & __line__,
'BOUNDARY(ng)%ubarG_west'))
RETURN
2108 IF (
lbc(
iwest,isu2sd,ng)%acquire)
THEN
2110 & __line__,
'BOUNDARY(ng)%ubarstokes_west'))
RETURN
2114# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2121 & __line__,
'BOUNDARY(ng)%ubar_east'))
RETURN
2123# if defined CELERITY_READ || defined CELERITY_WRITE
2125 & __line__,
'BOUNDARY(ng)%ubar_east_C2'))
RETURN
2128 & __line__,
'BOUNDARY(ng)%ubar_east_Ce'))
RETURN
2131 & __line__,
'BOUNDARY(ng)%ubar_east_Cx'))
RETURN
2136 & __line__,
'BOUNDARY(ng)%ubarG_east'))
RETURN
2140 IF (
lbc(
ieast,isu2sd,ng)%acquire)
THEN
2142 & __line__,
'BOUNDARY(ng)%ubarstokes_east'))
RETURN
2146# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2153 & __line__,
'BOUNDARY(ng)%ubar_south'))
RETURN
2155# if defined CELERITY_READ || defined CELERITY_WRITE
2157 & __line__,
'BOUNDARY(ng)%ubar_south_C2'))
RETURN
2160 & __line__,
'BOUNDARY(ng)%ubar_south_Ce'))
RETURN
2163 & __line__,
'BOUNDARY(ng)%ubar_south_Cx'))
RETURN
2168 & __line__,
'BOUNDARY(ng)%ubarG_south'))
RETURN
2174 & __line__,
'BOUNDARY(ng)%ubarstokes_south'))
RETURN
2178# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2185 & __line__,
'BOUNDARY(ng)%ubar_north'))
RETURN
2187# if defined CELERITY_READ || defined CELERITY_WRITE
2189 & __line__,
'BOUNDARY(ng)%ubar_north_C2'))
RETURN
2192 & __line__,
'BOUNDARY(ng)%ubar_north_Ce'))
RETURN
2195 & __line__,
'BOUNDARY(ng)%ubar_north_Cx'))
RETURN
2200 & __line__,
'BOUNDARY(ng)%ubarG_north'))
RETURN
2206 & __line__,
'BOUNDARY(ng)%ubarstokes_north'))
RETURN
2210# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2217 & __line__,
'BOUNDARY(ng)%vbar_west'))
RETURN
2219# if defined CELERITY_READ || defined CELERITY_WRITE
2221 & __line__,
'BOUNDARY(ng)%vbar_west_C2'))
RETURN
2224 & __line__,
'BOUNDARY(ng)%vbar_west_Ce'))
RETURN
2227 & __line__,
'BOUNDARY(ng)%vbar_west_Cx'))
RETURN
2232 & __line__,
'BOUNDARY(ng)%vbarG_west'))
RETURN
2236 IF (
lbc(
iwest,isv2sd,ng)%acquire)
THEN
2238 & __line__,
'BOUNDARY(ng)%vbarstokes_west'))
RETURN
2242# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2249 & __line__,
'BOUNDARY(ng)%vbar_east'))
RETURN
2251# if defined CELERITY_READ || defined CELERITY_WRITE
2253 & __line__,
'BOUNDARY(ng)%vbar_east_C2'))
RETURN
2256 & __line__,
'BOUNDARY(ng)%vbar_east_Ce'))
RETURN
2259 & __line__,
'BOUNDARY(ng)%vbar_east_Cx'))
RETURN
2264 & __line__,
'BOUNDARY(ng)%vbarG_east'))
RETURN
2268 IF (
lbc(
ieast,isv2sd,ng)%acquire)
THEN
2270 & __line__,
'BOUNDARY(ng)%vbarstokes_east'))
RETURN
2274# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2281 & __line__,
'BOUNDARY(ng)%vbar_south'))
RETURN
2283# if defined CELERITY_READ || defined CELERITY_WRITE
2285 & __line__,
'BOUNDARY(ng)%vbar_south_C2'))
RETURN
2288 & __line__,
'BOUNDARY(ng)%vbar_south_Ce'))
RETURN
2291 & __line__,
'BOUNDARY(ng)%vbar_south_Cx'))
RETURN
2296 & __line__,
'BOUNDARY(ng)%vbarG_south'))
RETURN
2302 & __line__,
'BOUNDARY(ng)%vbarstokes_south'))
RETURN
2306# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2313 & __line__,
'BOUNDARY(ng)%vbar_north'))
RETURN
2315# if defined CELERITY_READ || defined CELERITY_WRITE
2317 & __line__,
'BOUNDARY(ng)%vbar_north_C2'))
RETURN
2320 & __line__,
'BOUNDARY(ng)%vbar_north_Ce'))
RETURN
2323 & __line__,
'BOUNDARY(ng)%vbar_north_Cx'))
RETURN
2328 & __line__,
'BOUNDARY(ng)%vbarG_north'))
RETURN
2334 & __line__,
'BOUNDARY(ng)%vbarstokes_north'))
RETURN
2340# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2347 & __line__,
'BOUNDARY(ng)%u_west'))
RETURN
2349# if defined CELERITY_READ || defined CELERITY_WRITE
2351 & __line__,
'BOUNDARY(ng)%u_west_C2'))
RETURN
2354 & __line__,
'BOUNDARY(ng)%u_west_Ce'))
RETURN
2357 & __line__,
'BOUNDARY(ng)%u_west_Cx'))
RETURN
2362 & __line__,
'BOUNDARY(ng)%uG_west'))
RETURN
2366 IF (
lbc(
iwest,isu3sd,ng)%acquire)
THEN
2368 & __line__,
'BOUNDARY(ng)%ustokes_west'))
RETURN
2372# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2379 & __line__,
'BOUNDARY(ng)%u_east'))
RETURN
2381# if defined CELERITY_READ || defined CELERITY_WRITE
2383 & __line__,
'BOUNDARY(ng)%u_east_C2'))
RETURN
2386 & __line__,
'BOUNDARY(ng)%u_east_Ce'))
RETURN
2389 & __line__,
'BOUNDARY(ng)%u_east_Cx'))
RETURN
2394 & __line__,
'BOUNDARY(ng)%uG_east'))
RETURN
2398 IF (
lbc(
ieast,isu3sd,ng)%acquire)
THEN
2400 & __line__,
'BOUNDARY(ng)%ustokes_east'))
RETURN
2404# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2411 & __line__,
'BOUNDARY(ng)%u_south'))
RETURN
2413# if defined CELERITY_READ || defined CELERITY_WRITE
2415 & __line__,
'BOUNDARY(ng)%u_south_C2'))
RETURN
2418 & __line__,
'BOUNDARY(ng)%u_south_Ce'))
RETURN
2421 & __line__,
'BOUNDARY(ng)%u_south_Cx'))
RETURN
2426 & __line__,
'BOUNDARY(ng)%uG_south'))
RETURN
2432 & __line__,
'BOUNDARY(ng)%ustokes_south'))
RETURN
2436# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2443 & __line__,
'BOUNDARY(ng)%u_north'))
RETURN
2445# if defined CELERITY_READ || defined CELERITY_WRITE
2447 & __line__,
'BOUNDARY(ng)%u_north_C2'))
RETURN
2450 & __line__,
'BOUNDARY(ng)%u_north_Ce'))
RETURN
2453 & __line__,
'BOUNDARY(ng)%u_north_Cx'))
RETURN
2458 & __line__,
'BOUNDARY(ng)%uG_north'))
RETURN
2464 & __line__,
'BOUNDARY(ng)%ustokes_north'))
RETURN
2468# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2475 & __line__,
'BOUNDARY(ng)%v_west'))
RETURN
2477# if defined CELERITY_READ || defined CELERITY_WRITE
2479 & __line__,
'BOUNDARY(ng)%v_west_C2'))
RETURN
2482 & __line__,
'BOUNDARY(ng)%v_west_Ce'))
RETURN
2485 & __line__,
'BOUNDARY(ng)%v_west_Cx'))
RETURN
2490 & __line__,
'BOUNDARY(ng)%vG_west'))
RETURN
2494 IF (
lbc(
iwest,isv3sd,ng)%acquire)
THEN
2496 & __line__,
'BOUNDARY(ng)%vstokes_west'))
RETURN
2500# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2507 & __line__,
'BOUNDARY(ng)%v_east'))
RETURN
2509# if defined CELERITY_READ || defined CELERITY_WRITE
2511 & __line__,
'BOUNDARY(ng)%v_east_C2'))
RETURN
2514 & __line__,
'BOUNDARY(ng)%v_east_Ce'))
RETURN
2517 & __line__,
'BOUNDARY(ng)%v_east_Cx'))
RETURN
2522 & __line__,
'BOUNDARY(ng)%vG_east'))
RETURN
2526 IF (
lbc(
ieast,isv3sd,ng)%acquire)
THEN
2528 & __line__,
'BOUNDARY(ng)%vstokes_east'))
RETURN
2532# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2539 & __line__,
'BOUNDARY(ng)%v_south'))
RETURN
2541# if defined CELERITY_READ || defined CELERITY_WRITE
2543 & __line__,
'BOUNDARY(ng)%v_south_C2'))
RETURN
2546 & __line__,
'BOUNDARY(ng)%v_south_Ce'))
RETURN
2549 & __line__,
'BOUNDARY(ng)%v_south_Cx'))
RETURN
2554 & __line__,
'BOUNDARY(ng)%vG_south'))
RETURN
2560 & __line__,
'BOUNDARY(ng)%vstokes_south'))
RETURN
2564# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2571 & __line__,
'BOUNDARY(ng)%v_north'))
RETURN
2573# if defined CELERITY_READ || defined CELERITY_WRITE
2575 & __line__,
'BOUNDARY(ng)%u_north_C2'))
RETURN
2578 & __line__,
'BOUNDARY(ng)%u_north_Ce'))
RETURN
2581 & __line__,
'BOUNDARY(ng)%u_north_Cx'))
RETURN
2586 & __line__,
'BOUNDARY(ng)%vG_north'))
RETURN
2592 & __line__,
'BOUNDARY(ng)%vstokes_north'))
RETURN
2596# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2603 & __line__,
'BOUNDARY(ng)%t_west'))
RETURN
2605# if defined CELERITY_READ || defined CELERITY_WRITE
2607 & __line__,
'BOUNDARY(ng)%t_west_C2'))
RETURN
2610 & __line__,
'BOUNDARY(ng)%t_west_Ce'))
RETURN
2613 & __line__,
'BOUNDARY(ng)%t_west_Cx'))
RETURN
2618 & __line__,
'BOUNDARY(ng)%tG_west'))
RETURN
2622# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2629 & __line__,
'BOUNDARY(ng)%t_east'))
RETURN
2631# if defined CELERITY_READ || defined CELERITY_WRITE
2633 & __line__,
'BOUNDARY(ng)%t_east_C2'))
RETURN
2636 & __line__,
'BOUNDARY(ng)%t_east_Ce'))
RETURN
2639 & __line__,
'BOUNDARY(ng)%t_east_Cx'))
RETURN
2644 & __line__,
'BOUNDARY(ng)%tG_east'))
RETURN
2648# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2655 & __line__,
'BOUNDARY(ng)%t_south'))
RETURN
2657# if defined CELERITY_READ || defined CELERITY_WRITE
2659 & __line__,
'BOUNDARY(ng)%t_south_C2'))
RETURN
2662 & __line__,
'BOUNDARY(ng)%t_south_Ce'))
RETURN
2665 & __line__,
'BOUNDARY(ng)%t_south_Cx'))
RETURN
2670 & __line__,
'BOUNDARY(ng)%tG_south'))
RETURN
2674# if defined ADJOINT || defined TANGENT || defined TL_IOMS
2681 & __line__,
'BOUNDARY(ng)%t_north'))
RETURN
2683# if defined CELERITY_READ || defined CELERITY_WRITE
2685 & __line__,
'BOUNDARY(ng)%t_north_C2'))
RETURN
2688 & __line__,
'BOUNDARY(ng)%t_north_Ce'))
RETURN
2691 & __line__,
'BOUNDARY(ng)%t_north_Cx'))
RETURN
2696 & __line__,
'BOUNDARY(ng)%tG_north'))
RETURN
2701# if defined TANGENT || defined TL_IOMS
2707 & __line__,
'BOUNDARY(ng)%tl_zeta_west'))
RETURN
2712 & __line__,
'BOUNDARY(ng)%tl_zeta_east'))
RETURN
2717 & __line__,
'BOUNDARY(ng)%tl_zeta_south'))
RETURN
2722 & __line__,
'BOUNDARY(ng)%tl_zeta_north'))
RETURN
2727 & __line__,
'BOUNDARY(ng)%tl_ubar_west'))
RETURN
2732 & __line__,
'BOUNDARY(ng)%tl_ubar_east'))
RETURN
2737 & __line__,
'BOUNDARY(ng)%tl_ubar_south'))
RETURN
2742 & __line__,
'BOUNDARY(ng)%tl_ubar_north'))
RETURN
2747 & __line__,
'BOUNDARY(ng)%tl_vbar_west'))
RETURN
2752 & __line__,
'BOUNDARY(ng)%tl_vbar_east'))
RETURN
2757 & __line__,
'BOUNDARY(ng)%tl_vbar_south'))
RETURN
2762 & __line__,
'BOUNDARY(ng)%tl_vbar_north'))
RETURN
2769 & __line__,
'BOUNDARY(ng)%tl_u_west'))
RETURN
2773 & __line__,
'BOUNDARY(ng)%tl_u_east'))
RETURN
2778 & __line__,
'BOUNDARY(ng)%tl_u_south'))
RETURN
2783 & __line__,
'BOUNDARY(ng)%tl_u_north'))
RETURN
2788 & __line__,
'BOUNDARY(ng)%tl_v_west'))
RETURN
2793 & __line__,
'BOUNDARY(ng)%tl_v_east'))
RETURN
2798 & __line__,
'BOUNDARY(ng)%tl_v_south'))
RETURN
2803 & __line__,
'BOUNDARY(ng)%tl_v_north'))
RETURN
2808 & __line__,
'BOUNDARY(ng)%tl_t_west'))
RETURN
2813 & __line__,
'BOUNDARY(ng)%tl_t_east'))
RETURN
2818 & __line__,
'BOUNDARY(ng)%tl_t_south'))
RETURN
2823 & __line__,
'BOUNDARY(ng)%tl_t_north'))
RETURN
2834 & __line__,
'BOUNDARY(ng)%ad_zeta_west'))
RETURN
2839 & __line__,
'BOUNDARY(ng)%ad_zeta_east'))
RETURN
2844 & __line__,
'BOUNDARY(ng)%ad_zeta_south'))
RETURN
2849 & __line__,
'BOUNDARY(ng)%ad_zeta_north'))
RETURN
2854 & __line__,
'BOUNDARY(ng)%ad_ubar_west'))
RETURN
2859 & __line__,
'BOUNDARY(ng)%ad_ubar_east'))
RETURN
2864 & __line__,
'BOUNDARY(ng)%ad_ubar_south'))
RETURN
2869 & __line__,
'BOUNDARY(ng)%ad_ubar_north'))
RETURN
2874 & __line__,
'BOUNDARY(ng)%ad_vbar_west'))
RETURN
2879 & __line__,
'BOUNDARY(ng)%ad_vbar_east'))
RETURN
2884 & __line__,
'BOUNDARY(ng)%ad_vbar_south'))
RETURN
2889 & __line__,
'BOUNDARY(ng)%ad_vbar_north'))
RETURN
2896 & __line__,
'BOUNDARY(ng)%ad_u_west'))
RETURN
2901 & __line__,
'BOUNDARY(ng)%ad_u_east'))
RETURN
2906 & __line__,
'BOUNDARY(ng)%ad_u_south'))
RETURN
2911 & __line__,
'BOUNDARY(ng)%ad_u_north'))
RETURN
2916 & __line__,
'BOUNDARY(ng)%ad_v_west'))
RETURN
2921 & __line__,
'BOUNDARY(ng)%ad_v_east'))
RETURN
2926 & __line__,
'BOUNDARY(ng)%ad_v_south'))
RETURN
2931 & __line__,
'BOUNDARY(ng)%ad_v_north'))
RETURN
2936 & __line__,
'BOUNDARY(ng)%ad_t_west'))
RETURN
2941 & __line__,
'BOUNDARY(ng)%ad_t_east'))
RETURN
2946 & __line__,
'BOUNDARY(ng)%ad_t_south'))
RETURN
2951 & __line__,
'BOUNDARY(ng)%ad_t_north'))
RETURN
2956# ifdef ADJUST_BOUNDARY
2962 & __line__,
'BOUNDARY(ng)%t_obc'))
RETURN
2965 & __line__,
'BOUNDARY(ng)%u_obc'))
RETURN
2968 & __line__,
'BOUNDARY(ng)%v_obc'))
RETURN
2971 & __line__,
'BOUNDARY(ng)%ad_t_obc'))
RETURN
2974 & __line__,
'BOUNDARY(ng)%ad_u_obc'))
RETURN
2977 & __line__,
'BOUNDARY(ng)%ad_v_obc'))
RETURN
2980 & __line__,
'BOUNDARY(ng)%tl_t_obc'))
RETURN
2983 & __line__,
'BOUNDARY(ng)%tl_u_obc'))
RETURN
2986 & __line__,
'BOUNDARY(ng)%tl_v_obc'))
RETURN
2989 & __line__,
'BOUNDARY(ng)%b_t_obc'))
RETURN
2992 & __line__,
'BOUNDARY(ng)%b_u_obc'))
RETURN
2995 & __line__,
'BOUNDARY(ng)%b_v_obc'))
RETURN
2998 & __line__,
'BOUNDARY(ng)%d_t_obc'))
RETURN
3001 & __line__,
'BOUNDARY(ng)%d_u_obc'))
RETURN
3004 & __line__,
'BOUNDARY(ng)%d_v_obc'))
RETURN
3007 & __line__,
'BOUNDARY(ng)%e_t_obc'))
RETURN
3010 & __line__,
'BOUNDARY(ng)%e_u_obc'))
RETURN
3013 & __line__,
'BOUNDARY(ng)%e_v_obc'))
RETURN
3017 & __line__,
'BOUNDARY(ng)%ubar_obc'))
RETURN
3020 & __line__,
'BOUNDARY(ng)%vbar_obc'))
RETURN
3023 & __line__,
'BOUNDARY(ng)%zeta_obc'))
RETURN
3026 & __line__,
'BOUNDARY(ng)%ad_ubar_obc'))
RETURN
3029 & __line__,
'BOUNDARY(ng)%ad_vbar_obc'))
RETURN
3032 & __line__,
'BOUNDARY(ng)%ad_zeta_obc'))
RETURN
3035 & __line__,
'BOUNDARY(ng)%tl_ubar_obc'))
RETURN
3038 & __line__,
'BOUNDARY(ng)%tl_vbar_obc'))
RETURN
3041 & __line__,
'BOUNDARY(ng)%tl_zeta_obc'))
RETURN
3044 & __line__,
'BOUNDARY(ng)%b_ubar_obc'))
RETURN
3047 & __line__,
'BOUNDARY(ng)%b_vbar_obc'))
RETURN
3050 & __line__,
'BOUNDARY(ng)%b_zeta_obc'))
RETURN
3053 & __line__,
'BOUNDARY(ng)%d_ubar_obc'))
RETURN
3056 & __line__,
'BOUNDARY(ng)%d_vbar_obc'))
RETURN
3059 & __line__,
'BOUNDARY(ng)%d_zeta_obc'))
RETURN
3062 & __line__,
'BOUNDARY(ng)%e_ubar_obc'))
RETURN
3065 & __line__,
'BOUNDARY(ng)%e_vbar_obc'))
RETURN
3068 & __line__,
'BOUNDARY(ng)%e_zeta_obc'))
RETURN
3102 integer,
intent(in) :: ng, tile, model
3106 real(
r8),
parameter :: inival = 0.0_r8
3109# include "set_bounds.h"
3116 IF ((model.eq.0).or.(model.eq.
inlm))
THEN
3118 IF (
domain(ng)%NorthWest_Test(tile).and. &
3121#if defined CELERITY_READ || defined CELERITY_WRITE
3122 boundary(ng) % zeta_west_C2 = inival
3123 boundary(ng) % zeta_west_Ce = inival
3124 boundary(ng) % zeta_west_Cx = inival
3131 IF (
domain(ng)%SouthEast_Test(tile).and. &
3134#if defined CELERITY_READ || defined CELERITY_WRITE
3135 boundary(ng) % zeta_east_C2 = inival
3136 boundary(ng) % zeta_east_Ce = inival
3137 boundary(ng) % zeta_east_Cx = inival
3144 IF (
domain(ng)%SouthWest_Test(tile).and. &
3147#if defined CELERITY_READ || defined CELERITY_WRITE
3148 boundary(ng) % zeta_south_C2 = inival
3149 boundary(ng) % zeta_south_Ce = inival
3150 boundary(ng) % zeta_south_Cx = inival
3153 boundary(ng) % zetaG_south = inival
3157 IF (
domain(ng)%NorthEast_Test(tile).and. &
3160#if defined CELERITY_READ || defined CELERITY_WRITE
3161 boundary(ng) % zeta_north_C2 = inival
3162 boundary(ng) % zeta_north_Ce = inival
3163 boundary(ng) % zeta_north_Cx = inival
3166 boundary(ng) % zetaG_north = inival
3170 IF (
domain(ng)%NorthWest_Test(tile).and. &
3173#if defined CELERITY_READ || defined CELERITY_WRITE
3174 boundary(ng) % ubar_west_C2 = inival
3175 boundary(ng) % ubar_west_Ce = inival
3176 boundary(ng) % ubar_west_Cx = inival
3183 IF (
domain(ng)%NorthWest_Test(tile).and. &
3184 &
lbc(
iwest,isu2sd,ng)%acquire)
THEN
3185 boundary(ng) % ubarstokes_west = inival
3189 IF (
domain(ng)%SouthEast_Test(tile).and. &
3192#if defined CELERITY_READ || defined CELERITY_WRITE
3193 boundary(ng) % ubar_east_C2 = inival
3194 boundary(ng) % ubar_east_Ce = inival
3195 boundary(ng) % ubar_east_Cx = inival
3202 IF (
domain(ng)%SouthEast_Test(tile).and. &
3203 &
lbc(
ieast,isu2sd,ng)%acquire)
THEN
3204 boundary(ng) % ubarstokes_east = inival
3208 IF (
domain(ng)%SouthWest_Test(tile).and. &
3211#if defined CELERITY_READ || defined CELERITY_WRITE
3212 boundary(ng) % ubar_south_C2 = inival
3213 boundary(ng) % ubar_south_Ce = inival
3214 boundary(ng) % ubar_south_Cx = inival
3217 boundary(ng) % ubarG_south = inival
3221 IF (
domain(ng)%SouthWest_Test(tile).and. &
3223 boundary(ng) % ubarstokes_south = inival
3227 IF (
domain(ng)%NorthEast_Test(tile).and. &
3230#if defined CELERITY_READ || defined CELERITY_WRITE
3231 boundary(ng) % ubar_north_C2 = inival
3232 boundary(ng) % ubar_north_Ce = inival
3233 boundary(ng) % ubar_north_Cx = inival
3236 boundary(ng) % ubarG_north = inival
3237 boundary(ng) % vbarG_north = inival
3241 IF (
domain(ng)%NorthEast_Test(tile).and. &
3243 boundary(ng) % ubarstokes_north = inival
3247 IF (
domain(ng)%NorthWest_Test(tile).and. &
3250#if defined CELERITY_READ || defined CELERITY_WRITE
3251 boundary(ng) % vbar_west_C2 = inival
3252 boundary(ng) % vbar_west_Ce = inival
3253 boundary(ng) % vbar_west_Cx = inival
3260 IF (
domain(ng)%NorthWest_Test(tile).and. &
3261 &
lbc(
iwest,isv2sd,ng)%acquire)
THEN
3262 boundary(ng) % vbarstokes_west = inival
3266 IF (
domain(ng)%SouthEast_Test(tile).and. &
3269#if defined CELERITY_READ || defined CELERITY_WRITE
3270 boundary(ng) % vbar_east_C2 = inival
3271 boundary(ng) % vbar_east_Ce = inival
3272 boundary(ng) % vbar_east_Cx = inival
3279 IF (
domain(ng)%SouthEast_Test(tile).and. &
3280 &
lbc(
ieast,isv2sd,ng)%acquire)
THEN
3281 boundary(ng) % vbarstokes_east = inival
3285 IF (
domain(ng)%SouthWest_Test(tile).and. &
3288#if defined CELERITY_READ || defined CELERITY_WRITE
3289 boundary(ng) % vbar_south_C2 = inival
3290 boundary(ng) % vbar_south_Ce = inival
3291 boundary(ng) % vbar_south_Cx = inival
3294 boundary(ng) % vbarG_south = inival
3298 IF (
domain(ng)%SouthWest_Test(tile).and. &
3300 boundary(ng) % vbarstokes_south = inival
3304 IF (
domain(ng)%NorthEast_Test(tile).and. &
3307#if defined CELERITY_READ || defined CELERITY_WRITE
3308 boundary(ng) % vbar_north_C2 = inival
3309 boundary(ng) % vbar_north_Ce = inival
3310 boundary(ng) % vbar_north_Cx = inival
3313 boundary(ng) % vbarG_north = inival
3317 IF (
domain(ng)%NorthEast_Test(tile).and. &
3319 boundary(ng) % vbarstokes_north = inival
3325 IF (
domain(ng)%NorthWest_Test(tile).and. &
3328# if defined CELERITY_READ || defined CELERITY_WRITE
3338 IF (
domain(ng)%NorthWest_Test(tile).and. &
3339 &
lbc(
iwest,isu3sd,ng)%acquire)
THEN
3340 boundary(ng) % ustokes_west = inival
3344 IF (
domain(ng)%SouthEast_Test(tile).and. &
3347# if defined CELERITY_READ || defined CELERITY_WRITE
3357 IF (
domain(ng)%SouthEast_Test(tile).and. &
3358 &
lbc(
ieast,isu3sd,ng)%acquire)
THEN
3359 boundary(ng) % ustokes_east = inival
3363 IF (
domain(ng)%SouthWest_Test(tile).and. &
3366# if defined CELERITY_READ || defined CELERITY_WRITE
3376 IF (
domain(ng)%SouthWest_Test(tile).and. &
3378 boundary(ng) % ustokes_south = inival
3382 IF (
domain(ng)%NorthEast_Test(tile).and. &
3385# if defined CELERITY_READ || defined CELERITY_WRITE
3395 IF (
domain(ng)%NorthEast_Test(tile).and. &
3397 boundary(ng) % ustokes_north = inival
3401 IF (
domain(ng)%NorthWest_Test(tile).and. &
3404# if defined CELERITY_READ || defined CELERITY_WRITE
3414 IF (
domain(ng)%NorthWest_Test(tile).and. &
3415 &
lbc(
iwest,isv3sd,ng)%acquire)
THEN
3416 boundary(ng) % vstokes_west = inival
3420 IF (
domain(ng)%SouthEast_Test(tile).and. &
3423# if defined CELERITY_READ || defined CELERITY_WRITE
3433 IF (
domain(ng)%SouthEast_Test(tile).and. &
3434 &
lbc(
ieast,isv3sd,ng)%acquire)
THEN
3435 boundary(ng) % vstokes_east = inival
3439 IF (
domain(ng)%SouthWest_Test(tile).and. &
3442# if defined CELERITY_READ || defined CELERITY_WRITE
3452 IF (
domain(ng)%SouthWest_Test(tile).and. &
3454 boundary(ng) % vstokes_south = inival
3458 IF (
domain(ng)%NorthEast_Test(tile).and. &
3461# if defined CELERITY_READ || defined CELERITY_WRITE
3471 IF (
domain(ng)%NorthEast_Test(tile).and. &
3473 boundary(ng) % vstokes_north = inival
3477 IF (
domain(ng)%NorthWest_Test(tile).and. &
3480# if defined CELERITY_READ || defined CELERITY_WRITE
3490 IF (
domain(ng)%SouthEast_Test(tile).and. &
3493# if defined CELERITY_READ || defined CELERITY_WRITE
3503 IF (
domain(ng)%SouthWest_Test(tile).and. &
3506# if defined CELERITY_READ || defined CELERITY_WRITE
3516 IF (
domain(ng)%NorthEast_Test(tile).and. &
3519# if defined CELERITY_READ || defined CELERITY_WRITE
3531#if defined TANGENT || defined TL_IOMS
3537 IF ((model.eq.0).or.(model.eq.
itlm).or.(model.eq.
irpm))
THEN
3538 IF (
domain(ng)%NorthWest_Test(tile).and. &
3540 boundary(ng) % tl_zeta_west = inival
3543 IF (
domain(ng)%SouthEast_Test(tile).and. &
3545 boundary(ng) % tl_zeta_east = inival
3548 IF (
domain(ng)%SouthWest_Test(tile).and. &
3550 boundary(ng) % tl_zeta_south = inival
3553 IF (
domain(ng)%NorthEast_Test(tile).and. &
3555 boundary(ng) % tl_zeta_north = inival
3558 IF (
domain(ng)%NorthWest_Test(tile).and. &
3560 boundary(ng) % tl_ubar_west = inival
3563 IF (
domain(ng)%SouthEast_Test(tile).and. &
3565 boundary(ng) % tl_ubar_east = inival
3568 IF (
domain(ng)%SouthWest_Test(tile).and. &
3570 boundary(ng) % tl_ubar_south = inival
3573 IF (
domain(ng)%NorthEast_Test(tile).and. &
3575 boundary(ng) % tl_ubar_north = inival
3578 IF (
domain(ng)%NorthWest_Test(tile).and. &
3580 boundary(ng) % tl_vbar_west = inival
3583 IF (
domain(ng)%SouthEast_Test(tile).and. &
3585 boundary(ng) % tl_vbar_east = inival
3588 IF (
domain(ng)%SouthWest_Test(tile).and. &
3590 boundary(ng) % tl_vbar_south = inival
3593 IF (
domain(ng)%NorthEast_Test(tile).and. &
3595 boundary(ng) % tl_vbar_north = inival
3600 IF (
domain(ng)%NorthWest_Test(tile).and. &
3605 IF (
domain(ng)%SouthEast_Test(tile).and. &
3610 IF (
domain(ng)%SouthWest_Test(tile).and. &
3615 IF (
domain(ng)%NorthEast_Test(tile).and. &
3620 IF (
domain(ng)%NorthWest_Test(tile).and. &
3625 IF (
domain(ng)%SouthEast_Test(tile).and. &
3630 IF (
domain(ng)%SouthWest_Test(tile).and. &
3635 IF (
domain(ng)%NorthEast_Test(tile).and. &
3640 IF (
domain(ng)%NorthWest_Test(tile).and. &
3645 IF (
domain(ng)%SouthEast_Test(tile).and. &
3650 IF (
domain(ng)%SouthWest_Test(tile).and. &
3655 IF (
domain(ng)%NorthEast_Test(tile).and. &
3669 IF ((model.eq.0).or.(model.eq.
iadm))
THEN
3670 IF (
domain(ng)%NorthWest_Test(tile).and. &
3672 boundary(ng) % ad_zeta_west = inival
3675 IF (
domain(ng)%SouthEast_Test(tile).and. &
3677 boundary(ng) % ad_zeta_east = inival
3680 IF (
domain(ng)%SouthWest_Test(tile).and. &
3682 boundary(ng) % ad_zeta_south = inival
3685 IF (
domain(ng)%NorthEast_Test(tile).and. &
3687 boundary(ng) % ad_zeta_north = inival
3690 IF (
domain(ng)%NorthWest_Test(tile).and. &
3692 boundary(ng) % ad_ubar_west = inival
3695 IF (
domain(ng)%SouthEast_Test(tile).and. &
3697 boundary(ng) % ad_ubar_east = inival
3700 IF (
domain(ng)%SouthWest_Test(tile).and. &
3702 boundary(ng) % ad_ubar_south = inival
3705 IF (
domain(ng)%NorthEast_Test(tile).and. &
3707 boundary(ng) % ad_ubar_north = inival
3710 IF (
domain(ng)%NorthWest_Test(tile).and. &
3712 boundary(ng) % ad_vbar_west = inival
3715 IF (
domain(ng)%SouthEast_Test(tile).and. &
3717 boundary(ng) % ad_vbar_east = inival
3720 IF (
domain(ng)%SouthWest_Test(tile).and. &
3722 boundary(ng) % ad_vbar_south = inival
3725 IF (
domain(ng)%NorthEast_Test(tile).and. &
3727 boundary(ng) % ad_vbar_north = inival
3732 IF (
domain(ng)%NorthWest_Test(tile).and. &
3737 IF (
domain(ng)%SouthEast_Test(tile).and. &
3742 IF (
domain(ng)%SouthWest_Test(tile).and. &
3747 IF (
domain(ng)%NorthEast_Test(tile).and. &
3752 IF (
domain(ng)%NorthWest_Test(tile).and. &
3757 IF (
domain(ng)%SouthEast_Test(tile).and. &
3762 IF (
domain(ng)%SouthWest_Test(tile).and. &
3767 IF (
domain(ng)%NorthEast_Test(tile).and. &
3772 IF (
domain(ng)%NorthWest_Test(tile).and. &
3777 IF (
domain(ng)%SouthEast_Test(tile).and. &
3782 IF (
domain(ng)%SouthWest_Test(tile).and. &
3787 IF (
domain(ng)%NorthEast_Test(tile).and. &
3795#ifdef ADJUST_BOUNDARY
3801 IF ((model.eq.0).or.(model.eq.
inlm))
THEN
3802 IF (
domain(ng)%NorthEast_Test(tile))
THEN
3838 IF ((model.eq.0).or.(model.eq.
iadm))
THEN
3839 IF (
domain(ng)%NorthEast_Test(tile))
THEN
3845 boundary(ng) % ad_ubar_obc = inival
3846 boundary(ng) % ad_vbar_obc = inival
3847 boundary(ng) % ad_zeta_obc = inival
3851 IF ((model.eq.0).or.(model.eq.
itlm).or.(model.eq.
irpm))
THEN
3852 IF (
domain(ng)%NorthEast_Test(tile))
THEN
3858 boundary(ng) % tl_ubar_obc = inival
3859 boundary(ng) % tl_vbar_obc = inival
3860 boundary(ng) % tl_zeta_obc = inival