/[MITgcm]/MITgcm_contrib/MPMice/beaufort/code/cpl_mpmice.F
ViewVC logotype

Diff of /MITgcm_contrib/MPMice/beaufort/code/cpl_mpmice.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.12 by dimitri, Thu Mar 8 21:52:27 2012 UTC revision 1.13 by dimitri, Wed Mar 14 05:32:10 2012 UTC
# Line 1  Line 1 
 #define CPL_MONITOR  
1  #define FIX_FOR_EDGE_WINDS  #define FIX_FOR_EDGE_WINDS
2  #include "PACKAGES_CONFIG.h"  #include "PACKAGES_CONFIG.h"
3  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
# Line 30  C     == Global variables == Line 29  C     == Global variables ==
29  #endif  #endif
30  #ifdef ALLOW_SEAICE  #ifdef ALLOW_SEAICE
31  # include "SEAICE_OPTIONS.h"  # include "SEAICE_OPTIONS.h"
32    # include "SEAICE_SIZE.h"
33  # include "SEAICE.h"  # include "SEAICE.h"
34  #endif  #endif
35    
# Line 50  CEOP Line 50  CEOP
50        COMMON /CPL_MPI_ID/        COMMON /CPL_MPI_ID/
51       &        myworldid, local_ocean_leader, local_ice_leader       &        myworldid, local_ocean_leader, local_ice_leader
52        integer myworldid, local_ocean_leader, local_ice_leader        integer myworldid, local_ocean_leader, local_ice_leader
53  #ifdef ALLOW_USE_MPI  # ifdef ALLOW_USE_MPI
54        integer mpistatus(MPI_STATUS_SIZE), mpierr        integer mpistatus(MPI_STATUS_SIZE), mpierr
55  #endif /* ALLOW_USE_MPI */  # endif /* ALLOW_USE_MPI */
56        integer xfer_gridsize(2)        integer xfer_gridsize(2)
57        integer i, j, bi, bj, buffsize, idx        integer i, j, bi, bj, buffsize, idx
58        Real*8  xfer_scalar        Real*8  xfer_scalar
# Line 74  C     Send deltatimestep Line 74  C     Send deltatimestep
74         _BEGIN_MASTER( myThid )         _BEGIN_MASTER( myThid )
75         xfer_scalar = deltat         xfer_scalar = deltat
76         buffsize = 1         buffsize = 1
77  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
78         print*,'MITgcm send TimeInterval', xfer_scalar         print*,'MITgcm send TimeInterval', xfer_scalar
79  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
80    # ifdef CPL_COUPLED
81         IF ( myworldid .EQ. local_ocean_leader ) THEN         IF ( myworldid .EQ. local_ocean_leader ) THEN
82          CALL MPI_SEND(xfer_scalar,buffsize,MPI_DOUBLE_PRECISION,          CALL MPI_SEND(xfer_scalar,buffsize,MPI_DOUBLE_PRECISION,
83       &     local_ice_leader,TimeIntervalTag,MPI_COMM_WORLD,mpierr)       &     local_ice_leader,TimeIntervalTag,MPI_COMM_WORLD,mpierr)
84         ENDIF         ENDIF
85  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
86         _END_MASTER( myThid )         _END_MASTER( myThid )
87    
88  C     Send grid dimensions (Nx,Ny)  C     Send grid dimensions (Nx,Ny)
# Line 89  C     Send grid dimensions (Nx,Ny) Line 90  C     Send grid dimensions (Nx,Ny)
90         xfer_gridsize(1)=Nx         xfer_gridsize(1)=Nx
91         xfer_gridsize(2)=Ny         xfer_gridsize(2)=Ny
92         buffsize = 2         buffsize = 2
93  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
94         print*,'MITgcm send OceanGridsize', xfer_gridsize         print*,'MITgcm send OceanGridsize', xfer_gridsize
95  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
96    # ifdef CPL_COUPLED
97         IF ( myworldid .EQ. local_ocean_leader ) THEN         IF ( myworldid .EQ. local_ocean_leader ) THEN
98          CALL MPI_SEND(xfer_gridsize,buffsize,MPI_INTEGER,          CALL MPI_SEND(xfer_gridsize,buffsize,MPI_INTEGER,
99       &     local_ice_leader,OceanGridsizeTag,MPI_COMM_WORLD,mpierr)       &     local_ice_leader,OceanGridsizeTag,MPI_COMM_WORLD,mpierr)
100         ENDIF         ENDIF
101  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
102         _END_MASTER( myThid )         _END_MASTER( myThid )
103    
104  C     Send ice area  C     Send ice area
# Line 110  C     Send ice area Line 112  C     Send ice area
112          ENDDO          ENDDO
113         ENDDO         ENDDO
114         CALL GATHER_2D( xfer_array, local, myThid )         CALL GATHER_2D( xfer_array, local, myThid )
115  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
116         CALL PLOT_FIELD_XYRL( AREA, 'AREA', myIter, myThid )         CALL PLOT_FIELD_XYRL( AREA, 'AREA', myIter, myThid )
117  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
118    # ifdef CPL_COUPLED
119         _BEGIN_MASTER( myThid )         _BEGIN_MASTER( myThid )
120         IF ( myworldid .EQ. local_ocean_leader ) THEN         IF ( myworldid .EQ. local_ocean_leader ) THEN
121          buffsize = Nx*Ny          buffsize = Nx*Ny
# Line 120  C     Send ice area Line 123  C     Send ice area
123       &     local_ice_leader,AreaTag,MPI_COMM_WORLD,mpierr)       &     local_ice_leader,AreaTag,MPI_COMM_WORLD,mpierr)
124         ENDIF         ENDIF
125         _END_MASTER( myThid )         _END_MASTER( myThid )
126  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
127    
128  C     Send ice thickness  C     Send ice thickness
129         DO bj=1,nSy         DO bj=1,nSy
# Line 133  C     Send ice thickness Line 136  C     Send ice thickness
136          ENDDO          ENDDO
137         ENDDO         ENDDO
138         CALL GATHER_2D( xfer_array, local, myThid )         CALL GATHER_2D( xfer_array, local, myThid )
139  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
140         CALL PLOT_FIELD_XYRL( HEFF, 'HEFF', myIter, myThid )         CALL PLOT_FIELD_XYRL( HEFF, 'HEFF', myIter, myThid )
141  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
142    # ifdef CPL_COUPLED
143         _BEGIN_MASTER( myThid )         _BEGIN_MASTER( myThid )
144         IF ( myworldid .EQ. local_ocean_leader ) THEN         IF ( myworldid .EQ. local_ocean_leader ) THEN
145          buffsize = Nx*Ny          buffsize = Nx*Ny
# Line 143  C     Send ice thickness Line 147  C     Send ice thickness
147       &     local_ice_leader,HeffTag,MPI_COMM_WORLD,mpierr)       &     local_ice_leader,HeffTag,MPI_COMM_WORLD,mpierr)
148         ENDIF         ENDIF
149         _END_MASTER( myThid )         _END_MASTER( myThid )
150  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
151    
152  C     Send ice salinity  C     Send ice salinity
153         DO bj=1,nSy         DO bj=1,nSy
# Line 156  C     Send ice salinity Line 160  C     Send ice salinity
160          ENDDO          ENDDO
161         ENDDO         ENDDO
162         CALL GATHER_2D( xfer_array, local, myThid )         CALL GATHER_2D( xfer_array, local, myThid )
163  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
164         CALL PLOT_FIELD_XYRL( HSALT, 'HSALT', myIter, myThid )         CALL PLOT_FIELD_XYRL( HSALT, 'HSALT', myIter, myThid )
165  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
166    # ifdef CPL_COUPLED
167         _BEGIN_MASTER( myThid )         _BEGIN_MASTER( myThid )
168         IF ( myworldid .EQ. local_ocean_leader ) THEN         IF ( myworldid .EQ. local_ocean_leader ) THEN
169          buffsize = Nx*Ny          buffsize = Nx*Ny
# Line 166  C     Send ice salinity Line 171  C     Send ice salinity
171       &     local_ice_leader,HsaltTag,MPI_COMM_WORLD,mpierr)       &     local_ice_leader,HsaltTag,MPI_COMM_WORLD,mpierr)
172         ENDIF         ENDIF
173         _END_MASTER( myThid )         _END_MASTER( myThid )
174  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
175    
176  C     Send snow thickness  C     Send snow thickness
177         DO bj=1,nSy         DO bj=1,nSy
# Line 179  C     Send snow thickness Line 184  C     Send snow thickness
184          ENDDO          ENDDO
185         ENDDO         ENDDO
186         CALL GATHER_2D( xfer_array, local, myThid )         CALL GATHER_2D( xfer_array, local, myThid )
187  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
188         CALL PLOT_FIELD_XYRL( HSNOW, 'HSNOW', myIter, myThid )         CALL PLOT_FIELD_XYRL( HSNOW, 'HSNOW', myIter, myThid )
189  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
190    # ifdef CPL_COUPLED
191         _BEGIN_MASTER( myThid )         _BEGIN_MASTER( myThid )
192         IF ( myworldid .EQ. local_ocean_leader ) THEN         IF ( myworldid .EQ. local_ocean_leader ) THEN
193          buffsize = Nx*Ny          buffsize = Nx*Ny
# Line 189  C     Send snow thickness Line 195  C     Send snow thickness
195       &     local_ice_leader,HsnowTag,MPI_COMM_WORLD,mpierr)       &     local_ice_leader,HsnowTag,MPI_COMM_WORLD,mpierr)
196         ENDIF         ENDIF
197         _END_MASTER( myThid )         _END_MASTER( myThid )
198  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
199    
200        ENDIF ! ( myTime .EQ. startTime )        ENDIF ! ( myTime .EQ. startTime )
201    
# Line 197  C     Send ocean model time Line 203  C     Send ocean model time
203        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
204        xfer_scalar = myTime        xfer_scalar = myTime
205        buffsize = 1        buffsize = 1
206  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
207        print*,'MITgcm send OceanTime', xfer_scalar        print*,'MITgcm send OceanTime', xfer_scalar
208  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
209    # ifdef CPL_COUPLED
210        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
211         CALL MPI_SEND(xfer_scalar,buffsize,MPI_DOUBLE_PRECISION,         CALL MPI_SEND(xfer_scalar,buffsize,MPI_DOUBLE_PRECISION,
212       &    local_ice_leader,OceanTimeTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,OceanTimeTag,MPI_COMM_WORLD,mpierr)
213        ENDIF        ENDIF
214  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
215        _END_MASTER( myThid )        _END_MASTER( myThid )
216    
217  C     Send boundary ice area  C     Send boundary ice area
# Line 235  C     Send boundary ice area Line 242  C     Send boundary ice area
242         idx = idx + 1         idx = idx + 1
243         xfer_bc_tracer(idx) = xfer_array(1,j)         xfer_bc_tracer(idx) = xfer_array(1,j)
244        ENDDO        ENDDO
245  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
246        CALL PLOT_FIELD_XYRL( AREA, 'AREA obcs', myIter, myThid )        CALL PLOT_FIELD_XYRL( AREA, 'AREA obcs', myIter, myThid )
247  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
248    # ifdef CPL_COUPLED
249        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
250        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
251         buffsize = 2*(Nx+Ny)-4         buffsize = 2*(Nx+Ny)-4
# Line 247  cdb    print*,'MITgcm is about to send A Line 255  cdb    print*,'MITgcm is about to send A
255  cdb    print*,'MITgcm has sent AreaBcTag',buffsize  cdb    print*,'MITgcm has sent AreaBcTag',buffsize
256        ENDIF        ENDIF
257        _END_MASTER( myThid )        _END_MASTER( myThid )
258  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
259    
260  C     Send boundary ice thickness  C     Send boundary ice thickness
261        DO bj=1,nSy        DO bj=1,nSy
# Line 277  C     Send boundary ice thickness Line 285  C     Send boundary ice thickness
285         idx = idx + 1         idx = idx + 1
286         xfer_bc_tracer(idx) = xfer_array(1,j)         xfer_bc_tracer(idx) = xfer_array(1,j)
287        ENDDO        ENDDO
288  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
289        CALL PLOT_FIELD_XYRL( HEFF, 'HEFF obcs', myIter, myThid )        CALL PLOT_FIELD_XYRL( HEFF, 'HEFF obcs', myIter, myThid )
290  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
291    # ifdef CPL_COUPLED
292        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
293        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
294         buffsize = 2*(Nx+Ny)-4         buffsize = 2*(Nx+Ny)-4
# Line 287  C     Send boundary ice thickness Line 296  C     Send boundary ice thickness
296       &    local_ice_leader,HeffBcTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,HeffBcTag,MPI_COMM_WORLD,mpierr)
297        ENDIF        ENDIF
298        _END_MASTER( myThid )        _END_MASTER( myThid )
299  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
300    
301  C     Send boundary ice salinity  C     Send boundary ice salinity
302        DO bj=1,nSy        DO bj=1,nSy
# Line 317  C     Send boundary ice salinity Line 326  C     Send boundary ice salinity
326         idx = idx + 1         idx = idx + 1
327         xfer_bc_tracer(idx) = xfer_array(1,j)         xfer_bc_tracer(idx) = xfer_array(1,j)
328        ENDDO        ENDDO
329  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
330        CALL PLOT_FIELD_XYRL( HSALT, 'HSALT obcs', myIter, myThid )        CALL PLOT_FIELD_XYRL( HSALT, 'HSALT obcs', myIter, myThid )
331  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
332    # ifdef CPL_COUPLED
333        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
334        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
335         buffsize = 2*(Nx+Ny)-4         buffsize = 2*(Nx+Ny)-4
# Line 327  C     Send boundary ice salinity Line 337  C     Send boundary ice salinity
337       &    local_ice_leader,HsaltBcTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,HsaltBcTag,MPI_COMM_WORLD,mpierr)
338        ENDIF        ENDIF
339        _END_MASTER( myThid )        _END_MASTER( myThid )
340  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
341    
342  C     Send boundary snow thickness  C     Send boundary snow thickness
343        DO bj=1,nSy        DO bj=1,nSy
# Line 357  C     Send boundary snow thickness Line 367  C     Send boundary snow thickness
367         idx = idx + 1         idx = idx + 1
368         xfer_bc_tracer(idx) = xfer_array(1,j)         xfer_bc_tracer(idx) = xfer_array(1,j)
369        ENDDO        ENDDO
370  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
371        CALL PLOT_FIELD_XYRL( HSNOW, 'HSNOW obcs', myIter, myThid )        CALL PLOT_FIELD_XYRL( HSNOW, 'HSNOW obcs', myIter, myThid )
372  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
373    # ifdef CPL_COUPLED
374        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
375        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
376         buffsize = 2*(Nx+Ny)-4         buffsize = 2*(Nx+Ny)-4
# Line 367  C     Send boundary snow thickness Line 378  C     Send boundary snow thickness
378       &    local_ice_leader,HsnowBcTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,HsnowBcTag,MPI_COMM_WORLD,mpierr)
379        ENDIF        ENDIF
380        _END_MASTER( myThid )        _END_MASTER( myThid )
381  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
382    
383  C     Send boundary u ice  C     Send boundary u ice
384        DO bj=1,nSy        DO bj=1,nSy
# Line 397  C     Send boundary u ice Line 408  C     Send boundary u ice
408         idx = idx + 1         idx = idx + 1
409         xfer_bc_veloc(idx) = xfer_array(2,j)         xfer_bc_veloc(idx) = xfer_array(2,j)
410        ENDDO        ENDDO
411  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
412        CALL PLOT_FIELD_XYRL( UICE, 'UICE obcs', myIter, myThid )        CALL PLOT_FIELD_XYRL( UICE, 'UICE obcs', myIter, myThid )
413  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
414    # ifdef CPL_COUPLED
415        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
416        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
417         buffsize = 2*(Nx+Ny)-6         buffsize = 2*(Nx+Ny)-6
# Line 407  C     Send boundary u ice Line 419  C     Send boundary u ice
419       &    local_ice_leader,UiceBcTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,UiceBcTag,MPI_COMM_WORLD,mpierr)
420        ENDIF        ENDIF
421        _END_MASTER( myThid )        _END_MASTER( myThid )
422  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
423    
424  C     Send boundary v ice  C     Send boundary v ice
425        DO bj=1,nSy        DO bj=1,nSy
# Line 437  C     Send boundary v ice Line 449  C     Send boundary v ice
449         idx = idx + 1         idx = idx + 1
450         xfer_bc_veloc(idx) = xfer_array(1,j)         xfer_bc_veloc(idx) = xfer_array(1,j)
451        ENDDO        ENDDO
452  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
453        CALL PLOT_FIELD_XYRL( VICE, 'VICE obcs', myIter, myThid )        CALL PLOT_FIELD_XYRL( VICE, 'VICE obcs', myIter, myThid )
454  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
455    # ifdef CPL_COUPLED
456        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
457        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
458         buffsize = 2*(Nx+Ny)-6         buffsize = 2*(Nx+Ny)-6
# Line 447  C     Send boundary v ice Line 460  C     Send boundary v ice
460       &    local_ice_leader,ViceBcTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,ViceBcTag,MPI_COMM_WORLD,mpierr)
461        ENDIF        ENDIF
462        _END_MASTER( myThid )        _END_MASTER( myThid )
463  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
464    
465  C     Send u-wind velocity  C     Send u-wind velocity
466        DO bj=1,nSy        DO bj=1,nSy
# Line 460  C     Send u-wind velocity Line 473  C     Send u-wind velocity
473         ENDDO         ENDDO
474        ENDDO        ENDDO
475        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
476  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
477        CALL PLOT_FIELD_XYRL( UWIND, 'UWIND', myIter, myThid )        CALL PLOT_FIELD_XYRL( UWIND, 'UWIND', myIter, myThid )
478  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
479    # ifdef CPL_COUPLED
480        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
481        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
482  # ifdef FIX_FOR_EDGE_WINDS  #  ifdef FIX_FOR_EDGE_WINDS
483         DO j=1,Ny         DO j=1,Ny
484          xfer_array(Nx,j)=xfer_array(Nx-1,j)          xfer_array(Nx,j)=xfer_array(Nx-1,j)
485         ENDDO         ENDDO
486  # endif /* FIX_FOR_EDGE_WINDS */  #  endif /* FIX_FOR_EDGE_WINDS */
487         buffsize = Nx*Ny         buffsize = Nx*Ny
488         CALL MPI_SEND(xfer_array,buffsize,MPI_DOUBLE_PRECISION,         CALL MPI_SEND(xfer_array,buffsize,MPI_DOUBLE_PRECISION,
489       &    local_ice_leader,UwindTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,UwindTag,MPI_COMM_WORLD,mpierr)
490        ENDIF        ENDIF
491        _END_MASTER( myThid )        _END_MASTER( myThid )
492  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
493    
494  C     Send v-wind velocity  C     Send v-wind velocity
495        DO bj=1,nSy        DO bj=1,nSy
# Line 488  C     Send v-wind velocity Line 502  C     Send v-wind velocity
502         ENDDO         ENDDO
503        ENDDO        ENDDO
504        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
505  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
506        CALL PLOT_FIELD_XYRL( VWIND, 'VWIND', myIter, myThid )        CALL PLOT_FIELD_XYRL( VWIND, 'VWIND', myIter, myThid )
507  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
508    # ifdef CPL_COUPLED
509        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
510        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
511  # ifdef FIX_FOR_EDGE_WINDS  #  ifdef FIX_FOR_EDGE_WINDS
512         DO i=1,Nx         DO i=1,Nx
513          xfer_array(i,Ny)=xfer_array(i,Ny-1)          xfer_array(i,Ny)=xfer_array(i,Ny-1)
514         ENDDO         ENDDO
515  # endif /* FIX_FOR_EDGE_WINDS */  #  endif /* FIX_FOR_EDGE_WINDS */
516         buffsize = Nx*Ny         buffsize = Nx*Ny
517         CALL MPI_SEND(xfer_array,buffsize,MPI_DOUBLE_PRECISION,         CALL MPI_SEND(xfer_array,buffsize,MPI_DOUBLE_PRECISION,
518       &    local_ice_leader,VwindTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,VwindTag,MPI_COMM_WORLD,mpierr)
519        ENDIF        ENDIF
520        _END_MASTER( myThid )        _END_MASTER( myThid )
521  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
522    
523  C     Send downward longwave radiation  C     Send downward longwave radiation
524        DO bj=1,nSy        DO bj=1,nSy
# Line 516  C     Send downward longwave radiation Line 531  C     Send downward longwave radiation
531         ENDDO         ENDDO
532        ENDDO        ENDDO
533        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
534  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
535        CALL PLOT_FIELD_XYRL( LWDOWN, 'LWDOWN', myIter, myThid )        CALL PLOT_FIELD_XYRL( LWDOWN, 'LWDOWN', myIter, myThid )
536  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
537    # ifdef CPL_COUPLED
538        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
539        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
540         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 526  C     Send downward longwave radiation Line 542  C     Send downward longwave radiation
542       &    local_ice_leader,LwDownTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,LwDownTag,MPI_COMM_WORLD,mpierr)
543        ENDIF        ENDIF
544        _END_MASTER( myThid )        _END_MASTER( myThid )
545  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
546    
547  C     Send downward shortwave radiation  C     Send downward shortwave radiation
548        DO bj=1,nSy        DO bj=1,nSy
# Line 539  C     Send downward shortwave radiation Line 555  C     Send downward shortwave radiation
555         ENDDO         ENDDO
556        ENDDO        ENDDO
557        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
558  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
559        CALL PLOT_FIELD_XYRL( SWDOWN, 'SWDOWN', myIter, myThid )        CALL PLOT_FIELD_XYRL( SWDOWN, 'SWDOWN', myIter, myThid )
560  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
561    # ifdef CPL_COUPLED
562        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
563        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
564         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 549  C     Send downward shortwave radiation Line 566  C     Send downward shortwave radiation
566       &    local_ice_leader,SwDownTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,SwDownTag,MPI_COMM_WORLD,mpierr)
567        ENDIF        ENDIF
568        _END_MASTER( myThid )        _END_MASTER( myThid )
569  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
570    
571  C     Send air temperature  C     Send air temperature
572        DO bj=1,nSy        DO bj=1,nSy
# Line 562  C     Send air temperature Line 579  C     Send air temperature
579         ENDDO         ENDDO
580        ENDDO        ENDDO
581        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
582  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
583        CALL PLOT_FIELD_XYRL( ATEMP, 'ATEMP', myIter, myThid )        CALL PLOT_FIELD_XYRL( ATEMP, 'ATEMP', myIter, myThid )
584  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
585    # ifdef CPL_COUPLED
586        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
587        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
588         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 572  C     Send air temperature Line 590  C     Send air temperature
590       &    local_ice_leader,AtempTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,AtempTag,MPI_COMM_WORLD,mpierr)
591        ENDIF        ENDIF
592        _END_MASTER( myThid )        _END_MASTER( myThid )
593  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
594    
595  C     Send humidity  C     Send humidity
596        DO bj=1,nSy        DO bj=1,nSy
# Line 585  C     Send humidity Line 603  C     Send humidity
603         ENDDO         ENDDO
604        ENDDO        ENDDO
605        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
606  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
607        CALL PLOT_FIELD_XYRL( AQH, 'AQH', myIter, myThid )        CALL PLOT_FIELD_XYRL( AQH, 'AQH', myIter, myThid )
608  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
609    # ifdef CPL_COUPLED
610        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
611        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
612         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 595  C     Send humidity Line 614  C     Send humidity
614       &    local_ice_leader,AqhTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,AqhTag,MPI_COMM_WORLD,mpierr)
615        ENDIF        ENDIF
616        _END_MASTER( myThid )        _END_MASTER( myThid )
617  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
618    
619  C     Send precipitation  C     Send precipitation
620        DO bj=1,nSy        DO bj=1,nSy
# Line 608  C     Send precipitation Line 627  C     Send precipitation
627         ENDDO         ENDDO
628        ENDDO        ENDDO
629        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
630  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
631        CALL PLOT_FIELD_XYRL( PRECIP, 'PRECIP', myIter, myThid )        CALL PLOT_FIELD_XYRL( PRECIP, 'PRECIP', myIter, myThid )
632  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
633    # ifdef CPL_COUPLED
634        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
635        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
636         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 618  C     Send precipitation Line 638  C     Send precipitation
638       &    local_ice_leader,PrecipTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,PrecipTag,MPI_COMM_WORLD,mpierr)
639        ENDIF        ENDIF
640        _END_MASTER( myThid )        _END_MASTER( myThid )
641  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
642    
643  C     Send ocean surface temperature  C     Send ocean surface temperature
644        DO bj=1,nSy        DO bj=1,nSy
# Line 631  C     Send ocean surface temperature Line 651  C     Send ocean surface temperature
651         ENDDO         ENDDO
652        ENDDO        ENDDO
653        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
654  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
655        CALL PLOT_FIELD_XYZRL( THETA, 'SST', 1, myIter, myThid )        CALL PLOT_FIELD_XYZRL( THETA, 'SST', 1, myIter, myThid )
656  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
657    # ifdef CPL_COUPLED
658        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
659        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
660         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 641  C     Send ocean surface temperature Line 662  C     Send ocean surface temperature
662       &    local_ice_leader,SstTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,SstTag,MPI_COMM_WORLD,mpierr)
663        ENDIF        ENDIF
664        _END_MASTER( myThid )        _END_MASTER( myThid )
665  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
666    
667  C     Send ocean surface salinity  C     Send ocean surface salinity
668        DO bj=1,nSy        DO bj=1,nSy
# Line 654  C     Send ocean surface salinity Line 675  C     Send ocean surface salinity
675         ENDDO         ENDDO
676        ENDDO        ENDDO
677        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
678  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
679        CALL PLOT_FIELD_XYZRL( SALT, 'SSS', 1, myIter, myThid )        CALL PLOT_FIELD_XYZRL( SALT, 'SSS', 1, myIter, myThid )
680  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
681    # ifdef CPL_COUPLED
682        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
683        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
684         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 664  C     Send ocean surface salinity Line 686  C     Send ocean surface salinity
686       &    local_ice_leader,SssTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,SssTag,MPI_COMM_WORLD,mpierr)
687        ENDIF        ENDIF
688        _END_MASTER( myThid )        _END_MASTER( myThid )
689  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
690    
691  C     Send surface u current  C     Send surface u current
692        DO bj=1,nSy        DO bj=1,nSy
# Line 677  C     Send surface u current Line 699  C     Send surface u current
699         ENDDO         ENDDO
700        ENDDO        ENDDO
701        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
702  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
703        CALL PLOT_FIELD_XYZRL( uVel, 'uVel(k=1)', 1, myIter, myThid )        CALL PLOT_FIELD_XYZRL( uVel, 'uVel(k=1)', 1, myIter, myThid )
704  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
705    # ifdef CPL_COUPLED
706        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
707        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
708         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 687  C     Send surface u current Line 710  C     Send surface u current
710       &    local_ice_leader,UvelTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,UvelTag,MPI_COMM_WORLD,mpierr)
711        ENDIF        ENDIF
712        _END_MASTER( myThid )        _END_MASTER( myThid )
713  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
714    
715  C     Send surface v current  C     Send surface v current
716        DO bj=1,nSy        DO bj=1,nSy
# Line 700  C     Send surface v current Line 723  C     Send surface v current
723         ENDDO         ENDDO
724        ENDDO        ENDDO
725        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
726  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
727        CALL PLOT_FIELD_XYZRL( vVel, 'vVel(k=1)', 1, myIter, myThid )        CALL PLOT_FIELD_XYZRL( vVel, 'vVel(k=1)', 1, myIter, myThid )
728  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
729    # ifdef CPL_COUPLED
730        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
731        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
732         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 710  C     Send surface v current Line 734  C     Send surface v current
734       &    local_ice_leader,VvelTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,VvelTag,MPI_COMM_WORLD,mpierr)
735        ENDIF        ENDIF
736        _END_MASTER( myThid )        _END_MASTER( myThid )
737  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
738    
739  C     Receive ice model time  C     Receive ice model time
740        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
741  #ifdef CPL_DEBUG  # ifdef CPL_DEBUG
742         print*,'MITgcm receive IceTime'         print*,'MITgcm receive IceTime'
743  #else /* CPL_DEBUG */  # endif /* CPL_DEBUG */
744    # ifdef CPL_COUPLED
745        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
746         buffsize = 1         buffsize = 1
747         CALL MPI_RECV(xfer_scalar,1,MPI_DOUBLE_PRECISION,         CALL MPI_RECV(xfer_scalar,1,MPI_DOUBLE_PRECISION,
748       &    local_ice_leader,IceTimeTag,MPI_COMM_WORLD,mpistatus,mpierr)       &    local_ice_leader,IceTimeTag,MPI_COMM_WORLD,mpistatus,mpierr)
749        ENDIF        ENDIF
750  #endif /* CPL_DEBUG */  # endif /* CPL_COUPLED */
751        _END_MASTER( myThid )        _END_MASTER( myThid )
752    
753  C     Receive ice area                     Nx*Ny       Real*8    C     Receive ice area                     Nx*Ny       Real*8  
754  #ifdef CPL_DEBUG  # ifdef CPL_COUPLED
       DO bj=1,nSy  
        DO bi=1,nSx  
         DO j=1,sNy  
          DO i=1,sNx  
           local(i,j,bi,bj) = AREA(i,j,bi,bj)  
          ENDDO  
         ENDDO  
        ENDDO  
       ENDDO  
 #else /* CPL_DEBUG */  
