/[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.11 by dimitri, Thu Feb 9 20:49:24 2012 UTC revision 1.12 by dimitri, Thu Mar 8 21:52:27 2012 UTC
# Line 1  Line 1 
1  #define CPL_DEBUG  #define CPL_MONITOR
2  #define FIX_FOR_EDGE_WINDS  #define FIX_FOR_EDGE_WINDS
3  #include "PACKAGES_CONFIG.h"  #include "PACKAGES_CONFIG.h"
4  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
# 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
54        integer mpistatus(MPI_STATUS_SIZE), mpierr        integer mpistatus(MPI_STATUS_SIZE), mpierr
55    #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 66  CEOP Line 68  CEOP
68        _RS  Qsw_tmp      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RS  Qsw_tmp      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
69        _RS  EmPmR_tmp    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RS  EmPmR_tmp    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
70    
 #ifdef CPL_DEBUG  
       _RL ScatArray(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)  
       DO bj=1,nSy  
        DO bi=1,nSx  
         DO j=1-OLy,sNy+OLy  
          DO i=1-OLx,sNx+OLx  
           ScatArray(i,j,bi,bj) = 0.0 _d 0  
          ENDDO  
         ENDDO  
        ENDDO  
       ENDDO  
 #endif  
   
71        IF( myTime .EQ. startTime ) THEN        IF( myTime .EQ. startTime ) THEN
72    
73  C     Send deltatimestep  C     Send deltatimestep
74         _BEGIN_MASTER( myThid )         _BEGIN_MASTER( myThid )
75           xfer_scalar = deltat
76           buffsize = 1
77    #ifdef CPL_DEBUG
78           print*,'MITgcm send TimeInterval', xfer_scalar
79    #else /* CPL_DEBUG */
80         IF ( myworldid .EQ. local_ocean_leader ) THEN         IF ( myworldid .EQ. local_ocean_leader ) THEN
         xfer_scalar = deltat  
         buffsize = 1  
81          CALL MPI_SEND(xfer_scalar,buffsize,MPI_DOUBLE_PRECISION,          CALL MPI_SEND(xfer_scalar,buffsize,MPI_DOUBLE_PRECISION,
82       &     local_ice_leader,TimeIntervalTag,MPI_COMM_WORLD,mpierr)       &     local_ice_leader,TimeIntervalTag,MPI_COMM_WORLD,mpierr)
 #ifdef CPL_DEBUG  
         print*,'MITgcm send TimeInterval', xfer_scalar  
 #endif  
83         ENDIF         ENDIF
84    #endif /* CPL_DEBUG */
85         _END_MASTER( myThid )         _END_MASTER( myThid )
86    
87  C     Send grid dimensions (Nx,Ny)  C     Send grid dimensions (Nx,Ny)
88         _BEGIN_MASTER( myThid )         _BEGIN_MASTER( myThid )
89           xfer_gridsize(1)=Nx
90           xfer_gridsize(2)=Ny
91           buffsize = 2
92    #ifdef CPL_DEBUG
93           print*,'MITgcm send OceanGridsize', xfer_gridsize
94    #else /* CPL_DEBUG */
95         IF ( myworldid .EQ. local_ocean_leader ) THEN         IF ( myworldid .EQ. local_ocean_leader ) THEN
         xfer_gridsize(1)=Nx  
         xfer_gridsize(2)=Ny  
         buffsize = 2  
96          CALL MPI_SEND(xfer_gridsize,buffsize,MPI_INTEGER,          CALL MPI_SEND(xfer_gridsize,buffsize,MPI_INTEGER,
97       &     local_ice_leader,OceanGridsizeTag,MPI_COMM_WORLD,mpierr)       &     local_ice_leader,OceanGridsizeTag,MPI_COMM_WORLD,mpierr)
 #ifdef CPL_DEBUG  
         print*,'MITgcm send OceanGridsize', xfer_gridsize  
 #endif  
98         ENDIF         ENDIF
99    #endif /* CPL_DEBUG */
100         _END_MASTER( myThid )         _END_MASTER( myThid )
101    
102  C     Send ice area  C     Send ice area
# Line 119  C     Send ice area Line 110  C     Send ice area
110          ENDDO          ENDDO
111         ENDDO         ENDDO
112         CALL GATHER_2D( xfer_array, local, myThid )         CALL GATHER_2D( xfer_array, local, myThid )
113    #ifdef CPL_DEBUG
114           CALL PLOT_FIELD_XYRL( AREA, 'AREA', myIter, myThid )
115    #else /* CPL_DEBUG */
116         _BEGIN_MASTER( myThid )         _BEGIN_MASTER( myThid )
117         IF ( myworldid .EQ. local_ocean_leader ) THEN         IF ( myworldid .EQ. local_ocean_leader ) THEN
118          buffsize = Nx*Ny          buffsize = Nx*Ny
# Line 126  C     Send ice area Line 120  C     Send ice area
120       &     local_ice_leader,AreaTag,MPI_COMM_WORLD,mpierr)       &     local_ice_leader,AreaTag,MPI_COMM_WORLD,mpierr)
121         ENDIF         ENDIF
122         _END_MASTER( myThid )         _END_MASTER( myThid )
123  #ifdef CPL_DEBUG  #endif /* CPL_DEBUG */
        CALL PLOT_FIELD_XYRL( AREA, 'AREA', myIter, myThid )  
 #endif  
