/[MITgcm]/MITgcm/pkg/streamice/streamice_visc_beta.F
ViewVC logotype

Contents of /MITgcm/pkg/streamice/streamice_visc_beta.F

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


Revision 1.3 - (show annotations) (download)
Thu Mar 17 20:15:43 2016 UTC (8 years, 1 month ago) by dgoldberg
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65v, checkpoint65w, HEAD
Changes since 1.2: +1 -2 lines
minor addition to implement buttressing in a flowline setting

1 C $Header: /u/gcmpack/MITgcm_contrib/verification_other/shelfice_remeshing/code/streamice_visc_beta.F,v 1.1 2016/01/22 16:09:34 dgoldberg Exp $
2 C $Name: $
3
4 #include "STREAMICE_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7
8 CBOP
9 SUBROUTINE STREAMICE_VISC_BETA ( myThid )
10
11 C /============================================================\
12 C | SUBROUTINE |
13 C | o |
14 C |============================================================|
15 C | |
16 C \============================================================/
17 IMPLICIT NONE
18
19 C === Global variables ===
20 #include "SIZE.h"
21 #include "GRID.h"
22 #include "EEPARAMS.h"
23 #include "PARAMS.h"
24 #include "STREAMICE.h"
25 #include "STREAMICE_CG.h"
26
27 C !INPUT/OUTPUT ARGUMENTS
28 INTEGER myThid
29 ! _RL taudx (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
30 ! _RL taudx (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
31
32 #ifdef ALLOW_STREAMICE
33
34
35 C LOCAL VARIABLES
36 INTEGER i, j, bi, bj, k, l
37 _RL ux, uy, vx, vy, exx, eyy, exy, second_inv, unorm
38 _RL umid, vmid
39
40 DO bj=myByLo(myThid),myByHi(myThid)
41 DO bi=myBxLo(myThid),myBxHi(myThid)
42 DO j=1,sNy
43 DO i=1,sNx
44 IF (STREAMICE_hmask(i,j,bi,bj).eq.1) THEN
45
46 umid = 0
47 vmid = 0
48
49 DO k=0,1
50 DO l=0,1
51 umid = umid + 0.25 *
52 & dxG(i,j+l,bi,bj)*dyG(i+k,j,bi,bj) *
53 & recip_rA(i,j,bi,bj) *
54 & U_streamice(i+k,j+l,bi,bj)
55 vmid = vmid + 0.25 *
56 & dxG(i,j+l,bi,bj)*dyG(i+k,j,bi,bj) *
57 & recip_rA(i,j,bi,bj) *
58 & V_streamice(i+k,j+l,bi,bj)
59 ENDDO
60 ENDDO
61
62 ux = (U_streamice(i+1,j+1,bi,bj) +
63 & U_streamice(i+1,j,bi,bj) -
64 & U_streamice(i,j+1,bi,bj) -
65 & U_streamice(i,j,bi,bj)) /
66 & (2. * dxF(i,j,bi,bj))
67 vx = (V_streamice(i+1,j+1,bi,bj) +
68 & V_streamice(i+1,j,bi,bj) -
69 & V_streamice(i,j+1,bi,bj) -
70 & V_streamice(i,j,bi,bj)) /
71 & (2. * dxF(i,j,bi,bj))
72 uy = (U_streamice(i+1,j+1,bi,bj) -
73 & U_streamice(i+1,j,bi,bj) +
74 & U_streamice(i,j+1,bi,bj) -
75 & U_streamice(i,j,bi,bj)) /
76 & (2. * dyF(i,j,bi,bj))
77 vy = (V_streamice(i+1,j+1,bi,bj) -
78 & V_streamice(i+1,j,bi,bj) +
79 & V_streamice(i,j+1,bi,bj) -
80 & V_streamice(i,j,bi,bj)) /
81 & (2. * dyF(i,j,bi,bj))
82
83 exx = ux + k1AtC_str(i,j,bi,bj)*vmid
84 eyy = vy + k2AtC_str(i,j,bi,bj)*umid
85 exy = .5*(uy+vx) +
86 & k1AtC_str(i,j,bi,bj)*umid + k2AtC_str(i,j,bi,bj)*vmid
87
88 !A_glen_isothermal, n_glen, eps_glen_min,
89
90 second_inv =
91 & sqrt(exx**2+eyy**2+exx*eyy+exy**2+eps_glen_min**2)
92
93
94 visc_streamice(i,j,bi,bj) =
95 #ifdef STREAMICE_3D_GLEN_CONST
96 & .5 * (B_glen(i,j,1,bi,bj))**2 *
97 #else
98 & .5 * (B_glen(i,j,bi,bj))**2 *
99 #endif
100 & second_inv**((1-n_glen)/n_glen) * H_streamice(i,j,bi,bj)
101
102 unorm = sqrt(umid**2+vmid**2+eps_u_min**2)
103 tau_beta_eff_streamice(i,j,bi,bj) =
104 & C_basal_friction(i,j,bi,bj)**2 *
105 & unorm ** (n_basal_friction-1.0) *
106 & float_frac_streamice (i,j,bi,bj)
107
108 ENDIF
109 ENDDO
110 ENDDO
111 ENDDO
112 ENDDO
113
114
115 #endif
116 RETURN
117 END

  ViewVC Help
Powered by ViewVC 1.1.22