755        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
756        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
757         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 745  C     Receive ice area Line 760  C     Receive ice area
760        ENDIF        ENDIF
761        _END_MASTER( myThid )        _END_MASTER( myThid )
762        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
 #endif /* CPL_DEBUG */  
763        DO bj=1,nSy        DO bj=1,nSy
764         DO bi=1,nSx         DO bi=1,nSx
765          DO j=1,sNy          DO j=1,sNy
# Line 755  C     Receive ice area Line 769  C     Receive ice area
769          ENDDO          ENDDO
770         ENDDO         ENDDO
771        ENDDO        ENDDO
772  #ifdef CPL_MONITOR  # endif /* CPL_COUPLED */
773    # ifdef CPL_DEBUG
774        CALL PLOT_FIELD_XYRL( AREA, 'ice area', myIter, myThid )        CALL PLOT_FIELD_XYRL( AREA, 'ice area', myIter, myThid )
775  #endif /* CPL_MONITOR */  # endif /* CPL_DEBUG */
776    
777  C     Receive ice thickness  C     Receive ice thickness
778  #ifdef CPL_DEBUG  # ifdef CPL_COUPLED
       DO bj=1,nSy  
        DO bi=1,nSx  
         DO j=1,sNy  
          DO i=1,sNx  
           local(i,j,bi,bj) = HEFF(i,j,bi,bj)  
          ENDDO  
         ENDDO  
        ENDDO  
       ENDDO  
 #else /* CPL_DEBUG */  