124    
125  C     Send ice thickness  C     Send ice thickness
126         DO bj=1,nSy         DO bj=1,nSy
# Line 141  C     Send ice thickness Line 133  C     Send ice thickness
133          ENDDO          ENDDO
134         ENDDO         ENDDO
135         CALL GATHER_2D( xfer_array, local, myThid )         CALL GATHER_2D( xfer_array, local, myThid )
136    #ifdef CPL_DEBUG
137           CALL PLOT_FIELD_XYRL( HEFF, 'HEFF', myIter, myThid )
138    #else /* CPL_DEBUG */
139         _BEGIN_MASTER( myThid )         _BEGIN_MASTER( myThid )
140         IF ( myworldid .EQ. local_ocean_leader ) THEN         IF ( myworldid .EQ. local_ocean_leader ) THEN
141          buffsize = Nx*Ny          buffsize = Nx*Ny
# Line 148  C     Send ice thickness Line 143  C     Send ice thickness
143       &     local_ice_leader,HeffTag,MPI_COMM_WORLD,mpierr)       &     local_ice_leader,HeffTag,MPI_COMM_WORLD,mpierr)
144         ENDIF         ENDIF
145         _END_MASTER( myThid )         _END_MASTER( myThid )
146  #ifdef CPL_DEBUG  #endif /* CPL_DEBUG */
        CALL PLOT_FIELD_XYRL( HEFF, 'HEFF', myIter, myThid )  
 #endif  
147    
148  C     Send ice salinity  C     Send ice salinity
149         DO bj=1,nSy         DO bj=1,nSy
# Line 163  C     Send ice salinity Line 156  C     Send ice salinity
156          ENDDO          ENDDO
157         ENDDO         ENDDO
158         CALL GATHER_2D( xfer_array, local, myThid )         CALL GATHER_2D( xfer_array, local, myThid )
159    #ifdef CPL_DEBUG
160           CALL PLOT_FIELD_XYRL( HSALT, 'HSALT', myIter, myThid )
161    #else /* CPL_DEBUG */
162         _BEGIN_MASTER( myThid )         _BEGIN_MASTER( myThid )
163         IF ( myworldid .EQ. local_ocean_leader ) THEN         IF ( myworldid .EQ. local_ocean_leader ) THEN
164          buffsize = Nx*Ny          buffsize = Nx*Ny
# Line 170  C     Send ice salinity Line 166  C     Send ice salinity
166       &     local_ice_leader,HsaltTag,MPI_COMM_WORLD,mpierr)       &     local_ice_leader,HsaltTag,MPI_COMM_WORLD,mpierr)
167         ENDIF         ENDIF
168         _END_MASTER( myThid )         _END_MASTER( myThid )
169  #ifdef CPL_DEBUG  #endif /* CPL_DEBUG */
         CALL PLOT_FIELD_XYRL( HSALT, 'HSALT', myIter, myThid )  
 #endif  
170    
171  C     Send snow thickness  C     Send snow thickness
172         DO bj=1,nSy         DO bj=1,nSy
# Line 185  C     Send snow thickness Line 179  C     Send snow thickness
179          ENDDO          ENDDO
180         ENDDO         ENDDO
181         CALL GATHER_2D( xfer_array, local, myThid )         CALL GATHER_2D( xfer_array, local, myThid )
182    #ifdef CPL_DEBUG
183           CALL PLOT_FIELD_XYRL( HSNOW, 'HSNOW', myIter, myThid )
184    #else /* CPL_DEBUG */
185         _BEGIN_MASTER( myThid )         _BEGIN_MASTER( myThid )
186         IF ( myworldid .EQ. local_ocean_leader ) THEN         IF ( myworldid .EQ. local_ocean_leader ) THEN
187          buffsize = Nx*Ny          buffsize = Nx*Ny
# Line 192  C     Send snow thickness Line 189  C     Send snow thickness
189       &     local_ice_leader,HsnowTag,MPI_COMM_WORLD,mpierr)       &     local_ice_leader,HsnowTag,MPI_COMM_WORLD,mpierr)
190         ENDIF         ENDIF
191         _END_MASTER( myThid )         _END_MASTER( myThid )
192  #ifdef CPL_DEBUG  #endif /* CPL_DEBUG */
         CALL PLOT_FIELD_XYRL( HSNOW, 'HSNOW', myIter, myThid )  
 #endif  
193    
194        ENDIF ! ( myTime .EQ. startTime )        ENDIF ! ( myTime .EQ. startTime )
195    
196  C     Send ocean model time  C     Send ocean model time
197        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
198          xfer_scalar = myTime
199          buffsize = 1
200    #ifdef CPL_DEBUG
201          print*,'MITgcm send OceanTime', xfer_scalar
202    #else /* CPL_DEBUG */
203        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
        xfer_scalar = myTime  
        buffsize = 1  
