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

Contents of /MITgcm/pkg/seaice/seaice_diffusion.F

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


Revision 1.1 - (show annotations) (download)
Thu Feb 16 10:41:48 2006 UTC (18 years, 2 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint58b_post
 add a few new advection schemes to seaice:
 ENUM_UPWIND_1RST, ENUM_DST2, ENUM_FLUX_LIMIT, ENUM_DST3,
 ENUM_DST3_FLUX_LIMIT
 Default is still the old one

1 C $Header: $
2 C $Name: $
3
4 #include "SEAICE_OPTIONS.h"
5
6 CStartOfInterface
7 SUBROUTINE SEAICE_DIFFUSION(
8 U HEFF,
9 I HEFFM, DELTT, myTime, myIter, myThid )
10 C /==========================================================\
11 C | SUBROUTINE advect |
12 C | o Calculate ice advection |
13 C |==========================================================|
14 C \==========================================================/
15 IMPLICIT NONE
16
17 C === Global variables ===
18 #include "SIZE.h"
19 #include "EEPARAMS.h"
20 #include "PARAMS.h"
21 #include "GRID.h"
22 #include "SEAICE_PARAMS.h"
23 CML#include "SEAICE_GRID.h"
24
25 #ifdef ALLOW_AUTODIFF_TAMC
26 # include "tamc.h"
27 #endif
28
29 C === Routine arguments ===
30 C myThid - Thread no. that called this routine.
31 _RL HEFF (1-OLx:sNx+OLx,1-OLy:sNy+OLy,3,nSx,nSy)
32 _RL HEFFM (1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy)
33 _RL DELTT
34 _RL myTime
35 INTEGER myIter
36 INTEGER myThid
37 CEndOfInterface
38
39 C === Local variables ===
40 C i,j,k,bi,bj - Loop counters
41
42 INTEGER i, j, bi, bj
43
44 _RL DIFFA(1-OLx:sNx+OLx, 1-OLy:sNy+OLy,nSx,nSy)
45
46 #ifdef ALLOW_AUTODIFF_TAMC
47 CADJ STORE heff = comlev1, key = ikey_dynamics
48 #endif /* ALLOW_AUTODIFF_TAMC */
49
50
51 C NOW DO DIFFUSION ON H(I,J,3)
52 C NOW CALCULATE DIFFUSION COEF ROUGHLY
53 DO bj=myByLo(myThid),myByHi(myThid)
54 DO bi=myBxLo(myThid),myBxHi(myThid)
55 DO j=1-OLy,sNy+OLy
56 DO i=1-OLx,sNx+OLx
57 DIFFA(I,J,bi,bj)=
58 & DIFF1*MIN( _dxF(I,J,bi,bj), _dyF(I,J,bi,bj))
59 ENDDO
60 ENDDO
61 ENDDO
62 ENDDO
63 CALL DIFFUS(HEFF,DIFFA,HEFFM,DELTT, myThid)
64
65 DO bj=myByLo(myThid),myByHi(myThid)
66 DO bi=myBxLo(myThid),myBxHi(myThid)
67 DO j=1-OLy,sNy+OLy
68 DO i=1-OLx,sNx+OLx
69 HEFF(I,J,1,bi,bj)=(HEFF(I,J,1,bi,bj)+HEFF(I,J,3,bi,bj))
70 & *HEFFM(I,J,bi,bj)
71 ENDDO
72 ENDDO
73 ENDDO
74 ENDDO
75
76 C NOW CALCULATE DIFFUSION COEF ROUGHLY
77 DO bj=myByLo(myThid),myByHi(myThid)
78 DO bi=myBxLo(myThid),myBxHi(myThid)
79 DO j=1-OLy,sNy+OLy
80 DO i=1-OLx,sNx+OLx
81 DIFFA(I,J,bi,bj)=
82 & -(MIN( _dxF(I,J,bi,bj), _dyF(I,J,bi,bj)))**2/DELTT
83 ENDDO
84 ENDDO
85 ENDDO
86 ENDDO
87 CALL DIFFUS(HEFF,DIFFA,HEFFM,DELTT, myThid)
88
89 DO bj=myByLo(myThid),myByHi(myThid)
90 DO bi=myBxLo(myThid),myBxHi(myThid)
91 DO j=1-OLy,sNy+OLy
92 DO i=1-OLx,sNx+OLx
93 HEFF(I,J,1,bi,bj)=(HEFF(I,J,1,bi,bj)+HEFF(I,J,3,bi,bj))
94 & *HEFFM(I,J,bi,bj)
95 ENDDO
96 ENDDO
97 ENDDO
98 ENDDO
99
100 RETURN
101 END

  ViewVC Help
Powered by ViewVC 1.1.22