Changeset 1023


Ignore:
Timestamp:
Oct 23, 2008, 11:26:49 AM (16 years ago)
Author:
lsce
Message:

Bug parallélisme en MPI/OPENMP lorsque pour un grand nombre de CPU, le processus maître et/ou la tâche maitre se retrouve sans points de terre, et sont donc exlus de la liste des domaines dans orchidee.
YM

Location:
LMDZ4/trunk/libf/phylmd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/phylmd/mod_surf_para.F90

    r1005 r1023  
    109109      knon_glo_end_para(0)=knon_glo_para(0)
    110110      DO i=1,mpi_size*omp_size-1
    111         knon_glo_begin_para(i)=knon_glo_end_para(i-1)
     111        knon_glo_begin_para(i)=knon_glo_end_para(i-1)+1
    112112        knon_glo_end_para(i)= knon_glo_begin_para(i)+knon_glo_para(i)-1
    113113      ENDDO
  • LMDZ4/trunk/libf/phylmd/surf_land_orchidee_mod.F90

    r1001 r1023  
    279279       ENDIF
    280280   
    281 
     281       CALL bcast(lon_scat)
     282       CALL bcast(lat_scat)
    282283!
    283284! Allouer et initialiser le tableau des voisins et des fraction de continents
     
    366367       CALL Init_synchro_omp
    367368       
    368        IF (knon_mpi > 0) THEN
     369       IF (knon > 0) THEN
    369370         CALL Init_intersurf(nbp_lon,nbp_lat,knon,ktindex,offset,orch_omp_size,orch_omp_rank,orch_comm)
    370371       ENDIF
     
    505506      CALL MPI_COMM_SPLIT(COMM_LMDZ_PHY,color,mpi_rank,orch_comm,ierr)
    506507#endif
    507 
    508    ENDIF
     508   
     509    ENDIF
     510    CALL bcast_omp(orch_comm)
     511   
     512    IF (knon_mpi /= 0) THEN
     513      orch_omp_size=0
     514      DO i=0,omp_size-1
     515        IF (knon_omp_para(i) /=0) THEN
     516          orch_omp_size=orch_omp_size+1
     517          IF (i==omp_rank) orch_omp_rank=orch_omp_size-1
     518        ENDIF
     519      ENDDO
     520    ENDIF
    509521   
    510    IF (knon_mpi /= 0) THEN
    511      orch_omp_size=0
    512      DO i=0,omp_size-1
    513        IF (knon_omp_para(i) /=0) THEN
    514          orch_omp_size=orch_omp_size+1
    515          IF (i==omp_rank) orch_omp_rank=orch_omp_size-1
    516        ENDIF
    517      ENDDO
    518    ENDIF
    519        
    520522   
    521523  END SUBROUTINE Get_orchidee_communicator
Note: See TracChangeset for help on using the changeset viewer.