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

Contents of /MITgcm_contrib/dgoldberg/streamice/streamice_visc_beta.F

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


Revision 1.6 - (show annotations) (download)
Thu Mar 7 15:23:19 2013 UTC (12 years, 4 months ago) by dgoldberg
Branch: MAIN
Changes since 1.5: +2 -2 lines
bug fixes, GL smoothing, changes for controlling bathym with const surf elev

1 C $Header: /u/gcmpack/MITgcm_contrib/dgoldberg/streamice/streamice_visc_beta.F,v 1.5 2012/12/10 02:34:45 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, umid, vmid
37 _RL ux, uy, vx, vy, exx, eyy, exy, second_inv, unorm
38
39 DO bj=myByLo(myThid),myByHi(myThid)
40 DO bi=myBxLo(myThid),myBxHi(myThid)
41 DO j=1,sNy
42 DO i=1,sNx
43 IF (STREAMICE_hmask(i,j,bi,bj).eq.1) THEN
44
45 umid = 0
46 vmid = 0
47
48 DO k=0,1
49 DO l=0,1
50 umid = umid + 0.25 *
51 & dxG(i,j+l,bi,bj)*dyG(i+k,j,bi,bj) *
52 & recip_rA(i,j,bi,bj) *
53 & U_streamice(i+k,j+l,bi,bj)
54 vmid = vmid + 0.25 *
55 & dxG(i,j+l,bi,bj)*dyG(i+k,j,bi,bj) *
56 & recip_rA(i,j,bi,bj) *
57 & V_streamice(i+k,j+l,bi,bj)
58 ENDDO
59 ENDDO
60
61 ux = (U_streamice(i+1,j+1,bi,bj) +
62 & U_streamice(i+1,j,bi,bj) -
63 & U_streamice(i,j+1,bi,bj) -
64 & U_streamice(i,j,bi,bj)) /
65 & (2. * dxF(i,j,bi,bj))
66 vx = (V_streamice(i+1,j+1,bi,bj) +
67 & V_streamice(i+1,j,bi,bj) -
68 & V_streamice(i,j+1,bi,bj) -
69 & V_streamice(i,j,bi,bj)) /
70 & (2. * dxF(i,j,bi,bj))
71 uy = (U_streamice(i+1,j+1,bi,bj) -
72 & U_streamice(i+1,j,bi,bj) +
73 & U_streamice(i,j+1,bi,bj) -
74 & U_streamice(i,j,bi,bj)) /
75 & (2. * dyF(i,j,bi,bj))
76 vy = (V_streamice(i+1,j+1,bi,bj) -
77 & V_streamice(i+1,j,bi,bj) +
78 & V_streamice(i,j+1,bi,bj) -
79 & V_streamice(i,j,bi,bj)) /
80 & (2. * dyF(i,j,bi,bj))
81
82 exx = ux + k1AtC_str(i,j,bi,bj)*vmid
83 eyy = vy + k2AtC_str(i,j,bi,bj)*umid
84 exy = .5*(uy+vx) +
85 & k1AtC_str(i,j,bi,bj)*umid + k2AtC_str(i,j,bi,bj)*vmid
86
87 !A_glen_isothermal, n_glen, eps_glen_min,
88
89 second_inv =
90 & sqrt(exx**2+eyy**2+exx*eyy+exy**2+eps_glen_min**2)
91
92
93
94 visc_streamice(i,j,bi,bj) =
95 & .5 * (B_glen(i,j,bi,bj))**2 *
96 & second_inv**((1-n_glen)/n_glen) * H_streamice(i,j,bi,bj)
97
98 unorm = sqrt(umid**2+vmid**2+eps_u_min**2)
99 tau_beta_eff_streamice(i,j,bi,bj) =
100 & C_basal_friction(i,j,bi,bj)**2 *
101 & unorm ** (n_basal_friction-1) *
102 & float_frac_streamice (i,j,bi,bj)
103
104 ENDIF
105 ENDDO
106 ENDDO
107 ENDDO
108 ENDDO
109
110
111 #endif
112 RETURN
113 END

  ViewVC Help
Powered by ViewVC 1.1.22