average derivatives
This commit is contained in:
parent
600558334f
commit
d31328671b
3 changed files with 385 additions and 40 deletions
|
|
@ -292,7 +292,7 @@ class CalculateTree(Transformer):
|
|||
|
||||
var = str(v)
|
||||
|
||||
if self.fluctuation[str(v)]:
|
||||
if self.has_fluc()[str(v)]:
|
||||
if w == str(None):
|
||||
var = var + "_"
|
||||
self.dependency[avg_var] = [str(v)+"_"]
|
||||
|
|
@ -319,7 +319,7 @@ class CalculateTree(Transformer):
|
|||
|
||||
self.codes[var]["calc"] = self.codes[var]["calc"].format(w+"_")
|
||||
else:
|
||||
self.dependency[avg_var] = [str(v)] + ( [] if w == str(None) else [w] )
|
||||
self.dependency[avg_var] = [var] + ( [] if w == str(None) else [w] )
|
||||
|
||||
wfmt = "* {}(i,j,k)"
|
||||
pWeight = (wfmt.format(w) if w != str(None) else "")
|
||||
|
|
|
|||
|
|
@ -12,13 +12,19 @@ nz = - ddz(c) / fsd
|
|||
|
||||
vn = u * nx + v * ny + w * nz
|
||||
|
||||
absk = abs(ddx(nx) + ddy(ny) + ddz(nz))
|
||||
divn = ddx(nx) + ddy(ny) + ddz(nz)
|
||||
|
||||
absk = abs(divn)
|
||||
|
||||
fu = (vn + sd) * nx
|
||||
|
||||
lapc = d2dx(c) + d2dy(c) + d2dz(c)
|
||||
|
||||
|
||||
t1 = sqr(fu')
|
||||
t2 = sqr(absk')
|
||||
t3 = sqr(divn')
|
||||
|
||||
avg { c, fsd }
|
||||
avg { c, u, v, w, fsd, lapc, ddx_c, ddy_c, ddz_c, d2dx_c, d2dy_c, d2dz_c }
|
||||
|
||||
avg fsd { t1, t2, fu, absk}
|
||||
avg fsd { u, v, w, nx, ny, nz, t1, t2, fu, absk, divn, sd }
|
||||
|
|
|
|||
409
code/m_terms.f90
409
code/m_terms.f90
|
|
@ -7,17 +7,23 @@ use m_calculate
|
|||
|
||||
implicit none
|
||||
|
||||
character (len = *), parameter :: output_header="x avg_c avg_fsd fsd_avg_t1 fsd_avg_t2 fsd_avg_fu fsd_avg_absk"
|
||||
character (len = *), parameter :: output_header="x avg_c avg_u avg_v avg_w avg_fsd avg_lapc avg_ddx_c avg_ddy_c avg_ddz_c avg_d2dx_c avg_d2dy_c avg_d2dz_c fsd_avg_u fsd_avg_v fsd_avg_w fsd_avg_nx fsd_avg_ny fsd_avg_nz fsd_avg_t1 fsd_avg_t2 fsd_avg_fu fsd_avg_absk fsd_avg_divn fsd_avg_sd"
|
||||
real*8, allocatable, dimension(:) :: fsd_avg_divn
|
||||
real*8, allocatable, dimension(:,:,:) :: ddx_nx
|
||||
real*8, allocatable, dimension(:,:,:) :: t1_fsd
|
||||
real*8, allocatable, dimension(:) :: fsd_avg_ny
|
||||
real*8, allocatable, dimension(:) :: fsd_avg_nx
|
||||
real*8, allocatable, dimension(:,:,:) :: t2_fsd
|
||||
real*8, allocatable, dimension(:) :: fsd_avg_nz
|
||||
real*8, allocatable, dimension(:,:,:) :: ddz_c
|
||||
real*8, allocatable, dimension(:,:,:) :: vn
|
||||
real*8, allocatable, dimension(:) :: avg_d2dz_c
|
||||
real*8, allocatable, dimension(:) :: avg_d2dx_c
|
||||
real*8, allocatable, dimension(:,:,:) :: ddy_c
|
||||
real*8, allocatable, dimension(:,:,:) :: ddx_c
|
||||
real*8, allocatable, dimension(:) :: fsd_avg_fu
|
||||
real*8, allocatable, dimension(:) :: fsd_avg_t2
|
||||
real*8, allocatable, dimension(:) :: fsd_avg_t1
|
||||
real*8, allocatable, dimension(:) :: avg_ddx_c
|
||||
real*8, allocatable, dimension(:) :: fsd_avg_v
|
||||
real*8, allocatable, dimension(:,:,:) :: ddy_ny
|
||||
real*8, allocatable, dimension(:,:,:) :: wrate
|
||||
real*8, allocatable, dimension(:) :: avg_fsd
|
||||
|
|
@ -26,15 +32,29 @@ real*8, allocatable, dimension(:,:,:) :: nx
|
|||
real*8, allocatable, dimension(:,:,:) :: ny
|
||||
real*8, allocatable, dimension(:,:,:) :: nz
|
||||
real*8, allocatable, dimension(:,:,:) :: ddz_nz
|
||||
real*8, allocatable, dimension(:) :: fsd_avg_sd
|
||||
real*8, allocatable, dimension(:,:,:) :: lapc
|
||||
real*8, allocatable, dimension(:) :: avg_ddy_c
|
||||
real*8, allocatable, dimension(:,:,:) :: divn
|
||||
real*8, allocatable, dimension(:,:,:) :: fu
|
||||
real*8, allocatable, dimension(:) :: fsd_avg_t1
|
||||
real*8, allocatable, dimension(:) :: avg_lapc
|
||||
real*8, allocatable, dimension(:,:,:) :: t1_fsd
|
||||
real*8, allocatable, dimension(:,:,:) :: absk
|
||||
real*8, allocatable, dimension(:) :: avg_ddz_c
|
||||
real*8, allocatable, dimension(:,:,:) :: c
|
||||
real*8, allocatable, dimension(:) :: avg_c
|
||||
real*8, allocatable, dimension(:,:,:) :: fsd
|
||||
real*8, allocatable, dimension(:,:,:) :: d2dy_c
|
||||
real*8, allocatable, dimension(:) :: avg_d2dy_c
|
||||
real*8, allocatable, dimension(:,:,:) :: d2dx_c
|
||||
real*8, allocatable, dimension(:) :: avg_u
|
||||
real*8, allocatable, dimension(:) :: avg_v
|
||||
real*8, allocatable, dimension(:) :: avg_w
|
||||
real*8, allocatable, dimension(:,:,:) :: d2dz_c
|
||||
real*8, allocatable, dimension(:) :: fsd_avg_w
|
||||
real*8, allocatable, dimension(:) :: fsd_avg_u
|
||||
real*8, allocatable, dimension(:,:,:) :: sd
|
||||
real*8, allocatable, dimension(:,:,:) :: absk
|
||||
|
||||
|
||||
contains
|
||||
|
|
@ -43,16 +63,22 @@ subroutine m_terms_init
|
|||
|
||||
integer :: ierr
|
||||
|
||||
allocate(fsd_avg_divn(nxp), stat=ierr) ; fsd_avg_divn = 0.
|
||||
allocate(ddx_nx(nxp,nyp,nzp), stat=ierr) ; ddx_nx = 0.
|
||||
allocate(t1_fsd(nxp,nyp,nzp), stat=ierr) ; t1_fsd = 0.
|
||||
allocate(fsd_avg_ny(nxp), stat=ierr) ; fsd_avg_ny = 0.
|
||||
allocate(fsd_avg_nx(nxp), stat=ierr) ; fsd_avg_nx = 0.
|
||||
allocate(t2_fsd(nxp,nyp,nzp), stat=ierr) ; t2_fsd = 0.
|
||||
allocate(fsd_avg_nz(nxp), stat=ierr) ; fsd_avg_nz = 0.
|
||||
allocate(ddz_c(nxp,nyp,nzp), stat=ierr) ; ddz_c = 0.
|
||||
allocate(vn(nxp,nyp,nzp), stat=ierr) ; vn = 0.
|
||||
allocate(avg_d2dz_c(nxp), stat=ierr) ; avg_d2dz_c = 0.
|
||||
allocate(avg_d2dx_c(nxp), stat=ierr) ; avg_d2dx_c = 0.
|
||||
allocate(ddy_c(nxp,nyp,nzp), stat=ierr) ; ddy_c = 0.
|
||||
allocate(ddx_c(nxp,nyp,nzp), stat=ierr) ; ddx_c = 0.
|
||||
allocate(fsd_avg_fu(nxp), stat=ierr) ; fsd_avg_fu = 0.
|
||||
allocate(fsd_avg_t2(nxp), stat=ierr) ; fsd_avg_t2 = 0.
|
||||
allocate(fsd_avg_t1(nxp), stat=ierr) ; fsd_avg_t1 = 0.
|
||||
allocate(avg_ddx_c(nxp), stat=ierr) ; avg_ddx_c = 0.
|
||||
allocate(fsd_avg_v(nxp), stat=ierr) ; fsd_avg_v = 0.
|
||||
allocate(ddy_ny(nxp,nyp,nzp), stat=ierr) ; ddy_ny = 0.
|
||||
allocate(wrate(nxp,nyp,nzp), stat=ierr) ; wrate = 0.
|
||||
allocate(avg_fsd(nxp), stat=ierr) ; avg_fsd = 0.
|
||||
|
|
@ -61,15 +87,29 @@ allocate(nx(nxp,nyp,nzp), stat=ierr) ; nx = 0.
|
|||
allocate(ny(nxp,nyp,nzp), stat=ierr) ; ny = 0.
|
||||
allocate(nz(nxp,nyp,nzp), stat=ierr) ; nz = 0.
|
||||
allocate(ddz_nz(nxp,nyp,nzp), stat=ierr) ; ddz_nz = 0.
|
||||
allocate(fsd_avg_sd(nxp), stat=ierr) ; fsd_avg_sd = 0.
|
||||
allocate(lapc(nxp,nyp,nzp), stat=ierr) ; lapc = 0.
|
||||
allocate(avg_ddy_c(nxp), stat=ierr) ; avg_ddy_c = 0.
|
||||
allocate(divn(nxp,nyp,nzp), stat=ierr) ; divn = 0.
|
||||
allocate(fu(nxp,nyp,nzp), stat=ierr) ; fu = 0.
|
||||
allocate(fsd_avg_t1(nxp), stat=ierr) ; fsd_avg_t1 = 0.
|
||||
allocate(avg_lapc(nxp), stat=ierr) ; avg_lapc = 0.
|
||||
allocate(t1_fsd(nxp,nyp,nzp), stat=ierr) ; t1_fsd = 0.
|
||||
allocate(absk(nxp,nyp,nzp), stat=ierr) ; absk = 0.
|
||||
allocate(avg_ddz_c(nxp), stat=ierr) ; avg_ddz_c = 0.
|
||||
allocate(c(nxp,nyp,nzp), stat=ierr) ; c = 0.
|
||||
allocate(avg_c(nxp), stat=ierr) ; avg_c = 0.
|
||||
allocate(fsd(nxp,nyp,nzp), stat=ierr) ; fsd = 0.
|
||||
allocate(d2dy_c(nxp,nyp,nzp), stat=ierr) ; d2dy_c = 0.
|
||||
allocate(avg_d2dy_c(nxp), stat=ierr) ; avg_d2dy_c = 0.
|
||||
allocate(d2dx_c(nxp,nyp,nzp), stat=ierr) ; d2dx_c = 0.
|
||||
allocate(avg_u(nxp), stat=ierr) ; avg_u = 0.
|
||||
allocate(avg_v(nxp), stat=ierr) ; avg_v = 0.
|
||||
allocate(avg_w(nxp), stat=ierr) ; avg_w = 0.
|
||||
allocate(d2dz_c(nxp,nyp,nzp), stat=ierr) ; d2dz_c = 0.
|
||||
allocate(fsd_avg_w(nxp), stat=ierr) ; fsd_avg_w = 0.
|
||||
allocate(fsd_avg_u(nxp), stat=ierr) ; fsd_avg_u = 0.
|
||||
allocate(sd(nxp,nyp,nzp), stat=ierr) ; sd = 0.
|
||||
allocate(absk(nxp,nyp,nzp), stat=ierr) ; absk = 0.
|
||||
|
||||
|
||||
end subroutine m_terms_init
|
||||
|
|
@ -77,16 +117,22 @@ end subroutine m_terms_init
|
|||
|
||||
subroutine m_terms_finalize
|
||||
|
||||
deallocate(fsd_avg_divn)
|
||||
deallocate(ddx_nx)
|
||||
deallocate(t1_fsd)
|
||||
deallocate(fsd_avg_ny)
|
||||
deallocate(fsd_avg_nx)
|
||||
deallocate(t2_fsd)
|
||||
deallocate(fsd_avg_nz)
|
||||
deallocate(ddz_c)
|
||||
deallocate(vn)
|
||||
deallocate(avg_d2dz_c)
|
||||
deallocate(avg_d2dx_c)
|
||||
deallocate(ddy_c)
|
||||
deallocate(ddx_c)
|
||||
deallocate(fsd_avg_fu)
|
||||
deallocate(fsd_avg_t2)
|
||||
deallocate(fsd_avg_t1)
|
||||
deallocate(avg_ddx_c)
|
||||
deallocate(fsd_avg_v)
|
||||
deallocate(ddy_ny)
|
||||
deallocate(wrate)
|
||||
deallocate(avg_fsd)
|
||||
|
|
@ -95,15 +141,29 @@ deallocate(nx)
|
|||
deallocate(ny)
|
||||
deallocate(nz)
|
||||
deallocate(ddz_nz)
|
||||
deallocate(fsd_avg_sd)
|
||||
deallocate(lapc)
|
||||
deallocate(avg_ddy_c)
|
||||
deallocate(divn)
|
||||
deallocate(fu)
|
||||
deallocate(fsd_avg_t1)
|
||||
deallocate(avg_lapc)
|
||||
deallocate(t1_fsd)
|
||||
deallocate(absk)
|
||||
deallocate(avg_ddz_c)
|
||||
deallocate(c)
|
||||
deallocate(avg_c)
|
||||
deallocate(fsd)
|
||||
deallocate(d2dy_c)
|
||||
deallocate(avg_d2dy_c)
|
||||
deallocate(d2dx_c)
|
||||
deallocate(avg_u)
|
||||
deallocate(avg_v)
|
||||
deallocate(avg_w)
|
||||
deallocate(d2dz_c)
|
||||
deallocate(fsd_avg_w)
|
||||
deallocate(fsd_avg_u)
|
||||
deallocate(sd)
|
||||
deallocate(absk)
|
||||
|
||||
|
||||
end subroutine m_terms_finalize
|
||||
|
|
@ -124,9 +184,44 @@ end do
|
|||
|
||||
call ddz ( ddz_c, c )
|
||||
call ddy ( ddy_c, c )
|
||||
call d2dx ( d2dx_c, c )
|
||||
call ddx ( ddx_c, c )
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
avg_ddx_c(i) = avg_ddx_c(i) + ddx_c(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
wrate(i,j,k) = ( rxn_rate ( c(i,j,k) ) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
avg_ddy_c(i) = avg_ddy_c(i) + ddy_c(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
avg_ddz_c(i) = avg_ddz_c(i) + ddz_c(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
|
|
@ -148,22 +243,12 @@ end do
|
|||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
ny(i,j,k) = ( ( - ddy_c(i,j,k) ) / fsd(i,j,k) )
|
||||
fsd_avg_v(i) = fsd_avg_v(i) + v(i,j,k) * fsd(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
wrate(i,j,k) = ( rxn_rate ( c(i,j,k) ) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
call d2dy ( d2dy_c, c )
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
|
|
@ -182,6 +267,33 @@ end do
|
|||
end do
|
||||
|
||||
call ddx ( ddx_nx, nx )
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
fsd_avg_nx(i) = fsd_avg_nx(i) + nx(i,j,k) * fsd(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
ny(i,j,k) = ( ( - ddy_c(i,j,k) ) / fsd(i,j,k) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
fsd_avg_ny(i) = fsd_avg_ny(i) + ny(i,j,k) * fsd(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
call ddy ( ddy_ny, ny )
|
||||
|
||||
do k = 1, nzp
|
||||
|
|
@ -193,6 +305,15 @@ end do
|
|||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
fsd_avg_nz(i) = fsd_avg_nz(i) + nz(i,j,k) * fsd(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
|
|
@ -202,12 +323,29 @@ end do
|
|||
end do
|
||||
|
||||
call ddz ( ddz_nz, nz )
|
||||
call d2dz ( d2dz_c, c )
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
absk(i,j,k) = ( dabs ( ( ( ddx_nx(i,j,k) + ddy_ny(i,j,k) ) + ddz_nz(i,j,k) ) ) )
|
||||
divn(i,j,k) = ( ( ddx_nx(i,j,k) + ddy_ny(i,j,k) ) + ddz_nz(i,j,k) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
fsd_avg_divn(i) = fsd_avg_divn(i) + divn(i,j,k) * fsd(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
absk(i,j,k) = ( dabs ( divn(i,j,k) ) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
|
@ -221,6 +359,99 @@ end do
|
|||
end do
|
||||
end do
|
||||
|
||||
call d2dy ( d2dy_c, c )
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
avg_d2dy_c(i) = avg_d2dy_c(i) + d2dy_c(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
call d2dx ( d2dx_c, c )
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
avg_d2dx_c(i) = avg_d2dx_c(i) + d2dx_c(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
avg_u(i) = avg_u(i) + u(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
avg_v(i) = avg_v(i) + v(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
avg_w(i) = avg_w(i) + w(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
call d2dz ( d2dz_c, c )
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
avg_d2dz_c(i) = avg_d2dz_c(i) + d2dz_c(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
lapc(i,j,k) = ( ( d2dx_c(i,j,k) + d2dy_c(i,j,k) ) + d2dz_c(i,j,k) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
avg_lapc(i) = avg_lapc(i) + lapc(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
fsd_avg_w(i) = fsd_avg_w(i) + w(i,j,k) * fsd(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
fsd_avg_u(i) = fsd_avg_u(i) + u(i,j,k) * fsd(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
|
|
@ -231,6 +462,15 @@ end do
|
|||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
fsd_avg_sd(i) = fsd_avg_sd(i) + sd(i,j,k) * fsd(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
|
|
@ -266,11 +506,91 @@ call MPI_ALLREDUCE(MPI_IN_PLACE, avg_c, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK,
|
|||
avg_c = avg_c / denum
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, avg_u, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
avg_u = avg_u / denum
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, avg_v, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
avg_v = avg_v / denum
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, avg_w, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
avg_w = avg_w / denum
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, avg_fsd, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
avg_fsd = avg_fsd / denum
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, avg_lapc, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
avg_lapc = avg_lapc / denum
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, avg_ddx_c, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
avg_ddx_c = avg_ddx_c / denum
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, avg_ddy_c, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
avg_ddy_c = avg_ddy_c / denum
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, avg_ddz_c, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
avg_ddz_c = avg_ddz_c / denum
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, avg_d2dx_c, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
avg_d2dx_c = avg_d2dx_c / denum
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, avg_d2dy_c, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
avg_d2dy_c = avg_d2dy_c / denum
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, avg_d2dz_c, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
avg_d2dz_c = avg_d2dz_c / denum
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, fsd_avg_u, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
fsd_avg_u = fsd_avg_u / denum / avg_fsd
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, fsd_avg_v, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
fsd_avg_v = fsd_avg_v / denum / avg_fsd
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, fsd_avg_w, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
fsd_avg_w = fsd_avg_w / denum / avg_fsd
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, fsd_avg_nx, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
fsd_avg_nx = fsd_avg_nx / denum / avg_fsd
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, fsd_avg_ny, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
fsd_avg_ny = fsd_avg_ny / denum / avg_fsd
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, fsd_avg_nz, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
fsd_avg_nz = fsd_avg_nz / denum / avg_fsd
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, fsd_avg_fu, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
fsd_avg_fu = fsd_avg_fu / denum / avg_fsd
|
||||
|
|
@ -281,6 +601,16 @@ call MPI_ALLREDUCE(MPI_IN_PLACE, fsd_avg_absk, nxp, MPI_REAL8, MPI_SUM, MPI_COMM
|
|||
fsd_avg_absk = fsd_avg_absk / denum / avg_fsd
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, fsd_avg_divn, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
fsd_avg_divn = fsd_avg_divn / denum / avg_fsd
|
||||
|
||||
|
||||
call MPI_ALLREDUCE(MPI_IN_PLACE, fsd_avg_sd, nxp, MPI_REAL8, MPI_SUM, MPI_COMM_TASK, mpi_err)
|
||||
|
||||
fsd_avg_sd = fsd_avg_sd / denum / avg_fsd
|
||||
|
||||
|
||||
|
||||
end subroutine m_terms_average_pass1
|
||||
|
||||
|
|
@ -311,15 +641,6 @@ end do
|
|||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
ny(i,j,k) = ( ( - ddy_c(i,j,k) ) / fsd(i,j,k) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
|
|
@ -340,6 +661,15 @@ end do
|
|||
end do
|
||||
|
||||
call ddx ( ddx_nx, nx )
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
ny(i,j,k) = ( ( - ddy_c(i,j,k) ) / fsd(i,j,k) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
call ddy ( ddy_ny, ny )
|
||||
|
||||
do k = 1, nzp
|
||||
|
|
@ -360,12 +690,21 @@ end do
|
|||
end do
|
||||
|
||||
call ddz ( ddz_nz, nz )
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
divn(i,j,k) = ( ( ddx_nx(i,j,k) + ddy_ny(i,j,k) ) + ddz_nz(i,j,k) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
call d2dz ( d2dz_c, c )
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
absk(i,j,k) = ( dabs ( ( ( ddx_nx(i,j,k) + ddy_ny(i,j,k) ) + ddz_nz(i,j,k) ) ) )
|
||||
absk(i,j,k) = ( dabs ( divn(i,j,k) ) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
|
@ -461,7 +800,7 @@ open (200, file="qEdge_X.dat")
|
|||
write (200,*) output_header
|
||||
|
||||
do i=1,nxp
|
||||
write (200,'(7e20.10)') real(i)*hxp, avg_c(i), avg_fsd(i), fsd_avg_t1(i), fsd_avg_t2(i), fsd_avg_fu(i), fsd_avg_absk(i)
|
||||
write (200,'(25e20.10)') real(i)*hxp, avg_c(i), avg_u(i), avg_v(i), avg_w(i), avg_fsd(i), avg_lapc(i), avg_ddx_c(i), avg_ddy_c(i), avg_ddz_c(i), avg_d2dx_c(i), avg_d2dy_c(i), avg_d2dz_c(i), fsd_avg_u(i), fsd_avg_v(i), fsd_avg_w(i), fsd_avg_nx(i), fsd_avg_ny(i), fsd_avg_nz(i), fsd_avg_t1(i), fsd_avg_t2(i), fsd_avg_fu(i), fsd_avg_absk(i), fsd_avg_divn(i), fsd_avg_sd(i)
|
||||
end do
|
||||
|
||||
close (200)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue