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

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

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


Revision 1.8 - (hide annotations) (download)
Wed Aug 27 19:29:14 2014 UTC (10 years, 10 months ago) by dgoldberg
Branch: MAIN
CVS Tags: HEAD
Changes since 1.7: +5 -1 lines
updating contrib streamice repo with latest files, and separated out convergence checks; and parameterised maximum iteration counts and interface w shelfice for coupling

1 dgoldberg 1.8 C $Header: /u/gcmpack/MITgcm/pkg/streamice/streamice_visc_beta.F,v 1.2 2014/04/24 12:01:50 dgoldberg Exp $
2 heimbach 1.1 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 dgoldberg 1.7 INTEGER i, j, bi, bj, k, l
37 heimbach 1.1 _RL ux, uy, vx, vy, exx, eyy, exy, second_inv, unorm
38 dgoldberg 1.7 _RL umid, vmid
39 heimbach 1.1
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    
95     visc_streamice(i,j,bi,bj) =
96 dgoldberg 1.8 #ifdef STREAMICE_3D_GLEN_CONST
97     & .5 * (B_glen(i,j,1,bi,bj))**2 *
98     #else
99 dgoldberg 1.6 & .5 * (B_glen(i,j,bi,bj))**2 *
100 dgoldberg 1.8 #endif
101 heimbach 1.1 & second_inv**((1-n_glen)/n_glen) * H_streamice(i,j,bi,bj)
102    
103 dgoldberg 1.5 unorm = sqrt(umid**2+vmid**2+eps_u_min**2)
104 heimbach 1.1 tau_beta_eff_streamice(i,j,bi,bj) =
105 dgoldberg 1.2 & C_basal_friction(i,j,bi,bj)**2 *
106 dgoldberg 1.7 & unorm ** (n_basal_friction-1.0) *
107 heimbach 1.1 & float_frac_streamice (i,j,bi,bj)
108    
109     ENDIF
110     ENDDO
111     ENDDO
112     ENDDO
113     ENDDO
114    
115    
116     #endif
117     RETURN
118     END

  ViewVC Help
Powered by ViewVC 1.1.22