/[MITgcm]/MITgcm/pkg/rbcs/rbcs_add_tendency.F
ViewVC logotype

Annotation of /MITgcm/pkg/rbcs/rbcs_add_tendency.F

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


Revision 1.6 - (hide annotations) (download)
Sat May 14 19:52:12 2011 UTC (13 years ago) by jmc
Branch: MAIN
Changes since 1.5: +35 -10 lines
- split RBCS.h into 3 files: RBCS_SIZE.h  RBCS_PARAMS.h  RBCS_FIELDS.h
- add capability to apply relaxation to horizontal velocity uVel & vVel

1 jmc 1.6 C $Header: /u/gcmpack/MITgcm/pkg/rbcs/rbcs_add_tendency.F,v 1.5 2010/04/06 20:38:18 jmc Exp $
2 jmc 1.3 C $Name: $
3 stephd 1.1
4 jmc 1.5 #include "RBCS_OPTIONS.h"
5 stephd 1.1
6     CBOP
7     C !ROUTINE: RBCS_ADD_TSTENDENCY
8    
9     C !INTERFACE: ==========================================================
10 jmc 1.5 SUBROUTINE RBCS_ADD_TENDENCY(
11     I bi, bj, k, tracerNum,
12     I myTime, myThid )
13 stephd 1.1
14     C !DESCRIPTION:
15     C Will update tendencies with terms to relax to 3-D field
16    
17     C !USES: ===============================================================
18     IMPLICIT NONE
19     #include "SIZE.h"
20     #include "EEPARAMS.h"
21     #include "PARAMS.h"
22 jmc 1.6 c#include "GRID.h"
23     #include "DYNVARS.h"
24 stephd 1.1 #ifdef ALLOW_PTRACERS
25     #include "PTRACERS_SIZE.h"
26 jmc 1.4 #include "PTRACERS_FIELDS.h"
27 stephd 1.1 #endif
28 jmc 1.6 #include "RBCS_SIZE.h"
29     #include "RBCS_PARAMS.h"
30     #include "RBCS_FIELDS.h"
31 stephd 1.1
32     C !INPUT PARAMETERS: ===================================================
33 jmc 1.5 C bi,bj :: tile indices
34     C k :: vertical level index
35     C tracerNum :: tracer number (1=Temp, 2=Salt, >2 : ptracer)
36     C myTime :: current time
37     C myIter :: current timestep
38     C myThid :: my Thread Id number
39     INTEGER bi, bj, k
40     INTEGER tracerNum
41 stephd 1.1 _RL myTime
42 jmc 1.5 c INTEGER myIter
43     INTEGER myThid
44 stephd 1.1
45     C !LOCAL VARIABLES: ====================================================
46 jmc 1.5 C i,j :: loop indices
47 stephd 1.1 INTEGER i,j
48 jmc 1.5 #ifdef ALLOW_PTRACERS
49 stephd 1.1 INTEGER iTracer
50     INTEGER irbc
51 jmc 1.5 #endif
52 stephd 1.1 CEOP
53    
54     #ifdef ALLOW_RBCS
55    
56 jmc 1.6 #ifndef DISABLE_RBCS_MOM
57     IF ( tracerNum.EQ.-1 .AND. useRBCuVel ) THEN
58     DO j=0,sNy+1
59     DO i=0,sNx+1
60     gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)
61     & - RBC_maskU(i,j,k,bi,bj)/tauRelaxU
62     & *( uVel(i,j,k,bi,bj)- RBCuVel(i,j,k,bi,bj) )
63     c & *maskW(i,j,k,bi,bj)
64     ENDDO
65     ENDDO
66     ENDIF
67     IF ( tracerNum.EQ.-2 .AND. useRBCvVel ) THEN
68     DO j=0,sNy+1
69     DO i=0,sNx+1
70     gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)
71     & - RBC_maskV(i,j,k,bi,bj)/tauRelaxV
72     & *( vVel(i,j,k,bi,bj)- RBCvVel(i,j,k,bi,bj) )
73     c & *maskS(i,j,k,bi,bj)
74     ENDDO
75     ENDDO
76     ENDIF
77     #endif /* DISABLE_RBCS_MOM */
78    
79 jmc 1.5 IF ( tracerNum.EQ.1 .AND. useRBCtemp ) THEN
80 stephd 1.1 DO j=1,sNy
81 jmc 1.5 DO i=1,sNx
82     gT(i,j,k,bi,bj) = gT(i,j,k,bi,bj)
83 jmc 1.6 & - RBC_mask(i,j,k,bi,bj,1)/tauRelaxT
84 jmc 1.5 & *( theta(i,j,k,bi,bj)- RBCtemp(i,j,k,bi,bj) )
85 jmc 1.6 c & *maskC(i,j,k,bi,bj)
86 jmc 1.5 ENDDO
87 stephd 1.1 ENDDO
88 jmc 1.5 ENDIF
89 stephd 1.1
90 jmc 1.5 IF ( tracerNum.EQ.2 .AND. useRBCsalt ) THEN
91 stephd 1.1 DO j=1,sNy
92 jmc 1.5 DO i=1,sNx
93     gS(i,j,k,bi,bj) = gS(i,j,k,bi,bj)
94 jmc 1.6 & - RBC_mask(i,j,k,bi,bj,2)/tauRelaxS
95 jmc 1.5 & *( salt(i,j,k,bi,bj)- RBCsalt(i,j,k,bi,bj) )
96 jmc 1.6 c & *maskC(i,j,k,bi,bj)
97 jmc 1.5 ENDDO
98 stephd 1.1 ENDDO
99 jmc 1.5 ENDIF
100 stephd 1.1
101     #ifdef ALLOW_PTRACERS
102 jmc 1.5 IF ( usePTRACERS .AND. tracerNum.GT.2 ) THEN
103     iTracer = tracerNum-2
104     irbc = MIN(maskLEN,tracerNum)
105     IF ( useRBCptrnum(iTracer) ) THEN
106     DO j=1,sNy
107 stephd 1.1 DO i=1,sNx
108 jmc 1.5 gPtr(i,j,k,bi,bj,iTracer) = gPtr(i,j,k,bi,bj,iTracer)
109 jmc 1.6 & - RBC_mask(i,j,k,bi,bj,irbc)/tauRelaxPTR(iTracer)
110 jmc 1.5 & *( pTracer(i,j,k,bi,bj,iTracer)
111     & - RBC_ptracers(i,j,k,bi,bj,iTracer) )
112 jmc 1.6 c & *maskC(i,j,k,bi,bj)
113 stephd 1.1 ENDDO
114 jmc 1.5 ENDDO
115     ENDIF
116     ENDIF
117     #endif /* ALLOW_PTRACERS */
118 stephd 1.1
119     #endif /* ALLOW_RBCS */
120    
121     RETURN
122     END

  ViewVC Help
Powered by ViewVC 1.1.22