204         CALL MPI_SEND(xfer_scalar,buffsize,MPI_DOUBLE_PRECISION,         CALL MPI_SEND(xfer_scalar,buffsize,MPI_DOUBLE_PRECISION,
205       &    local_ice_leader,OceanTimeTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,OceanTimeTag,MPI_COMM_WORLD,mpierr)
 #ifdef CPL_DEBUG  
        print*,'MITgcm send OceanTime', xfer_scalar  
 #endif  
206        ENDIF        ENDIF
207    #endif /* CPL_DEBUG */
208        _END_MASTER( myThid )        _END_MASTER( myThid )
209    
210  C     Send boundary ice area  C     Send boundary ice area
# Line 239  C     Send boundary ice area Line 235  C     Send boundary ice area
235         idx = idx + 1         idx = idx + 1
236         xfer_bc_tracer(idx) = xfer_array(1,j)         xfer_bc_tracer(idx) = xfer_array(1,j)
237        ENDDO        ENDDO
238    #ifdef CPL_DEBUG
239          CALL PLOT_FIELD_XYRL( AREA, 'AREA obcs', myIter, myThid )
240    #else /* CPL_DEBUG */
241        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
242        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
243         buffsize = 2*(Nx+Ny)-4         buffsize = 2*(Nx+Ny)-4
244         print*,'MITgcm is about to send AreaBcTag',buffsize  cdb    print*,'MITgcm is about to send AreaBcTag',buffsize
245         CALL MPI_SEND(xfer_bc_tracer,buffsize,MPI_DOUBLE_PRECISION,         CALL MPI_SEND(xfer_bc_tracer,buffsize,MPI_DOUBLE_PRECISION,
246       &    local_ice_leader,AreaBcTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,AreaBcTag,MPI_COMM_WORLD,mpierr)
247         print*,'MITgcm has sent AreaBcTag',buffsize  cdb    print*,'MITgcm has sent AreaBcTag',buffsize
248        ENDIF        ENDIF
249        _END_MASTER( myThid )        _END_MASTER( myThid )
250    #endif /* CPL_DEBUG */
251    
252  C     Send boundary ice thickness  C     Send boundary ice thickness
253        DO bj=1,nSy        DO bj=1,nSy
# Line 277  C     Send boundary ice thickness Line 277  C     Send boundary ice thickness
277         idx = idx + 1         idx = idx + 1
278         xfer_bc_tracer(idx) = xfer_array(1,j)         xfer_bc_tracer(idx) = xfer_array(1,j)
279        ENDDO        ENDDO
280    #ifdef CPL_DEBUG
281          CALL PLOT_FIELD_XYRL( HEFF, 'HEFF obcs', myIter, myThid )
282    #else /* CPL_DEBUG */
283        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
284        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
285         buffsize = 2*(Nx+Ny)-4         buffsize = 2*(Nx+Ny)-4
# Line 284  C     Send boundary ice thickness Line 287  C     Send boundary ice thickness
287       &    local_ice_leader,HeffBcTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,HeffBcTag,MPI_COMM_WORLD,mpierr)
288        ENDIF        ENDIF
289        _END_MASTER( myThid )        _END_MASTER( myThid )
290    #endif /* CPL_DEBUG */
291    
292  C     Send boundary ice salinity  C     Send boundary ice salinity
293        DO bj=1,nSy        DO bj=1,nSy
# Line 313  C     Send boundary ice salinity Line 317  C     Send boundary ice salinity
317         idx = idx + 1         idx = idx + 1
318         xfer_bc_tracer(idx) = xfer_array(1,j)         xfer_bc_tracer(idx) = xfer_array(1,j)
319        ENDDO        ENDDO
320    #ifdef CPL_DEBUG
321          CALL PLOT_FIELD_XYRL( HSALT, 'HSALT obcs', myIter, myThid )
322    #else /* CPL_DEBUG */
323        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
324        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
325         buffsize = 2*(Nx+Ny)-4         buffsize = 2*(Nx+Ny)-4
# Line 320  C     Send boundary ice salinity Line 327  C     Send boundary ice salinity
327       &    local_ice_leader,HsaltBcTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,HsaltBcTag,MPI_COMM_WORLD,mpierr)
328        ENDIF        ENDIF
329        _END_MASTER( myThid )        _END_MASTER( myThid )
330    #endif /* CPL_DEBUG */
331    
332  C     Send boundary snow thickness  C     Send boundary snow thickness
333        DO bj=1,nSy        DO bj=1,nSy
# Line 349  C     Send boundary snow thickness Line 357  C     Send boundary snow thickness
357         idx = idx + 1         idx = idx + 1
358         xfer_bc_tracer(idx) = xfer_array(1,j)         xfer_bc_tracer(idx) = xfer_array(1,j)
359        ENDDO        ENDDO
360    #ifdef CPL_DEBUG
361          CALL PLOT_FIELD_XYRL( HSNOW, 'HSNOW obcs', myIter, myThid )
362    #else /* CPL_DEBUG */
363        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
364        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
365         buffsize = 2*(Nx+Ny)-4         buffsize = 2*(Nx+Ny)-4
# Line 356  C     Send boundary snow thickness Line 367  C     Send boundary snow thickness
367       &    local_ice_leader,HsnowBcTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,HsnowBcTag,MPI_COMM_WORLD,mpierr)
368        ENDIF        ENDIF
369        _END_MASTER( myThid )        _END_MASTER( myThid )
370    #endif /* CPL_DEBUG */
371    
372  C     Send boundary u ice  C     Send boundary u ice
373        DO bj=1,nSy        DO bj=1,nSy
# Line 385  C     Send boundary u ice Line 397  C     Send boundary u ice
397         idx = idx + 1         idx = idx + 1
398         xfer_bc_veloc(idx) = xfer_array(2,j)         xfer_bc_veloc(idx) = xfer_array(2,j)
399        ENDDO        ENDDO
400    #ifdef CPL_DEBUG
401          CALL PLOT_FIELD_XYRL( UICE, 'UICE obcs', myIter, myThid )
402    #else /* CPL_DEBUG */
403        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
404        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
405         buffsize = 2*(Nx+Ny)-6         buffsize = 2*(Nx+Ny)-6
# Line 392  C     Send boundary u ice Line 407  C     Send boundary u ice
407       &    local_ice_leader,UiceBcTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,UiceBcTag,MPI_COMM_WORLD,mpierr)
408        ENDIF        ENDIF
409        _END_MASTER( myThid )        _END_MASTER( myThid )
410    #endif /* CPL_DEBUG */
411    
412  C     Send boundary v ice  C     Send boundary v ice
413        DO bj=1,nSy        DO bj=1,nSy
# Line 421  C     Send boundary v ice Line 437  C     Send boundary v ice
437         idx = idx + 1         idx = idx + 1
438         xfer_bc_veloc(idx) = xfer_array(1,j)         xfer_bc_veloc(idx) = xfer_array(1,j)
439        ENDDO        ENDDO
440    #ifdef CPL_DEBUG
441          CALL PLOT_FIELD_XYRL( VICE, 'VICE obcs', myIter, myThid )
442    #else /* CPL_DEBUG */
443        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
444        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
445         buffsize = 2*(Nx+Ny)-6         buffsize = 2*(Nx+Ny)-6
# Line 428  C     Send boundary v ice Line 447  C     Send boundary v ice
447       &    local_ice_leader,ViceBcTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,ViceBcTag,MPI_COMM_WORLD,mpierr)
448        ENDIF        ENDIF
449        _END_MASTER( myThid )        _END_MASTER( myThid )
450    #endif /* CPL_DEBUG */
451    
452  C     Send u-wind velocity  C     Send u-wind velocity
453        DO bj=1,nSy        DO bj=1,nSy
# Line 440  C     Send u-wind velocity Line 460  C     Send u-wind velocity
460         ENDDO         ENDDO
461        ENDDO        ENDDO
462        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
463    #ifdef CPL_DEBUG
464          CALL PLOT_FIELD_XYRL( UWIND, 'UWIND', myIter, myThid )
465    #else /* CPL_DEBUG */
466        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
467        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
468  #ifdef FIX_FOR_EDGE_WINDS  # ifdef FIX_FOR_EDGE_WINDS
469         DO j=1,Ny         DO j=1,Ny
470          xfer_array(Nx,j)=xfer_array(Nx-1,j)          xfer_array(Nx,j)=xfer_array(Nx-1,j)
471         ENDDO         ENDDO
472  #endif  # endif /* FIX_FOR_EDGE_WINDS */
473         buffsize = Nx*Ny         buffsize = Nx*Ny
474         CALL MPI_SEND(xfer_array,buffsize,MPI_DOUBLE_PRECISION,         CALL MPI_SEND(xfer_array,buffsize,MPI_DOUBLE_PRECISION,
475       &    local_ice_leader,UwindTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,UwindTag,MPI_COMM_WORLD,mpierr)
476        ENDIF        ENDIF
477        _END_MASTER( myThid )        _END_MASTER( myThid )
478    #endif /* CPL_DEBUG */
479    
480  C     Send v-wind velocity  C     Send v-wind velocity
481        DO bj=1,nSy        DO bj=1,nSy
# Line 464  C     Send v-wind velocity Line 488  C     Send v-wind velocity
488         ENDDO         ENDDO
489        ENDDO        ENDDO
490        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
491    #ifdef CPL_DEBUG
492          CALL PLOT_FIELD_XYRL( VWIND, 'VWIND', myIter, myThid )
493    #else /* CPL_DEBUG */
494        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
495        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
496  #ifdef FIX_FOR_EDGE_WINDS  # ifdef FIX_FOR_EDGE_WINDS
497         DO i=1,Nx         DO i=1,Nx
498          xfer_array(i,Ny)=xfer_array(i,Ny-1)          xfer_array(i,Ny)=xfer_array(i,Ny-1)
499         ENDDO         ENDDO
500  #endif  # endif /* FIX_FOR_EDGE_WINDS */
501         buffsize = Nx*Ny         buffsize = Nx*Ny
502         CALL MPI_SEND(xfer_array,buffsize,MPI_DOUBLE_PRECISION,         CALL MPI_SEND(xfer_array,buffsize,MPI_DOUBLE_PRECISION,
503       &    local_ice_leader,VwindTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,VwindTag,MPI_COMM_WORLD,mpierr)
504        ENDIF        ENDIF
505        _END_MASTER( myThid )        _END_MASTER( myThid )
506    #endif /* CPL_DEBUG */
507    
508  C     Send downward longwave radiation  C     Send downward longwave radiation
509        DO bj=1,nSy        DO bj=1,nSy
# Line 488  C     Send downward longwave radiation Line 516  C     Send downward longwave radiation
516         ENDDO         ENDDO
517        ENDDO        ENDDO
518        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
519    #ifdef CPL_DEBUG
520          CALL PLOT_FIELD_XYRL( LWDOWN, 'LWDOWN', myIter, myThid )
521    #else /* CPL_DEBUG */
522        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
523        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
524         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 495  C     Send downward longwave radiation Line 526  C     Send downward longwave radiation
526       &    local_ice_leader,LwDownTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,LwDownTag,MPI_COMM_WORLD,mpierr)
527        ENDIF        ENDIF
528        _END_MASTER( myThid )        _END_MASTER( myThid )
529    #endif /* CPL_DEBUG */
530    
531  C     Send downward shortwave radiation  C     Send downward shortwave radiation
532        DO bj=1,nSy        DO bj=1,nSy
# Line 507  C     Send downward shortwave radiation Line 539  C     Send downward shortwave radiation
539         ENDDO         ENDDO
540        ENDDO        ENDDO
541        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
542    #ifdef CPL_DEBUG
543          CALL PLOT_FIELD_XYRL( SWDOWN, 'SWDOWN', myIter, myThid )
544    #else /* CPL_DEBUG */
545        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
546        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
547         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 514  C     Send downward shortwave radiation Line 549  C     Send downward shortwave radiation
549       &    local_ice_leader,SwDownTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,SwDownTag,MPI_COMM_WORLD,mpierr)
550        ENDIF        ENDIF
551        _END_MASTER( myThid )        _END_MASTER( myThid )
552    #endif /* CPL_DEBUG */
553    
554  C     Send air temperature  C     Send air temperature
555        DO bj=1,nSy        DO bj=1,nSy
# Line 526  C     Send air temperature Line 562  C     Send air temperature
562         ENDDO         ENDDO
563        ENDDO        ENDDO
564        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
565    #ifdef CPL_DEBUG
566          CALL PLOT_FIELD_XYRL( ATEMP, 'ATEMP', myIter, myThid )
567    #else /* CPL_DEBUG */
568        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
569        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
570         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 533  C     Send air temperature Line 572  C     Send air temperature
572       &    local_ice_leader,AtempTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,AtempTag,MPI_COMM_WORLD,mpierr)
573        ENDIF        ENDIF
574        _END_MASTER( myThid )        _END_MASTER( myThid )
575    #endif /* CPL_DEBUG */
576    
577  C     Send humidity  C     Send humidity
578        DO bj=1,nSy        DO bj=1,nSy
# Line 545  C     Send humidity Line 585  C     Send humidity
585         ENDDO         ENDDO
586        ENDDO        ENDDO
587        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
588    #ifdef CPL_DEBUG
589          CALL PLOT_FIELD_XYRL( AQH, 'AQH', myIter, myThid )
590    #else /* CPL_DEBUG */
591        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
592        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
593         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 552  C     Send humidity Line 595  C     Send humidity
595       &    local_ice_leader,AqhTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,AqhTag,MPI_COMM_WORLD,mpierr)
596        ENDIF        ENDIF
597        _END_MASTER( myThid )        _END_MASTER( myThid )
598    #endif /* CPL_DEBUG */
599    
600  C     Send precipitation  C     Send precipitation
601        DO bj=1,nSy        DO bj=1,nSy
# Line 564  C     Send precipitation Line 608  C     Send precipitation
608         ENDDO         ENDDO
609        ENDDO        ENDDO
610        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
611    #ifdef CPL_DEBUG
612          CALL PLOT_FIELD_XYRL( PRECIP, 'PRECIP', myIter, myThid )
613    #else /* CPL_DEBUG */
614        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
615        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
616         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 571  C     Send precipitation Line 618  C     Send precipitation
618       &    local_ice_leader,PrecipTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,PrecipTag,MPI_COMM_WORLD,mpierr)
619        ENDIF        ENDIF
620        _END_MASTER( myThid )        _END_MASTER( myThid )
621    #endif /* CPL_DEBUG */
622    
623  C     Send ocean surface temperature  C     Send ocean surface temperature
624        DO bj=1,nSy        DO bj=1,nSy
# Line 583  C     Send ocean surface temperature Line 631  C     Send ocean surface temperature
631         ENDDO         ENDDO
632        ENDDO        ENDDO
633        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
634    #ifdef CPL_DEBUG
635          CALL PLOT_FIELD_XYZRL( THETA, 'SST', 1, myIter, myThid )
636    #else /* CPL_DEBUG */
637        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
638        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
639         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 590  C     Send ocean surface temperature Line 641  C     Send ocean surface temperature
641       &    local_ice_leader,SstTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,SstTag,MPI_COMM_WORLD,mpierr)
642        ENDIF        ENDIF
643        _END_MASTER( myThid )        _END_MASTER( myThid )
644    #endif /* CPL_DEBUG */
645    
646  C     Send ocean surface salinity  C     Send ocean surface salinity
647        DO bj=1,nSy        DO bj=1,nSy
# Line 602  C     Send ocean surface salinity Line 654  C     Send ocean surface salinity
654         ENDDO         ENDDO
655        ENDDO        ENDDO
656        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
657    #ifdef CPL_DEBUG
658          CALL PLOT_FIELD_XYZRL( SALT, 'SSS', 1, myIter, myThid )
659    #else /* CPL_DEBUG */
660        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
661        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
662         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 609  C     Send ocean surface salinity Line 664  C     Send ocean surface salinity
664       &    local_ice_leader,SssTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,SssTag,MPI_COMM_WORLD,mpierr)
665        ENDIF        ENDIF
666        _END_MASTER( myThid )        _END_MASTER( myThid )
667    #endif /* CPL_DEBUG */
668    
669  C     Send surface u current  C     Send surface u current
670        DO bj=1,nSy        DO bj=1,nSy
# Line 621  C     Send surface u current Line 677  C     Send surface u current
677         ENDDO         ENDDO
678        ENDDO        ENDDO
679        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
680    #ifdef CPL_DEBUG
681          CALL PLOT_FIELD_XYZRL( uVel, 'uVel(k=1)', 1, myIter, myThid )
682    #else /* CPL_DEBUG */
683        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
684        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
685         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 628  C     Send surface u current Line 687  C     Send surface u current
687       &    local_ice_leader,UvelTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,UvelTag,MPI_COMM_WORLD,mpierr)
688        ENDIF        ENDIF
689        _END_MASTER( myThid )        _END_MASTER( myThid )
690    #endif /* CPL_DEBUG */
691    
692  C     Send surface v current  C     Send surface v current
693        DO bj=1,nSy        DO bj=1,nSy
# Line 640  C     Send surface v current Line 700  C     Send surface v current
700         ENDDO         ENDDO
701        ENDDO        ENDDO
702        CALL GATHER_2D( xfer_array, local, myThid )        CALL GATHER_2D( xfer_array, local, myThid )
703    #ifdef CPL_DEBUG
704          CALL PLOT_FIELD_XYZRL( vVel, 'vVel(k=1)', 1, myIter, myThid )
705    #else /* CPL_DEBUG */
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 647  C     Send surface v current Line 710  C     Send surface v current
710       &    local_ice_leader,VvelTag,MPI_COMM_WORLD,mpierr)       &    local_ice_leader,VvelTag,MPI_COMM_WORLD,mpierr)
711        ENDIF        ENDIF
712        _END_MASTER( myThid )        _END_MASTER( myThid )
713  #ifdef CPL_DEBUG  #endif /* CPL_DEBUG */
         CALL PLOT_FIELD_XYZRL( vVel, 'vVel(k=1)', 1, myIter, myThid )  
 #endif  
