Ignore:
Timestamp:
Oct 30, 2023, 5:37:00 PM (8 months ago)
Author:
Laurent Fairhead
Message:

Merge of ACC branch with 4740 revision from trunk

Location:
LMDZ6/branches/Portage_acc
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Portage_acc

  • LMDZ6/branches/Portage_acc/libf/phy_common/abort_physic.F90

    r4584 r4743  
    3838      if (ierr .eq. 0) then
    3939        write(lunout,*) 'Everything is cool'
    40 #ifdef CPP_MPI
    41         !$OMP CRITICAL (MPI_ABORT_PHYSIC)
    42         call MPI_ABORT(COMM_LMDZ_PHY, 0, ierror_mpi)
    43         !$OMP END CRITICAL (MPI_ABORT_PHYSIC)
    44 #else
    45         stop 0
    46 #endif         
     40        if (using_mpi) then
     41          !$OMP CRITICAL (MPI_ABORT_PHYSIC)
     42          call MPI_ABORT(COMM_LMDZ_PHY, 0, ierror_mpi)
     43          !$OMP END CRITICAL (MPI_ABORT_PHYSIC)
     44        else
     45          stop 0
     46        endif         
    4747      else
    4848        write(lunout,*) 'Houston, we have a problem, ierr = ', ierr
    49 #ifdef CPP_MPI
    50 !$OMP CRITICAL (MPI_ABORT_PHYSIC)
    51         call MPI_ABORT(COMM_LMDZ_PHY, 1, ierror_mpi)
    52 !$OMP END CRITICAL (MPI_ABORT_PHYSIC)
    53 #else
    54         stop 1
    55 #endif         
     49        if (using_mpi) then
     50          !$OMP CRITICAL (MPI_ABORT_PHYSIC)
     51          call MPI_ABORT(COMM_LMDZ_PHY, 1, ierror_mpi)
     52          !$OMP END CRITICAL (MPI_ABORT_PHYSIC)
     53        else
     54          stop 1
     55        endif         
    5656      endif
    5757      END
  • LMDZ6/branches/Portage_acc/libf/phy_common/mod_phys_lmdz_mpi_data.F90

    r4127 r4743  
    33!
    44MODULE mod_phys_lmdz_mpi_data
    5  
     5  USE lmdz_mpi
     6
    67  INTEGER,SAVE :: ii_begin
    78  INTEGER,SAVE :: ii_end
     
    4748 
    4849  SUBROUTINE init_phys_lmdz_mpi_data(nbp, nbp_lon, nbp_lat, nbp_lev, grid_type, nvertex, communicator)
    49 
     50  USE lmdz_mpi
    5051  IMPLICIT NONE
    51 #ifdef CPP_MPI
    52     INCLUDE 'mpif.h'
    53 #endif
    5452    INTEGER,INTENT(IN) :: nbp
    5553    INTEGER,INTENT(IN) :: nbp_lon
     
    6563    INTEGER :: i
    6664   
    67 #ifdef CPP_MPI
    68     is_using_mpi=.TRUE.
    69 #else
    70     is_using_mpi=.FALSE.
    71 #endif
     65    is_using_mpi = using_mpi
    7266   
    7367    if ((nbp_lon.eq.1).and.(nbp_lat.eq.1)) then ! running 1D column model
     
    8276
    8377    IF (is_using_mpi) THEN   
    84 #ifdef CPP_MPI
    8578      MPI_REAL_LMDZ=MPI_REAL8
    8679      CALL MPI_COMM_SIZE(COMM_LMDZ_PHY,mpi_size,ierr)   
    8780      CALL MPI_COMM_RANK(COMM_LMDZ_PHY,mpi_rank,ierr)
    88 #endif
    8981    ELSE
    9082      mpi_size=1
     
    9587
    9688    IF (is_using_mpi) THEN   
    97 #ifdef CPP_MPI
    98     CALL MPI_ALLGATHER(nbp,1,MPI_INTEGER,distrib,1,MPI_INTEGER,COMM_LMDZ_PHY,ierr)
    99 #endif
     89      CALL MPI_ALLGATHER(nbp,1,MPI_INTEGER,distrib,1,MPI_INTEGER,COMM_LMDZ_PHY,ierr)
    10090    ELSE
    10191     distrib(:)=nbp
  • LMDZ6/branches/Portage_acc/libf/phy_common/mod_phys_lmdz_mpi_transfert.F90

    r3465 r4743  
    13671367  SUBROUTINE bcast_mpi_cgen(var,nb)
    13681368    USE mod_phys_lmdz_mpi_data
     1369    USE lmdz_mpi
    13691370    IMPLICIT NONE
    13701371   
     
    13721373    INTEGER,INTENT(IN) :: nb
    13731374   
    1374 #ifdef CPP_MPI
    1375     INCLUDE 'mpif.h'
    1376 #endif
    13771375    INTEGER :: ierr
    13781376
    13791377    IF (.not.is_using_mpi) RETURN
    13801378   
    1381 #ifdef CPP_MPI
    13821379    CALL MPI_BCAST(Var,nb,MPI_CHARACTER,mpi_master,COMM_LMDZ_PHY,ierr)
    1383 #endif
    13841380       
    13851381  END SUBROUTINE bcast_mpi_cgen
     
    13891385  SUBROUTINE bcast_mpi_igen(var,nb)
    13901386    USE mod_phys_lmdz_mpi_data
     1387    USE lmdz_mpi
    13911388    IMPLICIT NONE
    13921389   
     
    13941391    INTEGER,DIMENSION(nb),INTENT(INOUT) :: Var
    13951392   
    1396 #ifdef CPP_MPI
    1397     INCLUDE 'mpif.h'
    1398 #endif
    13991393    INTEGER :: ierr
    14001394
    14011395    IF (.not.is_using_mpi) RETURN
    14021396
    1403 #ifdef CPP_MPI
    14041397    CALL MPI_BCAST(Var,nb,MPI_INTEGER,mpi_master,COMM_LMDZ_PHY,ierr)
    1405 #endif
    14061398       
    14071399  END SUBROUTINE bcast_mpi_igen
     
    14121404  SUBROUTINE bcast_mpi_rgen(var,nb)
    14131405    USE mod_phys_lmdz_mpi_data
     1406    USE lmdz_mpi
    14141407    IMPLICIT NONE
    14151408   
     
    14171410    REAL,DIMENSION(nb),INTENT(INOUT) :: Var
    14181411   
    1419 #ifdef CPP_MPI
    1420     INCLUDE 'mpif.h'
    1421 #endif
    14221412    INTEGER :: ierr
    14231413
    14241414    IF (.not.is_using_mpi) RETURN
    14251415
    1426 #ifdef CPP_MPI
    14271416    CALL MPI_BCAST(Var,nb,MPI_REAL_LMDZ,mpi_master,COMM_LMDZ_PHY,ierr)
    1428 #endif
    14291417   
    14301418  END SUBROUTINE bcast_mpi_rgen
     
    14351423  SUBROUTINE bcast_mpi_lgen(var,nb)
    14361424    USE mod_phys_lmdz_mpi_data
     1425    USE lmdz_mpi
    14371426    IMPLICIT NONE
    14381427   
     
    14401429    LOGICAL,DIMENSION(nb),INTENT(INOUT) :: Var
    14411430   
    1442 #ifdef CPP_MPI
    1443     INCLUDE 'mpif.h'
    1444 #endif
    14451431    INTEGER :: ierr
    14461432
    14471433    IF (.not.is_using_mpi) RETURN
    14481434
    1449 #ifdef CPP_MPI
    14501435    CALL MPI_BCAST(Var,nb,MPI_LOGICAL,mpi_master,COMM_LMDZ_PHY,ierr)
    1451 #endif
    14521436
    14531437  END SUBROUTINE bcast_mpi_lgen
     
    14581442    USE mod_phys_lmdz_mpi_data
    14591443    USE mod_grid_phy_lmdz
     1444    USE lmdz_mpi
    14601445    IMPLICIT NONE
    14611446 
     
    14641449    INTEGER,INTENT(OUT),DIMENSION(klon_mpi,dimsize) :: VarOut
    14651450 
    1466 #ifdef CPP_MPI
    1467     INCLUDE 'mpif.h'
    1468 #endif
    14691451    INTEGER,DIMENSION(0:mpi_size-1) :: displs
    14701452    INTEGER,DIMENSION(0:mpi_size-1) :: counts
     
    14931475    ENDIF
    14941476     
    1495 #ifdef CPP_MPI
    14961477    CALL MPI_SCATTERV(VarTmp,counts,displs,MPI_INTEGER,VarOut,klon_mpi*dimsize,   &
    14971478                      MPI_INTEGER,mpi_master, COMM_LMDZ_PHY,ierr)
    1498 #endif
    14991479
    15001480  END SUBROUTINE scatter_mpi_igen
     
    15031483    USE mod_phys_lmdz_mpi_data
    15041484    USE mod_grid_phy_lmdz
     1485    USE lmdz_mpi
    15051486    IMPLICIT NONE
    15061487 
     
    15081489    REAL,INTENT(IN),DIMENSION(klon_glo,dimsize) :: VarIn
    15091490    REAL,INTENT(OUT),DIMENSION(klon_mpi,dimsize) :: VarOut
    1510  
    1511 #ifdef CPP_MPI
    1512     INCLUDE 'mpif.h'
    1513 #endif
    15141491
    15151492    INTEGER,DIMENSION(0:mpi_size-1) :: displs
     
    15371514    ENDIF
    15381515     
    1539 #ifdef CPP_MPI
    15401516    CALL MPI_SCATTERV(VarTmp,counts,displs,MPI_REAL_LMDZ,VarOut,klon_mpi*dimsize,   &
    15411517                      MPI_REAL_LMDZ,mpi_master, COMM_LMDZ_PHY,ierr)
    15421518
    1543 #endif
    1544 
    15451519  END SUBROUTINE scatter_mpi_rgen
    15461520
     
    15491523    USE mod_phys_lmdz_mpi_data
    15501524    USE mod_grid_phy_lmdz
     1525    USE lmdz_mpi
    15511526    IMPLICIT NONE
    15521527 
     
    15551530    LOGICAL,INTENT(OUT),DIMENSION(klon_mpi,dimsize) :: VarOut
    15561531 
    1557 #ifdef CPP_MPI
    1558     INCLUDE 'mpif.h'
    1559 #endif
    15601532
    15611533    INTEGER,DIMENSION(0:mpi_size-1) :: displs
     
    15831555    ENDIF
    15841556     
    1585 #ifdef CPP_MPI
    15861557    CALL MPI_SCATTERV(VarTmp,counts,displs,MPI_LOGICAL,VarOut,klon_mpi*dimsize,   &
    15871558                      MPI_LOGICAL,mpi_master, COMM_LMDZ_PHY,ierr)
    1588 #endif
    15891559
    15901560  END SUBROUTINE scatter_mpi_lgen 
     
    15961566    USE mod_phys_lmdz_mpi_data
    15971567    USE mod_grid_phy_lmdz
    1598     IMPLICIT NONE
    1599  
    1600 #ifdef CPP_MPI
    1601     INCLUDE 'mpif.h'
    1602 #endif
    1603    
     1568    USE lmdz_mpi
     1569    IMPLICIT NONE
     1570 
    16041571    INTEGER,INTENT(IN) :: dimsize
    16051572    INTEGER,INTENT(IN),DIMENSION(klon_mpi,dimsize) :: VarIn
     
    16281595    ENDIF
    16291596   
    1630 #ifdef CPP_MPI
    16311597    CALL MPI_GATHERV(VarIn,klon_mpi*dimsize,MPI_INTEGER,VarTmp,counts,displs,   &
    16321598                     MPI_INTEGER,mpi_master, COMM_LMDZ_PHY,ierr)
    1633 #endif
    16341599
    16351600                         
     
    16501615    USE mod_phys_lmdz_mpi_data
    16511616    USE mod_grid_phy_lmdz
    1652     IMPLICIT NONE
    1653  
    1654 #ifdef CPP_MPI
    1655     INCLUDE 'mpif.h'
    1656 #endif
    1657    
     1617    USE lmdz_mpi
     1618    IMPLICIT NONE
     1619 
    16581620    INTEGER,INTENT(IN) :: dimsize
    16591621    REAL,INTENT(IN),DIMENSION(klon_mpi,dimsize) :: VarIn
     
    16811643    ENDIF
    16821644
    1683 #ifdef CPP_MPI
    16841645    CALL MPI_GATHERV(VarIn,klon_mpi*dimsize,MPI_REAL_LMDZ,VarTmp,counts,displs,   &
    16851646                      MPI_REAL_LMDZ,mpi_master, COMM_LMDZ_PHY,ierr)
    1686 #endif
    16871647                         
    16881648    IF (is_mpi_root) THEN
     
    17021662    USE mod_phys_lmdz_mpi_data
    17031663    USE mod_grid_phy_lmdz
     1664    USE lmdz_mpi
    17041665    IMPLICIT NONE
    17051666 
     
    17071668    LOGICAL,INTENT(IN),DIMENSION(klon_mpi,dimsize) :: VarIn
    17081669    LOGICAL,INTENT(OUT),DIMENSION(klon_glo,dimsize) :: VarOut
    1709  
    1710 #ifdef CPP_MPI
    1711     INCLUDE 'mpif.h'
    1712 #endif
    17131670
    17141671    INTEGER,DIMENSION(0:mpi_size-1) :: displs
     
    17341691   
    17351692
    1736 #ifdef CPP_MPI
    17371693    CALL MPI_GATHERV(VarIn,klon_mpi*dimsize,MPI_LOGICAL,VarTmp,counts,displs,   &
    17381694                      MPI_LOGICAL,mpi_master, COMM_LMDZ_PHY,ierr)
    1739 #endif
    17401695                         
    17411696    IF (is_mpi_root) THEN
     
    17571712    USE mod_phys_lmdz_mpi_data
    17581713    USE mod_grid_phy_lmdz
    1759     IMPLICIT NONE
    1760    
    1761 #ifdef CPP_MPI
    1762     INCLUDE 'mpif.h'
    1763 #endif
     1714    USE lmdz_mpi
     1715    IMPLICIT NONE
    17641716   
    17651717    INTEGER,INTENT(IN) :: nb
     
    17741726
    17751727
    1776 #ifdef CPP_MPI
    17771728    CALL MPI_REDUCE(VarIn,VarOut,nb,MPI_INTEGER,MPI_SUM,mpi_master,COMM_LMDZ_PHY,ierr)
    1778 #endif
    17791729           
    17801730  END SUBROUTINE reduce_sum_mpi_igen
     
    17831733    USE mod_phys_lmdz_mpi_data
    17841734    USE mod_grid_phy_lmdz
    1785 
    1786     IMPLICIT NONE
    1787 
    1788 #ifdef CPP_MPI
    1789     INCLUDE 'mpif.h'
    1790 #endif
    1791    
     1735    USE lmdz_mpi
     1736    IMPLICIT NONE
     1737
    17921738    INTEGER,INTENT(IN) :: nb
    17931739    REAL,DIMENSION(nb),INTENT(IN) :: VarIn
     
    18001746    ENDIF
    18011747   
    1802 #ifdef CPP_MPI
    18031748    CALL MPI_REDUCE(VarIn,VarOut,nb,MPI_REAL_LMDZ,MPI_SUM,mpi_master,COMM_LMDZ_PHY,ierr)
    1804 #endif
    18051749       
    18061750  END SUBROUTINE reduce_sum_mpi_rgen
     
    18111755    USE mod_phys_lmdz_mpi_data
    18121756    USE mod_grid_phy_lmdz
    1813     IMPLICIT NONE
    1814    
    1815 #ifdef CPP_MPI
    1816     INCLUDE 'mpif.h'
    1817 #endif
    1818    
     1757    USE lmdz_mpi
     1758    IMPLICIT NONE
     1759   
    18191760    INTEGER,INTENT(IN) :: nb
    18201761    INTEGER,DIMENSION(nb),INTENT(IN) :: VarIn
     
    18281769
    18291770
    1830 #ifdef CPP_MPI
    18311771    CALL MPI_REDUCE(VarIn,VarOut,nb,MPI_INTEGER,MPI_MIN,mpi_master,COMM_LMDZ_PHY,ierr)
    1832 #endif
    18331772           
    18341773  END SUBROUTINE reduce_min_mpi_igen
     
    18371776    USE mod_phys_lmdz_mpi_data
    18381777    USE mod_grid_phy_lmdz
    1839 
    1840     IMPLICIT NONE
    1841 
    1842 #ifdef CPP_MPI
    1843     INCLUDE 'mpif.h'
    1844 #endif
    1845    
     1778    USE lmdz_mpi
     1779
     1780    IMPLICIT NONE
     1781
    18461782    INTEGER,INTENT(IN) :: nb
    18471783    REAL,DIMENSION(nb),INTENT(IN) :: VarIn
     
    18541790    ENDIF
    18551791   
    1856 #ifdef CPP_MPI
    18571792    CALL MPI_REDUCE(VarIn,VarOut,nb,MPI_REAL_LMDZ,MPI_MIN,mpi_master,COMM_LMDZ_PHY,ierr)
    1858 #endif
    18591793       
    18601794  END SUBROUTINE reduce_min_mpi_rgen
Note: See TracChangeset for help on using the changeset viewer.