60 |
Real*8 xfer_bc_tracer(2*(Nx+Ny)-4) |
Real*8 xfer_bc_tracer(2*(Nx+Ny)-4) |
61 |
Real*8 xfer_bc_veloc(2*(Nx+Ny)-6) |
Real*8 xfer_bc_veloc(2*(Nx+Ny)-6) |
62 |
_RL local(1:sNx,1:sNy,nSx,nSy) |
_RL local(1:sNx,1:sNy,nSx,nSy) |
63 |
|
character*(10) itername |
64 |
|
|
65 |
COMMON /FFIELDS_tmp/ fu_tmp, fv_tmp, Qnet_tmp, Qsw_tmp, EmPmR_tmp |
COMMON /FFIELDS_tmp/ fu_tmp, fv_tmp, Qnet_tmp, Qsw_tmp, EmPmR_tmp |
66 |
_RS fu_tmp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RS fu_tmp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
69 |
_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) |
70 |
_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) |
71 |
|
|
72 |
|
# ifdef CPL_DEBUG |
73 |
|
write(itername,'(i10.10)') myIter |
74 |
|
# endif /* CPL_DEBUG */ |
75 |
|
|
76 |
IF( myTime .EQ. startTime ) THEN |
IF( myTime .EQ. startTime ) THEN |
77 |
|
|
78 |
C Send deltatimestep |
C Send deltatimestep |
247 |
idx = idx + 1 |
idx = idx + 1 |
248 |
xfer_bc_tracer(idx) = xfer_array(1,j) |
xfer_bc_tracer(idx) = xfer_array(1,j) |
249 |
ENDDO |
ENDDO |
250 |
|
buffsize = 2*(Nx+Ny)-4 |
251 |
# ifdef CPL_DEBUG |
# ifdef CPL_DEBUG |
252 |
CALL PLOT_FIELD_XYRL( AREA, 'AREA obcs', myIter, myThid ) |
CALL PLOT_FIELD_XYRL( AREA, 'AREA obcs', myIter, myThid ) |
253 |
|
CALL WRITE_GLVEC_RS ( 'AREAobcs.', itername, |
254 |
|
& xfer_bc_tracer, buffsize, myIter, myThid ) |
255 |
# endif /* CPL_DEBUG */ |
# endif /* CPL_DEBUG */ |
256 |
# ifdef CPL_COUPLED |
# ifdef CPL_COUPLED |
257 |
_BEGIN_MASTER( myThid ) |
_BEGIN_MASTER( myThid ) |
258 |
IF ( myworldid .EQ. local_ocean_leader ) THEN |
IF ( myworldid .EQ. local_ocean_leader ) THEN |
|
buffsize = 2*(Nx+Ny)-4 |
|
259 |
cdb print*,'MITgcm is about to send AreaBcTag',buffsize |
cdb print*,'MITgcm is about to send AreaBcTag',buffsize |
260 |
CALL MPI_SEND(xfer_bc_tracer,buffsize,MPI_DOUBLE_PRECISION, |
CALL MPI_SEND(xfer_bc_tracer,buffsize,MPI_DOUBLE_PRECISION, |
261 |
& local_ice_leader,AreaBcTag,MPI_COMM_WORLD,mpierr) |
& local_ice_leader,AreaBcTag,MPI_COMM_WORLD,mpierr) |
292 |
idx = idx + 1 |
idx = idx + 1 |
293 |
xfer_bc_tracer(idx) = xfer_array(1,j) |
xfer_bc_tracer(idx) = xfer_array(1,j) |
294 |
ENDDO |
ENDDO |
295 |
|
buffsize = 2*(Nx+Ny)-4 |
296 |
# ifdef CPL_DEBUG |
# ifdef CPL_DEBUG |
297 |
CALL PLOT_FIELD_XYRL( HEFF, 'HEFF obcs', myIter, myThid ) |
CALL PLOT_FIELD_XYRL( HEFF, 'HEFF obcs', myIter, myThid ) |
298 |
|
CALL WRITE_GLVEC_RS ( 'HEFFobcs.', itername, |
299 |
|
& xfer_bc_tracer, buffsize, myIter, myThid ) |
300 |
# endif /* CPL_DEBUG */ |
# endif /* CPL_DEBUG */ |
301 |
# ifdef CPL_COUPLED |
# ifdef CPL_COUPLED |
302 |
_BEGIN_MASTER( myThid ) |
_BEGIN_MASTER( myThid ) |
303 |
IF ( myworldid .EQ. local_ocean_leader ) THEN |
IF ( myworldid .EQ. local_ocean_leader ) THEN |
|
buffsize = 2*(Nx+Ny)-4 |
|
304 |
CALL MPI_SEND(xfer_bc_tracer,buffsize,MPI_DOUBLE_PRECISION, |
CALL MPI_SEND(xfer_bc_tracer,buffsize,MPI_DOUBLE_PRECISION, |
305 |
& local_ice_leader,HeffBcTag,MPI_COMM_WORLD,mpierr) |
& local_ice_leader,HeffBcTag,MPI_COMM_WORLD,mpierr) |
306 |
ENDIF |
ENDIF |
335 |
idx = idx + 1 |
idx = idx + 1 |
336 |
xfer_bc_tracer(idx) = xfer_array(1,j) |
xfer_bc_tracer(idx) = xfer_array(1,j) |
337 |
ENDDO |
ENDDO |
338 |
|
buffsize = 2*(Nx+Ny)-4 |
339 |
# ifdef CPL_DEBUG |
# ifdef CPL_DEBUG |
340 |
CALL PLOT_FIELD_XYRL( HSALT, 'HSALT obcs', myIter, myThid ) |
CALL PLOT_FIELD_XYRL( HSALT, 'HSALT obcs', myIter, myThid ) |
341 |
|
CALL WRITE_GLVEC_RS ( 'HSALTobcs.', itername, |
342 |
|
& xfer_bc_tracer, buffsize, myIter, myThid ) |
343 |
# endif /* CPL_DEBUG */ |
# endif /* CPL_DEBUG */ |
344 |
# ifdef CPL_COUPLED |
# ifdef CPL_COUPLED |
345 |
_BEGIN_MASTER( myThid ) |
_BEGIN_MASTER( myThid ) |
346 |
IF ( myworldid .EQ. local_ocean_leader ) THEN |
IF ( myworldid .EQ. local_ocean_leader ) THEN |
|
buffsize = 2*(Nx+Ny)-4 |
|
347 |
CALL MPI_SEND(xfer_bc_tracer,buffsize,MPI_DOUBLE_PRECISION, |
CALL MPI_SEND(xfer_bc_tracer,buffsize,MPI_DOUBLE_PRECISION, |
348 |
& local_ice_leader,HsaltBcTag,MPI_COMM_WORLD,mpierr) |
& local_ice_leader,HsaltBcTag,MPI_COMM_WORLD,mpierr) |
349 |
ENDIF |
ENDIF |
378 |
idx = idx + 1 |
idx = idx + 1 |
379 |
xfer_bc_tracer(idx) = xfer_array(1,j) |
xfer_bc_tracer(idx) = xfer_array(1,j) |
380 |
ENDDO |
ENDDO |
381 |
|
buffsize = 2*(Nx+Ny)-4 |
382 |
# ifdef CPL_DEBUG |
# ifdef CPL_DEBUG |
383 |
CALL PLOT_FIELD_XYRL( HSNOW, 'HSNOW obcs', myIter, myThid ) |
CALL PLOT_FIELD_XYRL( HSNOW, 'HSNOW obcs', myIter, myThid ) |
384 |
|
CALL WRITE_GLVEC_RS ( 'HSNOWobcs.', itername, |
385 |
|
& xfer_bc_tracer, buffsize, myIter, myThid ) |
386 |
# endif /* CPL_DEBUG */ |
# endif /* CPL_DEBUG */ |
387 |
# ifdef CPL_COUPLED |
# ifdef CPL_COUPLED |
388 |
_BEGIN_MASTER( myThid ) |
_BEGIN_MASTER( myThid ) |
389 |
IF ( myworldid .EQ. local_ocean_leader ) THEN |
IF ( myworldid .EQ. local_ocean_leader ) THEN |
|
buffsize = 2*(Nx+Ny)-4 |
|
390 |
CALL MPI_SEND(xfer_bc_tracer,buffsize,MPI_DOUBLE_PRECISION, |
CALL MPI_SEND(xfer_bc_tracer,buffsize,MPI_DOUBLE_PRECISION, |
391 |
& local_ice_leader,HsnowBcTag,MPI_COMM_WORLD,mpierr) |
& local_ice_leader,HsnowBcTag,MPI_COMM_WORLD,mpierr) |
392 |
ENDIF |
ENDIF |
421 |
idx = idx + 1 |
idx = idx + 1 |
422 |
xfer_bc_veloc(idx) = xfer_array(2,j) |
xfer_bc_veloc(idx) = xfer_array(2,j) |
423 |
ENDDO |
ENDDO |
424 |
|
buffsize = 2*(Nx+Ny)-6 |
425 |
# ifdef CPL_DEBUG |
# ifdef CPL_DEBUG |
426 |
CALL PLOT_FIELD_XYRL( UICE, 'UICE obcs', myIter, myThid ) |
CALL PLOT_FIELD_XYRL( UICE, 'UICE obcs', myIter, myThid ) |
427 |
|
CALL WRITE_GLVEC_RS ( 'UICEobcs.', itername, |
428 |
|
& xfer_bc_veloc, buffsize, myIter, myThid ) |
429 |
# endif /* CPL_DEBUG */ |
# endif /* CPL_DEBUG */ |
430 |
# ifdef CPL_COUPLED |
# ifdef CPL_COUPLED |
431 |
_BEGIN_MASTER( myThid ) |
_BEGIN_MASTER( myThid ) |
432 |
IF ( myworldid .EQ. local_ocean_leader ) THEN |
IF ( myworldid .EQ. local_ocean_leader ) THEN |
|
buffsize = 2*(Nx+Ny)-6 |
|
433 |
CALL MPI_SEND(xfer_bc_veloc,buffsize,MPI_DOUBLE_PRECISION, |
CALL MPI_SEND(xfer_bc_veloc,buffsize,MPI_DOUBLE_PRECISION, |
434 |
& local_ice_leader,UiceBcTag,MPI_COMM_WORLD,mpierr) |
& local_ice_leader,UiceBcTag,MPI_COMM_WORLD,mpierr) |
435 |
ENDIF |
ENDIF |
464 |
idx = idx + 1 |
idx = idx + 1 |
465 |
xfer_bc_veloc(idx) = xfer_array(1,j) |
xfer_bc_veloc(idx) = xfer_array(1,j) |
466 |
ENDDO |
ENDDO |
467 |
|
buffsize = 2*(Nx+Ny)-6 |
468 |
# ifdef CPL_DEBUG |
# ifdef CPL_DEBUG |
469 |
CALL PLOT_FIELD_XYRL( VICE, 'VICE obcs', myIter, myThid ) |
CALL PLOT_FIELD_XYRL( VICE, 'VICE obcs', myIter, myThid ) |
470 |
|
CALL WRITE_GLVEC_RS ( 'VICEobcs.', itername, |
471 |
|
& xfer_bc_veloc, buffsize, myIter, myThid ) |
472 |
# endif /* CPL_DEBUG */ |
# endif /* CPL_DEBUG */ |
473 |
# ifdef CPL_COUPLED |
# ifdef CPL_COUPLED |
474 |
_BEGIN_MASTER( myThid ) |
_BEGIN_MASTER( myThid ) |
475 |
IF ( myworldid .EQ. local_ocean_leader ) THEN |
IF ( myworldid .EQ. local_ocean_leader ) THEN |
|
buffsize = 2*(Nx+Ny)-6 |
|
476 |
CALL MPI_SEND(xfer_bc_veloc,buffsize,MPI_DOUBLE_PRECISION, |
CALL MPI_SEND(xfer_bc_veloc,buffsize,MPI_DOUBLE_PRECISION, |
477 |
& local_ice_leader,ViceBcTag,MPI_COMM_WORLD,mpierr) |
& local_ice_leader,ViceBcTag,MPI_COMM_WORLD,mpierr) |
478 |
ENDIF |
ENDIF |