remove loops in parallel z-dir fns

This commit is contained in:
ignis 2017-11-11 00:43:27 +09:00
parent e659052e26
commit a56c4d978c

View file

@ -12,7 +12,7 @@ module m_fdm_calc
real*8, dimension(:,:,:,:), allocatable :: y1,y2,yf
real*8, dimension(:,:), allocatable :: fzzl, fzzu
real*8, dimension(:,:), allocatable :: fbuf1, fbuf2, fbuf3, fbuf4
real*8, dimension(:,:,:), allocatable :: fbuf1, fbuf2, fbuf3, fbuf4
real*8, dimension(:,:), allocatable :: yxbuf1, yxbuf2, yxbuf3, yxbuf4
real*8, dimension(:,:), allocatable :: xybuf1, xybuf2, xybuf3, xybuf4
@ -246,10 +246,10 @@ module m_fdm_calc
allocate(fzzu(nx*ny,2))
allocate(fzzl(nx*ny,2))
allocate(fbuf1(nx*ny,nz))
allocate(fbuf2(nx*ny,nz))
allocate(fbuf3(nx*ny,nz))
allocate(fbuf4(nx*ny,nz))
allocate(fbuf1(nx,ny,nz))
allocate(fbuf2(nx,ny,nz))
allocate(fbuf3(nx,ny,nz))
allocate(fbuf4(nx,ny,nz))
allocate(xybuf1(nx,ny))
allocate(xybuf2(nx,ny))
@ -548,79 +548,31 @@ module m_fdm_calc
! -( d(rho*w)/dz )
DO k=1,zz
DO j=1,yy
DO i=1,xx
fbuf1(i+xx*(j-1),k) = r1_(i,j,k,1)*ww_(i,j,k) ! rho*w
ENDDO
ENDDO
ENDDO
fbuf1(:,:,:) = r1_(:,:,:,1)*ww_(:,:,:) ! rho*w
CALL pdfp (fbuf1, fzzl, fzzu, fbuf2, hy, xx*yy, zz, yy, 3)
CALL pdfp (fbuf1, fzzl, fzzu, fbuf2, hy, xx*yy, zz, yy, 3)
DO k=1,zz
DO j=1,yy
DO i=1,xx
f_(i,j,k,1) = f_(i,j,k,1) - fbuf2(i+xx*(j-1),k) ! continuity
ENDDO
ENDDO
ENDDO
f_(:,:,:,1) = f_(:,:,:,1) - fbuf2(:,:,:) ! continuity
! -( d(rho*w*Yr)/dz ) + d(rho*D* d(Yr)/dz)/dz
! = -( d(rho*w*Yr)/dz )
! + D* (rho* d2(Yr)/dz2 + d(rho)/dz * d(Yr)/dz )
DO k=1,zz
DO j=1,yy
DO i=1,xx
fbuf1(i+xx*(j-1),k) = r1_(i,j,k,2)*ww_(i,j,k) ! rho*w*Y
ENDDO
ENDDO
ENDDO
fbuf1(:,:,:) = r1_(:,:,:,2)*ww_(:,:,:) ! rho*w*Y
CALL pdfp (fbuf1, fzzl, fzzu, fbuf2, hy, xx*yy, zz, yy, 3)
CALL pdfp (fbuf1, fzzl, fzzu, fbuf2, hy, xx*yy, zz, yy, 3)
f_(:,:,:,2) = f_(:,:,:,2) - fbuf2(:,:,:) ! species conserv.
DO k=1,zz
DO j=1,yy
DO i=1,xx
idx2 = xx*(j-1)+i
idx1 = (idx2-1)*4
f_(i,j,k,2) = f_(i,j,k,2) - fbuf2(i+xx*(j-1),k) ! species conserv.
ENDDO
ENDDO
ENDDO
fbuf1(:,:,:) = r1_(:,:,:,2)/r1_(:,:,:,1) ! Y
CALL pdfp (fbuf1, fzzl, fzzu, fbuf2, hy, xx*yy, zz, yy, 3)
CALL pd2fp(fbuf1, fzzl, fzzu, fbuf3, hy, xx*yy, zz, yy, 3)
DO k=1,zz
DO j=1,yy
DO i=1,xx
fbuf1(i+xx*(j-1),k) = r1_(i,j,k,2)/r1_(i,j,k,1) ! Y
ENDDO
ENDDO
ENDDO
CALL pdfp (fbuf1, fzzl, fzzu, fbuf2, hy, xx*yy, zz, yy, 3)
CALL pd2fp(fbuf1, fzzl, fzzu, fbuf3, hy, xx*yy, zz, yy, 3)
DO k=1,zz
DO j=1,yy
DO i=1,xx
fbuf1(i+xx*(j-1),k) = r1_(i,j,k,1) ! rho
ENDDO
ENDDO
ENDDO
CALL pdfp (fbuf1, fzzl, fzzu, fbuf4, hy, xx*yy, zz, yy, 3)
fbuf1(:,:,:) = r1_(:,:,:,1) ! rho
CALL pdfp (fbuf1, fzzl, fzzu, fbuf4, hy, xx*yy, zz, yy, 3)
fbuf2 = fbuf2 * fbuf4
fbuf1 = fbuf1 * fbuf3 + fbuf2
DO k=1,zz
DO j=1,yy
DO i=1,xx
f_(i,j,k,2) = f_(i,j,k,2) + diff*fbuf1(i+xx*(j-1),k) ! species conserv.
ENDDO
ENDDO
ENDDO
f_(:,:,:,2) = f_(:,:,:,2) + diff*fbuf1(:,:,:) ! species conserv.
endif