forked from fukipa/afid-channel
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CalcLocalDivergence.F90
44 lines (40 loc) · 1.45 KB
/
CalcLocalDivergence.F90
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! !
! FILE: CalcLocalDivergence.F90 !
! CONTAINS: subroutine CalcLocalDivergence !
! !
! PURPOSE: Compute the divergence of the intermediate !
! velocity at every point for the pressure !
! correction step !
! !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
subroutine CalcLocalDivergence
use param
use local_arrays, only: vz,vy,vx,dph
use decomp_2d, only: xstart,xend
implicit none
integer :: jc,jp,kc,kp,ic,ip
real :: usdtal,dqcap
usdtal = 1.d0/(dt*al)
!$OMP PARALLEL DO &
!$OMP DEFAULT(none) &
!$OMP SHARED(xstart,vz,vy,vx,dz,dy,udx3m,usdtal) &
!$OMP SHARED(dph,nxm,xend) &
!$OMP PRIVATE(ic,jc,kc,ip,jp,kp) &
!$OMP PRIVATE(dqcap)
do ic=xstart(3),xend(3)
ip=ic+1
do jc=xstart(2),xend(2)
jp=jc+1
do kc=1,nxm
kp=kc+1
dqcap= (vz(kc,jc,ip)-vz(kc,jc,ic))*dz &
+(vy(kc,jp,ic)-vy(kc,jc,ic))*dy &
+(vx(kp,jc,ic)-vx(kc,jc,ic))*udx3m(kc)
dph(kc,jc,ic)=dqcap*usdtal
enddo
enddo
enddo
!$OMP END PARALLEL DO
return
end