25 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
26 |
#include "PARAMS.h" |
#include "PARAMS.h" |
27 |
#include "DYNVARS.h" |
#include "DYNVARS.h" |
28 |
#ifdef ALLOW_PASSIVE_TRACER |
#ifdef ALLOW_LONGSTEP |
29 |
#include "TR1.h" |
#include "LONGSTEP.h" |
30 |
|
#endif |
31 |
|
#ifdef ALLOW_GENERIC_ADVDIFF |
32 |
|
# include "GAD.h" |
33 |
#endif |
#endif |
34 |
#ifdef ALLOW_CD_CODE |
#ifdef ALLOW_CD_CODE |
35 |
#include "CD_CODE_VARS.h" |
# include "CD_CODE_VARS.h" |
36 |
#endif |
#endif |
37 |
|
|
38 |
C !INPUT/OUTPUT PARAMETERS: |
C !INPUT/OUTPUT PARAMETERS: |
41 |
INTEGER myThid |
INTEGER myThid |
42 |
CEOP |
CEOP |
43 |
|
|
44 |
c _EXCH_XYZ_R8( Gu , myThid ) |
IF ( .NOT.useOffLine ) THEN |
45 |
c _EXCH_XYZ_R8( Gv , myThid ) |
C- Apply Exchanges on dynamics state variable, except in Off-Line mode |
46 |
c _EXCH_XYZ_R8( Gt , myThid ) |
|
|
c _EXCH_XYZ_R8( Gs , myThid ) |
|
|
c _EXCH_XYZ_R8( gUNm1 , myThid ) |
|
|
c _EXCH_XYZ_R8( gVNm1 , myThid ) |
|
|
c _EXCH_XYZ_R8( gTNm1 , myThid ) |
|
|
c _EXCH_XYZ_R8( gSNm1 , myThid ) |
|
|
c _EXCH_XYZ_R8( uVel , myThid ) |
|
|
c _EXCH_XYZ_R8( vVel , myThid ) |
|
47 |
IF ( .NOT.staggerTimeStep .OR. .NOT.useMultiDimAdvec ) THEN |
IF ( .NOT.staggerTimeStep .OR. .NOT.useMultiDimAdvec ) THEN |
48 |
CALL EXCH_UV_XYZ_RL(uVel,vVel,.TRUE.,myThid) |
CALL EXCH_UV_XYZ_RL(uVel,vVel,.TRUE.,myThid) |
49 |
_EXCH_XYZ_R8( wVel , myThid ) |
IF ( .NOT.implicitIntGravWave ) |
50 |
|
& _EXCH_XYZ_RL( wVel , myThid ) |
51 |
ENDIF |
ENDIF |
52 |
c IF ( exactConserv .AND. implicDiv2Dflow .NE. 0. _d 0) |
c IF ( exactConserv .AND. implicDiv2Dflow .NE. 0. _d 0) |
53 |
c & _EXCH_XY_R8( etaN , myThid ) |
c & _EXCH_XY_RL( etaN , myThid ) |
54 |
_EXCH_XYZ_R8( theta, myThid ) |
IF ( .NOT.implicitIntGravWave ) THEN |
55 |
_EXCH_XYZ_R8( salt , myThid ) |
_EXCH_XYZ_RL( theta, myThid ) |
56 |
#ifdef ALLOW_PASSIVE_TRACER |
_EXCH_XYZ_RL( salt , myThid ) |
57 |
IF ( tr1Stepping ) |
ENDIF |
58 |
& _EXCH_XYZ_R8( Tr1 , myThid ) |
|
59 |
|
#ifdef ALLOW_GENERIC_ADVDIFF |
60 |
|
IF ( tempSOM_Advection .OR. saltSOM_Advection ) |
61 |
|
& CALL GAD_SOM_EXCHANGES( myThid ) |
62 |
#endif |
#endif |
63 |
|
|
64 |
#ifdef ALLOW_CD_CODE |
#ifdef ALLOW_CD_CODE |
65 |
c _EXCH_XYZ_R8( guCD , myThid ) |
# ifdef ALLOW_AUTODIFF_TAMC |
66 |
c _EXCH_XYZ_R8( gvCD , myThid ) |
CALL EXCH_3D_RL( uVelD, Nr, myThid ) |
67 |
_EXCH_XYZ_R8( uVelD , myThid ) |
CALL EXCH_3D_RL( vVelD, Nr, myThid ) |
68 |
_EXCH_XYZ_R8( vVelD , myThid ) |
# else |
69 |
|
CALL EXCH_UV_DGRID_3D_RL( uVelD,vVelD, .TRUE., Nr, myThid ) |
70 |
|
# endif |
71 |
#endif |
#endif |
72 |
IF ( useDynP_inEos_Zc ) |
IF ( useDynP_inEos_Zc ) |
73 |
& _EXCH_XYZ_RL( totPhiHyd , myThid ) |
& _EXCH_XYZ_RL( totPhiHyd , myThid ) |
74 |
|
C- if not useOffLine: end |
75 |
|
ENDIF |
76 |
|
|
77 |
#ifdef ALLOW_PTRACERS |
#ifdef ALLOW_PTRACERS |
78 |
|
#ifdef ALLOW_LONGSTEP |
79 |
|
IF ( LS_doTimeStep ) THEN |
80 |
|
#else |
81 |
|
IF ( .TRUE. ) THEN |
82 |
|
#endif |
83 |
IF (usePTRACERS) |
IF (usePTRACERS) |
84 |
& CALL PTRACERS_FIELDS_BLOCKING_EXCHANGES(myThid) |
& CALL PTRACERS_FIELDS_BLOCKING_EXCH(myThid) |
85 |
|
C endif LS_doTimeStep |
86 |
|
ENDIF |
87 |
#endif /* ALLOW PTRACERS */ |
#endif /* ALLOW PTRACERS */ |
88 |
|
|
89 |
|
#ifdef ALLOW_GGL90 |
90 |
|
IF (useGGL90) |
91 |
|
& CALL GGL90_EXCHANGES(myThid) |
92 |
|
#endif /* ALLOW_GGL90 */ |
93 |
|
|
94 |
RETURN |
RETURN |
95 |
END |
END |