/[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.5 - (hide annotations) (download)
Tue Apr 6 20:38:18 2010 UTC (14 years, 1 month ago) by jmc
Branch: MAIN
CVS Tags: checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62w, checkpoint62v, checkpoint62u, checkpoint62t, checkpoint62x
Changes since 1.4: +48 -53 lines
clean-up RBCS code: add RBCS_OPTIONS.h file ; fix multi-threaded ;
  change (+ fix IO calls) type of array RBC_mask from _RL to _RS.

1 jmc 1.5 C $Header: /u/gcmpack/MITgcm/pkg/rbcs/rbcs_add_tendency.F,v 1.4 2007/11/05 19:08:51 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 "GRID.h"
21     #include "DYNVARS.h"
22     #include "EEPARAMS.h"
23     #include "PARAMS.h"
24     #ifdef ALLOW_PTRACERS
25     #include "PTRACERS_SIZE.h"
26 jmc 1.4 #include "PTRACERS_FIELDS.h"
27 stephd 1.1 #endif
28     #include "RBCS.h"
29    
30     C !INPUT PARAMETERS: ===================================================
31 jmc 1.5 C bi,bj :: tile indices
32     C k :: vertical level index
33     C tracerNum :: tracer number (1=Temp, 2=Salt, >2 : ptracer)
34     C myTime :: current time
35     C myIter :: current timestep
36     C myThid :: my Thread Id number
37     INTEGER bi, bj, k
38     INTEGER tracerNum
39 stephd 1.1 _RL myTime
40 jmc 1.5 c INTEGER myIter
41     INTEGER myThid
42 stephd 1.1
43     C !LOCAL VARIABLES: ====================================================
44 jmc 1.5 C i,j :: loop indices
45 stephd 1.1 INTEGER i,j
46 jmc 1.5 #ifdef ALLOW_PTRACERS
47 stephd 1.1 INTEGER iTracer
48     INTEGER irbc
49 jmc 1.5 #endif
50 stephd 1.1 CEOP
51    
52     #ifdef ALLOW_RBCS
53    
54 jmc 1.5 IF ( tracerNum.EQ.1 .AND. useRBCtemp ) THEN
55 stephd 1.1 DO j=1,sNy
56 jmc 1.5 DO i=1,sNx
57     gT(i,j,k,bi,bj) = gT(i,j,k,bi,bj)
58     & - maskC(i,j,k,bi,bj)
59     & *RBC_mask(i,j,k,bi,bj,1)/tauRelaxT
60     & *( theta(i,j,k,bi,bj)- RBCtemp(i,j,k,bi,bj) )
61     ENDDO
62 stephd 1.1 ENDDO
63 jmc 1.5 ENDIF
64 stephd 1.1
65 jmc 1.5 IF ( tracerNum.EQ.2 .AND. useRBCsalt ) THEN
66 stephd 1.1 DO j=1,sNy
67 jmc 1.5 DO i=1,sNx
68     gS(i,j,k,bi,bj) = gS(i,j,k,bi,bj)
69     & - maskC(i,j,k,bi,bj)
70     & *RBC_mask(i,j,k,bi,bj,2)/tauRelaxS
71     & *( salt(i,j,k,bi,bj)- RBCsalt(i,j,k,bi,bj) )
72     ENDDO
73 stephd 1.1 ENDDO
74 jmc 1.5 ENDIF
75 stephd 1.1
76     #ifdef ALLOW_PTRACERS
77 jmc 1.5 IF ( usePTRACERS .AND. tracerNum.GT.2 ) THEN
78     iTracer = tracerNum-2
79     irbc = MIN(maskLEN,tracerNum)
80     IF ( useRBCptrnum(iTracer) ) THEN
81     DO j=1,sNy
82 stephd 1.1 DO i=1,sNx
83 jmc 1.5 gPtr(i,j,k,bi,bj,iTracer) = gPtr(i,j,k,bi,bj,iTracer)
84     & - maskC(i,j,k,bi,bj)
85     & *RBC_mask(i,j,k,bi,bj,irbc)/tauRelaxPTR(iTracer)
86     & *( pTracer(i,j,k,bi,bj,iTracer)
87     & - RBC_ptracers(i,j,k,bi,bj,iTracer) )
88 stephd 1.1 ENDDO
89 jmc 1.5 ENDDO
90     ENDIF
91     ENDIF
92     #endif /* ALLOW_PTRACERS */
93 stephd 1.1
94     #endif /* ALLOW_RBCS */
95    
96     RETURN
97     END

  ViewVC Help
Powered by ViewVC 1.1.22