/[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.12 - (show annotations) (download)
Tue Oct 28 22:57:59 2003 UTC (20 years, 6 months ago) by edhill
Branch: MAIN
Changes since 1.11: +2 -2 lines
 o add a "cd_code" package and update all the verification tests
   so that they use the new package instead of "INCLUDE_CD_CODE"

1 C $Header: /u/u3/gcmpack/MITgcm/model/src/do_fields_blocking_exchanges.F,v 1.11 2003/10/09 04:19:18 edhill 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
32 C !INPUT/OUTPUT PARAMETERS:
33 C == Routine arguments ==
34 C myThid - Thread number for this instance of the routine.
35 INTEGER myThid
36 CEOP
37
38 c _EXCH_XYZ_R8( Gu , myThid )
39 c _EXCH_XYZ_R8( Gv , myThid )
40 c _EXCH_XYZ_R8( Gt , myThid )
41 c _EXCH_XYZ_R8( Gs , myThid )
42 c _EXCH_XYZ_R8( gUNm1 , myThid )
43 c _EXCH_XYZ_R8( gVNm1 , myThid )
44 c _EXCH_XYZ_R8( gTNm1 , myThid )
45 c _EXCH_XYZ_R8( gSNm1 , myThid )
46 c _EXCH_XYZ_R8( uVel , myThid )
47 c _EXCH_XYZ_R8( vVel , myThid )
48 CALL EXCH_UV_XYZ_RL(uVel,vVel,.TRUE.,myThid)
49 _EXCH_XYZ_R8( wVel , myThid )
50 IF ( exactConserv .AND. implicDiv2Dflow .NE. 0. _d 0)
51 & _EXCH_XY_R8( etaN , myThid )
52 IF ( .NOT.staggerTimeStep .OR. cAdjFreq .NE. 0. _d 0) THEN
53 _EXCH_XYZ_R8( theta , myThid )
54 _EXCH_XYZ_R8( salt , myThid )
55 ENDIF
56 #ifdef ALLOW_PASSIVE_TRACER
57 ceh3 needs an IF ( usePASSIVE_TRACER ) THEN
58 _EXCH_XYZ_R8( Tr1 , myThid )
59 #endif
60
61 #ifdef ALLOW_CD_CODE
62 c _EXCH_XYZ_R8( guCD , myThid )
63 c _EXCH_XYZ_R8( gvCD , myThid )
64 _EXCH_XYZ_R8( uVelD , myThid )
65 _EXCH_XYZ_R8( vVelD , myThid )
66 #endif
67 IF ( useDynP_inEos_Zc )
68 & _EXCH_XYZ_RL( totPhiHyd , myThid )
69
70 #ifdef ALLOW_PTRACERS
71 ceh3 needs an IF ( usePTRACER ) THEN
72 CALL PTRACERS_FIELDS_BLOCKING_EXCHANGES(myThid)
73 #endif /* ALLOW PTRACERS */
74
75 RETURN
76 END

  ViewVC Help
Powered by ViewVC 1.1.22