3 |
|
|
4 |
#include "PACKAGES_CONFIG.h" |
#include "PACKAGES_CONFIG.h" |
5 |
#include "CPP_EEOPTIONS.h" |
#include "CPP_EEOPTIONS.h" |
|
CBOP |
|
6 |
|
|
7 |
|
CBOP |
8 |
C !ROUTINE: EXCH_XYZ_RX |
C !ROUTINE: EXCH_XYZ_RX |
9 |
|
|
10 |
C !INTERFACE: |
C !INTERFACE: |
11 |
SUBROUTINE EXCH_XYZ_RX( |
SUBROUTINE EXCH_XYZ_RX( |
12 |
U phi, |
U phi, |
13 |
I myThid ) |
I myThid ) |
|
IMPLICIT NONE |
|
14 |
|
|
15 |
C !DESCRIPTION: |
C !DESCRIPTION: |
16 |
C *==========================================================* |
C *==========================================================* |
17 |
C | SUBROUTINE EXCH_XYZ_RX |
C | SUBROUTINE EXCH_XYZ_RX |
18 |
C | o Handle exchanges for _RX, three-dim scalar arrays. |
C | o Handle exchanges for _RX, three-dim scalar arrays. |
19 |
C *==========================================================* |
C *==========================================================* |
20 |
C | Invoke appropriate exchange routine depending on type |
C | Invoke appropriate exchange routine depending on type |
21 |
C | of grid (cube or globally indexed) to be operated on. |
C | of grid (cube or globally indexed) to be operated on. |
22 |
C *==========================================================* |
C *==========================================================* |
23 |
|
|
24 |
C !USES: |
C !USES: |
25 |
|
IMPLICIT NONE |
26 |
C === Global data === |
C === Global data === |
27 |
#include "SIZE.h" |
#include "SIZE.h" |
28 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
45 |
CEOP |
CEOP |
46 |
|
|
47 |
#ifdef ALLOW_EXCH2 |
#ifdef ALLOW_EXCH2 |
48 |
CALL EXCH2_XYZ_RX( phi, myThid ) |
CALL EXCH2_3D_RX( phi, Nr, myThid ) |
49 |
RETURN |
RETURN |
50 |
#endif |
#endif |
51 |
|
|
56 |
exchWidthX = OLx |
exchWidthX = OLx |
57 |
exchWidthY = OLy |
exchWidthY = OLy |
58 |
myNz = Nr |
myNz = Nr |
59 |
C ** NOTE ** The exchange routine we use here does not |
C ** NOTE ** The exchange routine we use here does not |
60 |
C require the preceeding and following barriers. |
C require the preceeding and following barriers. |
61 |
C However, the slow, simple exchange interface |
C However, the slow, simple exchange interface |
62 |
C that is calling it here is meant to ensure |
C that is calling it here is meant to ensure |
63 |
C that threads are synchronised before exchanges |
C that threads are synchronised before exchanges |
64 |
C begine. |
C begine. |
65 |
IF (useCubedSphereExchange) THEN |
IF (useCubedSphereExchange) THEN |