714    
715  C     Receive ice model time  C     Receive ice model time
716        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
717    #ifdef CPL_DEBUG
718           print*,'MITgcm receive IceTime'
719    #else /* CPL_DEBUG */
720        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
721         buffsize = 1         buffsize = 1
722         CALL MPI_RECV(xfer_scalar,1,MPI_DOUBLE_PRECISION,         CALL MPI_RECV(xfer_scalar,1,MPI_DOUBLE_PRECISION,
723       &    local_ice_leader,IceTimeTag,MPI_COMM_WORLD,mpistatus,mpierr)       &    local_ice_leader,IceTimeTag,MPI_COMM_WORLD,mpistatus,mpierr)
 #ifdef CPL_DEBUG  
        print*,'MITgcm receive IceTime', xfer_scalar  
 #endif  
724        ENDIF        ENDIF
725    #endif /* CPL_DEBUG */
726        _END_MASTER( myThid )        _END_MASTER( myThid )
727    
728  C     Receive ice area                     Nx*Ny       Real*8    C     Receive ice area                     Nx*Ny       Real*8  
729    #ifdef CPL_DEBUG
730          DO bj=1,nSy
731           DO bi=1,nSx
732            DO j=1,sNy
733             DO i=1,sNx
734              local(i,j,bi,bj) = AREA(i,j,bi,bj)
735             ENDDO
736            ENDDO
737           ENDDO
738          ENDDO
739    #else /* CPL_DEBUG */
740        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
741        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
742         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 672  C     Receive ice area Line 745  C     Receive ice area
745        ENDIF        ENDIF
746        _END_MASTER( myThid )        _END_MASTER( myThid )
747        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
748    #endif /* CPL_DEBUG */
749        DO bj=1,nSy        DO bj=1,nSy
750         DO bi=1,nSx         DO bi=1,nSx
751          DO j=1,sNy          DO j=1,sNy
# Line 681  C     Receive ice area Line 755  C     Receive ice area
755          ENDDO          ENDDO
756         ENDDO         ENDDO
757        ENDDO        ENDDO
758        #ifdef CPL_MONITOR
759          CALL PLOT_FIELD_XYRL( AREA, 'ice area', myIter, myThid )
760    #endif /* CPL_MONITOR */
761    
762    C     Receive ice thickness
763  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
764        DO bj=1,nSy        DO bj=1,nSy
765         DO bi=1,nSx         DO bi=1,nSx
766          DO j=1,sNy          DO j=1,sNy
767           DO i=1,sNx           DO i=1,sNx
768            ScatArray(i,j,bi,bj) = local(i,j,bi,bj)            local(i,j,bi,bj) = HEFF(i,j,bi,bj)
769           ENDDO           ENDDO
770          ENDDO          ENDDO
771         ENDDO         ENDDO
772        ENDDO        ENDDO
773        CALL PLOT_FIELD_XYRL( ScatArray, 'ice area', myIter, myThid )  #else /* CPL_DEBUG */
 #endif  
   
 C     Receive ice thickness  
