/[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.15 - (show annotations) (download)
Wed Jul 7 22:23:12 2004 UTC (19 years, 11 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint54d_post, checkpoint54b_post, checkpoint54c_post
Changes since 1.14: +5 -3 lines
needs valid U,V in halo region for multi-Dim-Advec; do Exch(U,V) if staggerTimeStep

1 C $Header: /u/gcmpack/MITgcm/model/src/do_fields_blocking_exchanges.F,v 1.14 2004/07/06 01:05:53 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 C !DESCRIPTION: \bv
12 C /==========================================================\
13 C | SUBROUTINE DO_FIELDS_BLOCKING_EXCHANGES |
14 C | o Controlling routine for exchanging edge info. |
15 C |==========================================================|
16 C | One key trick used in UV us that we over-compute and |
17 C | arrange our time-stepping loop so that we only need one |
18 C | edge exchange for the explicit code per timestep. |
19 C \==========================================================/
20 C \ev
21 C !USES:
22 IMPLICIT NONE
23 C == Global variables ===
24 #include "SIZE.h"
25 #include "EEPARAMS.h"
26 #include "PARAMS.h"
27 #include "DYNVARS.h"
28 #ifdef ALLOW_PASSIVE_TRACER
29 #include "TR1.h"
30 #endif
31 #ifdef ALLOW_CD_CODE
32 #include "CD_CODE_VARS.h"
33 #endif
34
35 C !INPUT/OUTPUT PARAMETERS:
36 C == Routine arguments ==
37 C myThid - Thread number for this instance of the routine.
38 INTEGER myThid
39 CEOP
40
41 c _EXCH_XYZ_R8( Gu , myThid )
42 c _EXCH_XYZ_R8( Gv , myThid )
43 c _EXCH_XYZ_R8( Gt , myThid )
44 c _EXCH_XYZ_R8( Gs , myThid )
45 c _EXCH_XYZ_R8( gUNm1 , myThid )
46 c _EXCH_XYZ_R8( gVNm1 , myThid )
47 c _EXCH_XYZ_R8( gTNm1 , myThid )
48 c _EXCH_XYZ_R8( gSNm1 , myThid )
49 c _EXCH_XYZ_R8( uVel , myThid )
50 c _EXCH_XYZ_R8( vVel , myThid )
51 IF ( .NOT.staggerTimeStep .OR. .NOT.useMultiDimAdvec ) THEN
52 CALL EXCH_UV_XYZ_RL(uVel,vVel,.TRUE.,myThid)
53 _EXCH_XYZ_R8( wVel , myThid )
54 ENDIF
55 c IF ( exactConserv .AND. implicDiv2Dflow .NE. 0. _d 0)
56 c & _EXCH_XY_R8( etaN , myThid )
57 _EXCH_XYZ_R8( theta, myThid )
58 _EXCH_XYZ_R8( salt , myThid )
59 #ifdef ALLOW_PASSIVE_TRACER
60 IF ( tr1Stepping )
61 & _EXCH_XYZ_R8( Tr1 , myThid )
62 #endif
63
64 #ifdef ALLOW_CD_CODE
65 c _EXCH_XYZ_R8( guCD , myThid )
66 c _EXCH_XYZ_R8( gvCD , myThid )
67 _EXCH_XYZ_R8( uVelD , myThid )
68 _EXCH_XYZ_R8( vVelD , myThid )
69 #endif
70 IF ( useDynP_inEos_Zc )
71 & _EXCH_XYZ_RL( totPhiHyd , myThid )
72
73 #ifdef ALLOW_PTRACERS
74 IF (usePTRACERS)
75 & CALL PTRACERS_FIELDS_BLOCKING_EXCHANGES(myThid)
76 #endif /* ALLOW PTRACERS */
77
78 RETURN
79 END

  ViewVC Help
Powered by ViewVC 1.1.22