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

Contents of /MITgcm/model/src/do_fields_blocking_exchanges.F

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


Revision 1.29 - (show annotations) (download)
Thu Apr 28 23:18:44 2011 UTC (13 years, 1 month ago) by jmc
Branch: MAIN
CVS Tags: checkpoint65a, checkpoint62z, checkpoint62y, checkpoint62x, checkpoint63g, checkpoint64, checkpoint65, checkpoint63, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f
Changes since 1.28: +12 -12 lines
back to previous version (comment out calls to OBCS_COPY_TRACER):
 no longer needed with maskInC,W,S in pkg/generic_advdiff.

1 C $Header: /u/gcmpack/MITgcm/model/src/do_fields_blocking_exchanges.F,v 1.28 2010/11/08 17:32:13 jmc Exp $
2 C $Name: $
3
4 #include "PACKAGES_CONFIG.h"
5 #include "CPP_OPTIONS.h"
6
7 CBOP
8 C !ROUTINE: DO_FIELDS_BLOCKING_EXCHANGES
9 C !INTERFACE:
10 SUBROUTINE DO_FIELDS_BLOCKING_EXCHANGES(myThid)
11
12 C !DESCRIPTION: \bv
13 C *==========================================================*
14 C | SUBROUTINE DO_FIELDS_BLOCKING_EXCHANGES
15 C | o Controlling routine for exchanging edge info.
16 C *==========================================================*
17 C | One key trick used in UV us that we over-compute and
18 C | arrange our time-stepping loop so that we only need one
19 C | edge exchange for the explicit code per timestep.
20 C *==========================================================*
21 C \ev
22
23 C !USES:
24 IMPLICIT NONE
25 C == Global variables ===
26 #include "SIZE.h"
27 #include "EEPARAMS.h"
28 #include "PARAMS.h"
29 #include "DYNVARS.h"
30 #ifdef ALLOW_LONGSTEP
31 #include "LONGSTEP.h"
32 #endif
33 #ifdef ALLOW_GENERIC_ADVDIFF
34 # include "GAD.h"
35 #endif
36 #ifdef ALLOW_CD_CODE
37 # include "CD_CODE_VARS.h"
38 #endif
39
40 C !INPUT/OUTPUT PARAMETERS:
41 C == Routine arguments ==
42 C myThid :: my Thread Id number
43 INTEGER myThid
44 CEOP
45
46 C !LOCAL VARIABLES:
47 C bi, bj :: tile indices
48 #ifdef ALLOW_OBCS
49 c INTEGER bi, bj
50 #endif /* ALLOW_OBCS */
51
52 IF ( .NOT.useOffLine ) THEN
53 C- Apply Exchanges on dynamics state variable, except in Off-Line mode
54
55 IF ( .NOT.staggerTimeStep .OR. .NOT.useMultiDimAdvec ) THEN
56 CALL EXCH_UV_XYZ_RL(uVel,vVel,.TRUE.,myThid)
57 IF ( .NOT.implicitIntGravWave )
58 & _EXCH_XYZ_RL( wVel , myThid )
59 ENDIF
60 c IF ( exactConserv .AND. implicDiv2Dflow .NE. 0. _d 0)
61 c & _EXCH_XY_RL( etaN , myThid )
62 IF ( .NOT.implicitIntGravWave ) THEN
63 _EXCH_XYZ_RL( theta, myThid )
64 _EXCH_XYZ_RL( salt , myThid )
65 ENDIF
66 #ifdef ALLOW_OBCS
67 c IF ( useOBCS ) THEN
68 c DO bj = myByLo(myThid), myByHi(myThid)
69 c DO bi = myBxLo(myThid), myBxHi(myThid)
70 c CALL OBCS_COPY_TRACER( theta(1-Olx,1-Oly,1,bi,bj),
71 c I Nr, bi, bj, myThid )
72 c CALL OBCS_COPY_TRACER( salt (1-Olx,1-Oly,1,bi,bj),
73 c I Nr, bi, bj, myThid )
74 c ENDDO
75 c ENDDO
76 c ENDIF
77 #endif /* ALLOW_OBCS */
78
79 #ifdef ALLOW_GENERIC_ADVDIFF
80 IF ( tempSOM_Advection .OR. saltSOM_Advection )
81 & CALL GAD_SOM_EXCHANGES( myThid )
82 #endif
83
84 #ifdef ALLOW_CD_CODE
85 CALL EXCH_UV_DGRID_3D_RL( uVelD,vVelD, .TRUE., Nr, myThid )
86 #endif
87 IF ( useDynP_inEos_Zc )
88 & _EXCH_XYZ_RL( totPhiHyd , myThid )
89 C- if not useOffLine: end
90 ENDIF
91
92 #ifdef ALLOW_PTRACERS
93 #ifdef ALLOW_LONGSTEP
94 IF ( LS_doTimeStep ) THEN
95 #else
96 IF ( .TRUE. ) THEN
97 #endif
98 IF (usePTRACERS)
99 & CALL PTRACERS_FIELDS_BLOCKING_EXCH(myThid)
100 C endif LS_doTimeStep
101 ENDIF
102 #endif /* ALLOW PTRACERS */
103
104 #ifdef ALLOW_GGL90
105 IF (useGGL90)
106 & CALL GGL90_EXCHANGES(myThid)
107 #endif /* ALLOW_GGL90 */
108
109 RETURN
110 END

  ViewVC Help
Powered by ViewVC 1.1.22