/[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.19 - (show annotations) (download)
Tue Nov 2 19:09:55 2004 UTC (19 years, 7 months ago) by edhill
Branch: MAIN
CVS Tags: checkpoint57m_post, checkpoint57g_pre, checkpoint57s_post, checkpoint57b_post, checkpoint57g_post, checkpoint56b_post, checkpoint57y_post, checkpoint57r_post, checkpoint57d_post, checkpoint57i_post, checkpoint58, checkpoint57, checkpoint56, checkpoint57n_post, checkpoint58a_post, checkpoint57z_post, checkpoint57l_post, checkpoint57t_post, checkpoint57v_post, checkpoint57f_post, checkpoint57a_post, checkpoint57h_pre, checkpoint57h_post, checkpoint57y_pre, checkpoint57c_post, checkpoint57c_pre, checkpoint55j_post, checkpoint57e_post, checkpoint57p_post, checkpint57u_post, checkpoint57q_post, eckpoint57e_pre, checkpoint56a_post, checkpoint57h_done, checkpoint57j_post, checkpoint57f_pre, checkpoint56c_post, checkpoint57a_pre, checkpoint57o_post, checkpoint57k_post, checkpoint57w_post, checkpoint57x_post
Changes since 1.18: +2 -2 lines
 o make all subroutines 30 or less characters in length for certain older
   compilers to work

1 C $Header: /u/gcmpack/MITgcm/model/src/do_fields_blocking_exchanges.F,v 1.18 2004/09/27 08:02:05 mlosch 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 _EXCH_XYZ_R8( wVel , myThid )
52 ENDIF
53 c IF ( exactConserv .AND. implicDiv2Dflow .NE. 0. _d 0)
54 c & _EXCH_XY_R8( etaN , myThid )
55 _EXCH_XYZ_R8( theta, myThid )
56 _EXCH_XYZ_R8( salt , myThid )
57 #endif
58
59 #ifndef ALLOW_OFFLINE
60 #ifdef ALLOW_CD_CODE
61 c _EXCH_XYZ_R8( guCD , myThid )
62 c _EXCH_XYZ_R8( gvCD , myThid )
63 _EXCH_XYZ_R8( uVelD , myThid )
64 _EXCH_XYZ_R8( vVelD , myThid )
65 #endif
66 IF ( useDynP_inEos_Zc )
67 & _EXCH_XYZ_RL( totPhiHyd , myThid )
68 #endif
69
70 #ifdef ALLOW_PTRACERS
71 IF (usePTRACERS)
72 & CALL PTRACERS_FIELDS_BLOCKING_EXCH(myThid)
73 #endif /* ALLOW PTRACERS */
74
75 #ifdef ALLOW_GGL90
76 IF (useGGL90)
77 & CALL GGL90_EXCHANGES(myThid)
78 #endif /* ALLOW_GGL90 */
79
80 RETURN
81 END

  ViewVC Help
Powered by ViewVC 1.1.22