source: LMDZ5/trunk/libf/phylmd/mod_synchro_omp.F90 @ 1906

Last change on this file since 1906 was 1905, checked in by acozic, 12 years ago

Make some correction in omp synchro and barrier for coupled model with Orchidee
These modifications doesn't impact LMDZ without orchidee.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 825 bytes
RevLine 
[987]1MODULE mod_synchro_omp
2
[1905]3    INTEGER,SAVE :: exit_omp 
4
[987]5CONTAINS
6
7  SUBROUTINE Init_synchro_omp
8  USE mod_phys_lmdz_para
9  IMPLICIT NONE
10
[1905]11  CALL omp_barrier
12!$OMP MASTER
13  exit_omp=0
14!$OMP END MASTER   
15  CALL omp_barrier
16
[987]17  END SUBROUTINE Init_Synchro_omp
18 
[1905]19  SUBROUTINE Synchro_omp 
[987]20  USE mod_phys_lmdz_para
21  IMPLICIT NONE
[1905]22  LOGICAL :: out
[987]23 
[1905]24    out=.FALSE.
[987]25!$OMP BARRIER
26!$OMP BARRIER
[1905]27!$OMP ATOMIC 
28    exit_omp=exit_omp+1
29!$OMP BARRIER
30!$OMP BARRIER
31    IF (exit_omp==omp_size) THEN
32      out=.TRUE.
33    ENDIF
34   
35    DO WHILE (.NOT. out)
36!$OMP BARRIER
37      IF (exit_omp==omp_size) out=.TRUE.
38!$OMP BARRIER
[987]39    ENDDO
[1905]40
[987]41!$OMP BARRIER
[1905]42!$OMP MASTER
43    exit_omp=0
44!$OMP END MASTER
45!$OMP BARRIER
[987]46
[1905]47    IF (exit_omp/=0) THEN
48      STOP 'synchro_omp'
49    ENDIF
[987]50
[1905]51  END SUBROUTINE Synchro_omp
52
53
[987]54END MODULE mod_synchro_omp
Note: See TracBrowser for help on using the repository browser.