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

Diff of /MITgcm/pkg/seaice/diffus.F

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

revision 1.1 by heimbach, Mon Nov 11 22:01:21 2002 UTC revision 1.2 by heimbach, Tue Nov 12 20:47:27 2002 UTC
# Line 0  Line 1 
1    C
2    
3    #include "SEAICE_OPTIONS.h"
4    
5    CStartOfInterface
6          SUBROUTINE diffus( HEFF, DIFFA, HEFFM, DELTT, myThid )
7    C     /==========================================================\
8    C     | SUBROUTINE diffus                                        |
9    C     | o Add diffusion terms to ice mass conservation equations |
10    C     |==========================================================|
11    C     \==========================================================/
12          IMPLICIT NONE
13    
14    C     === Global variables ===
15    #include "SIZE.h"
16    #include "EEPARAMS.h"
17    #include "SEAICE_GRID.h"
18    
19    C     === Routine arguments ===
20    C     myThid - Thread no. that called this routine.
21          _RL HEFF       (1-OLx:sNx+OLx,1-OLy:sNy+OLy,3,nSx,nSy)
22          _RL HEFFM      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,  nSx,nSy)
23          _RL DIFFA      (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
24          _RL DELTT
25          INTEGER myThid
26    CEndOfInterface
27    
28    #ifdef ALLOW_SEAICE
29    
30    C     === Local variables ===
31    C     i,j,k,bi,bj - Loop counters
32    
33          INTEGER i, j, k, bi, bj
34          _RL DELTXX1, DELTYY1, DELTXX, DELTYY
35          _RL HEFF1  (1-OLx:sNx+OLx, 1-OLy:sNy+OLy)
36    
37          DO bj=myByLo(myThid),myByHi(myThid)
38           DO bi=myBxLo(myThid),myBxHi(myThid)
39    
40            DO j=1-OLy,sNy+OLy
41             DO i=1-OLx,sNx+OLx
42              HEFF1(I,J)=0.0
43             ENDDO
44            ENDDO
45    
46    C NOW DO DIFFUSION WITH NUIT CONVERSION
47            DO j=1,sNy
48             DO i=1,sNx
49              DELTXX1=DELTT*DIFFA(I,J)
50              DELTYY1=DELTT*DIFFA(I,J)
51              DELTXX=DELTXX1/(DXTICE(I,J,bi,bj)*DXTICE(I,J,bi,bj)
52         &          *CSTICE(I,J,bi,bj)*CSTICE(I,J,bi,bj))
53              DELTYY=DELTYY1/(DYTICE(I,J,bi,bj)*DYTICE(I,J,bi,bj)
54         &          *CSTICE(I,J,bi,bj))
55              HEFF1(I,J)=DELTXX*((HEFF(I+1,J,3,bi,bj)-HEFF(I,J,3,bi,bj))
56         &     *HEFFM(I+1,J,bi,bj)
57         &     -(HEFF(I,J,3,bi,bj)-HEFF(I-1,J,3,bi,bj))*HEFFM(I-1,J,bi,bj))
58         &     +DELTYY*((HEFF(I,J+1,3,bi,bj)-HEFF(I,J,3,bi,bj))
59         &     *CSUICE(I,J,bi,bj)*HEFFM(I,J+1,bi,bj)
60         &     -(HEFF(I,J,3,bi,bj)-HEFF(I,J-1,3,bi,bj))
61         &     *CSUICE(I,J-1,bi,bj)*HEFFM(I,J-1,bi,bj))
62             ENDDO
63            ENDDO
64    
65           ENDDO
66          ENDDO
67    
68          _EXCH_XY_R8(HEFF1, myThid)
69    
70          DO bj=myByLo(myThid),myByHi(myThid)
71           DO bi=myBxLo(myThid),myBxHi(myThid)
72            DO j=1-OLy,sNy+OLy
73             DO i=1-OLx,sNx+OLx
74              HEFF(I,J,3,bi,bj)=HEFF1(I,J)
75             ENDDO
76            ENDDO
77           ENDDO
78          ENDDO
79    
80    #endif ALLOW_SEAICE
81    
82          RETURN
83          END

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.22