145,147d144 < # ifdef CLVF_CLOSURE < & GRID(ng) % z_r, & < # endif 173,175d169 < # ifdef CLVF_CLOSURE < & MIXING(ng) % Akw, & < # endif 221,223d214 < # ifdef CLVF_CLOSURE < & z_r, & < # endif 239,241d229 < # ifdef CLVF_CLOSURE < & Akw, & < # endif 277,279d264 < # ifdef CLVF_CLOSURE < real(r8), intent(in) :: z_r(LBi:,LBj:,:) < # endif 303,305d287 < # ifdef CLVF_CLOSURE < real(r8), intent(in) :: Akw(LBi:,LBj:,0:) < # endif 335,337d316 < # ifdef CLVF_CLOSURE < real(r8), intent(in) :: z_r(LBi:UBi,LBj:UBj,N(ng)) < # endif 361,363d339 < # ifdef CLVF_CLOSURE < real(r8), intent(in) :: Akw(LBi:UBi,LBj:UBj,0:N(ng)) < # endif 414,466d389 < < # if defined CLVF_CLOSURE < # if defined HARCOURT2013_STABILITY || defined HARCOURT2015_STABILITY < ! < !----------------------------------------------------------------------- < ! Apply Stokes gradient stress as a body force with zero mean < ! (i.e. zero flux at surface & bottom) < !----------------------------------------------------------------------- < ! < DO j=Jstr,Jend < ! < ! U-component < ! < DO i=IstrU,Iend < FC(i,0)=0.0_r8 < FC(i,N(ng))=0.0_r8 < END DO < DO k=1,N(ng)-1 < DO i=Istr,Iend < cff=1.0_r8/(z_r(i,j,k+1)+z_r(i-1,j,k+1)- & < & z_r(i,j,k )-z_r(i-1,j,k )) < FC(i,k)=cff*(u_stokes(i,j,k+1)-u_stokes(i,j,k))* & < & (Akw(i,j,k)+Akw(i-1,j,k)) < END DO < END DO < DO k=1,N(ng) < DO i=IstrU,Iend < cff=0.25_r8*(pm(i-1,j)+pm(i,j))* & < & (pn(i-1,j)+pn(i,j)) < ru(i,j,k,nrhs)=ru(i,j,k,nrhs)+(FC(i,k)-FC(i,k-1))/cff < END DO < END DO < ! < ! V-component < ! < DO k=1,N(ng)-1 < DO i=Istr,Iend < cff=1.0_r8/(z_r(i,j,k+1)+z_r(i,j-1,k+1)- & < & z_r(i,j,k )-z_r(i,j-1,k )) < FC(i,k)=cff*(v_stokes(i,j,k+1)-v_stokes(i,j,k))* & < & (Akw(i,j,k)+Akw(i,j-1,k)) < END DO < END DO < DO k=1,N(ng) < DO i=IstrU,Iend < cff=0.25_r8*(pm(i,j-1)+pm(i,j))* & < & (pn(i,j-1)+pn(i,j)) < rv(i,j,k,nrhs)=rv(i,j,k,nrhs)+(FC(i,k)-FC(i,k-1))/cff < END DO < END DO < END DO < # endif < # endif