779        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
780        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
781         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 779  C     Receive ice thickness Line 784  C     Receive ice thickness
784        ENDIF        ENDIF
785        _END_MASTER( myThid )        _END_MASTER( myThid )
786        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
 #endif /* CPL_DEBUG */  
787        DO bj=1,nSy        DO bj=1,nSy
788         DO bi=1,nSx         DO bi=1,nSx
789          DO j=1,sNy          DO j=1,sNy
# Line 789  C     Receive ice thickness Line 793  C     Receive ice thickness
793          ENDDO          ENDDO
794         ENDDO         ENDDO
795        ENDDO        ENDDO
796  #ifdef CPL_MONITOR  # endif /* CPL_COUPLED */
797    # ifdef CPL_DEBUG
798        CALL PLOT_FIELD_XYRL( HEFF, 'ice thickness', myIter, myThid )        CALL PLOT_FIELD_XYRL( HEFF, 'ice thickness', myIter, myThid )
799  #endif /* CPL_MONITOR */  # endif /* CPL_DEBUG */
800    
801  C     Receive ice salinity  C     Receive ice salinity
802  #ifdef CPL_DEBUG  # ifdef CPL_COUPLED
       DO bj=1,nSy  
        DO bi=1,nSx  
         DO j=1,sNy  
          DO i=1,sNx  
           local(i,j,bi,bj) = HSALT(i,j,bi,bj)  
          ENDDO  
         ENDDO  
        ENDDO  
       ENDDO  
 #else /* CPL_DEBUG */  
