/[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.1 - (hide annotations) (download)
Thu Mar 29 15:59:21 2012 UTC (13 years, 3 months ago) by heimbach
Branch: MAIN
Initial check-in of Dan Goldberg's streamice package

1 heimbach 1.1 C $Header: /u/gcmpack/MITgcm/pkg/streamice/streamice_init_varia.F,v 1.6 2011/06/29 16:24:10 dng 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 * A_glen_isothermal**(-1/n_glen) *
96     & second_inv**((1-n_glen)/n_glen) * H_streamice(i,j,bi,bj)
97    
98     unorm = sqrt(umid**2+vmid**2+eps_glen_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