/[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.4 by dimitri, Fri Dec 4 19:39:27 2009 UTC revision 1.5 by dimitri, Fri Feb 3 14:08:28 2012 UTC
# Line 57  CEOP Line 57  CEOP
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    
61          COMMON /FFIELDS_tmp/
62         & fu_tmp, fv_tmp, Qnet_tmp, Qsw_tmp, EmPmR_tmp, saltFlux_tmp
63          _RS  fu_tmp       (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
64          _RS  fv_tmp       (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
65          _RS  Qnet_tmp     (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
66          _RS  Qsw_tmp      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
67          _RS  EmPmR_tmp    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
68    
69  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
70        _RL ScatArray(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL ScatArray(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
71        DO bj=1,nSy        DO bj=1,nSy
# Line 583  C     Send ocean surface temperature Line 591  C     Send ocean surface temperature
591        ENDIF        ENDIF
592        _END_MASTER( myThid )        _END_MASTER( myThid )
593    
594    C     Send ocean surface salinity
595          DO bj=1,nSy
596           DO bi=1,nSx
597            DO j=1,sNy
598             DO i=1,sNx
599              local(i,j,bi,bj) = salt(i,j,1,bi,bj)
600             ENDDO
601            ENDDO
602           ENDDO
603          ENDDO
604          CALL GATHER_2D( xfer_array, local, myThid )
605          _BEGIN_MASTER( myThid )
606          IF ( myworldid .EQ. local_ocean_leader ) THEN
607           buffsize = Nx*Ny
608           CALL MPI_SEND(xfer_array,buffsize,MPI_DOUBLE_PRECISION,
609         &    local_ice_leader,SssTag,MPI_COMM_WORLD,mpierr)
610          ENDIF
611          _END_MASTER( myThid )
612    
613  C     Send surface u current  C     Send surface u current
614        DO bj=1,nSy        DO bj=1,nSy
615         DO bi=1,nSx         DO bi=1,nSx
# Line 645  C     Receive ice area Line 672  C     Receive ice area
672        ENDIF        ENDIF
673        _END_MASTER( myThid )        _END_MASTER( myThid )
674        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
675          DO bj=1,nSy
676           DO bi=1,nSx
677            DO j=1,sNy
678             DO i=1,sNx
679              AREA(i,j,bi,bj) = local(i,j,bi,bj)
680             ENDDO
681            ENDDO
682           ENDDO
683          ENDDO
684        
685  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
686        DO bj=1,nSy        DO bj=1,nSy
687         DO bi=1,nSx         DO bi=1,nSx
# Line 667  C     Receive ice thickness Line 704  C     Receive ice thickness
704        ENDIF        ENDIF
705        _END_MASTER( myThid )        _END_MASTER( myThid )
706        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
707          DO bj=1,nSy
708           DO bi=1,nSx
709            DO j=1,sNy
710             DO i=1,sNx
711              HEFF(i,j,bi,bj) = local(i,j,bi,bj)
712             ENDDO
713            ENDDO
714           ENDDO
715          ENDDO
716  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
717        DO bj=1,nSy        DO bj=1,nSy
718         DO bi=1,nSx         DO bi=1,nSx
# Line 689  C     Receive ice salinity Line 735  C     Receive ice salinity
735        ENDIF        ENDIF
736        _END_MASTER( myThid )        _END_MASTER( myThid )
737        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
738          DO bj=1,nSy
739           DO bi=1,nSx
740            DO j=1,sNy
741             DO i=1,sNx
742              HSALT(i,j,bi,bj) = local(i,j,bi,bj)
743             ENDDO
744            ENDDO
745           ENDDO
746          ENDDO
747  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
748        DO bj=1,nSy        DO bj=1,nSy
749         DO bi=1,nSx         DO bi=1,nSx
# Line 711  C     Receive snow thickness Line 766  C     Receive snow thickness
766        ENDIF        ENDIF
767        _END_MASTER( myThid )        _END_MASTER( myThid )
768        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
769          DO bj=1,nSy
770           DO bi=1,nSx
771            DO j=1,sNy
772             DO i=1,sNx
773              HSNOW(i,j,bi,bj) = local(i,j,bi,bj)
774             ENDDO
775            ENDDO
776           ENDDO
777          ENDDO
778  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
779        DO bj=1,nSy        DO bj=1,nSy
780         DO bi=1,nSx         DO bi=1,nSx
# Line 733  C     Receive u surface stress Line 797  C     Receive u surface stress
797        ENDIF        ENDIF
798        _END_MASTER( myThid )        _END_MASTER( myThid )
799        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
800          DO bj=1,nSy
801           DO bi=1,nSx
802            DO j=1,sNy
803             DO i=1,sNx
804              fu(i,j,bi,bj) = AREA(i,j,bi,bj) * local(i,j,bi,bj)
805         &                (1.-AREA(i,j,bi,bj) * fu_tmp(i,j,bi,bj)
806             ENDDO
807            ENDDO
808           ENDDO
809          ENDDO
810  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
811        DO bj=1,nSy        DO bj=1,nSy
812         DO bi=1,nSx         DO bi=1,nSx
# Line 755  C     Receive v surface stress Line 829  C     Receive v surface stress
829        ENDIF        ENDIF
830        _END_MASTER( myThid )        _END_MASTER( myThid )
831        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
832          DO bj=1,nSy
833           DO bi=1,nSx
834            DO j=1,sNy
835             DO i=1,sNx
836              fv(i,j,bi,bj) = AREA(i,j,bi,bj) * local(i,j,bi,bj)
837         &                (1.-AREA(i,j,bi,bj) * fv_tmp(i,j,bi,bj)
838             ENDDO
839            ENDDO
840           ENDDO
841          ENDDO
842  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
843        DO bj=1,nSy        DO bj=1,nSy
844         DO bi=1,nSx         DO bi=1,nSx
# Line 777  C     Receive residual shortwave Line 861  C     Receive residual shortwave
861        ENDIF        ENDIF
862        _END_MASTER( myThid )        _END_MASTER( myThid )
863        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
864          DO bj=1,nSy
865           DO bi=1,nSx
866            DO j=1,sNy
867             DO i=1,sNx
868              Qsw(i,j,bi,bj) = -AREA(i,j,bi,bj) * local(i,j,bi,bj) +
869         &                  (1.-AREA(i,j,bi,bj) * Qsw_tmp(i,j,bi,bj)
870             ENDDO
871            ENDDO
872           ENDDO
873          ENDDO
874  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
875        DO bj=1,nSy        DO bj=1,nSy
876         DO bi=1,nSx         DO bi=1,nSx
# Line 799  C     Receive heat flux Line 893  C     Receive heat flux
893        ENDIF        ENDIF
894        _END_MASTER( myThid )        _END_MASTER( myThid )
895        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
896          DO bj=1,nSy
897           DO bi=1,nSx
898            DO j=1,sNy
899             DO i=1,sNx
900              fv(i,j,bi,bj) = Qsw(i,j,bi,bj) -
901         &                   AREA(i,j,bi,bj) * local(i,j,bi,bj) +
902         &               (1.-AREA(i,j,bi,bj) * Qnet_tmp(i,j,bi,bj)
903             ENDDO
904            ENDDO
905           ENDDO
906          ENDDO
907  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
908        DO bj=1,nSy        DO bj=1,nSy
909         DO bi=1,nSx         DO bi=1,nSx
# Line 821  C     Receive freshwater flux Line 926  C     Receive freshwater flux
926        ENDIF        ENDIF
927        _END_MASTER( myThid )        _END_MASTER( myThid )
928        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
929          DO bj=1,nSy
930           DO bi=1,nSx
931            DO j=1,sNy
932             DO i=1,sNx
933              EmPmR(i,j,bi,bj) = - rhoConstFresh *
934         &                    AREA(i,j,bi,bj) * local(i,j,bi,bj) +
935         &                (1.-AREA(i,j,bi,bj) * EmPmR_tmp(i,j,bi,bj)
936             ENDDO
937            ENDDO
938           ENDDO
939          ENDDO
940  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
941        DO bj=1,nSy        DO bj=1,nSy
942         DO bi=1,nSx         DO bi=1,nSx
# Line 843  C     Receive salt flux Line 959  C     Receive salt flux
959        ENDIF        ENDIF
960        _END_MASTER( myThid )        _END_MASTER( myThid )
961        CALL SCATTER_2D( xfer_array, local, myThid )        CALL SCATTER_2D( xfer_array, local, myThid )
962          DO bj=1,nSy
963           DO bi=1,nSx
964            DO j=1,sNy
965             DO i=1,sNx
966              saltFlux(i,j,bi,bj) = - AREA(i,j,bi,bj) * local(i,j,bi,bj)
967             ENDDO
968            ENDDO
969           ENDDO
970          ENDDO
971  #ifdef CPL_DEBUG  #ifdef CPL_DEBUG
972        DO bj=1,nSy        DO bj=1,nSy
973         DO bi=1,nSx         DO bi=1,nSx

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.22