803        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
804        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
805         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 813  C     Receive ice salinity Line 808  C     Receive ice salinity
808        ENDIF        ENDIF
809        _END_MASTER( myThid )        _END_MASTER( myThid )
810        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
 #endif /* CPL_DEBUG */  
811        DO bj=1,nSy        DO bj=1,nSy
812         DO bi=1,nSx         DO bi=1,nSx
813          DO j=1,sNy          DO j=1,sNy
# Line 823  C     Receive ice salinity Line 817  C     Receive ice salinity
817          ENDDO          ENDDO
818         ENDDO         ENDDO
819        ENDDO        ENDDO
820  #ifdef CPL_MONITOR  # endif /* CPL_COUPLED */
821    # ifdef CPL_DEBUG
822        CALL PLOT_FIELD_XYRL( HSALT, 'ice salinity', myIter, myThid )        CALL PLOT_FIELD_XYRL( HSALT, 'ice salinity', myIter, myThid )
823  #endif /* CPL_MONITOR */  # endif /* CPL_DEBUG */
824    
825  C     Receive snow thickness  C     Receive snow thickness
826  #ifdef CPL_DEBUG  # ifdef CPL_COUPLED
       DO bj=1,nSy  
        DO bi=1,nSx  
         DO j=1,sNy  
          DO i=1,sNx  
           local(i,j,bi,bj) = HSNOW(i,j,bi,bj)  
          ENDDO  
         ENDDO  
        ENDDO  
       ENDDO  
 #else /* CPL_DEBUG */  
