/[MITgcm]/MITgcm/pkg/ptracers/ptracers_advection.F
ViewVC logotype

Contents of /MITgcm/pkg/ptracers/ptracers_advection.F

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


Revision 1.7 - (show annotations) (download)
Mon Oct 10 05:53:48 2005 UTC (18 years, 11 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint58b_post, checkpoint57y_post, checkpoint58, checkpoint58a_post, checkpoint57z_post, checkpoint57v_post, checkpoint57x_post, checkpoint57y_pre, checkpint57u_post, checkpoint57w_post, checkpoint58c_post
Changes since 1.6: +2 -2 lines
o OBCS and PTRACERS: add open boundary support for passive tracers
  - either use homogenous (pseudo) v.Neumann conditions or prescribe
    OB-values from file; this is not different from the way theta and salinity
    are treated
  - however, Orlanski-radiation conditions are not supported, and the model
    will stop if you use pTracers and Orlanski at the same time.
  - beefed up the rountine obcs_external_fields_load: now only those open
    boundary values are overwritten with values from files for which there
    are really files, otherwise the OB-fields remain untouched. This makes
    it possible to use different OBs at different ends of the domain (as
    with EXF)
  - TODO: add support for OB?w and OB?eta, which can currently not be read
    from a file.

1 C $Header: /u/gcmpack/MITgcm/pkg/ptracers/ptracers_advection.F,v 1.6 2004/12/05 22:22:06 jmc Exp $
2 C $Name: $
3
4 #include "PTRACERS_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: PTRACERS_ADVECTION
8
9 C !INTERFACE: ==========================================================
10 SUBROUTINE PTRACERS_ADVECTION( bi,bj,myIter,myTime,myThid )
11
12 C !DESCRIPTION:
13 C Calculates tendancy for passive tracers and integrates forward
14 C in time.
15
16 C !USES: ===============================================================
17 IMPLICIT NONE
18 #include "SIZE.h"
19 #include "EEPARAMS.h"
20 #include "PARAMS.h"
21 #include "DYNVARS.h"
22 #include "PTRACERS_SIZE.h"
23 #include "PTRACERS.h"
24 #include "GAD.h"
25
26 C !INPUT PARAMETERS: ===================================================
27 C bi,bj :: tile indices
28 C myIter :: time-step number
29 C myTime :: model time
30 C myThid :: thread number
31 INTEGER bi,bj
32 INTEGER myIter
33 _RL myTime
34 INTEGER myThid
35
36 C !OUTPUT PARAMETERS: ==================================================
37 C none
38
39 #ifdef ALLOW_PTRACERS
40
41 C !LOCAL VARIABLES: ====================================================
42 C i,j,k,bi,bj,iTracer :: loop indices
43 C iMin,iMax,jMin,jMax :: loop ranges
44 C kUp,kDown :: toggle indices for even/odd level fluxes
45 C km1 :: =min(1,k-1)
46 C rFlx :: vertical flux
47 INTEGER iTracer
48 CEOP
49
50 C Loop over tracers
51 DO iTracer=1,PTRACERS_numInUse
52
53 IF (
54 & multiDimAdvection .AND.
55 & PTRACERS_advScheme(iTracer).NE.ENUM_CENTERED_2ND .AND.
56 & PTRACERS_advScheme(iTracer).NE.ENUM_UPWIND_3RD .AND.
57 & PTRACERS_advScheme(iTracer).NE.ENUM_CENTERED_4TH ) THEN
58 CALL GAD_ADVECTION(
59 I PTRACERS_ImplVertAdv(iTracer),
60 I PTRACERS_advScheme(iTracer),
61 I PTRACERS_advScheme(iTracer),
62 I GAD_TR1+iTracer-1,
63 I uVel, vVel, wVel,
64 I pTracer(1-Olx,1-Oly,1,1,1,iTracer),
65 O gPtr(1-Olx,1-Oly,1,1,1,iTracer),
66 I bi,bj,myTime,myIter,myThid)
67 ENDIF
68
69
70 C end of tracer loop
71 ENDDO
72
73 #endif /* ALLOW_PTRACERS */
74
75 RETURN
76 END

  ViewVC Help
Powered by ViewVC 1.1.22