Launching multiple subroutines to in parallel

Consider the following program:

PROGRAM Test

	use declare_variables
	implicit none
	
	call CPU_TIME(start_time)
	call ALLOCATE_VARIABLES()

	! ------------------------------
	DO WHILE (time < t_end)
	
		call Compute_Prims()		
		call Compute_Conservs()
		
		time = time + time_step
		
		call CPU_TIME(end_time)
		print*, time, end_time-start_time
	ENDDO
	! ------------------------------
	
	call CPU_TIME(end_time)
	print*, 'Total wall clock time taken = ', end_time-start_time, 'secs'

END

Is it possible to launch the subroutines “Compute_Prims” and “Compute_Conservs” in parallel. I have tried something like this but it dint work (showed errors).

!$acc async(1)
call Compute_Prims()
!$acc async(2)
call Compute_Conservs()

!$acc wait

“aynsc” needs to be added to a compute or data directive so can’t be used like this. Though assuming these subroutines contain OpenACC compute regions, putting an async clause on them will have the host process continue after the kernel is launched on the device. So while you wont be using multiple CPU threads, the host will progress and launch the second kernel while the first is running.