/[MITgcm]/MITgcm/pkg/seaice/seaice_calc_strainrates.F
ViewVC logotype

Annotation of /MITgcm/pkg/seaice/seaice_calc_strainrates.F

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


Revision 1.1 - (hide annotations) (download)
Fri Apr 20 18:29:58 2007 UTC (18 years, 2 months ago) by mlosch
Branch: MAIN
fix bug in evp solver, while doing that
  - change (improve?) discretization of stress computations for both
    cgrid-lsr and evp solver
  - add a new routine to compute strain rates
  - changes lab_sea results

1 mlosch 1.1 C $Header: $
2     C $Name: $
3    
4     #include "SEAICE_OPTIONS.h"
5    
6     CStartOfInterface
7     SUBROUTINE SEAICE_CALC_STRAINRATES(
8     I uFld, vFld,
9     O e11, e22, e12,
10     I myThid )
11     C /==========================================================\
12     C | SUBROUTINE SEAICE_CALC_STRAINRATES |
13     C | o compute strain rates from ice velocities |
14     C |==========================================================|
15     C | written by Martin Losch, Apr 2007 |
16     C \==========================================================/
17     IMPLICIT NONE
18    
19     C === Global variables ===
20     #include "SIZE.h"
21     #include "EEPARAMS.h"
22     #include "PARAMS.h"
23     #include "GRID.h"
24     #include "SEAICE_PARAMS.h"
25    
26     #ifdef ALLOW_AUTODIFF_TAMC
27     # include "tamc.h"
28     #endif
29    
30     C === Routine arguments ===
31     C myThid - Thread no. that called this routine.
32     INTEGER myThid
33     C ice velocities
34     _RL uFld(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy)
35     _RL vFld(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy)
36     C strain rate tensor
37     _RL e11 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
38     _RL e22 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
39     _RL e12 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
40     CEndOfInterface
41    
42     #ifdef SEAICE_CGRID
43     #ifdef SEAICE_ALLOW_DYNAMICS
44     C === Local variables ===
45     C i,j,bi,bj - Loop counters
46     INTEGER i, j, bi, bj
47    
48     C
49     DO bj=myByLo(myThid),myByHi(myThid)
50     DO bi=myBxLo(myThid),myBxHi(myThid)
51     DO j=1-Oly+1,sNy+Oly-1
52     DO i=1-Olx+1,sNx+Olx-1
53     C NOW EVALUATE STRAIN RATES
54     e11(I,J,bi,bj)= _recip_dxF(I,J,bi,bj) *
55     & (uFld(I+1,J,bi,bj)-uFld(I,J,bi,bj))
56     & -HALF*
57     & (vFld(I,J,bi,bj)+vFld(I,J+1,bi,bj))
58     & * _tanPhiAtU(I,J,bi,bj)*recip_rSphere
59     e22(I,J,bi,bj)= _recip_dyF(I,J,bi,bj) *
60     & (vFld(I,J+1,bi,bj)-vFld(I,J,bi,bj))
61     C one metric term is missing
62     e12(I,J,bi,bj)=HALF*(
63     & (uFld(I ,J ,bi,bj) * _dxC(I ,J ,bi,bj)
64     & -uFld(I ,J-1,bi,bj) * _dxC(I ,J-1,bi,bj)
65     & +vFld(I ,J ,bi,bj) * _dyC(I ,J ,bi,bj)
66     & -vFld(I-1,J ,bi,bj) * _dyC(I-1,J ,bi,bj))
67     & * recip_rAz(I,J,bi,bj)
68     & +
69     & 0.25 _d 0 * (uFld(I,J,bi,bj)+uFld(I ,J-1,bi,bj))
70     & * ( _tanPhiAtU(I,J,bi,bj) + _tanPhiAtU(I,J-1,bi,bj) )
71     & *recip_rSphere
72     & )
73     C one metric term is missing
74     CML e12(I,J,bi,bj)=HALF*(
75     CML & (uFld(I,J+1,bi,bj)+uFld(I+1,J+1,bi,bj)
76     CML & -uFld(I,J-1,bi,bj)-uFld(I+1,J-1,bi,bj))
77     CML & * 1. _d 0 / (dyC(I,J,bi,bj) + dyC(I,J-1,bi,bj))
78     CML & +
79     CML & (vFld(I+1,J+1,bi,bj)+vFld(I+1,J,bi,bj)
80     CML & -vFld(I-1,J+1,bi,bj)-vFld(I-1,J,bi,bj))
81     CML & * 1. _d 0 / (dxC(I,J,bi,bj) + dxC(I-1,J,bi,bj))
82     CML & +HALF*
83     CML & (uFld(I, J, bi,bj)+uFld(I+1,J, bi,bj))
84     CML & * _tanPhiAtU(I,J,bi,bj)*recip_rSphere)
85     ENDDO
86     ENDDO
87     ENDDO
88     ENDDO
89     #endif /* SEAICE_ALLOW_DYNAMICS */
90     #endif /* SEAICE_CGRID */
91     RETURN
92     END

  ViewVC Help
Powered by ViewVC 1.1.22