/[MITgcm]/MITgcm/pkg/matrix/matrix_store_tendency.F
ViewVC logotype

Contents of /MITgcm/pkg/matrix/matrix_store_tendency.F

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


Revision 1.4 - (show annotations) (download)
Fri Aug 26 19:47:00 2011 UTC (12 years, 10 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64q, checkpoint64p, checkpoint64r, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint63b, checkpoint63c, checkpoint64
Changes since 1.3: +21 -23 lines
- fix for multi-tiles (add bi,bj indices to exp/impMatrixCounter);
- fix for multi-threaded (remove DATA statement);
- use standard DIFFERENT_MULTIPLE function;
- add MATRIX_OPTIONS.h

1 C $Header: /u/gcmpack/MITgcm/pkg/matrix/matrix_store_tendency.F,v 1.3 2007/11/05 18:58:00 jmc Exp $
2 C $Name: $
3
4 #include "MATRIX_OPTIONS.h"
5
6 C !ROUTINE MATRIX_STORE_TENDENCY_EXP
7 C This routine accumalates the explicit tendency matrix. Note that
8 C on entry gPtr is the tracer field after explicit advection-
9 C diffusion. On exit, gPtr is set to the initial tracer field for
10 C the next step (implicit matrix calculation).
11
12 SUBROUTINE MATRIX_STORE_TENDENCY_EXP(
13 I bi, bj, myTime, myIter, myThid )
14
15 IMPLICIT NONE
16 #include "SIZE.h"
17 #include "EEPARAMS.h"
18 #include "PARAMS.h"
19 #include "PTRACERS_SIZE.h"
20 #include "PTRACERS_PARAMS.h"
21 #include "PTRACERS_FIELDS.h"
22 #include "MATRIX.h"
23
24 INTEGER bi, bj
25 _RL myTime
26 INTEGER myIter
27 INTEGER myThid
28
29 #ifdef ALLOW_MATRIX
30
31 INTEGER i,j,k
32 INTEGER iTracer
33
34 DO iTracer=1,PTRACERS_numInUse
35 DO k=1,Nr
36 DO j=1-Oly, sNy+Oly
37 DO i=1-Olx, sNx+Olx
38 MATRIX(i,j,k,bi,bj,iTracer,1) =
39 & MATRIX(i,j,k,bi,bj,iTracer,1)
40 & + ( gPtr(i,j,k,bi,bj,iTracer)
41 & - PTRACERS_initial(i,j,k,bi,bj,iTracer) )
42 gPtr(i,j,k,bi,bj,iTracer)=
43 & PTRACERS_initial(i,j,k,bi,bj,iTracer)
44 ENDDO
45 ENDDO
46 ENDDO
47 ENDDO
48 expMatrixCounter(bi,bj) = expMatrixCounter(bi,bj) + 1
49
50 #endif /* ALLOW_MATRIX */
51 RETURN
52 END
53
54 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
55
56 C !ROUTINE MATRIX_STORE_TENDENCY_IMP
57 C This routine accumalates the implicit update matrix. Note that on
58 C entry PTR is the tracer field after implicit advection-
59 C diffusion. On exit, PTR is set to the initial tracer field.
60
61 SUBROUTINE MATRIX_STORE_TENDENCY_IMP(
62 I bi, bj, myTime, myIter, myThid )
63
64 IMPLICIT NONE
65 #include "SIZE.h"
66 #include "EEPARAMS.h"
67 #include "PARAMS.h"
68 #include "PTRACERS_SIZE.h"
69 #include "PTRACERS_PARAMS.h"
70 #include "PTRACERS_FIELDS.h"
71 #include "MATRIX.h"
72
73 INTEGER bi, bj
74 _RL myTime
75 INTEGER myIter
76 INTEGER myThid
77
78 #ifdef ALLOW_MATRIX
79
80 INTEGER i,j,k
81 INTEGER iTracer
82
83 DO iTracer=1,PTRACERS_numInUse
84 DO k=1,Nr
85 DO j=1-Oly, sNy+Oly
86 DO i=1-Olx, sNx+Olx
87 MATRIX(i,j,k,bi,bj,iTracer,2) =
88 & MATRIX(i,j,k,bi,bj,iTracer,2)
89 & + pTracer(i,j,k,bi,bj,iTracer)
90 pTracer(i,j,k,bi,bj,iTracer)=
91 & PTRACERS_initial(i,j,k,bi,bj,iTracer)
92 ENDDO
93 ENDDO
94 ENDDO
95 ENDDO
96 impMatrixCounter(bi,bj) = impMatrixCounter(bi,bj) + 1
97
98 #endif /* ALLOW_MATRIX */
99 RETURN
100 END

  ViewVC Help
Powered by ViewVC 1.1.22