827        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
828        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
829         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 847  C     Receive snow thickness Line 832  C     Receive snow thickness
832        ENDIF        ENDIF
833        _END_MASTER( myThid )        _END_MASTER( myThid )
834        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
 #endif /* CPL_DEBUG */  
835        DO bj=1,nSy        DO bj=1,nSy
836         DO bi=1,nSx         DO bi=1,nSx
837          DO j=1,sNy          DO j=1,sNy
# Line 857  C     Receive snow thickness Line 841  C     Receive snow thickness
841          ENDDO          ENDDO
842         ENDDO         ENDDO
843        ENDDO        ENDDO
844  #ifdef CPL_MONITOR  # endif /* CPL_COUPLED */
845    # ifdef CPL_DEBUG
846        CALL PLOT_FIELD_XYRL( HSNOW, 'snow thickness', myIter, myThid )        CALL PLOT_FIELD_XYRL( HSNOW, 'snow thickness', myIter, myThid )
847  #endif /* CPL_MONITOR */  # endif /* CPL_DEBUG */
848    
849  C     Receive u surface stress  C     Receive u surface stress
850  #ifdef CPL_DEBUG  # ifdef CPL_COUPLED
       DO bj=1,nSy  
        DO bi=1,nSx  
         DO j=1,sNy  
          DO i=1,sNx  
           local(i,j,bi,bj) = fu(i,j,bi,bj)  
          ENDDO  
         ENDDO  
        ENDDO  
       ENDDO  
 #else /* CPL_DEBUG */  