774        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
775        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
776         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 704  C     Receive ice thickness Line 779  C     Receive ice thickness
779        ENDIF        ENDIF
780        _END_MASTER( myThid )        _END_MASTER( myThid )
781        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
782    #endif /* CPL_DEBUG */
783        DO bj=1,nSy        DO bj=1,nSy
784         DO bi=1,nSx         DO bi=1,nSx
785          DO j=1,sNy          DO j=1,sNy
# Line 713  C     Receive ice thickness Line 789  C     Receive ice thickness
789          ENDDO          ENDDO
790         ENDDO         ENDDO
791        ENDDO        ENDDO
792    #ifdef CPL_MONITOR
793          CALL PLOT_FIELD_XYRL( HEFF, 'ice thickness', myIter, myThid )
794    #endif /* CPL_MONITOR */
795    
796    C     Receive ice salinity
797  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
798        DO bj=1,nSy        DO bj=1,nSy
799         DO bi=1,nSx         DO bi=1,nSx
800          DO j=1,sNy          DO j=1,sNy
801           DO i=1,sNx           DO i=1,sNx
802            ScatArray(i,j,bi,bj) = local(i,j,bi,bj)            local(i,j,bi,bj) = HSALT(i,j,bi,bj)
803           ENDDO           ENDDO
804          ENDDO          ENDDO
805         ENDDO         ENDDO
806        ENDDO        ENDDO
807        CALL PLOT_FIELD_XYRL( ScatArray, 'ice thickness', myIter, myThid )  #else /* CPL_DEBUG */
 #endif  
   
 C     Receive ice salinity  
