57 |
Real*8 xfer_bc_tracer(2*(Nx+Ny)-4) |
Real*8 xfer_bc_tracer(2*(Nx+Ny)-4) |
58 |
Real*8 xfer_bc_veloc(2*(Nx+Ny)-6) |
Real*8 xfer_bc_veloc(2*(Nx+Ny)-6) |
59 |
_RL local(1:sNx,1:sNy,nSx,nSy) |
_RL local(1:sNx,1:sNy,nSx,nSy) |
60 |
_RL ScatArray(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
|
61 |
|
#ifdef CPL_DEBUG |
62 |
|
_RL ScatArray(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
63 |
|
DO bj=1,nSy |
64 |
|
DO bi=1,nSx |
65 |
|
DO j=1-OLy,sNy+OLy |
66 |
|
DO i=1-OLx,sNx+OLx |
67 |
|
ScatArray(i,j,bi,bj) = 0.0 _d 0 |
68 |
|
ENDDO |
69 |
|
ENDDO |
70 |
|
ENDDO |
71 |
|
ENDDO |
72 |
|
#endif |
73 |
|
|
74 |
IF( myTime .EQ. startTime ) THEN |
IF( myTime .EQ. startTime ) THEN |
75 |
|
|
223 |
idx = idx + 1 |
idx = idx + 1 |
224 |
xfer_bc_tracer(idx) = xfer_array(Nx,j) |
xfer_bc_tracer(idx) = xfer_array(Nx,j) |
225 |
ENDDO |
ENDDO |
226 |
DO i = (Nx-1), -1, 1 |
DO i = (Nx-1), 1, -1 |
227 |
idx = idx + 1 |
idx = idx + 1 |
228 |
xfer_bc_tracer(idx) = xfer_array(i,Ny) |
xfer_bc_tracer(idx) = xfer_array(i,Ny) |
229 |
ENDDO |
ENDDO |
230 |
DO j = (Ny-1), -1, 2 |
DO j = (Ny-1), 2, -1 |
231 |
idx = idx + 1 |
idx = idx + 1 |
232 |
xfer_bc_tracer(idx) = xfer_array(1,j) |
xfer_bc_tracer(idx) = xfer_array(1,j) |
233 |
ENDDO |
ENDDO |
261 |
idx = idx + 1 |
idx = idx + 1 |
262 |
xfer_bc_tracer(idx) = xfer_array(Nx,j) |
xfer_bc_tracer(idx) = xfer_array(Nx,j) |
263 |
ENDDO |
ENDDO |
264 |
DO i = (Nx-1), -1, 1 |
DO i = (Nx-1), 1, -1 |
265 |
idx = idx + 1 |
idx = idx + 1 |
266 |
xfer_bc_tracer(idx) = xfer_array(i,Ny) |
xfer_bc_tracer(idx) = xfer_array(i,Ny) |
267 |
ENDDO |
ENDDO |
268 |
DO j = (Ny-1), -1, 2 |
DO j = (Ny-1), 2, -1 |
269 |
idx = idx + 1 |
idx = idx + 1 |
270 |
xfer_bc_tracer(idx) = xfer_array(1,j) |
xfer_bc_tracer(idx) = xfer_array(1,j) |
271 |
ENDDO |
ENDDO |
297 |
idx = idx + 1 |
idx = idx + 1 |
298 |
xfer_bc_tracer(idx) = xfer_array(Nx,j) |
xfer_bc_tracer(idx) = xfer_array(Nx,j) |
299 |
ENDDO |
ENDDO |
300 |
DO i = (Nx-1), -1, 1 |
DO i = (Nx-1), 1, -1 |
301 |
idx = idx + 1 |
idx = idx + 1 |
302 |
xfer_bc_tracer(idx) = xfer_array(i,Ny) |
xfer_bc_tracer(idx) = xfer_array(i,Ny) |
303 |
ENDDO |
ENDDO |
304 |
DO j = (Ny-1), -1, 2 |
DO j = (Ny-1), 2, -1 |
305 |
idx = idx + 1 |
idx = idx + 1 |
306 |
xfer_bc_tracer(idx) = xfer_array(1,j) |
xfer_bc_tracer(idx) = xfer_array(1,j) |
307 |
ENDDO |
ENDDO |
333 |
idx = idx + 1 |
idx = idx + 1 |
334 |
xfer_bc_tracer(idx) = xfer_array(Nx,j) |
xfer_bc_tracer(idx) = xfer_array(Nx,j) |
335 |
ENDDO |
ENDDO |
336 |
DO i = (Nx-1), -1, 1 |
DO i = (Nx-1), 1, -1 |
337 |
idx = idx + 1 |
idx = idx + 1 |
338 |
xfer_bc_tracer(idx) = xfer_array(i,Ny) |
xfer_bc_tracer(idx) = xfer_array(i,Ny) |
339 |
ENDDO |
ENDDO |
340 |
DO j = (Ny-1), -1, 2 |
DO j = (Ny-1), 2, -1 |
341 |
idx = idx + 1 |
idx = idx + 1 |
342 |
xfer_bc_tracer(idx) = xfer_array(1,j) |
xfer_bc_tracer(idx) = xfer_array(1,j) |
343 |
ENDDO |
ENDDO |
369 |
idx = idx + 1 |
idx = idx + 1 |
370 |
xfer_bc_veloc(idx) = xfer_array(Nx,j) |
xfer_bc_veloc(idx) = xfer_array(Nx,j) |
371 |
ENDDO |
ENDDO |
372 |
DO i = (Nx-1), -1, 2 |
DO i = (Nx-1), 2, -1 |
373 |
idx = idx + 1 |
idx = idx + 1 |
374 |
xfer_bc_veloc(idx) = xfer_array(i,Ny) |
xfer_bc_veloc(idx) = xfer_array(i,Ny) |
375 |
ENDDO |
ENDDO |
376 |
DO j = (Ny-1), -1, 2 |
DO j = (Ny-1), 2, -1 |
377 |
idx = idx + 1 |
idx = idx + 1 |
378 |
xfer_bc_veloc(idx) = xfer_array(2,j) |
xfer_bc_veloc(idx) = xfer_array(2,j) |
379 |
ENDDO |
ENDDO |
405 |
idx = idx + 1 |
idx = idx + 1 |
406 |
xfer_bc_veloc(idx) = xfer_array(Nx,j) |
xfer_bc_veloc(idx) = xfer_array(Nx,j) |
407 |
ENDDO |
ENDDO |
408 |
DO i = (Nx-1), -1, 1 |
DO i = (Nx-1), 1, -1 |
409 |
idx = idx + 1 |
idx = idx + 1 |
410 |
xfer_bc_veloc(idx) = xfer_array(i,Ny) |
xfer_bc_veloc(idx) = xfer_array(i,Ny) |
411 |
ENDDO |
ENDDO |
412 |
DO j = (Ny-1), -1, 3 |
DO j = (Ny-1), 3, -1 |
413 |
idx = idx + 1 |
idx = idx + 1 |
414 |
xfer_bc_veloc(idx) = xfer_array(1,j) |
xfer_bc_veloc(idx) = xfer_array(1,j) |
415 |
ENDDO |
ENDDO |
645 |
ENDIF |
ENDIF |
646 |
_END_MASTER( myThid ) |
_END_MASTER( myThid ) |
647 |
CALL SCATTER_2D( xfer_array, local, myThid ) |
CALL SCATTER_2D( xfer_array, local, myThid ) |
648 |
|
#ifdef CPL_DEBUG |
649 |
DO bj=1,nSy |
DO bj=1,nSy |
650 |
DO bi=1,nSx |
DO bi=1,nSx |
651 |
DO j=1,sNy |
DO j=1,sNy |
655 |
ENDDO |
ENDDO |
656 |
ENDDO |
ENDDO |
657 |
ENDDO |
ENDDO |
|
#ifdef CPL_DEBUG |
|
658 |
CALL PLOT_FIELD_XYRL( ScatArray, 'ice area', myIter, myThid ) |
CALL PLOT_FIELD_XYRL( ScatArray, 'ice area', myIter, myThid ) |
659 |
#endif |
#endif |
660 |
|
|
667 |
ENDIF |
ENDIF |
668 |
_END_MASTER( myThid ) |
_END_MASTER( myThid ) |
669 |
CALL SCATTER_2D( xfer_array, local, myThid ) |
CALL SCATTER_2D( xfer_array, local, myThid ) |
670 |
|
#ifdef CPL_DEBUG |
671 |
DO bj=1,nSy |
DO bj=1,nSy |
672 |
DO bi=1,nSx |
DO bi=1,nSx |
673 |
DO j=1,sNy |
DO j=1,sNy |
677 |
ENDDO |
ENDDO |
678 |
ENDDO |
ENDDO |
679 |
ENDDO |
ENDDO |
|
#ifdef CPL_DEBUG |
|
680 |
CALL PLOT_FIELD_XYRL( ScatArray, 'ice thickness', myIter, myThid ) |
CALL PLOT_FIELD_XYRL( ScatArray, 'ice thickness', myIter, myThid ) |
681 |
#endif |
#endif |
682 |
|
|
689 |
ENDIF |
ENDIF |
690 |
_END_MASTER( myThid ) |
_END_MASTER( myThid ) |
691 |
CALL SCATTER_2D( xfer_array, local, myThid ) |
CALL SCATTER_2D( xfer_array, local, myThid ) |
692 |
|
#ifdef CPL_DEBUG |
693 |
DO bj=1,nSy |
DO bj=1,nSy |
694 |
DO bi=1,nSx |
DO bi=1,nSx |
695 |
DO j=1,sNy |
DO j=1,sNy |
699 |
ENDDO |
ENDDO |
700 |
ENDDO |
ENDDO |
701 |
ENDDO |
ENDDO |
|
#ifdef CPL_DEBUG |
|
702 |
CALL PLOT_FIELD_XYRL( ScatArray, 'ice salinity', myIter, myThid ) |
CALL PLOT_FIELD_XYRL( ScatArray, 'ice salinity', myIter, myThid ) |
703 |
#endif |
#endif |
704 |
|
|
711 |
ENDIF |
ENDIF |
712 |
_END_MASTER( myThid ) |
_END_MASTER( myThid ) |
713 |
CALL SCATTER_2D( xfer_array, local, myThid ) |
CALL SCATTER_2D( xfer_array, local, myThid ) |
714 |
|
#ifdef CPL_DEBUG |
715 |
DO bj=1,nSy |
DO bj=1,nSy |
716 |
DO bi=1,nSx |
DO bi=1,nSx |
717 |
DO j=1,sNy |
DO j=1,sNy |
721 |
ENDDO |
ENDDO |
722 |
ENDDO |
ENDDO |
723 |
ENDDO |
ENDDO |
|
#ifdef CPL_DEBUG |
|
724 |
CALL PLOT_FIELD_XYRL( ScatArray, 'ice thickness', myIter, myThid ) |
CALL PLOT_FIELD_XYRL( ScatArray, 'ice thickness', myIter, myThid ) |
725 |
#endif |
#endif |
726 |
|
|
733 |
ENDIF |
ENDIF |
734 |
_END_MASTER( myThid ) |
_END_MASTER( myThid ) |
735 |
CALL SCATTER_2D( xfer_array, local, myThid ) |
CALL SCATTER_2D( xfer_array, local, myThid ) |
736 |
|
#ifdef CPL_DEBUG |
737 |
DO bj=1,nSy |
DO bj=1,nSy |
738 |
DO bi=1,nSx |
DO bi=1,nSx |
739 |
DO j=1,sNy |
DO j=1,sNy |
743 |
ENDDO |
ENDDO |
744 |
ENDDO |
ENDDO |
745 |
ENDDO |
ENDDO |
|
#ifdef CPL_DEBUG |
|
746 |
CALL PLOT_FIELD_XYRL( ScatArray, 'u stress', myIter, myThid ) |
CALL PLOT_FIELD_XYRL( ScatArray, 'u stress', myIter, myThid ) |
747 |
#endif |
#endif |
748 |
|
|
755 |
ENDIF |
ENDIF |
756 |
_END_MASTER( myThid ) |
_END_MASTER( myThid ) |
757 |
CALL SCATTER_2D( xfer_array, local, myThid ) |
CALL SCATTER_2D( xfer_array, local, myThid ) |
758 |
|
#ifdef CPL_DEBUG |
759 |
DO bj=1,nSy |
DO bj=1,nSy |
760 |
DO bi=1,nSx |
DO bi=1,nSx |
761 |
DO j=1,sNy |
DO j=1,sNy |
765 |
ENDDO |
ENDDO |
766 |
ENDDO |
ENDDO |
767 |
ENDDO |
ENDDO |
|
#ifdef CPL_DEBUG |
|
768 |
CALL PLOT_FIELD_XYRL( ScatArray, 'v stress', myIter, myThid ) |
CALL PLOT_FIELD_XYRL( ScatArray, 'v stress', myIter, myThid ) |
769 |
#endif |
#endif |
770 |
|
|
777 |
ENDIF |
ENDIF |
778 |
_END_MASTER( myThid ) |
_END_MASTER( myThid ) |
779 |
CALL SCATTER_2D( xfer_array, local, myThid ) |
CALL SCATTER_2D( xfer_array, local, myThid ) |
780 |
DO bj=1,nSy |
#ifdef CPL_DEBUG |
781 |
|
DO bj=1,nSy |
782 |
DO bi=1,nSx |
DO bi=1,nSx |
783 |
DO j=1,sNy |
DO j=1,sNy |
784 |
DO i=1,sNx |
DO i=1,sNx |
787 |
ENDDO |
ENDDO |
788 |
ENDDO |
ENDDO |
789 |
ENDDO |
ENDDO |
|
#ifdef CPL_DEBUG |
|
790 |
CALL PLOT_FIELD_XYRL( ScatArray, 'shortwave', myIter, myThid ) |
CALL PLOT_FIELD_XYRL( ScatArray, 'shortwave', myIter, myThid ) |
791 |
#endif |
#endif |
792 |
|
|
799 |
ENDIF |
ENDIF |
800 |
_END_MASTER( myThid ) |
_END_MASTER( myThid ) |
801 |
CALL SCATTER_2D( xfer_array, local, myThid ) |
CALL SCATTER_2D( xfer_array, local, myThid ) |
802 |
|
#ifdef CPL_DEBUG |
803 |
DO bj=1,nSy |
DO bj=1,nSy |
804 |
DO bi=1,nSx |
DO bi=1,nSx |
805 |
DO j=1,sNy |
DO j=1,sNy |
809 |
ENDDO |
ENDDO |
810 |
ENDDO |
ENDDO |
811 |
ENDDO |
ENDDO |
|
#ifdef CPL_DEBUG |
|
812 |
CALL PLOT_FIELD_XYRL( ScatArray, 'heat flux', myIter, myThid ) |
CALL PLOT_FIELD_XYRL( ScatArray, 'heat flux', myIter, myThid ) |
813 |
#endif |
#endif |
814 |
|
|
821 |
ENDIF |
ENDIF |
822 |
_END_MASTER( myThid ) |
_END_MASTER( myThid ) |
823 |
CALL SCATTER_2D( xfer_array, local, myThid ) |
CALL SCATTER_2D( xfer_array, local, myThid ) |
824 |
|
#ifdef CPL_DEBUG |
825 |
DO bj=1,nSy |
DO bj=1,nSy |
826 |
DO bi=1,nSx |
DO bi=1,nSx |
827 |
DO j=1,sNy |
DO j=1,sNy |
831 |
ENDDO |
ENDDO |
832 |
ENDDO |
ENDDO |
833 |
ENDDO |
ENDDO |
|
#ifdef CPL_DEBUG |
|
834 |
CALL PLOT_FIELD_XYRL( ScatArray, 'freshwater', myIter, myThid ) |
CALL PLOT_FIELD_XYRL( ScatArray, 'freshwater', myIter, myThid ) |
835 |
#endif |
#endif |
836 |
|
|
843 |
ENDIF |
ENDIF |
844 |
_END_MASTER( myThid ) |
_END_MASTER( myThid ) |
845 |
CALL SCATTER_2D( xfer_array, local, myThid ) |
CALL SCATTER_2D( xfer_array, local, myThid ) |
846 |
|
#ifdef CPL_DEBUG |
847 |
DO bj=1,nSy |
DO bj=1,nSy |
848 |
DO bi=1,nSx |
DO bi=1,nSx |
849 |
DO j=1,sNy |
DO j=1,sNy |
853 |
ENDDO |
ENDDO |
854 |
ENDDO |
ENDDO |
855 |
ENDDO |
ENDDO |
|
#ifdef CPL_DEBUG |
|
856 |
CALL PLOT_FIELD_XYRL( ScatArray, 'salt flux', myIter, myThid ) |
CALL PLOT_FIELD_XYRL( ScatArray, 'salt flux', myIter, myThid ) |
857 |
#endif |
#endif |
858 |
|
|