16 |
IMPLICIT NONE |
IMPLICIT NONE |
17 |
#include "SIZE.h" |
#include "SIZE.h" |
18 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
|
#ifndef ALLOW_AUTODIFF_TAMC |
|
|
# include "EESUPPORT.h" |
|
|
#endif |
|
19 |
#include "PARAMS.h" |
#include "PARAMS.h" |
20 |
#include "GRID.h" |
#include "GRID.h" |
21 |
#ifdef ALLOW_MNC |
#ifdef ALLOW_MNC |
29 |
INTEGER myThid |
INTEGER myThid |
30 |
CEOP |
CEOP |
31 |
|
|
32 |
|
C === Functions ==== |
33 |
|
LOGICAL MASTER_CPU_IO |
34 |
|
EXTERNAL MASTER_CPU_IO |
35 |
|
|
36 |
C !LOCAL VARIABLES: |
C !LOCAL VARIABLES: |
37 |
C bi,bj :: Tile Indices counters |
C bi,bj :: Tile Indices counters |
38 |
C i, j :: Loop counters |
C i, j :: Loop counters |
104 |
ENDDO |
ENDDO |
105 |
ENDDO |
ENDDO |
106 |
ENDDO |
ENDDO |
107 |
|
_BARRIER |
108 |
CALL READ_REC_XY_RS( 'fCoriC.bin', fCori, 1, 0, myThid ) |
CALL READ_REC_XY_RS( 'fCoriC.bin', fCori, 1, 0, myThid ) |
109 |
CALL READ_REC_XY_RS( 'fCoriG.bin', fCoriG, 1, 0, myThid ) |
CALL READ_REC_XY_RS( 'fCoriG.bin', fCoriG, 1, 0, myThid ) |
110 |
CALL READ_REC_XY_RS( 'fCorCs.bin', fCoriCos,1, 0, myThid ) |
CALL READ_REC_XY_RS( 'fCorCs.bin', fCoriCos,1, 0, myThid ) |
111 |
IF ( useCubedSphereExchange ) THEN |
IF ( useCubedSphereExchange ) THEN |
112 |
|
_BARRIER |
113 |
C- deal with the 2 missing corners (for fCoriG): |
C- deal with the 2 missing corners (for fCoriG): |
114 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
115 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
133 |
|
|
134 |
CALL EXCH_XY_RS( fCori, myThid ) |
CALL EXCH_XY_RS( fCori, myThid ) |
135 |
CALL EXCH_XY_RS( fCoriCos, myThid ) |
CALL EXCH_XY_RS( fCoriCos, myThid ) |
|
c CALL EXCH_Z_XY_RS( fCoriG, myThid ) |
|
136 |
CALL EXCH_Z_3D_RS( fCoriG, 1, myThid ) |
CALL EXCH_Z_3D_RS( fCoriG, 1, myThid ) |
137 |
ENDIF |
ENDIF |
138 |
|
|
|
#ifndef ALLOW_AUTODIFF_TAMC |
|
139 |
#ifdef ALLOW_MONITOR |
#ifdef ALLOW_MONITOR |
140 |
#ifdef ALLOW_USE_MPI |
IF ( MASTER_CPU_IO(myThid) ) THEN |
|
IF ( .NOT.useSingleCPUIO .OR. mpiMyId.EQ.0 ) THEN |
|
|
#endif /* ALLOW_USE_MPI */ |
|
|
_BEGIN_MASTER(myThid) |
|
141 |
C-- only the master thread is allowed to switch On/Off mon_write_stdout |
C-- only the master thread is allowed to switch On/Off mon_write_stdout |
142 |
C & mon_write_mnc (since it's the only thread that uses those flags): |
C & mon_write_mnc (since it's the only thread that uses those flags): |
143 |
|
|
158 |
ENDIF |
ENDIF |
159 |
#endif /* ALLOW_MNC */ |
#endif /* ALLOW_MNC */ |
160 |
|
|
|
_END_MASTER(myThid) |
|
|
#ifdef ALLOW_USE_MPI |
|
161 |
ENDIF |
ENDIF |
|
#endif /* ALLOW_USE_MPI */ |
|
162 |
|
|
163 |
CALL MON_PRINTSTATS_RS(1,fCori,'fCori',myThid) |
CALL MON_PRINTSTATS_RS(1,fCori,'fCori',myThid) |
164 |
CALL MON_PRINTSTATS_RS(1,fCoriG,'fCoriG',myThid) |
CALL MON_PRINTSTATS_RS(1,fCoriG,'fCoriG',myThid) |
165 |
CALL MON_PRINTSTATS_RS(1,fCoriCos,'fCoriCos',myThid) |
CALL MON_PRINTSTATS_RS(1,fCoriCos,'fCoriCos',myThid) |
166 |
|
|
167 |
#ifdef ALLOW_USE_MPI |
IF ( MASTER_CPU_IO(myThid) ) THEN |
|
IF ( .NOT.useSingleCPUIO .OR. mpiMyId.EQ.0 ) THEN |
|
|
#endif /* ALLOW_USE_MPI */ |
|
|
_BEGIN_MASTER(myThid) |
|
|
|
|
168 |
mon_write_stdout = .FALSE. |
mon_write_stdout = .FALSE. |
169 |
mon_write_mnc = .FALSE. |
mon_write_mnc = .FALSE. |
|
|
|
|
_END_MASTER(myThid) |
|
|
#ifdef ALLOW_USE_MPI |
|
170 |
ENDIF |
ENDIF |
|
#endif /* ALLOW_USE_MPI */ |
|
171 |
#endif /* ALLOW_MONITOR */ |
#endif /* ALLOW_MONITOR */ |
|
#endif /* ALLOW_AUTODIFF_TAMC */ |
|
172 |
|
|
173 |
RETURN |
RETURN |
174 |
END |
END |