808        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
809        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
810         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 735  C     Receive ice salinity Line 813  C     Receive ice salinity
813        ENDIF        ENDIF
814        _END_MASTER( myThid )        _END_MASTER( myThid )
815        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
816    #endif /* CPL_DEBUG */
817        DO bj=1,nSy        DO bj=1,nSy
818         DO bi=1,nSx         DO bi=1,nSx
819          DO j=1,sNy          DO j=1,sNy
# Line 744  C     Receive ice salinity Line 823  C     Receive ice salinity
823          ENDDO          ENDDO
824         ENDDO         ENDDO
825        ENDDO        ENDDO
826    #ifdef CPL_MONITOR
827          CALL PLOT_FIELD_XYRL( HSALT, 'ice salinity', myIter, myThid )
828    #endif /* CPL_MONITOR */
829    
830    C     Receive snow thickness
831  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
832        DO bj=1,nSy        DO bj=1,nSy
833         DO bi=1,nSx         DO bi=1,nSx
834          DO j=1,sNy          DO j=1,sNy
835           DO i=1,sNx           DO i=1,sNx
836            ScatArray(i,j,bi,bj) = local(i,j,bi,bj)            local(i,j,bi,bj) = HSNOW(i,j,bi,bj)
837           ENDDO           ENDDO
838          ENDDO          ENDDO
839         ENDDO         ENDDO
840        ENDDO        ENDDO
841        CALL PLOT_FIELD_XYRL( ScatArray, 'ice salinity', myIter, myThid )  #else /* CPL_DEBUG */
 #endif  
   
 C     Receive snow thickness  