851        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
852        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
853         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 891  C     Receive u surface stress Line 866  C     Receive u surface stress
866          ENDDO          ENDDO
867         ENDDO         ENDDO
868        ENDDO        ENDDO
869  #endif /* CPL_DEBUG */  #  ifdef CPL_DEBUG
870  #ifdef CPL_MONITOR        CALL PLOT_FIELD_XYRL( local, 'mpm u stress', myIter, myThid )
871        CALL PLOT_FIELD_XYRL( local, 'u stress', myIter, myThid )  #  endif /* CPL_DEBUG */
872  #endif /* CPL_MONITOR */  # endif /* CPL_COUPLED */
873    # ifdef CPL_DEBUG
874          CALL PLOT_FIELD_XYRL( fu, 'u stress', myIter, myThid )
875    # endif /* CPL_DEBUG */
876    
877  C     Receive v surface stress  C     Receive v surface stress
878  #ifdef CPL_DEBUG  # ifdef CPL_COUPLED
       DO bj=1,nSy  
        DO bi=1,nSx  
         DO j=1,sNy  
          DO i=1,sNx  
           local(i,j,bi,bj) = fv(i,j,bi,bj)  
          ENDDO  
         ENDDO  
        ENDDO  
       ENDDO  
 #else /* CPL_DEBUG */  
