92 |
C I,J,K,repeat :: Loop counters and index |
C I,J,K,repeat :: Loop counters and index |
93 |
C bl,bt,bn,bs,be,bw |
C bl,bt,bn,bs,be,bw |
94 |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
95 |
INTEGER theSimulationMode |
c INTEGER theSimulationMode |
96 |
INTEGER theCornerMode |
c INTEGER theCornerMode |
97 |
INTEGER I,J,K,repeat |
INTEGER I,J,K,repeat |
98 |
INTEGER bl,bt,bn,bs,be,bw |
INTEGER bl,bt,bn,bs,be,bw |
99 |
C == Statement function == |
C == Statement function == |
101 |
tilemod(I)=1+mod(I-1+6,6) |
tilemod(I)=1+mod(I-1+6,6) |
102 |
CEOP |
CEOP |
103 |
|
|
104 |
|
IF ( simulationMode.EQ.REVERSE_SIMULATION ) THEN |
105 |
|
WRITE(msgBuf,'(A)') 'EXCH_Z_RX_CUBE: AD mode not implemented' |
106 |
|
CALL PRINT_ERROR( msgBuf, myThid ) |
107 |
|
STOP 'ABNORMAL END: EXCH_Z_RX_CUBE: no AD code' |
108 |
|
ENDIF |
109 |
IF ( sNx.NE.sNy .OR. |
IF ( sNx.NE.sNy .OR. |
110 |
& nSx.NE.6 .OR. nSy.NE.1 .OR. |
& nSx.NE.6 .OR. nSy.NE.1 .OR. |
111 |
& nPx.NE.1 .OR. nPy.NE.1 ) THEN |
& nPx.NE.1 .OR. nPy.NE.1 ) THEN |
117 |
STOP 'ABNORMAL END: EXCH_Z_RX_CUBE: Wrong Tiling' |
STOP 'ABNORMAL END: EXCH_Z_RX_CUBE: Wrong Tiling' |
118 |
ENDIF |
ENDIF |
119 |
|
|
120 |
theSimulationMode = simulationMode |
c theSimulationMode = simulationMode |
121 |
theCornerMode = cornerMode |
c theCornerMode = cornerMode |
122 |
|
|
123 |
C For now tile<->tile exchanges are sequentialised through |
C For now tile<->tile exchanges are sequentialised through |
124 |
C thread 1. This is a temporary feature for preliminary testing until |
C thread 1. This is a temporary feature for preliminary testing until |