842        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
843        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
844         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 766  C     Receive snow thickness Line 847  C     Receive snow thickness
847        ENDIF        ENDIF
848        _END_MASTER( myThid )        _END_MASTER( myThid )
849        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
850    #endif /* CPL_DEBUG */
851        DO bj=1,nSy        DO bj=1,nSy
852         DO bi=1,nSx         DO bi=1,nSx
853          DO j=1,sNy          DO j=1,sNy
# Line 775  C     Receive snow thickness Line 857  C     Receive snow thickness
857          ENDDO          ENDDO
858         ENDDO         ENDDO
859        ENDDO        ENDDO
860    #ifdef CPL_MONITOR
861          CALL PLOT_FIELD_XYRL( HSNOW, 'snow thickness', myIter, myThid )
862    #endif /* CPL_MONITOR */
863    
864    C     Receive u surface stress
865  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
866        DO bj=1,nSy        DO bj=1,nSy
867         DO bi=1,nSx         DO bi=1,nSx
868          DO j=1,sNy          DO j=1,sNy
869           DO i=1,sNx           DO i=1,sNx
870            ScatArray(i,j,bi,bj) = local(i,j,bi,bj)            local(i,j,bi,bj) = fu(i,j,bi,bj)
871           ENDDO           ENDDO
872          ENDDO          ENDDO
873         ENDDO         ENDDO
874        ENDDO        ENDDO
875        CALL PLOT_FIELD_XYRL( ScatArray, 'ice thickness', myIter, myThid )  #else /* CPL_DEBUG */
 #endif  
   
 C     Receive u surface stress  
876        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
877        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
878         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 807  C     Receive u surface stress Line 891  C     Receive u surface stress
891          ENDDO          ENDDO
892         ENDDO         ENDDO
893        ENDDO        ENDDO
894    #endif /* CPL_DEBUG */
895    #ifdef CPL_MONITOR
896          CALL PLOT_FIELD_XYRL( local, 'u stress', myIter, myThid )
897    #endif /* CPL_MONITOR */
898    
899    C     Receive v surface stress
900  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
901        DO bj=1,nSy        DO bj=1,nSy
902         DO bi=1,nSx         DO bi=1,nSx
903          DO j=1,sNy          DO j=1,sNy
904           DO i=1,sNx           DO i=1,sNx
905            ScatArray(i,j,bi,bj) = local(i,j,bi,bj)            local(i,j,bi,bj) = fv(i,j,bi,bj)
906           ENDDO           ENDDO
907          ENDDO          ENDDO
908         ENDDO         ENDDO
909        ENDDO        ENDDO
910        CALL PLOT_FIELD_XYRL( ScatArray, 'u stress', myIter, myThid )  #else /* CPL_DEBUG */
 #endif  
   
 C     Receive v surface stress  
911        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
912        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
913         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 839  C     Receive v surface stress Line 926  C     Receive v surface stress
926          ENDDO          ENDDO
927         ENDDO         ENDDO
928        ENDDO        ENDDO
929    #endif /* CPL_DEBUG */
930    #ifdef CPL_MONITOR
931          CALL PLOT_FIELD_XYRL( local, 'v stress', myIter, myThid )
932    #endif /* CPL_MONITOR */
933    
934    C     Receive residual shortwave
935  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
936        DO bj=1,nSy        DO bj=1,nSy
937         DO bi=1,nSx         DO bi=1,nSx
938          DO j=1,sNy          DO j=1,sNy
939           DO i=1,sNx           DO i=1,sNx
940            ScatArray(i,j,bi,bj) = local(i,j,bi,bj)            local(i,j,bi,bj) = Qsw(i,j,bi,bj)
941           ENDDO           ENDDO
942          ENDDO          ENDDO
943         ENDDO         ENDDO
944        ENDDO        ENDDO
945        CALL PLOT_FIELD_XYRL( ScatArray, 'v stress', myIter, myThid )  #else /* CPL_DEBUG */
 #endif  
   
 C     Receive residual shortwave  