879        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
880        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
881         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 926  C     Receive v surface stress Line 894  C     Receive v surface stress
894          ENDDO          ENDDO
895         ENDDO         ENDDO
896        ENDDO        ENDDO
897  #endif /* CPL_DEBUG */  #  ifdef CPL_DEBUG
898  #ifdef CPL_MONITOR        CALL PLOT_FIELD_XYRL( local, 'mpm v stress', myIter, myThid )
899        CALL PLOT_FIELD_XYRL( local, 'v stress', myIter, myThid )  #  endif /* CPL_DEBUG */
900  #endif /* CPL_MONITOR */  # endif /* CPL_COUPLED */
901    # ifdef CPL_DEBUG
902          CALL PLOT_FIELD_XYRL( fv, 'v stress', myIter, myThid )
903    # endif /* CPL_DEBUG */
904    
905  C     Receive residual shortwave  C     Receive residual shortwave
906  #ifdef CPL_DEBUG  # ifdef CPL_COUPLED
       DO bj=1,nSy  
        DO bi=1,nSx  
         DO j=1,sNy  
          DO i=1,sNx  
           local(i,j,bi,bj) = Qsw(i,j,bi,bj)  
          ENDDO  
         ENDDO  
        ENDDO  
       ENDDO  
 #else /* CPL_DEBUG */  
