Ignore:
Timestamp:
Jun 30, 2023, 8:18:43 PM (11 months ago)
Author:
yann meurdesoif
Message:

Suppress CPP_MPI key usage in source code. MPI wrappers is used to supress missing symbol if the mpi library is not linked

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dyn3dmem/parallel_lmdz.F90

    r4593 r4600  
    44  MODULE parallel_lmdz
    55  USE mod_const_mpi
     6  USE lmdz_mpi, ONLY : using_mpi
    67#ifdef CPP_IOIPSL
    78      use IOIPSL
     
    1213    INTEGER,PARAMETER :: halo_max=3
    1314   
    14     LOGICAL,SAVE :: using_mpi ! .true. if using MPI
    1515    LOGICAL,SAVE :: using_omp ! .true. if using OpenMP
    1616    LOGICAL,SAVE :: is_master ! .true. if the core is both MPI & OpenMP master
     
    8888    subroutine init_parallel
    8989    USE vampir
     90    USE lmdz_mpi
    9091    implicit none
    91 #ifdef CPP_MPI
    92       include 'mpif.h'
    93 #endif
    9492      INCLUDE "dimensions.h"
    9593      INCLUDE "paramet.h"
     
    111109#endif 
    112110
    113 #ifdef CPP_MPI
    114        using_mpi=.TRUE.
    115 #else
    116        using_mpi=.FALSE.
    117 #endif
    118      
    119 
    120111#ifdef CPP_OMP
    121112       using_OMP=.TRUE.
     
    127118     
    128119      IF (using_mpi) THEN
    129 #ifdef CPP_MPI
    130120        call MPI_COMM_SIZE(COMM_LMDZ,mpi_size,ierr)
    131121        call MPI_COMM_RANK(COMM_LMDZ,mpi_rank,ierr)
    132 #endif
    133122      ELSE
    134123        mpi_size=1
     
    161150         write(lunout,*)" ---> diminuez le nombre de CPU ou augmentez la taille en lattitude"
    162151         
    163 #ifdef CPP_MPI
    164152          IF (using_mpi) call MPI_ABORT(COMM_LMDZ,-1, ierr)
    165 #endif         
     153
    166154        endif
    167155       
     
    395383   
    396384    subroutine Finalize_parallel
     385    USE lmdz_mpi
    397386#ifdef CPP_XIOS
    398387    ! ug Pour les sorties XIOS
     
    418407      include "dimensions.h"
    419408      include "paramet.h"
    420 #ifdef CPP_MPI
    421       include 'mpif.h'
    422 #endif     
    423409
    424410      integer :: ierr
     
    446432      CALL wxios_close()
    447433#endif
    448 #ifdef CPP_MPI
    449          IF (using_mpi) call MPI_FINALIZE(ierr)
    450 #endif
     434      IF (using_mpi) call MPI_FINALIZE(ierr)
    451435      end if
    452436     
     
    502486   
    503487    SUBROUTINE barrier
     488    USE lmdz_mpi
    504489    IMPLICIT NONE
    505 #ifdef CPP_MPI
    506     INCLUDE 'mpif.h'
    507 #endif
    508490    INTEGER :: ierr
    509491   
    510492!$OMP CRITICAL (MPI)     
    511 #ifdef CPP_MPI
    512493      IF (using_mpi) CALL MPI_Barrier(COMM_LMDZ,ierr)
    513 #endif
    514494!$OMP END CRITICAL (MPI)
    515495   
     
    518498     
    519499    subroutine exchange_hallo(Field,ij,ll,up,down)
     500    USE lmdz_mpi
    520501    USE Vampir
    521502    implicit none
    522503      INCLUDE "dimensions.h"
    523504      INCLUDE "paramet.h"   
    524 #ifdef CPP_MPI
    525     include 'mpif.h'
    526 #endif   
    527505      INTEGER :: ij,ll
    528506      REAL, dimension(ij,ll) :: Field
     
    533511      LOGICAL :: RecvUp,RecvDown
    534512      INTEGER, DIMENSION(4) :: Request
    535 #ifdef CPP_MPI
    536513      INTEGER, DIMENSION(MPI_STATUS_SIZE,4) :: Status
    537 #else
    538       INTEGER, DIMENSION(1,4) :: Status
    539 #endif
     514
    540515      INTEGER :: NbRequest
    541516      REAL, dimension(:),allocatable :: Buffer_Send_up,Buffer_Send_down
     
    582557          call PACK_Data(Field(ij_begin,1),ij,ll,down,Buffer_Send_up)
    583558!$OMP CRITICAL (MPI)
    584 #ifdef CPP_MPI
    585559          call MPI_ISEND(Buffer_send_up,Buffer_Size,MPI_REAL8,MPI_Rank-1,1,     &
    586560                          COMM_LMDZ,Request(NbRequest),ierr)
    587 #endif
    588561!$OMP END CRITICAL (MPI)
    589562        ENDIF
     
    597570       
    598571!$OMP CRITICAL (MPI)
    599 #ifdef CPP_MPI
    600572          call MPI_ISEND(Buffer_send_down,Buffer_Size,MPI_REAL8,MPI_Rank+1,1,     &
    601573                          COMM_LMDZ,Request(NbRequest),ierr)
    602 #endif
    603574!$OMP END CRITICAL (MPI)
    604575        ENDIF
     
    611582             
    612583!$OMP CRITICAL (MPI)
    613 #ifdef CPP_MPI
    614584          call MPI_IRECV(Buffer_recv_up,Buffer_size,MPI_REAL8,MPI_Rank-1,1,  &
    615585                          COMM_LMDZ,Request(NbRequest),ierr)
    616 #endif
    617586!$OMP END CRITICAL (MPI)
    618587     
     
    626595       
    627596!$OMP CRITICAL (MPI)
    628 #ifdef CPP_MPI
    629597          call MPI_IRECV(Buffer_recv_down,Buffer_size,MPI_REAL8,MPI_Rank+1,1,     &
    630598                          COMM_LMDZ,Request(NbRequest),ierr)
    631 #endif
    632599!$OMP END CRITICAL (MPI)
    633600       
    634601        ENDIF
    635602 
    636 #ifdef CPP_MPI
    637603        if (NbRequest > 0) call MPI_WAITALL(NbRequest,Request,Status,ierr)
    638 #endif
    639604        IF (RecvUp)  call Unpack_Data(Field(ij_begin-up*iip1,1),ij,ll,up,Buffer_Recv_up)
    640605        IF (RecvDown) call Unpack_Data(Field(ij_end+1,1),ij,ll,down,Buffer_Recv_down) 
     
    651616
    652617    subroutine Gather_Field(Field,ij,ll,rank)
     618    USE lmdz_mpi
    653619    implicit none
    654620    INCLUDE "dimensions.h"
    655621    INCLUDE "paramet.h"
    656622    INCLUDE "iniprint.h"
    657 #ifdef CPP_MPI
    658     include 'mpif.h'
    659 #endif   
    660623      INTEGER :: ij,ll,rank
    661624      REAL, dimension(ij,ll) :: Field
     
    709672 
    710673!$OMP CRITICAL (MPI)
    711 #ifdef CPP_MPI
    712674        call MPI_GATHERV(Buffer_send,(min(ij_end,ij)-ij_begin+1)*ll,MPI_REAL8,   &
    713675                          Buffer_Recv,Recv_count,displ,MPI_REAL8,rank,COMM_LMDZ,ierr)
    714 #endif
    715676!$OMP END CRITICAL (MPI)
    716677     
     
    735696
    736697    subroutine AllGather_Field(Field,ij,ll)
     698    USE lmdz_mpi
    737699    implicit none
    738700    INCLUDE "dimensions.h"
    739701    INCLUDE "paramet.h"   
    740 #ifdef CPP_MPI
    741     include 'mpif.h'
    742 #endif   
    743702      INTEGER :: ij,ll
    744703      REAL, dimension(ij,ll) :: Field
     
    748707        call Gather_Field(Field,ij,ll,0)
    749708!$OMP CRITICAL (MPI)
    750 #ifdef CPP_MPI
    751709      call MPI_BCAST(Field,ij*ll,MPI_REAL8,0,COMM_LMDZ,ierr)
    752 #endif
    753710!$OMP END CRITICAL (MPI)
    754711      ENDIF
     
    757714   
    758715   subroutine Broadcast_Field(Field,ij,ll,rank)
     716    USE lmdz_mpi
    759717    implicit none
    760718    INCLUDE "dimensions.h"
    761719    INCLUDE "paramet.h"   
    762 #ifdef CPP_MPI
    763     include 'mpif.h'
    764 #endif   
    765720      INTEGER :: ij,ll
    766721      REAL, dimension(ij,ll) :: Field
     
    771726     
    772727!$OMP CRITICAL (MPI)
    773 #ifdef CPP_MPI
    774728      call MPI_BCAST(Field,ij*ll,MPI_REAL8,rank,COMM_LMDZ,ierr)
    775 #endif
    776729!$OMP END CRITICAL (MPI)
    777730     
     
    781734   
    782735!  Subroutine verif_hallo(Field,ij,ll,up,down)
     736!    USE lmdz_mpi
    783737!    implicit none
    784738!      INCLUDE "dimensions.h"
    785739!      INCLUDE "paramet.h"   
    786 !    include 'mpif.h'
    787740!   
    788741!      INTEGER :: ij,ll
Note: See TracChangeset for help on using the changeset viewer.