946        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
947        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
948         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 871  C     Receive residual shortwave Line 961  C     Receive residual shortwave
961          ENDDO          ENDDO
962         ENDDO         ENDDO
963        ENDDO        ENDDO
964    #endif /* CPL_DEBUG */
965    #ifdef CPL_MONITOR
966          CALL PLOT_FIELD_XYRL( local, 'shortwave', myIter, myThid )
967    #endif /* CPL_MONITOR */
968    
969    C     Receive heat flux
970  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
971        DO bj=1,nSy        DO bj=1,nSy
972         DO bi=1,nSx         DO bi=1,nSx
973          DO j=1,sNy          DO j=1,sNy
974           DO i=1,sNx           DO i=1,sNx
975            ScatArray(i,j,bi,bj) = local(i,j,bi,bj)            local(i,j,bi,bj) = Qnet(i,j,bi,bj)
976           ENDDO           ENDDO
977          ENDDO          ENDDO
978         ENDDO         ENDDO
979        ENDDO        ENDDO
980        CALL PLOT_FIELD_XYRL( ScatArray, 'shortwave', myIter, myThid )  #else /* CPL_DEBUG */
 #endif  
   
 C     Receive heat flux  
981        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
982        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
983         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 904  C     Receive heat flux Line 997  C     Receive heat flux
997          ENDDO          ENDDO
998         ENDDO         ENDDO
999        ENDDO        ENDDO
1000    #endif /* CPL_DEBUG */
1001    #ifdef CPL_MONITOR
1002          CALL PLOT_FIELD_XYRL( local, 'heat flux', myIter, myThid )
1003    #endif /* CPL_MONITOR */
1004    
1005    C     Receive freshwater flux
1006  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
1007        DO bj=1,nSy        DO bj=1,nSy
1008         DO bi=1,nSx         DO bi=1,nSx
1009          DO j=1,sNy          DO j=1,sNy
1010           DO i=1,sNx           DO i=1,sNx
1011            ScatArray(i,j,bi,bj) = local(i,j,bi,bj)            local(i,j,bi,bj) = EmPmR(i,j,bi,bj)
1012           ENDDO           ENDDO
1013          ENDDO          ENDDO
1014         ENDDO         ENDDO
1015        ENDDO        ENDDO
1016        CALL PLOT_FIELD_XYRL( ScatArray, 'heat flux', myIter, myThid )  #else /* CPL_DEBUG */
 #endif  
   
 C     Receive freshwater flux  
1017        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
1018        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
1019         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 936  C     Receive freshwater flux Line 1032  C     Receive freshwater flux
1032          ENDDO          ENDDO
1033         ENDDO         ENDDO
1034        ENDDO        ENDDO
1035    #endif /* CPL_DEBUG */
1036    #ifdef CPL_MONITOR
1037          CALL PLOT_FIELD_XYRL( local, 'freshwater', myIter, myThid )
1038    #endif /* CPL_MONITOR */
1039    
1040    C     Receive salt flux
1041  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
1042        DO bj=1,nSy        DO bj=1,nSy
1043         DO bi=1,nSx         DO bi=1,nSx
1044          DO j=1,sNy          DO j=1,sNy
1045           DO i=1,sNx           DO i=1,sNx
1046            ScatArray(i,j,bi,bj) = local(i,j,bi,bj)            local(i,j,bi,bj) = fu(i,j,bi,bj)
1047           ENDDO           ENDDO
1048          ENDDO          ENDDO
1049         ENDDO         ENDDO
1050        ENDDO        ENDDO
1051        CALL PLOT_FIELD_XYRL( ScatArray, 'freshwater', myIter, myThid )  #else /* CPL_DEBUG */
 #endif  
   
 C     Receive salt flux  
1052        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
1053        IF ( myworldid .EQ. local_ocean_leader ) THEN        IF ( myworldid .EQ. local_ocean_leader ) THEN
1054         buffsize = Nx*Ny         buffsize = Nx*Ny
# Line 967  C     Receive salt flux Line 1066  C     Receive salt flux
1066          ENDDO          ENDDO
1067         ENDDO         ENDDO
1068        ENDDO        ENDDO
1069  #ifdef CPL_DEBUG  #endif /* CPL_DEBUG */
1070        DO bj=1,nSy  #ifdef CPL_MONITOR
1071         DO bi=1,nSx        CALL PLOT_FIELD_XYRL( local, 'salt flux', myIter, myThid )
1072          DO j=1,sNy  #endif /* CPL_MONITOR */
          DO i=1,sNx  
           ScatArray(i,j,bi,bj) = local(i,j,bi,bj)  
          ENDDO  
         ENDDO  
        ENDDO  
       ENDDO  
       CALL PLOT_FIELD_XYRL( ScatArray, 'salt flux', myIter, myThid )  
 #endif  
1073    
1074  #endif /* ALLOW_CPL_MPMICE */  #endif /* ALLOW_CPL_MPMICE */
1075    

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

  ViewVC Help
Powered by ViewVC 1.1.22