44 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
45 |
# include "tamc.h" |
# include "tamc.h" |
46 |
# include "tamc_keys.h" |
# include "tamc_keys.h" |
47 |
|
# ifdef ALLOW_PTRACERS |
48 |
|
# include "PTRACERS_SIZE.h" |
49 |
|
# endif |
50 |
#endif |
#endif |
51 |
#ifdef ALLOW_EXCH2 |
#ifdef ALLOW_EXCH2 |
52 |
#include "W2_EXCH2_TOPOLOGY.h" |
#include "W2_EXCH2_TOPOLOGY.h" |
201 |
ENDDO |
ENDDO |
202 |
ENDDO |
ENDDO |
203 |
|
|
204 |
IF (useCubedSphereExchange) THEN |
cph The following block is needed for useCubedSphereExchange only, |
205 |
|
cph but needs to be set for all cases to avoid spurious |
206 |
|
cph TAF dependencies |
207 |
southWestCorner = .TRUE. |
southWestCorner = .TRUE. |
208 |
southEastCorner = .TRUE. |
southEastCorner = .TRUE. |
209 |
northWestCorner = .TRUE. |
northWestCorner = .TRUE. |
222 |
#else |
#else |
223 |
nCFace = bi |
nCFace = bi |
224 |
#endif |
#endif |
225 |
|
IF (useCubedSphereExchange) THEN |
226 |
|
|
227 |
nipass=3 |
nipass=3 |
228 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
309 |
C | \/ |
C | \/ |
310 |
C | x T(sNx+1, 0) |
C | x T(sNx+1, 0) |
311 |
IF ( southWestCorner ) THEN |
IF ( southWestCorner ) THEN |
312 |
localTij(0 ,0 )= localTij(0 ,1 ) |
DO J=1,OLy |
313 |
|
DO I=1,OLx |
314 |
|
localTij(1-I, 1-J )= localTij(1-J ,1 ) |
315 |
|
ENDDO |
316 |
|
ENDDO |
317 |
ENDIF |
ENDIF |
318 |
IF ( southEastCorner ) THEN |
IF ( southEastCorner ) THEN |
319 |
localTij(sNx+1,0 )= localTij(sNx+1,1 ) |
DO J=1,OLy |
320 |
|
DO I=1,OLx |
321 |
|
localTij(sNx+I, 1-J )=localTij(sNx+J, I ) |
322 |
|
ENDDO |
323 |
|
ENDDO |
324 |
ENDIF |
ENDIF |
325 |
IF ( northWestCorner ) THEN |
IF ( northWestCorner ) THEN |
326 |
localTij(0 ,sNy+1)= localTij(0 ,sNy) |
DO J=1,OLy |
327 |
|
DO I=1,OLx |
328 |
|
localTij( 1-I ,sNy+J)=localTij( 1-J , sNy+1-I ) |
329 |
|
ENDDO |
330 |
|
ENDDO |
331 |
ENDIF |
ENDIF |
332 |
IF ( northEastCorner ) THEN |
IF ( northEastCorner ) THEN |
333 |
localTij(sNx+1,sNy+1)= localTij(sNx+1,sNy) |
DO J=1,OLy |
334 |
|
DO I=1,OLx |
335 |
|
localTij(sNx+I,sNy+J)=localTij(sNx+J, sNy+1-I ) |
336 |
|
ENDDO |
337 |
|
ENDDO |
338 |
ENDIF |
ENDIF |
339 |
ENDIF |
ENDIF |
340 |
|
|
432 |
C | |
C | |
433 |
C x T(sNx,0) =====>x T(sNx+1, 0) |
C x T(sNx,0) =====>x T(sNx+1, 0) |
434 |
IF ( southWestCorner ) THEN |
IF ( southWestCorner ) THEN |
435 |
localTij( 0,0 ) = localTij( 1,0 ) |
DO J=1,Oly |
436 |
|
DO I=1,Olx |
437 |
|
localTij( 1-i , 1-j ) = localTij(j , 1-i ) |
438 |
|
ENDDO |
439 |
|
ENDDO |
440 |
ENDIF |
ENDIF |
441 |
IF ( southEastCorner ) THEN |
IF ( southEastCorner ) THEN |
442 |
localTij(sNx+1,0 ) = localTij(sNx,0 ) |
DO J=1,Oly |
443 |
|
DO I=1,Olx |
444 |
|
localTij(sNx+i, 1-j ) = localTij(sNx+1-j, 1-i ) |
445 |
|
ENDDO |
446 |
|
ENDDO |
447 |
ENDIF |
ENDIF |
448 |
IF ( northWestCorner ) THEN |
IF ( northWestCorner ) THEN |
449 |
localTij(0 ,sNy+1) = localTij( 1,sNy+1) |
DO J=1,Oly |
450 |
|
DO I=1,Olx |
451 |
|
localTij( 1-i ,sNy+j) = localTij(j ,sNy+i) |
452 |
|
ENDDO |
453 |
|
ENDDO |
454 |
ENDIF |
ENDIF |
455 |
IF ( northEastCorner ) THEN |
IF ( northEastCorner ) THEN |
456 |
localTij(sNx+1,sNy+1) = localTij(sNx,sNy+1) |
DO J=1,Oly |
457 |
|
DO I=1,Olx |
458 |
|
localTij(sNx+i,sNy+j) = localTij(sNx+1-j,sNy+i) |
459 |
|
ENDDO |
460 |
|
ENDDO |
461 |
ENDIF |
ENDIF |
462 |
ENDIF |
ENDIF |
463 |
|
|