/[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.7 - (hide annotations) (download)
Sat Jun 8 22:15:34 2013 UTC (12 years, 1 month ago) by dgoldberg
Branch: MAIN
Changes since 1.6: +4 -3 lines
new advected scalar; new advection scheme for thickness update; corresponding TAF directives

1 dgoldberg 1.7 C $Header: /u/gcmpack/MITgcm_contrib/dgoldberg/streamice/streamice_visc_beta.F,v 1.6 2013/03/07 15:23:19 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.6 & .5 * (B_glen(i,j,bi,bj))**2 *
97 heimbach 1.1 & second_inv**((1-n_glen)/n_glen) * H_streamice(i,j,bi,bj)
98    
99 dgoldberg 1.5 unorm = sqrt(umid**2+vmid**2+eps_u_min**2)
100 heimbach 1.1 tau_beta_eff_streamice(i,j,bi,bj) =
101 dgoldberg 1.2 & C_basal_friction(i,j,bi,bj)**2 *
102 dgoldberg 1.7 & unorm ** (n_basal_friction-1.0) *
103 heimbach 1.1 & float_frac_streamice (i,j,bi,bj)
104    
105     ENDIF
106     ENDDO
107     ENDDO
108     ENDDO
109     ENDDO
110    
111    
112     #endif
113     RETURN
114     END

  ViewVC Help
Powered by ViewVC 1.1.22