/[MITgcm]/MITgcm_contrib/dgoldberg/streamice/streamice_cg_functions.F
ViewVC logotype

Diff of /MITgcm_contrib/dgoldberg/streamice/streamice_cg_functions.F

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

revision 1.4 by dgoldberg, Thu Jul 26 16:13:18 2012 UTC revision 1.5 by dgoldberg, Sun Dec 23 21:05:08 2012 UTC
# Line 130  C     == Local variables == Line 130  C     == Local variables ==
130       &         visc_streamice(i,j,bi,bj) * (       &         visc_streamice(i,j,bi,bj) * (
131       &          DPhi(i,j,bi,bj,m,n,1)*(4*exx+2*eyy) +       &          DPhi(i,j,bi,bj,m,n,1)*(4*exx+2*eyy) +
132       &          DPhi(i,j,bi,bj,m,n,2)*(2*exy))       &          DPhi(i,j,bi,bj,m,n,2)*(2*exy))
133                  uret(i-1+inode,j-1+jnode,bi,bj) =
134         &         uret(i-1+inode,j-1+jnode,bi,bj) + .25 *
135         &         grid_jacq_streamice(i,j,bi,bj,n) *
136         &         visc_streamice(i,j,bi,bj) * phival(inode,jnode) *
137         &         (4*k2AtC_str(i,j,bi,bj)*eyy+2*k2AtC_str(i,j,bi,bj)*exx+
138         &          4*0.5*k1AtC_str(i,j,bi,bj)*exy)
139                  uret(i-1+inode,j-1+jnode,bi,bj) =
140         &         uret(i-1+inode,j-1+jnode,bi,bj) + .25 *
141         &         phival(inode,jnode) *
142         &         grid_jacq_streamice(i,j,bi,bj,n) *
143         &         tau_beta_eff_streamice (i,j,bi,bj) * uq
144    
145                 endif
146        
147                 if (STREAMICE_vmask(i-1+inode,j-1+jnode,bi,bj).eq.1.0) then
148                vret(i-1+inode,j-1+jnode,bi,bj) =                vret(i-1+inode,j-1+jnode,bi,bj) =
149       &         vret(i-1+inode,j-1+jnode,bi,bj) + .25 *       &         vret(i-1+inode,j-1+jnode,bi,bj) + .25 *
150       &         grid_jacq_streamice(i,j,bi,bj,n) *       &         grid_jacq_streamice(i,j,bi,bj,n) *
151       &         visc_streamice(i,j,bi,bj) * (       &         visc_streamice(i,j,bi,bj) * (
152       &          DPhi(i,j,bi,bj,m,n,2)*(4*eyy+2*exx) +       &          DPhi(i,j,bi,bj,m,n,2)*(4*eyy+2*exx) +
153       &          DPhi(i,j,bi,bj,m,n,1)*(2*exy))       &          DPhi(i,j,bi,bj,m,n,1)*(2*exy))
   
               uret(i-1+inode,j-1+jnode,bi,bj) =  
      &         uret(i-1+inode,j-1+jnode,bi,bj) + .25 *  
      &         grid_jacq_streamice(i,j,bi,bj,n) *  
      &         visc_streamice(i,j,bi,bj) * phival(inode,jnode) *  
      &         (4*k2AtC_str(i,j,bi,bj)*eyy+2*k2AtC_str(i,j,bi,bj)*exx+  
      &          4*0.5*k1AtC_str(i,j,bi,bj)*exy)      
154                vret(i-1+inode,j-1+jnode,bi,bj) =                vret(i-1+inode,j-1+jnode,bi,bj) =
155       &         vret(i-1+inode,j-1+jnode,bi,bj) + .25 *       &         vret(i-1+inode,j-1+jnode,bi,bj) + .25 *
156       &         grid_jacq_streamice(i,j,bi,bj,n) *       &         grid_jacq_streamice(i,j,bi,bj,n) *
157       &         visc_streamice(i,j,bi,bj) * phival(inode,jnode) *       &         visc_streamice(i,j,bi,bj) * phival(inode,jnode) *
158       &         (4*k1AtC_str(i,j,bi,bj)*exx+2*k1AtC_str(i,j,bi,bj)*eyy+       &         (4*k1AtC_str(i,j,bi,bj)*exx+2*k1AtC_str(i,j,bi,bj)*eyy+
159       &          4*0.5*k2AtC_str(i,j,bi,bj)*exy)       &          4*0.5*k2AtC_str(i,j,bi,bj)*exy)
   
   
                 
               uret(i-1+inode,j-1+jnode,bi,bj) =  
      &         uret(i-1+inode,j-1+jnode,bi,bj) + .25 *  
      &         phival(inode,jnode) *  
      &         grid_jacq_streamice(i,j,bi,bj,n) *  
      &         tau_beta_eff_streamice (i,j,bi,bj) * uq  
