Ignore:
Timestamp:
Sep 20, 2006, 12:12:39 PM (18 years ago)
Author:
Laurent Fairhead
Message:

Nouvelles versions de la dynamique YM
LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/V3_test/libf/dyn3dpar/parallel.F90

    r630 r709  
    33    integer, save :: mpi_size
    44    integer, save :: mpi_rank
     5    integer, save :: COMM_LMDZ
    56    integer, save :: jj_begin
    67    integer, save :: jj_end
     
    1415    integer, allocatable, save, dimension(:) :: jj_end_para
    1516    integer, allocatable, save, dimension(:) :: jj_nb_para
     17    integer, save :: OMP_CHUNK
    1618   
    1719 contains
     
    1921    subroutine init_parallel
    2022    USE vampir
     23#ifdef CPP_COUPLE
     24#ifdef CPP_PSMILE
     25    USE mod_prism_proto
     26#endif
     27#endif
    2128    implicit none
    2229   
     
    2532      integer :: type_size
    2633      integer, dimension(3) :: blocklen,type
     34      integer :: comp_id
    2735     
    2836     
     
    3038#include "dimensions90.h"
    3139#include "paramet90.h"
    32      
     40
     41#ifdef CPP_COUPLE
     42#ifdef CPP_PSMILE
     43       call prism_init_comp_proto (comp_id, 'lmdz.x', ierr)
     44       call prism_get_localcomm_proto(COMM_LMDZ,ierr)
     45#endif
     46#else     
    3347      call MPI_INIT(ierr)
     48      COMM_LMDZ=MPI_COMM_WORLD
     49#endif
    3450      call InitVampir
    35       call MPI_COMM_SIZE(MPI_COMM_WORLD,mpi_size,ierr)
    36       call MPI_COMM_RANK(MPI_COMM_WORLD,mpi_rank,ierr)
     51      call MPI_COMM_SIZE(COMM_LMDZ,mpi_size,ierr)
     52      call MPI_COMM_RANK(COMM_LMDZ,mpi_rank,ierr)
    3753 
    3854     
     
    5066          print *," ---> diminuez le nombre de CPU ou augmentez la taille en lattitude"
    5167         
    52           call MPI_ABORT(MPI_COMM_WORLD,-1, ierr)
     68          call MPI_ABORT(COMM_LMDZ,-1, ierr)
    5369         
    5470        endif
     
    133149   
    134150    subroutine Finalize_parallel
     151#ifdef CPP_COUPLE
     152#ifdef CPP_PSMILE
     153    use mod_prism_proto
     154#endif
     155#endif
    135156    implicit none
    136157
     
    144165      deallocate(jj_end_para)
    145166      deallocate(jj_nb_para)
    146      
     167
     168#ifdef CPP_COUPLE
     169#ifdef CPP_PSMILE
     170     call prism_terminate_proto(ierr)
     171     IF (ierr .ne. PRISM_Ok) THEN
     172       call abort_gcm('Finalize_parallel',' Probleme dans prism_terminate_proto ',1)
     173     endif
     174#endif
     175#else         
    147176      call MPI_FINALIZE(ierr)
     177#endif
    148178     
    149179    end subroutine Finalize_parallel
    150    
     180       
    151181    subroutine Pack_Data(Field,ij,ll,row,Buffer)
    152182    implicit none
     
    217247      INTEGER :: Buffer_size     
    218248     
    219       call MPI_Barrier(MPI_COMM_WORLD,ierr)
     249      call MPI_Barrier(COMM_LMDZ,ierr)
    220250      call VTb(VThallo)
    221251     
     
    253283        call PACK_Data(Field(ij_begin,1),ij,ll,down,Buffer_Send_up)
    254284        call MPI_ISSEND(Buffer_send_up,Buffer_Size,MPI_REAL8,MPI_Rank-1,1,     &
    255                         MPI_COMM_WORLD,Request(NbRequest),ierr)
     285                        COMM_LMDZ,Request(NbRequest),ierr)
    256286      ENDIF
    257287 
     
    264294       
    265295        call MPI_ISSEND(Buffer_send_down,Buffer_Size,MPI_REAL8,MPI_Rank+1,1,     &
    266                         MPI_COMM_WORLD,Request(NbRequest),ierr)
     296                        COMM_LMDZ,Request(NbRequest),ierr)
    267297      ENDIF
    268298   
     
    274304             
    275305        call MPI_IRECV(Buffer_recv_up,Buffer_size,MPI_REAL8,MPI_Rank-1,1,  &
    276                         MPI_COMM_WORLD,Request(NbRequest),ierr)
     306                        COMM_LMDZ,Request(NbRequest),ierr)
    277307     
    278308       
     
    285315       
    286316        call MPI_IRECV(Buffer_recv_down,Buffer_size,MPI_REAL8,MPI_Rank+1,1,     &
    287                         MPI_COMM_WORLD,Request(NbRequest),ierr)
     317                        COMM_LMDZ,Request(NbRequest),ierr)
    288318     
    289319       
     
    295325
    296326      call VTe(VThallo)
    297       call MPI_Barrier(MPI_COMM_WORLD,ierr)
     327      call MPI_Barrier(COMM_LMDZ,ierr)
    298328      RETURN
    299329     
     
    349379     
    350380      call MPI_GATHERV(Buffer_send,(min(ij_end,ij)-ij_begin+1)*ll,MPI_REAL8,   &
    351                         Buffer_Recv,Recv_count,displ,MPI_REAL8,rank,MPI_COMM_WORLD,ierr)
     381                        Buffer_Recv,Recv_count,displ,MPI_REAL8,rank,COMM_LMDZ,ierr)
    352382     
    353383      if (MPI_Rank==rank) then                 
     
    380410     
    381411      call Gather_Field(Field,ij,ll,0)
    382       call MPI_BCAST(Field,ij*ll,MPI_REAL8,0,MPI_COMM_WORLD)
     412      call MPI_BCAST(Field,ij*ll,MPI_REAL8,0,COMM_LMDZ)
    383413     
    384414    end subroutine AllGather_Field
     
    395425      INTEGER :: ierr
    396426     
    397       call MPI_BCAST(Field,ij*ll,MPI_REAL8,rank,MPI_COMM_WORLD)
     427      call MPI_BCAST(Field,ij*ll,MPI_REAL8,rank,COMM_LMDZ)
    398428     
    399429    end subroutine Broadcast_Field
Note: See TracChangeset for help on using the changeset viewer.