mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			31 lines
		
	
	
		
			691 B
		
	
	
	
		
			Fortran
		
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			691 B
		
	
	
	
		
			Fortran
		
	
	
	
| function foo ()
 | |
|   integer :: foo
 | |
|   logical :: foo_seen
 | |
|   common /foo_seen/ foo_seen
 | |
|   foo_seen = .true.
 | |
|   foo = 3
 | |
| end
 | |
| function bar ()
 | |
|   integer :: bar
 | |
|   logical :: bar_seen
 | |
|   common /bar_seen/ bar_seen
 | |
|   bar_seen = .true.
 | |
|   bar = 3
 | |
| end
 | |
|   integer :: a (10), b (10), foo, bar
 | |
|   logical :: foo_seen, bar_seen
 | |
|   common /foo_seen/ foo_seen
 | |
|   common /bar_seen/ bar_seen
 | |
| 
 | |
|   foo_seen = .false.
 | |
|   bar_seen = .false.
 | |
| !$omp parallel workshare if (foo () .gt. 2) num_threads (bar () + 1)
 | |
|   a = 10
 | |
|   b = 20
 | |
|   a(1:5) = max (a(1:5), b(1:5))
 | |
| !$omp end parallel workshare
 | |
|   if (any (a(1:5) .ne. 20)) call abort
 | |
|   if (any (a(6:10) .ne. 10)) call abort
 | |
|   if (.not. foo_seen .or. .not. bar_seen) call abort
 | |
| end
 |