/[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.20 - (show annotations) (download)
Thu Feb 23 20:55:48 2006 UTC (18 years, 3 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint58b_post, checkpoint58c_post
Changes since 1.19: +7 -4 lines
1rst implementation of  Implicit IGW using the 3-D solver (use3Dsolver=T)
 and based on the reference stratification

1 C $Header: /u/gcmpack/MITgcm/model/src/do_fields_blocking_exchanges.F,v 1.19 2004/11/02 19:09:55 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_CD_CODE
29 #include "CD_CODE_VARS.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 #ifndef ALLLOW_OFFLINE
49 IF ( .NOT.staggerTimeStep .OR. .NOT.useMultiDimAdvec ) THEN
50 CALL EXCH_UV_XYZ_RL(uVel,vVel,.TRUE.,myThid)
51 IF ( .NOT.implicitIntGravWave )
52 & _EXCH_XYZ_R8( wVel , myThid )
53 ENDIF
54 c IF ( exactConserv .AND. implicDiv2Dflow .NE. 0. _d 0)
55 c & _EXCH_XY_R8( etaN , myThid )
56 IF ( .NOT.implicitIntGravWave ) THEN
57 _EXCH_XYZ_R8( theta, myThid )
58 _EXCH_XYZ_R8( salt , myThid )
59 ENDIF
60 #endif
61
62 #ifndef ALLOW_OFFLINE
63 #ifdef ALLOW_CD_CODE
64 c _EXCH_XYZ_R8( guCD , myThid )
65 c _EXCH_XYZ_R8( gvCD , myThid )
66 _EXCH_XYZ_R8( uVelD , myThid )
67 _EXCH_XYZ_R8( vVelD , myThid )
68 #endif
69 IF ( useDynP_inEos_Zc )
70 & _EXCH_XYZ_RL( totPhiHyd , myThid )
71 #endif
72
73 #ifdef ALLOW_PTRACERS
74 IF (usePTRACERS)
75 & CALL PTRACERS_FIELDS_BLOCKING_EXCH(myThid)
76 #endif /* ALLOW PTRACERS */
77
78 #ifdef ALLOW_GGL90
79 IF (useGGL90)
80 & CALL GGL90_EXCHANGES(myThid)
81 #endif /* ALLOW_GGL90 */
82
83 RETURN
84 END

  ViewVC Help
Powered by ViewVC 1.1.22