/[MITgcm]/MITgcm/pkg/seaice/seaice_calc_strainrates.F
ViewVC logotype

Diff of /MITgcm/pkg/seaice/seaice_calc_strainrates.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.16 by gforget, Tue Mar 16 19:21:31 2010 UTC revision 1.17 by mlosch, Fri Nov 5 08:13:03 2010 UTC
# Line 67  C     vectorizes even after TAFization Line 67  C     vectorizes even after TAFization
67        noSlipFac = 0. _d 0        noSlipFac = 0. _d 0
68        IF ( SEAICE_no_slip ) noSlipFac = 1. _d 0        IF ( SEAICE_no_slip ) noSlipFac = 1. _d 0
69  C  C
 #ifndef SEAICE_OLD_AND_BAD_DISCRETIZATION  
70        DO bj=myByLo(myThid),myByHi(myThid)        DO bj=myByLo(myThid),myByHi(myThid)
71         DO bi=myBxLo(myThid),myBxHi(myThid)         DO bi=myBxLo(myThid),myBxHi(myThid)
72  C     abbreviations on C-points, need to do them in separate loops  C     abbreviations on C-points, need to do them in separate loops
# Line 135  c$$$     &         - hFacU * k2AtZ(I,J,b Line 134  c$$$     &         - hFacU * k2AtZ(I,J,b
134    
135         ENDDO         ENDDO
136        ENDDO        ENDDO
 #else  
 C     this the old and incomplete discretization, here I also erroneously  
 C     used finite-volumes to discretize the strain rates  
       DO bj=myByLo(myThid),myByHi(myThid)  
        DO bi=myBxLo(myThid),myBxHi(myThid)  
         DO j=1-Oly,sNy+Oly-1  
          DO i=1-Olx,sNx+Olx-1  
 C     evaluate strain rates  
           e11Loc(I,J,bi,bj) = _recip_dxF(I,J,bi,bj) *  
      &         (uFld(I+1,J,bi,bj)-uFld(I,J,bi,bj))  
      &         -HALF*  
      &         (vFld(I,J,bi,bj)+vFld(I,J+1,bi,bj))  
      &         * _tanPhiAtU(I,J,bi,bj)*recip_rSphere  
           e22Loc(I,J,bi,bj) = _recip_dyF(I,J,bi,bj) *  
      &         (vFld(I,J+1,bi,bj)-vFld(I,J,bi,bj))  
 C     one metric term is missing  
          ENDDO  
         ENDDO  
         DO j=1-Oly+1,sNy+Oly  
          DO i=1-Olx+1,sNx+Olx  
           e12Loc(I,J,bi,bj) = HALF*(  
      &         (uFld(I  ,J  ,bi,bj) * _dxC(I  ,J  ,bi,bj)  
      &         -uFld(I  ,J-1,bi,bj) * _dxC(I  ,J-1,bi,bj)  
      &         +vFld(I  ,J  ,bi,bj) * _dyC(I  ,J  ,bi,bj)  
      &         -vFld(I-1,J  ,bi,bj) * _dyC(I-1,J  ,bi,bj))  
      &         * recip_rAz(I,J,bi,bj)  
      &         +  
      &         0.25 _d 0 * (uFld(I,J,bi,bj)+uFld(I  ,J-1,bi,bj))  
      &         * ( _tanPhiAtU(I,J,bi,bj) + _tanPhiAtU(I,J-1,bi,bj) )  
      &         *recip_rSphere  
      &         )  
      &         *maskC(I  ,J  ,k,bi,bj)*maskC(I-1,J  ,k,bi,bj)  
      &         *maskC(I  ,J-1,k,bi,bj)*maskC(I-1,J-1,k,bi,bj)  
 C     one metric term is missing  
          ENDDO  
         ENDDO  
         IF ( SEAICE_no_slip ) THEN  
 C     no slip boundary conditions apply only to e12Loc  
          DO j=1-Oly+1,sNy+Oly  
           DO i=1-Olx+1,sNx+Olx  
            hFacU = _maskW(i,j,k,bi,bj) - _maskW(i,j-1,k,bi,bj)  
            hFacV = _maskS(i,j,k,bi,bj) - _maskS(i-1,j,k,bi,bj)  
   
            e12Loc(I,J,bi,bj) = e12Loc(I,J,bi,bj)  
      &          + recip_rAz(i,j,bi,bj) * 2. _d 0 *  
      &          ( hFacU * ( _dxC(i,j-1,bi,bj)*uFld(i,j  ,bi,bj)  
      &                    + _dxC(i,j,  bi,bj)*uFld(i,j-1,bi,bj) )  
      &          + hFacV * ( _dyC(i-1,j,bi,bj)*vFld(i  ,j,bi,bj)  
      &                    + _dyC(i,  j,bi,bj)*vFld(i-1,j,bi,bj) ) )  
      &         - hFacU  
      &         * 0.25 _d 0 * (uFld(I,J,bi,bj)+uFld(I  ,J-1,bi,bj))  
      &         * ( _tanPhiAtU(I,J,bi,bj) + _tanPhiAtU(I,J-1,bi,bj) )  
      &         *recip_rSphere  
 C     one metric term is missing  
           ENDDO  
          ENDDO  
   
         ENDIF  
        ENDDO  
       ENDDO  
 #endif /* SEAICE_OLD_AND_BAD_DISCRETIZATION */  
137    
138  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
139  #ifdef SEAICE_DYN_STABLE_ADJOINT  #ifdef SEAICE_DYN_STABLE_ADJOINT

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.17

  ViewVC Help
Powered by ViewVC 1.1.22