source: LMDZ5/branches/LMDZ5-DOFOCO/libf/phylmd/mod_synchro_omp.F90 @ 5005

Last change on this file since 5005 was 1935, checked in by jghattas, 11 years ago

Merged bug corrections done in rev 1905 on the trunk. These corrections makes it possible to run in OpenMP mode coupled to 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
[1935]3    INTEGER,SAVE :: exit_omp 
4
[987]5CONTAINS
6
7  SUBROUTINE Init_synchro_omp
8  USE mod_phys_lmdz_para
9  IMPLICIT NONE
10
[1935]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 
[1935]19  SUBROUTINE Synchro_omp 
[987]20  USE mod_phys_lmdz_para
21  IMPLICIT NONE
[1935]22  LOGICAL :: out
[987]23 
[1935]24    out=.FALSE.
[987]25!$OMP BARRIER
26!$OMP BARRIER
[1935]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
[1935]40
[987]41!$OMP BARRIER
[1935]42!$OMP MASTER
43    exit_omp=0
44!$OMP END MASTER
45!$OMP BARRIER
[987]46
[1935]47    IF (exit_omp/=0) THEN
48      STOP 'synchro_omp'
49    ENDIF
[987]50
[1935]51  END SUBROUTINE Synchro_omp
52
53
[987]54END MODULE mod_synchro_omp
Note: See TracBrowser for help on using the repository browser.