/[MITgcm]/MITgcm/verification/tutorial_global_oce_latlon/code/ptracers_forcing.F
ViewVC logotype

Annotation of /MITgcm/verification/tutorial_global_oce_latlon/code/ptracers_forcing.F

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


Revision 1.3 - (hide annotations) (download)
Mon Nov 5 19:27:02 2007 UTC (16 years, 7 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint60, checkpoint61, checkpoint62, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n, checkpoint59k, checkpoint59j, checkpoint62c, checkpoint62b, checkpoint62a, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62i, checkpoint62h, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.2: +9 -11 lines
keep up-to-date with pkg/ptracers source code
( PTRACERS.h splitted in 2 header files)

1 jmc 1.3 C $Header: /u/gcmpack/MITgcm/verification/tutorial_global_oce_latlon/code/ptracers_forcing.F,v 1.2 2007/10/25 20:00:22 dfer Exp $
2 dfer 1.1 C $Name: $
3    
4     #include "PTRACERS_OPTIONS.h"
5    
6     CBOP
7     C !ROUTINE: PTRACERS_FORCING
8    
9     C !INTERFACE: ==========================================================
10     SUBROUTINE PTRACERS_FORCING(
11     I bi,bj,iMin,iMax,jMin,jMax,k,iTracer,
12     U gPtracer,surfPtracer,
13     I myIter,myTime,myThid )
14    
15     C !DESCRIPTION:
16     C Adds sources and sinks of passive tracers to the tendency arrays
17    
18     C !USES: ===============================================================
19     IMPLICIT NONE
20     #include "SIZE.h"
21     #include "EEPARAMS.h"
22     #include "PARAMS.h"
23     #include "GRID.h"
24     #ifdef ALLOW_RBCS
25     #include "PTRACERS_SIZE.h"
26     #include "RBCS.h"
27     #endif
28    
29     C !INPUT PARAMETERS: ===================================================
30     C bi,bj :: tile indices
31     C iMin iMax jMin jMax :: working range of tile for applying forcing
32     C k :: vertical level number
33     C iTracer :: tracer number
34     C gPtracer :: the tendency array
35     C surfPtracer :: surface forcing term
36     C myIter :: time-step number
37     C myTime :: model time
38     C myThid :: thread number
39     INTEGER bi,bj,iMin,iMax,jMin,jMax,k,iTracer
40     _RL gPtracer(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy)
41     _RL surfPtracer(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy)
42     INTEGER myIter
43     _RL myTime
44     INTEGER myThid
45    
46     C !OUTPUT PARAMETERS: ==================================================
47     C gPtracer :: updates tendency array
48    
49     #ifdef ALLOW_PTRACERS
50    
51     C !LOCAL VARIABLES: ====================================================
52     C i,j :: loop indices
53     INTEGER i,j
54     C number of surface interface layer
55     INTEGER kSurface
56     CEOP
57    
58     IF ( usingPCoords ) THEN
59     kSurface = Nr
60     ELSE
61     kSurface = 1
62     ENDIF
63    
64 jmc 1.3 C-- Surface forcing term surfPtracer is previously computed by
65     C PTRACERS_FORCING_SURF (and stored as surfaceForcingPTr)
66 dfer 1.1 C because it is needed by KPP_TRANSPORT_PTR.
67    
68     #ifdef ALLOW_GCHEM
69     IF ( useGCHEM )
70     & CALL GCHEM_ADD_TENDENCY(
71     I bi,bj,iMin,iMax,jMin,jMax,k,
72     I iTracer,
73     I myTime,myIter, myThid)
74 dfer 1.2 #endif /* ALLOW_GCHEM */
75    
76     IF ( k .EQ. kSurface ) THEN
77 dfer 1.1 DO j=jMin,jMax
78     DO i=iMin,iMax
79     gPtracer(i,j,k,bi,bj) = gPtracer(i,j,k,bi,bj)
80     & + surfPtracer(i,j,bi,bj)
81     & *recip_drF(k)*recip_hFacC(i,j,k,bi,bj)
82     ENDDO
83     ENDDO
84 dfer 1.2 ELSEIF ( k .NE. kSurface ) THEN
85 dfer 1.1 DO j=jMin,jMax
86     DO i=iMin,iMax
87     gPtracer(i,j,k,bi,bj) = gPtracer(i,j,k,bi,bj)
88     & + 1. _d 0 * maskC(i,j,k,bi,bj)
89     ENDDO
90     ENDDO
91 dfer 1.2 ENDIF
92 dfer 1.1
93     #ifdef ALLOW_RBCS
94 jmc 1.3 IF ( useRBCptracers ) THEN
95     CALL RBCS_ADD_TENDENCY(
96     I bi,bj,k,iTracer+2,
97     I myTime, myThid )
98     ENDIF
99     #endif /* ALLOW_RBCS */
100 dfer 1.1
101     #endif /* ALLOW_PTRACERS */
102    
103     RETURN
104     END

  ViewVC Help
Powered by ViewVC 1.1.22