/[MITgcm]/MITgcm/model/src/timestep_tracer.F
ViewVC logotype

Annotation of /MITgcm/model/src/timestep_tracer.F

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


Revision 1.18 - (hide annotations) (download)
Fri Aug 8 19:55:52 2014 UTC (9 years, 9 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65o, HEAD
Changes since 1.17: +22 -12 lines
- push the k loop inside S/R TIMESTEP_TRACER (and call it outside the k loop).
- call S/R DWNSLP_APPLY before TIMESTEP_TRACER;

1 jmc 1.18 C $Header: /u/gcmpack/MITgcm/model/src/timestep_tracer.F,v 1.17 2011/12/13 15:12:53 mlosch Exp $
2 adcroft 1.2 C $Name: $
3 adcroft 1.1
4 jmc 1.15 #include "PACKAGES_CONFIG.h"
5 adcroft 1.1 #include "CPP_OPTIONS.h"
6    
7 cnh 1.8 CBOP
8     C !ROUTINE: TIMESTEP_TRACER
9     C !INTERFACE:
10 adcroft 1.2 SUBROUTINE TIMESTEP_TRACER(
11 jmc 1.18 I bi, bj, deltaTLev,
12 jmc 1.16 I tracer,
13     U gTracer,
14 jmc 1.18 I myTime, myIter, myThid )
15 cnh 1.8 C !DESCRIPTION: \bv
16     C *==========================================================*
17 jmc 1.15 C | S/R TIMESTEP_TRACER
18     C | o Step model tracer field forward in time
19 cnh 1.8 C *==========================================================*
20     C \ev
21    
22     C !USES:
23 adcroft 1.2 IMPLICIT NONE
24     C == Global variables ===
25 adcroft 1.1 #include "SIZE.h"
26     #include "EEPARAMS.h"
27     #include "PARAMS.h"
28 jmc 1.15 #include "GRID.h"
29 adcroft 1.2
30 cnh 1.8 C !INPUT/OUTPUT PARAMETERS:
31 adcroft 1.1 C == Routine Arguments ==
32 jmc 1.18 C bi, bj :: current tile indices
33     C deltaTLev :: time-step [s] (vertical dimension vector)
34     C tracer :: tracer field
35     C gTracer :: input: tracer tendency ; output: updated tracer
36     C myTime :: current time in simulation
37     C myIter :: current iteration number
38     C myThid :: my Thread Id number
39     INTEGER bi, bj
40     _RL deltaTLev(Nr)
41     _RL tracer (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
42     _RL gTracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
43     _RL myTime
44 adcroft 1.1 INTEGER myIter, myThid
45 cnh 1.8
46     C !LOCAL VARIABLES:
47 adcroft 1.1 C == Local variables ==
48 jmc 1.18 INTEGER i, j, k
49 cnh 1.8 CEOP
50 adcroft 1.1
51 jmc 1.5 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
52    
53 jmc 1.15 C- Step tracer forward in time and store provisional value in gTracer array
54 jmc 1.18 DO k=1,Nr
55     DO j=1-OLy,sNy+OLy
56     DO i=1-OLx,sNx+OLx
57     gTracer(i,j,k) = tracer(i,j,k)
58     & + deltaTLev(k)*gTracer(i,j,k)
59 jmc 1.15 #ifdef ALLOW_OBCS
60 mlosch 1.17 CML For the Stevens open boundary conditions, we need to step forward
61     CML the tracer even on the boundary in order to include surface
62     CML forcing and (vertical) diffusion contributions. For other cases
63     CML this mask was meant to avoid unrealistic values on the open boundaries.
64     CML Lets hope that we can live without this safety net.
65     C & *maskInC(i,j,bi,bj)
66 jmc 1.15 #endif
67 jmc 1.18 ENDDO
68 jmc 1.5 ENDDO
69     ENDDO
70 adcroft 1.1
71     RETURN
72     END

  ViewVC Help
Powered by ViewVC 1.1.22