Line | |
---|
1 | MODULE mod_synchro_omp |
---|
2 | |
---|
3 | LOGICAL,SAVE,ALLOCATABLE :: flag_omp(:) |
---|
4 | |
---|
5 | CONTAINS |
---|
6 | |
---|
7 | SUBROUTINE Init_synchro_omp |
---|
8 | USE mod_phys_lmdz_para |
---|
9 | IMPLICIT NONE |
---|
10 | |
---|
11 | IF (is_omp_root) THEN |
---|
12 | ALLOCATE(flag_omp(0:omp_size-1)) |
---|
13 | flag_omp(:)=.FALSE. |
---|
14 | ENDIF |
---|
15 | !$OMP BARRIER |
---|
16 | |
---|
17 | END SUBROUTINE Init_Synchro_omp |
---|
18 | |
---|
19 | SUBROUTINE Synchro_omp |
---|
20 | USE mod_phys_lmdz_para |
---|
21 | IMPLICIT NONE |
---|
22 | |
---|
23 | flag_omp(omp_rank)=.TRUE. |
---|
24 | !$OMP BARRIER |
---|
25 | DO WHILE (.NOT. ALL(flag_omp)) |
---|
26 | !$OMP BARRIER |
---|
27 | ENDDO |
---|
28 | !$OMP BARRIER |
---|
29 | flag_omp(omp_rank)=.FALSE. |
---|
30 | !$OMP BARRIER |
---|
31 | |
---|
32 | END SUBROUTINE Synchro_omp |
---|
33 | |
---|
34 | END MODULE mod_synchro_omp |
---|
Note: See
TracBrowser
for help on using the repository browser.