81 & LBi, UBi, LBj, UBj, &
82 & IminS, ImaxS, JminS, JmaxS, &
88# if defined ADJUST_STFLUX && defined SOLVE3D
89 & tl_tflux, tflux, stflx, &
99 integer,
intent(in) :: ng, tile
100 integer,
intent(in) :: LBi, UBi, LBj, UBj
101 integer,
intent(in) :: IminS, ImaxS, JminS, JmaxS
102 integer,
intent(in) :: Linp
105# ifdef ADJUST_WSTRESS
106 real(r8),
intent(in) :: tl_ustr(LBi:,LBj:,:,:)
107 real(r8),
intent(in) :: tl_vstr(LBi:,LBj:,:,:)
109# if defined ADJUST_STFLUX && defined SOLVE3D
110 real(r8),
intent(inout) :: tflux(LBi:,LBj:,:,:,:)
111 real(r8),
intent(inout) :: tl_tflux(LBi:,LBj:,:,:,:)
113# ifdef ADJUST_WSTRESS
114 real(r8),
intent(inout) :: ustr(LBi:,LBj:,:,:)
115 real(r8),
intent(inout) :: vstr(LBi:,LBj:,:,:)
116 real(r8),
intent(inout) :: sustr(LBi:,LBj:)
117 real(r8),
intent(inout) :: svstr(LBi:,LBj:)
119# if defined ADJUST_STFLUX && defined SOLVE3D
120 real(r8),
intent(inout) :: stflx(LBi:,LBj:,:)
123# ifdef ADJUST_WSTRESS
124 real(r8),
intent(in) :: tl_ustr(LBi:UBi,LBj:UBj,Nfrec(ng),2)
125 real(r8),
intent(in) :: tl_vstr(LBi:UBi,LBj:UBj,Nfrec(ng),2)
127# if defined ADJUST_STFLUX && defined SOLVE3D
128 real(r8),
intent(in) :: tflux(LBi:UBi,LBj:UBj, &
129 & Nfrec(ng),2,NT(ng))
130 real(r8),
intent(in) :: tl_tflux(LBi:UBi,LBj:UBj, &
131 & Nfrec(ng),2,NT(ng))
133# ifdef ADJUST_WSTRESS
134 real(r8),
intent(inout) :: ustr(LBi:UBi,LBj:UBj,Nfrec(ng),2)
135 real(r8),
intent(inout) :: vstr(LBi:UBi,LBj:UBj,Nfrec(ng),2)
136 real(r8),
intent(inout) :: sustr(LBi:UBi,LBj:UBj)
137 real(r8),
intent(inout) :: svstr(LBi:UBi,LBj:UBj)
139# if defined ADJUST_STFLUX && defined SOLVE3D
140 real(r8),
intent(inout) :: stflx(LBi:UBi,LBj:UBj,NT(ng))
146 integer :: i, it1, it2, j
150 real(r8) :: fac, fac1, fac2
152# include "set_bounds.h"
160 IF (nfrec(ng).eq.1)
THEN
166# ifdef GENERIC_DSTART
169 it1=max(0,(
iic(ng)-1)/
nsff(ng))+1
171 it2=min(it1+1,nfrec(ng))
174 fac=1.0_r8/(fac1+fac2)
179# ifdef ADJUST_WSTRESS
186 sustr(i,j)=sustr(i,j)+ &
187 & fac1*tl_ustr(i,j,it1,linp)+ &
188 & fac2*tl_ustr(i,j,it2,linp)
193 svstr(i,j)=svstr(i,j)+ &
194 & fac1*tl_vstr(i,j,it1,linp)+ &
195 & fac2*tl_vstr(i,j,it2,linp)
199# if defined ADJUST_STFLUX && defined SOLVE3D
208 stflx(i,j,itrc)=stflx(i,j,itrc)+ &
209 & fac1*tl_tflux(i,j,it1,linp,itrc)+ &
210 & fac2*tl_tflux(i,j,it2,linp,itrc)
subroutine frc_adjust_tile(ng, tile, lbi, ubi, lbj, ubj, imins, imaxs, jmins, jmaxs, tl_ustr, tl_vstr, ustr, vstr, sustr, svstr, tl_tflux, tflux, stflx, linp)