- Timestamp:
- Mar 20, 2014, 10:57:19 AM (10 years ago)
- Location:
- LMDZ5/branches/testing
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/testing
- Property svn:mergeinfo changed
/LMDZ5/trunk merged: 1922-1927,1929-1933,1937-1939,1943-1997
- Property svn:mergeinfo changed
-
LMDZ5/branches/testing/libf/phylmd/mod_phys_lmdz_mpi_transfert.F90
r1910 r1999 9 9 bcast_mpi_i,bcast_mpi_i1,bcast_mpi_i2,bcast_mpi_i3,bcast_mpi_i4, & 10 10 bcast_mpi_r,bcast_mpi_r1,bcast_mpi_r2,bcast_mpi_r3,bcast_mpi_r4, & 11 11 bcast_mpi_l,bcast_mpi_l1,bcast_mpi_l2,bcast_mpi_l3,bcast_mpi_l4 12 12 END INTERFACE 13 13 … … 15 15 MODULE PROCEDURE scatter_mpi_i,scatter_mpi_i1,scatter_mpi_i2,scatter_mpi_i3, & 16 16 scatter_mpi_r,scatter_mpi_r1,scatter_mpi_r2,scatter_mpi_r3, & 17 17 scatter_mpi_l,scatter_mpi_l1,scatter_mpi_l2,scatter_mpi_l3 18 18 END INTERFACE 19 19 … … 22 22 MODULE PROCEDURE gather_mpi_i,gather_mpi_i1,gather_mpi_i2,gather_mpi_i3, & 23 23 gather_mpi_r,gather_mpi_r1,gather_mpi_r2,gather_mpi_r3, & 24 24 gather_mpi_l,gather_mpi_l1,gather_mpi_l2,gather_mpi_l3 25 25 END INTERFACE 26 26 … … 28 28 MODULE PROCEDURE scatter2D_mpi_i,scatter2D_mpi_i1,scatter2D_mpi_i2,scatter2D_mpi_i3, & 29 29 scatter2D_mpi_r,scatter2D_mpi_r1,scatter2D_mpi_r2,scatter2D_mpi_r3, & 30 30 scatter2D_mpi_l,scatter2D_mpi_l1,scatter2D_mpi_l2,scatter2D_mpi_l3 31 31 END INTERFACE 32 32 … … 34 34 MODULE PROCEDURE gather2D_mpi_i,gather2D_mpi_i1,gather2D_mpi_i2,gather2D_mpi_i3, & 35 35 gather2D_mpi_r,gather2D_mpi_r1,gather2D_mpi_r2,gather2D_mpi_r3, & 36 36 gather2D_mpi_l,gather2D_mpi_l1,gather2D_mpi_l2,gather2D_mpi_l3 37 37 END INTERFACE 38 38 … … 45 45 MODULE PROCEDURE grid1dTo2d_mpi_i,grid1dTo2d_mpi_i1,grid1dTo2d_mpi_i2,grid1dTo2d_mpi_i3, & 46 46 grid1dTo2d_mpi_r,grid1dTo2d_mpi_r1,grid1dTo2d_mpi_r2,grid1dTo2d_mpi_r3, & 47 47 grid1dTo2d_mpi_l,grid1dTo2d_mpi_l1,grid1dTo2d_mpi_l2,grid1dTo2d_mpi_l3 48 48 END INTERFACE 49 49 … … 51 51 MODULE PROCEDURE grid2dTo1d_mpi_i,grid2dTo1d_mpi_i1,grid2dTo1d_mpi_i2,grid2dTo1d_mpi_i3, & 52 52 grid2dTo1d_mpi_r,grid2dTo1d_mpi_r1,grid2dTo1d_mpi_r2,grid2dTo1d_mpi_r3, & 53 53 grid2dTo1d_mpi_l,grid2dTo1d_mpi_l1,grid2dTo1d_mpi_l2,grid2dTo1d_mpi_l3 54 54 END INTERFACE 55 55 … … 1261 1261 IMPLICIT NONE 1262 1262 1263 INTEGER,INTENT(IN) :: nb 1263 1264 INTEGER,DIMENSION(nb),INTENT(INOUT) :: Var 1264 INTEGER,INTENT(IN) :: nb1265 1265 1266 1266 #ifdef CPP_MPI … … 1284 1284 IMPLICIT NONE 1285 1285 1286 INTEGER,INTENT(IN) :: nb 1286 1287 REAL,DIMENSION(nb),INTENT(INOUT) :: Var 1287 INTEGER,INTENT(IN) :: nb1288 1288 1289 1289 #ifdef CPP_MPI … … 1307 1307 IMPLICIT NONE 1308 1308 1309 INTEGER,INTENT(IN) :: nb 1309 1310 LOGICAL,DIMENSION(nb),INTENT(INOUT) :: Var 1310 INTEGER,INTENT(IN) :: nb1311 1311 1312 1312 #ifdef CPP_MPI … … 1493 1493 displs(rank)=Index-1 1494 1494 counts(rank)=nb*dimsize 1495 1495 Index=Index+nb*dimsize 1496 1496 ENDDO 1497 1497 … … 1503 1503 #endif 1504 1504 1505 1505 1506 1506 IF (is_mpi_root) THEN 1507 1507 Index=1 … … 1510 1510 DO i=1,dimsize 1511 1511 VarOut(klon_mpi_para_begin(rank):klon_mpi_para_end(rank),i)=VarTmp(Index:Index+nb-1) 1512 1512 Index=Index+nb 1513 1513 ENDDO 1514 1514 ENDDO … … 1542 1542 displs(rank)=Index-1 1543 1543 counts(rank)=nb*dimsize 1544 1544 Index=Index+nb*dimsize 1545 1545 ENDDO 1546 1546 ENDIF … … 1555 1555 MPI_REAL_LMDZ,mpi_root_x, COMM_LMDZ_PHY,ierr) 1556 1556 #endif 1557 1557 1558 1558 IF (is_mpi_root) THEN 1559 1559 Index=1 … … 1562 1562 DO i=1,dimsize 1563 1563 VarOut(klon_mpi_para_begin(rank):klon_mpi_para_end(rank),i)=VarTmp(Index:Index+nb-1) 1564 1564 Index=Index+nb 1565 1565 ENDDO 1566 1566 ENDDO … … 1599 1599 displs(rank)=Index-1 1600 1600 counts(rank)=nb*dimsize 1601 1601 Index=Index+nb*dimsize 1602 1602 ENDDO 1603 1603 ENDIF … … 1608 1608 MPI_LOGICAL,mpi_root_x, COMM_LMDZ_PHY,ierr) 1609 1609 #endif 1610 1610 1611 1611 IF (is_mpi_root) THEN 1612 1612 Index=1 … … 1615 1615 DO i=1,dimsize 1616 1616 VarOut(klon_mpi_para_begin(rank):klon_mpi_para_end(rank),i)=VarTmp(Index:Index+nb-1) 1617 1617 Index=Index+nb 1618 1618 ENDDO 1619 1619 ENDDO … … 1633 1633 #endif 1634 1634 1635 INTEGER,INTENT(IN) :: nb 1635 1636 INTEGER,DIMENSION(nb),INTENT(IN) :: VarIn 1636 1637 INTEGER,DIMENSION(nb),INTENT(OUT) :: VarOut 1637 INTEGER,INTENT(IN) :: nb1638 1638 INTEGER :: ierr 1639 1639 … … 1660 1660 #endif 1661 1661 1662 INTEGER,INTENT(IN) :: nb 1662 1663 REAL,DIMENSION(nb),INTENT(IN) :: VarIn 1663 1664 REAL,DIMENSION(nb),INTENT(OUT) :: VarOut 1664 INTEGER,INTENT(IN) :: nb1665 1665 INTEGER :: ierr 1666 1666 … … 1707 1707 DO ij=1,nbp_lon 1708 1708 VarOut(ij,i)=VarIn(1,i) 1709 1709 ENDDO 1710 1710 ENDDO 1711 1711 ENDIF … … 1715 1715 DO ij=nbp_lon*(jj_nb-1)+1,nbp_lon*jj_nb 1716 1716 VarOut(ij,i)=VarIn(klon_mpi,i) 1717 1717 ENDDO 1718 1718 ENDDO 1719 1719 ENDIF … … 1751 1751 DO ij=1,nbp_lon 1752 1752 VarOut(ij,i)=VarIn(1,i) 1753 1753 ENDDO 1754 1754 ENDDO 1755 1755 ENDIF … … 1759 1759 DO ij=nbp_lon*(jj_nb-1)+1,nbp_lon*jj_nb 1760 1760 VarOut(ij,i)=VarIn(klon_mpi,i) 1761 1761 ENDDO 1762 1762 ENDDO 1763 1763 ENDIF … … 1796 1796 DO ij=1,nbp_lon 1797 1797 VarOut(ij,i)=VarIn(1,i) 1798 1798 ENDDO 1799 1799 ENDDO 1800 1800 ENDIF … … 1804 1804 DO ij=nbp_lon*(jj_nb-1)+1,nbp_lon*jj_nb 1805 1805 VarOut(ij,i)=VarIn(klon_mpi,i) 1806 1806 ENDDO 1807 1807 ENDDO 1808 1808 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.