C $Header: /u/gcmpack/MITgcm/pkg/streamice/streamice_taub.F,v 1.3 2015/03/23 14:07:16 dgoldberg Exp $
C $Name: $
#include "STREAMICE_OPTIONS.h"
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
CBOP
SUBROUTINE STREAMICE_TAUB ( myThid )
C /============================================================\
C | SUBROUTINE |
C | o |
C |============================================================|
C | |
C \============================================================/
IMPLICIT NONE
C === Global variables ===
#include "SIZE.h"
#include "GRID.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#include "STREAMICE.h"
#include "STREAMICE_CG.h"
C !INPUT/OUTPUT ARGUMENTS
INTEGER myThid
! _RL taudx (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
! _RL taudx (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
#ifdef ALLOW_STREAMICE
#ifdef STREAMICE_HYBRID_STRESS
C LOCAL VARIABLES
INTEGER i, j, bi, bj, k, l
_RL ux, uy, vx, vy, exx, eyy, exy, second_inv, unorm
_RL umid, vmid
DO bj=myByLo(myThid),myByHi(myThid)
DO bi=myBxLo(myThid),myBxHi(myThid)
DO j=1,sNy
DO i=1,sNx
cph(
#if (defined (ALLOW_OPENAD) defined (ALLOW_STREAMICE_OAD_FP))
taubx_new_si (i,j,bi,bj) = 0.
tauby_new_si (i,j,bi,bj) = 0.
#else
streamice_taubx (i,j,bi,bj) = 0.
streamice_tauby (i,j,bi,bj) = 0.
#endif
cph)
IF (STREAMICE_hmask(i,j,bi,bj).eq.1) THEN
! streamice_taubx (i,j,bi,bj) =
! & tau_beta_eff_streamice(i,j,bi,bj) * U_streamice(i,j,bi,bj)
! streamice_tauby (i,j,bi,bj) =
! & tau_beta_eff_streamice(i,j,bi,bj) * V_streamice(i,j,bi,bj)
umid = 0.0
vmid = 0.0
DO k=0,1
DO l=0,1
umid = umid + 0.25 *
& dxG(i,j+l,bi,bj)*dyG(i+k,j,bi,bj) *
& recip_rA(i,j,bi,bj) *
#if (defined (ALLOW_STREAMICE_OAD_FP))
& U_new_si(i+k,j+l,bi,bj)
#else
& U_streamice(i+k,j+l,bi,bj)
#endif
vmid = vmid + 0.25 *
& dxG(i,j+l,bi,bj)*dyG(i+k,j,bi,bj) *
& recip_rA(i,j,bi,bj) *
#if (defined (ALLOW_STREAMICE_OAD_FP))
& V_new_si(i+k,j+l,bi,bj)
#else
& V_streamice(i+k,j+l,bi,bj)
#endif
ENDDO
ENDDO
#if (defined (ALLOW_STREAMICE_OAD_FP))
taubx_new_si (i,j,bi,bj) =
& tau_beta_eff_streamice(i,j,bi,bj) * umid
tauby_new_si (i,j,bi,bj) =
& tau_beta_eff_streamice(i,j,bi,bj) * vmid
#else
streamice_taubx (i,j,bi,bj) =
& tau_beta_eff_streamice(i,j,bi,bj) * umid
streamice_tauby (i,j,bi,bj) =
& tau_beta_eff_streamice(i,j,bi,bj) * vmid
#endif
ENDIF
ENDDO
ENDDO
ENDDO
ENDDO
#endif
#endif
RETURN
END