907        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
908        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
909         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 961  C     Receive residual shortwave Line 922  C     Receive residual shortwave
922          ENDDO          ENDDO
923         ENDDO         ENDDO
924        ENDDO        ENDDO
925  #endif /* CPL_DEBUG */  #  ifdef CPL_DEBUG
926  #ifdef CPL_MONITOR        CALL PLOT_FIELD_XYRL( local, 'mpm shortwave', myIter, myThid )
927        CALL PLOT_FIELD_XYRL( local, 'shortwave', myIter, myThid )  #  endif /* CPL_DEBUG */
928  #endif /* CPL_MONITOR */  # endif /* CPL_COUPLED */
929    # ifdef CPL_DEBUG
930          CALL PLOT_FIELD_XYRL( Qsw, 'shortwave', myIter, myThid )
931    # endif /* CPL_DEBUG */
932    
933  C     Receive heat flux  C     Receive heat flux
934  #ifdef CPL_DEBUG  # ifdef CPL_COUPLED
       DO bj=1,nSy  
        DO bi=1,nSx  
         DO j=1,sNy  
          DO i=1,sNx  
           local(i,j,bi,bj) = Qnet(i,j,bi,bj)  
          ENDDO  
         ENDDO  
        ENDDO  
       ENDDO  
 #else /* CPL_DEBUG */  
935        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
936        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
937         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 997  C     Receive heat flux Line 951  C     Receive heat flux
951          ENDDO          ENDDO
952         ENDDO         ENDDO
953        ENDDO        ENDDO
954  #endif /* CPL_DEBUG */  #  ifdef CPL_DEBUG
955  #ifdef CPL_MONITOR        CALL PLOT_FIELD_XYRL( local, 'mpm heat flux', myIter, myThid )
956        CALL PLOT_FIELD_XYRL( local, 'heat flux', myIter, myThid )  #  endif /* CPL_DEBUG */
957  #endif /* CPL_MONITOR */  # endif /* CPL_COUPLED */
958    # ifdef CPL_DEBUG
959          CALL PLOT_FIELD_XYRL( Qnet, 'heat flux', myIter, myThid )
960    # endif /* CPL_DEBUG */
961    
962  C     Receive freshwater flux  C     Receive freshwater flux
963  #ifdef CPL_DEBUG  # ifdef CPL_COUPLED
       DO bj=1,nSy  
        DO bi=1,nSx  
         DO j=1,sNy  
          DO i=1,sNx  
           local(i,j,bi,bj) = EmPmR(i,j,bi,bj)  
          ENDDO  
         ENDDO  
        ENDDO  
       ENDDO  
 #else /* CPL_DEBUG */  
964        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
965        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
966         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 1032  C     Receive freshwater flux Line 979  C     Receive freshwater flux
979          ENDDO          ENDDO
980         ENDDO         ENDDO
981        ENDDO        ENDDO
982  #endif /* CPL_DEBUG */  #  ifdef CPL_DEBUG
983  #ifdef CPL_MONITOR        CALL PLOT_FIELD_XYRL( local, 'mpm freshwater', myIter, myThid )
984        CALL PLOT_FIELD_XYRL( local, 'freshwater', myIter, myThid )  #  endif /* CPL_DEBUG */
985  #endif /* CPL_MONITOR */  # endif /* CPL_COUPLED */
986    # ifdef CPL_DEBUG
987          CALL PLOT_FIELD_XYRL( EmPmR, 'freshwater', myIter, myThid )
988    # endif /* CPL_DEBUG */
989    
990  C     Receive salt flux  C     Receive salt flux
991  #ifdef CPL_DEBUG  # ifdef CPL_COUPLED
       DO bj=1,nSy  
        DO bi=1,nSx  
         DO j=1,sNy  
          DO i=1,sNx  
           local(i,j,bi,bj) = fu(i,j,bi,bj)  
          ENDDO  
         ENDDO  
        ENDDO  
       ENDDO  
 #else /* CPL_DEBUG */  
992        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
993        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
994         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 1066  C     Receive salt flux Line 1006  C     Receive salt flux
1006          ENDDO          ENDDO
1007         ENDDO         ENDDO
1008        ENDDO        ENDDO
1009  #endif /* CPL_DEBUG */  #  ifdef CPL_DEBUG
1010  #ifdef CPL_MONITOR        CALL PLOT_FIELD_XYRL( local, 'mpm salt flux', myIter, myThid )
1011        CALL PLOT_FIELD_XYRL( local, 'salt flux', myIter, myThid )  #  endif /* CPL_DEBUG */
1012  #endif /* CPL_MONITOR */  # endif /* CPL_COUPLED */
1013    # ifdef CPL_DEBUG
1014          CALL PLOT_FIELD_XYRL( saltFlux, 'salt flux', myIter, myThid )
1015    # endif /* CPL_DEBUG */
1016    
1017  #endif /* ALLOW_CPL_MPMICE */  #endif /* ALLOW_CPL_MPMICE */
1018    

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

  ViewVC Help
Powered by ViewVC 1.1.22