/[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.2 - (hide annotations) (download)
Thu Jul 19 18:46:05 2012 UTC (13 years ago) by dgoldberg
Branch: MAIN
Changes since 1.1: +3 -3 lines
potential integer-real conversion issue

1 dgoldberg 1.2 C $Header: /u/gcmpack/MITgcm_contrib/dgoldberg/streamice/streamice_visc_beta.F,v 1.1 2012/03/29 15:59:21 heimbach 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     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 dgoldberg 1.2 & .5 * A_glen_isothermal**(-1./n_glen) *
96 heimbach 1.1 & 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 dgoldberg 1.2 & C_basal_friction(i,j,bi,bj)**2 *
101 heimbach 1.1 & 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