160                vret(i-1+inode,j-1+jnode,bi,bj) =                vret(i-1+inode,j-1+jnode,bi,bj) =
161       &         vret(i-1+inode,j-1+jnode,bi,bj) + .25 *       &         vret(i-1+inode,j-1+jnode,bi,bj) + .25 *
162       &         phival(inode,jnode) *       &         phival(inode,jnode) *
# Line 275  cc          ENDDO Line 275  cc          ENDDO
275                DO inody = 1,2                DO inody = 1,2
276    
277                 if (STREAMICE_umask(i-1+inodx,j-1+inody,bi,bj)                 if (STREAMICE_umask(i-1+inodx,j-1+inody,bi,bj)
278       &          .eq.1.0)       &          .eq.1.0 .or.
279         &             streamice_vmask(i-1+inodx,j-1+inody,bi,bj).eq.1.0)
280       &          then                   &          then            
281                            
282                  m_i = 2*(inody-1)+inodx                  m_i = 2*(inody-1)+inodx
# Line 289  cc          ENDDO Line 290  cc          ENDDO
290                  DO jnodx = 1,2                  DO jnodx = 1,2
291                   DO jnody = 1,2                   DO jnody = 1,2
292                    if (STREAMICE_umask(i-1+jnodx,j-1+jnody,bi,bj)                    if (STREAMICE_umask(i-1+jnodx,j-1+jnody,bi,bj)
293       &             .eq.1.0)       &             .eq.1.0 .or.
294         &             STREAMICE_vmask(i-1+jnodx,j-1+jnody,bi,bj).eq.1.0)
295       &             then                   &             then            
296    
297                     m_j = 2*(jnody-1)+jnodx                     m_j = 2*(jnody-1)+jnodx
# Line 541  C     == Local variables == Line 543  C     == Local variables ==
543                            
544               m = 2*(jnode-1)+inode               m = 2*(jnode-1)+inode
545    
546               if (STREAMICE_umask(i-1+inode,j-1+jnode,bi,bj).eq.1.0) then               if (STREAMICE_umask(i-1+inode,j-1+jnode,bi,bj).eq.1.0 .or.
547         &           STREAMICE_vmask(i-1+inode,j-1+jnode,bi,bj).eq.1.0)
548         &           then
549    
550                ilq = 1                ilq = 1
551                jlq = 1                jlq = 1
# Line 700  C     == Local variables == Line 704  C     == Local variables ==
704       &     ((STREAMICE_umask(i,j,bi,bj).eq.3.0) .OR.       &     ((STREAMICE_umask(i,j,bi,bj).eq.3.0) .OR.
705       &      (STREAMICE_umask(i,j+1,bi,bj).eq.3.0) .OR.       &      (STREAMICE_umask(i,j+1,bi,bj).eq.3.0) .OR.
706       &      (STREAMICE_umask(i+1,j,bi,bj).eq.3.0) .OR.       &      (STREAMICE_umask(i+1,j,bi,bj).eq.3.0) .OR.
707       &      (STREAMICE_umask(i+1,j+1,bi,bj).eq.3.0))) THEN       &      (STREAMICE_umask(i+1,j+1,bi,bj).eq.3.0) .OR.
708         &      (STREAMICE_vmask(i,j,bi,bj).eq.3.0) .OR.
709         &      (STREAMICE_vmask(i,j+1,bi,bj).eq.3.0) .OR.
710         &      (STREAMICE_vmask(i+1,j,bi,bj).eq.3.0) .OR.
711         &      (STREAMICE_vmask(i+1,j+1,bi,bj).eq.3.0))) THEN
712                        
713             DO iq=1,2             DO iq=1,2
714              DO jq = 1,2              DO jq = 1,2
# Line 736  C     == Local variables == Line 744  C     == Local variables ==
744              exy = .5*(uy+vx) +              exy = .5*(uy+vx) +
745       &       k1AtC_str(i,j,bi,bj)*uq + k2AtC_str(i,j,bi,bj)*vq       &       k1AtC_str(i,j,bi,bj)*uq + k2AtC_str(i,j,bi,bj)*vq
746    
747    
748              do inode = 1,2              do inode = 1,2
749               do jnode = 1,2               do jnode = 1,2
750    
# Line 754  C     == Local variables == Line 763  C     == Local variables ==
763       &         visc_streamice(i,j,bi,bj) * (       &         visc_streamice(i,j,bi,bj) * (
764       &          DPhi(i,j,bi,bj,m,n,1)*(4*exx+2*eyy) +       &          DPhi(i,j,bi,bj,m,n,1)*(4*exx+2*eyy) +
765       &          DPhi(i,j,bi,bj,m,n,2)*(2*exy))       &          DPhi(i,j,bi,bj,m,n,2)*(2*exy))
766                vret(i-1+inode,j-1+jnode,bi,bj) =  
      &         vret(i-1+inode,j-1+jnode,bi,bj) + .25 *  
      &         grid_jacq_streamice(i,j,bi,bj,n) *  
      &         visc_streamice(i,j,bi,bj) * (  
      &          DPhi(i,j,bi,bj,m,n,2)*(4*eyy+2*exx) +  
      &          DPhi(i,j,bi,bj,m,n,1)*(2*exy))  
