4#if defined ADJOINT && defined SOLVE3D
35 integer,
intent(in) :: ng, tile
39 character (len=*),
parameter :: myfile = &
48 & lbi, ubi, lbj, ubj, &
49 & imins, imaxs, jmins, jmaxs, &
51 &
ocean(ng) % ad_zeta, &
52 &
ocean(ng) % ad_zeta_sol)
62 & LBi, UBi, LBj, UBj, &
63 & IminS, ImaxS, JminS, JmaxS, &
64 & ad_Zt_avg1, ad_zeta, ad_zeta_sol)
77 integer,
intent(in) :: ng, tile
78 integer,
intent(in) :: LBi, UBi, LBj, UBj
79 integer,
intent(in) :: IminS, ImaxS, JminS, JmaxS
82 real(r8),
intent(inout) :: ad_Zt_avg1(LBi:,LBj:)
83 real(r8),
intent(inout) :: ad_zeta(LBi:,LBj:,:)
85 real(r8),
intent(out) :: ad_zeta_sol(LBi:,LBj:)
87 real(r8),
intent(inout) :: ad_Zt_avg1(LBi:UBi,LBj:UBj)
88 real(r8),
intent(inout) :: ad_zeta(LBi:UBi,LBj:UBj,3)
90 real(r8),
intent(out) :: ad_zeta_sol(LBi:UBi,LBj:UBj)
97# include "set_bounds.h"
114 & lbi, ubi, lbj, ubj, &
128 & lbi, ubi, lbj, ubj, &
135 & lbi, ubi, lbj, ubj, &
144 ad_zeta_sol(i,j)=ad_zeta(i,j,1)+ad_zeta(i,j,2)
153 ad_zt_avg1(i,j)=ad_zt_avg1(i,j)+ &
154 & ad_zeta(i,j,1)+ad_zeta(i,j,2)
155 ad_zeta(i,j,2)=0.0_r8
156 ad_zeta(i,j,1)=0.0_r8
subroutine ad_exchange_r2d_tile(ng, tile, lbi, ubi, lbj, ubj, ad_a)
subroutine, public ad_set_zeta(ng, tile)
subroutine ad_set_zeta_tile(ng, tile, lbi, ubi, lbj, ubj, imins, imaxs, jmins, jmaxs, ad_zt_avg1, ad_zeta, ad_zeta_sol)
type(t_coupling), dimension(:), allocatable coupling
type(t_ocean), dimension(:), allocatable ocean
logical, dimension(:), allocatable ewperiodic
logical, dimension(:), allocatable nsperiodic
subroutine ad_mp_exchange2d(ng, tile, model, nvar, lbi, ubi, lbj, ubj, nghost, ew_periodic, ns_periodic, ad_a, ad_b, ad_c, ad_d)
recursive subroutine wclock_off(ng, model, region, line, routine)
recursive subroutine wclock_on(ng, model, region, line, routine)