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

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

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

revision 1.1 by dgoldberg, Tue Sep 18 17:04:41 2012 UTC revision 1.6 by dgoldberg, Thu Mar 7 15:23:19 2013 UTC
# Line 23  C     === Global variables === Line 23  C     === Global variables ===
23  #include "PARAMS.h"  #include "PARAMS.h"
24  #include "STREAMICE.h"  #include "STREAMICE.h"
25  #include "STREAMICE_CG.h"  #include "STREAMICE_CG.h"
26    #ifdef ALLOW_AUTODIFF_TAMC
27    # include "tamc.h"
28    #endif
29    
30  C     !INPUT/OUTPUT ARGUMENTS  C     !INPUT/OUTPUT ARGUMENTS
31        INTEGER myThid        INTEGER myThid
# Line 33  C     !INPUT/OUTPUT ARGUMENTS Line 36  C     !INPUT/OUTPUT ARGUMENTS
36  #ifdef STREAMICE_HYBRID_STRESS  #ifdef STREAMICE_HYBRID_STRESS
37    
38  C     LOCAL VARIABLES  C     LOCAL VARIABLES
39        INTEGER i, j, bi, bj, k, l, umid, vmid, m        INTEGER i, j, bi, bj, k, l, m
40          INTEGER ikey_1
41        _RL ux, uy, vx, vy, exx, eyy, exy, unorm, second_inv        _RL ux, uy, vx, vy, exx, eyy, exy, unorm, second_inv
42        _RL ub, vb, fb, mean_u_shear, mean_v_shear        _RL ub, vb, fb, mean_u_shear, mean_v_shear, umid, vmid
43        _RL omega_temp (Nr+1), u_shear(Nr+1), v_shear(Nr+1)        _RL omega_temp (Nr+1), u_shear(Nr+1), v_shear(Nr+1)
44    
45        _RL STREAMICE_BSTRESS_EXPONENT        _RL STREAMICE_BSTRESS_EXPONENT
# Line 95  C     LOCAL VARIABLES Line 99  C     LOCAL VARIABLES
99             omega_temp (Nr+1) = 0.0             omega_temp (Nr+1) = 0.0
100             u_shear(Nr+1) = 0.0             u_shear(Nr+1) = 0.0
101             v_shear(Nr+1) = 0.0             v_shear(Nr+1) = 0.0
102    
103             DO m=Nr,1,-1             DO m=Nr,1,-1
104    
105    #ifdef ALLOW_AUTODIFF_TAMC
106              act1 = bi - myBxLo(myThid)
107              max1 = myBxHi(myThid) - myBxLo(myThid) + 1
108              act2 = bj - myByLo(myThid)
109              max2 = myByHi(myThid) - myByLo(myThid) + 1
110              act3 = myThid - 1
111              max3 = nTx*nTy
112              act4 = ikey_dynamics - 1
113    
114              ikey_1 = m
115         &         + Nr*(i-1)
116         &         + Nr*sNx*(j-1)
117         &         + Nr*sNx*sNy*act1
118         &         + Nr*sNx*sNy*max1*act2
119         &         + Nr*sNx*sNy*max1*max2*act3
120         &         + Nr*sNx*sNy*max1*max2*max3*act4
121    
122    CADJ STORE visc_streamice_full(i,j,m,bi,bj)
123    CADJ &     = comlev1_stream_hybrid, key=ikey_1
124    #endif
125    
126              streamice_vert_shear_uz (m) = streamice_taubx(i,j,bi,bj) /              streamice_vert_shear_uz (m) = streamice_taubx(i,j,bi,bj) /
127       &       visc_streamice_full(i,j,m,bi,bj)       &       visc_streamice_full(i,j,m,bi,bj)
128       &       * streamice_sigma_coord(m)       &       * streamice_sigma_coord(m)
# Line 107  C     LOCAL VARIABLES Line 133  C     LOCAL VARIABLES
133    
134              second_inv =              second_inv =
135       &       sqrt(exx**2+eyy**2+exx*eyy+exy**2+eps_glen_min**2+       &       sqrt(exx**2+eyy**2+exx*eyy+exy**2+eps_glen_min**2+
136       &            streamice_vert_shear_uz(m)**2 +       &            0.25 * streamice_vert_shear_uz(m)**2 +
137       &            streamice_vert_shear_vz(m)**2)       &            0.25 * streamice_vert_shear_vz(m)**2)
138    
139              visc_streamice_full(i,j,m,bi,bj) =              visc_streamice_full(i,j,m,bi,bj) =
140       &       .5 * A_glen(i,j,bi,bj)**(-1./n_glen) *       &       .5 * B_glen(i,j,bi,bj)**2 *
141       &        second_inv**((1-n_glen)/n_glen)       &        second_inv**((1-n_glen)/n_glen)
142    
143              visc_streamice (i,j,bi,bj) = visc_streamice (i,j,bi,bj) +              visc_streamice (i,j,bi,bj) = visc_streamice (i,j,bi,bj) +
# Line 161  C     LOCAL VARIABLES Line 187  C     LOCAL VARIABLES
187             vb = vmid - streamice_tauby(i,j,bi,bj) *             vb = vmid - streamice_tauby(i,j,bi,bj) *
188       &      streamice_omega(i,j,bi,bj) / H_streamice(i,j,bi,bj)       &      streamice_omega(i,j,bi,bj) / H_streamice(i,j,bi,bj)
189    
190             unorm = sqrt(ub**2+vb**2+eps_glen_min**2)             unorm = sqrt(ub**2+vb**2+eps_u_min**2)
191    
192             fb = C_basal_friction(i,j,bi,bj)**2 *             fb = C_basal_friction(i,j,bi,bj)**2 *
193       &      STREAMICE_BSTRESS_EXPONENT (unorm,n_basal_friction) *       &      STREAMICE_BSTRESS_EXPONENT (unorm,n_basal_friction) *
194       &      streamice_basal_geom(i,j,bi,bj)       &      streamice_basal_geom(i,j,bi,bj) *
195         &      float_frac_streamice(i,j,bi,bj)
196    
197             tau_beta_eff_streamice(i,j,bi,bj) =             tau_beta_eff_streamice(i,j,bi,bj) =
198       &       fb /       &       fb /

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.22