Rev | Line | |
---|
[1] | 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.