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

Last change on this file since 2045 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
Line 
1MODULE mod_synchro_omp
2
3    INTEGER,SAVE :: exit_omp 
4
5CONTAINS
6
7  SUBROUTINE Init_synchro_omp
8  USE mod_phys_lmdz_para
9  IMPLICIT NONE
10
11  CALL omp_barrier
12!$OMP MASTER
13  exit_omp=0
14!$OMP END MASTER   
15  CALL omp_barrier
16
17  END SUBROUTINE Init_Synchro_omp
18 
19  SUBROUTINE Synchro_omp 
20  USE mod_phys_lmdz_para
21  IMPLICIT NONE
22  LOGICAL :: out
23 
24    out=.FALSE.
25!$OMP BARRIER
26!$OMP BARRIER
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
39    ENDDO
40
41!$OMP BARRIER
42!$OMP MASTER
43    exit_omp=0
44!$OMP END MASTER
45!$OMP BARRIER
46
47    IF (exit_omp/=0) THEN
48      STOP 'synchro_omp'
49    ENDIF
50
51  END SUBROUTINE Synchro_omp
52
53
54END MODULE mod_synchro_omp
Note: See TracBrowser for help on using the repository browser.