767    
768                uret(i-1+inode,j-1+jnode,bi,bj) =                uret(i-1+inode,j-1+jnode,bi,bj) =
769       &         uret(i-1+inode,j-1+jnode,bi,bj) + .25 *       &         uret(i-1+inode,j-1+jnode,bi,bj) + .25 *
# Line 767  C     == Local variables == Line 771  C     == Local variables ==
771       &         visc_streamice(i,j,bi,bj) * phival(inode,jnode) *       &         visc_streamice(i,j,bi,bj) * phival(inode,jnode) *
772       &         (4*k2AtC_str(i,j,bi,bj)*eyy+2*k2AtC_str(i,j,bi,bj)*exx+       &         (4*k2AtC_str(i,j,bi,bj)*eyy+2*k2AtC_str(i,j,bi,bj)*exx+
773       &          4*0.5*k1AtC_str(i,j,bi,bj)*exy)           &          4*0.5*k1AtC_str(i,j,bi,bj)*exy)    
774                vret(i-1+inode,j-1+jnode,bi,bj) =                
      &         vret(i-1+inode,j-1+jnode,bi,bj) + .25 *  
      &         grid_jacq_streamice(i,j,bi,bj,n) *  
      &         visc_streamice(i,j,bi,bj) * phival(inode,jnode) *  
      &         (4*k1AtC_str(i,j,bi,bj)*exx+2*k1AtC_str(i,j,bi,bj)*eyy+  
      &          4*0.5*k2AtC_str(i,j,bi,bj)*exy)  
775    
776  !               if (STREAMICE_float_cond(i,j,bi,bj) .eq. 1) then  !               if (STREAMICE_float_cond(i,j,bi,bj) .eq. 1) then
777                uret(i-1+inode,j-1+jnode,bi,bj) =                uret(i-1+inode,j-1+jnode,bi,bj) =
778       &         uret(i-1+inode,j-1+jnode,bi,bj) + .25 *       &         uret(i-1+inode,j-1+jnode,bi,bj) + .25 *
779       &         phival(inode,jnode) * grid_jacq_streamice(i,j,bi,bj,n) *       &         phival(inode,jnode) * grid_jacq_streamice(i,j,bi,bj,n) *
780       &         tau_beta_eff_streamice (i,j,bi,bj) * uq       &         tau_beta_eff_streamice (i,j,bi,bj) * uq
781    
782    !               endif
783                 endif
784                 if (STREAMICE_vmask(i-1+inode,j-1+jnode,bi,bj).eq.1.0) then
785                  vret(i-1+inode,j-1+jnode,bi,bj) =
786         &         vret(i-1+inode,j-1+jnode,bi,bj) + .25 *
787         &         grid_jacq_streamice(i,j,bi,bj,n) *
788         &         visc_streamice(i,j,bi,bj) * (
789         &          DPhi(i,j,bi,bj,m,n,2)*(4*eyy+2*exx) +
790         &          DPhi(i,j,bi,bj,m,n,1)*(2*exy))
791                  vret(i-1+inode,j-1+jnode,bi,bj) =
792         &         vret(i-1+inode,j-1+jnode,bi,bj) + .25 *
793         &         grid_jacq_streamice(i,j,bi,bj,n) *
794         &         visc_streamice(i,j,bi,bj) * phival(inode,jnode) *
795         &         (4*k1AtC_str(i,j,bi,bj)*exx+2*k1AtC_str(i,j,bi,bj)*eyy+
796         &          4*0.5*k2AtC_str(i,j,bi,bj)*exy)
797                vret(i-1+inode,j-1+jnode,bi,bj) =                vret(i-1+inode,j-1+jnode,bi,bj) =
798       &         vret(i-1+inode,j-1+jnode,bi,bj) + .25 *       &         vret(i-1+inode,j-1+jnode,bi,bj) + .25 *
799       &         phival(inode,jnode) * grid_jacq_streamice(i,j,bi,bj,n) *       &         phival(inode,jnode) * grid_jacq_streamice(i,j,bi,bj,n) *
800       &         tau_beta_eff_streamice (i,j,bi,bj) * vq       &         tau_beta_eff_streamice (i,j,bi,bj) * vq
 !               endif  
801               endif               endif
802              enddo              enddo
803              enddo              enddo

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.22