remove existing codes and comments / add abs to syntax
This commit is contained in:
parent
e770eb7306
commit
d7fc7413be
5 changed files with 335 additions and 1649 deletions
|
|
@ -47,14 +47,15 @@ calc_grammar = """
|
|||
?mathfunc: "log" -> log
|
||||
| "exp" -> exp
|
||||
| "sqrt" -> sqrt
|
||||
| "abs" -> abs
|
||||
| "rxn_rate" -> rxn_rate
|
||||
|
||||
?derivative: "ddx" -> ddx
|
||||
| "dd2x" -> dd2x
|
||||
| "d2dx" -> d2dx
|
||||
| "ddy" -> ddy
|
||||
| "dd2y" -> dd2y
|
||||
| "d2dy" -> d2dy
|
||||
| "ddz" -> ddz
|
||||
| "dd2z" -> dd2z
|
||||
| "d2dz" -> d2dz
|
||||
|
||||
%import common.CNAME -> NAME
|
||||
%import common.NUMBER
|
||||
|
|
@ -190,6 +191,7 @@ class ToFortran(Transformer):
|
|||
log = lambda self : "log"
|
||||
exp = lambda self : "exp"
|
||||
sqrt = lambda self : "sqrt"
|
||||
abs = lambda self : "dabs"
|
||||
rxn_rate = lambda self : "rxn_rate"
|
||||
|
||||
class CheckPass(Visitor):
|
||||
|
|
|
|||
|
|
@ -1,17 +1,24 @@
|
|||
[u, v, w, y]
|
||||
|
||||
c_auto = 1.0 - y
|
||||
wrate_auto = rxn_rate(c_auto)
|
||||
fsd_auto = sqrt (sqr(ddx(c_auto)) + sqr(ddy(c_auto)) + sqr(ddz(c_auto)))
|
||||
c = 1.0 - y
|
||||
wrate = rxn_rate(c)
|
||||
fsd = sqrt (sqr(ddx(c)) + sqr(ddy(c)) + sqr(ddz(c)))
|
||||
|
||||
k = (sqr(u')+sqr(v')+sqr(w'))/2.0
|
||||
sd = ((d2dx(c) + d2dy(c) + d2dz(c)) * $rod + wrate) / fsd
|
||||
|
||||
tflux = u' * c_auto'
|
||||
nx = - ddx(c) / fsd
|
||||
ny = - ddy(c) / fsd
|
||||
nz = - ddz(c) / fsd
|
||||
|
||||
avg { u, v, w, c_auto, tflux, y, fsd_auto}
|
||||
vn = u * nx + v * ny + w * nz
|
||||
|
||||
avg c_auto { u, v, w }
|
||||
absk = abs(ddx(nx) + ddy(ny) + ddz(nz))
|
||||
|
||||
avg y { u, v, w, tflux, c_auto }
|
||||
fu = (vn + sd) * nx
|
||||
|
||||
avg fsd_auto { u }
|
||||
t1 = sqr(fu')
|
||||
t2 = sqr(absk')
|
||||
|
||||
avg { fsd }
|
||||
|
||||
avg fsd { t1, t2, fu, absk}
|
||||
|
|
|
|||
|
|
@ -201,6 +201,9 @@ contains
|
|||
|
||||
real :: c
|
||||
|
||||
if(c.lt.0.) c=0.
|
||||
if(c.gt.1.) c=1.
|
||||
|
||||
if (c.le.c_cut) then
|
||||
|
||||
rxn_rate = min_wr
|
||||
|
|
|
|||
397
code/m_terms.f90
397
code/m_terms.f90
|
|
@ -6,29 +6,32 @@ use m_calculate
|
|||
|
||||
implicit none
|
||||
|
||||
real*8, allocatable, dimension(:) :: fsd_auto_avg_u
|
||||
real*8, allocatable, dimension(:,:,:) :: fsd_auto
|
||||
real*8, allocatable, dimension(:) :: avg_c_auto
|
||||
real*8, allocatable, dimension(:,:,:) :: ddz_c_auto
|
||||
real*8, allocatable, dimension(:,:,:) :: tflux_y
|
||||
real*8, allocatable, dimension(:) :: c_auto_avg_w
|
||||
real*8, allocatable, dimension(:) :: c_auto_avg_v
|
||||
real*8, allocatable, dimension(:) :: c_auto_avg_u
|
||||
real*8, allocatable, dimension(:) :: y_avg_w
|
||||
real*8, allocatable, dimension(:) :: avg_fsd_auto
|
||||
real*8, allocatable, dimension(:) :: y_avg_v
|
||||
real*8, allocatable, dimension(:,:,:) :: c_auto
|
||||
real*8, allocatable, dimension(:) :: y_avg_u
|
||||
real*8, allocatable, dimension(:,:,:) :: ddy_c_auto
|
||||
real*8, allocatable, dimension(:) :: y_avg_c_auto
|
||||
real*8, allocatable, dimension(:) :: avg_u
|
||||
real*8, allocatable, dimension(:) :: avg_v
|
||||
real*8, allocatable, dimension(:) :: avg_w
|
||||
real*8, allocatable, dimension(:) :: avg_y
|
||||
real*8, allocatable, dimension(:,:,:) :: tflux_
|
||||
real*8, allocatable, dimension(:) :: y_avg_tflux
|
||||
real*8, allocatable, dimension(:,:,:) :: ddx_c_auto
|
||||
real*8, allocatable, dimension(:) :: avg_tflux
|
||||
real*8, allocatable, dimension(:,:,:) :: ddx_nx
|
||||
real*8, allocatable, dimension(:,:,:) :: t1_fsd
|
||||
real*8, allocatable, dimension(:,:,:) :: t2_fsd
|
||||
real*8, allocatable, dimension(:,:,:) :: ddz_c
|
||||
real*8, allocatable, dimension(:,:,:) :: vn
|
||||
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(:,:,:) :: ny
|
||||
real*8, allocatable, dimension(:,:,:) :: wrate
|
||||
real*8, allocatable, dimension(:) :: avg_fsd
|
||||
real*8, allocatable, dimension(:) :: fsd_avg_absk
|
||||
real*8, allocatable, dimension(:,:,:) :: nx
|
||||
real*8, allocatable, dimension(:,:,:) :: ddy_ny
|
||||
real*8, allocatable, dimension(:,:,:) :: nz
|
||||
real*8, allocatable, dimension(:,:,:) :: ddz_nz
|
||||
real*8, allocatable, dimension(:,:,:) :: fu
|
||||
real*8, allocatable, dimension(:,:,:) :: c
|
||||
real*8, allocatable, dimension(:,:,:) :: fsd
|
||||
real*8, allocatable, dimension(:,:,:) :: d2dy_c
|
||||
real*8, allocatable, dimension(:,:,:) :: d2dx_c
|
||||
real*8, allocatable, dimension(:,:,:) :: d2dz_c
|
||||
real*8, allocatable, dimension(:,:,:) :: absk
|
||||
real*8, allocatable, dimension(:,:,:) :: sd
|
||||
|
||||
|
||||
contains
|
||||
|
|
@ -37,29 +40,32 @@ subroutine m_terms_init
|
|||
|
||||
integer :: ierr
|
||||
|
||||
allocate(fsd_auto_avg_u(nxp), stat=ierr) ; fsd_auto_avg_u = 0.
|
||||
allocate(fsd_auto(nxp,nyp,nzp), stat=ierr) ; fsd_auto = 0.
|
||||
allocate(avg_c_auto(nxp), stat=ierr) ; avg_c_auto = 0.
|
||||
allocate(ddz_c_auto(nxp,nyp,nzp), stat=ierr) ; ddz_c_auto = 0.
|
||||
allocate(tflux_y(nxp,nyp,nzp), stat=ierr) ; tflux_y = 0.
|
||||
allocate(c_auto_avg_w(nxp), stat=ierr) ; c_auto_avg_w = 0.
|
||||
allocate(c_auto_avg_v(nxp), stat=ierr) ; c_auto_avg_v = 0.
|
||||
allocate(c_auto_avg_u(nxp), stat=ierr) ; c_auto_avg_u = 0.
|
||||
allocate(y_avg_w(nxp), stat=ierr) ; y_avg_w = 0.
|
||||
allocate(avg_fsd_auto(nxp), stat=ierr) ; avg_fsd_auto = 0.
|
||||
allocate(y_avg_v(nxp), stat=ierr) ; y_avg_v = 0.
|
||||
allocate(c_auto(nxp,nyp,nzp), stat=ierr) ; c_auto = 0.
|
||||
allocate(y_avg_u(nxp), stat=ierr) ; y_avg_u = 0.
|
||||
allocate(ddy_c_auto(nxp,nyp,nzp), stat=ierr) ; ddy_c_auto = 0.
|
||||
allocate(y_avg_c_auto(nxp), stat=ierr) ; y_avg_c_auto = 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(avg_y(nxp), stat=ierr) ; avg_y = 0.
|
||||
allocate(tflux_(nxp,nyp,nzp), stat=ierr) ; tflux_ = 0.
|
||||
allocate(y_avg_tflux(nxp), stat=ierr) ; y_avg_tflux = 0.
|
||||
allocate(ddx_c_auto(nxp,nyp,nzp), stat=ierr) ; ddx_c_auto = 0.
|
||||
allocate(avg_tflux(nxp), stat=ierr) ; avg_tflux = 0.
|
||||
allocate(ddx_nx(nxp,nyp,nzp), stat=ierr) ; ddx_nx = 0.
|
||||
allocate(t1_fsd(nxp,nyp,nzp), stat=ierr) ; t1_fsd = 0.
|
||||
allocate(t2_fsd(nxp,nyp,nzp), stat=ierr) ; t2_fsd = 0.
|
||||
allocate(ddz_c(nxp,nyp,nzp), stat=ierr) ; ddz_c = 0.
|
||||
allocate(vn(nxp,nyp,nzp), stat=ierr) ; vn = 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(ny(nxp,nyp,nzp), stat=ierr) ; ny = 0.
|
||||
allocate(wrate(nxp,nyp,nzp), stat=ierr) ; wrate = 0.
|
||||
allocate(avg_fsd(nxp), stat=ierr) ; avg_fsd = 0.
|
||||
allocate(fsd_avg_absk(nxp), stat=ierr) ; fsd_avg_absk = 0.
|
||||
allocate(nx(nxp,nyp,nzp), stat=ierr) ; nx = 0.
|
||||
allocate(ddy_ny(nxp,nyp,nzp), stat=ierr) ; ddy_ny = 0.
|
||||
allocate(nz(nxp,nyp,nzp), stat=ierr) ; nz = 0.
|
||||
allocate(ddz_nz(nxp,nyp,nzp), stat=ierr) ; ddz_nz = 0.
|
||||
allocate(fu(nxp,nyp,nzp), stat=ierr) ; fu = 0.
|
||||
allocate(c(nxp,nyp,nzp), stat=ierr) ; c = 0.
|
||||
allocate(fsd(nxp,nyp,nzp), stat=ierr) ; fsd = 0.
|
||||
allocate(d2dy_c(nxp,nyp,nzp), stat=ierr) ; d2dy_c = 0.
|
||||
allocate(d2dx_c(nxp,nyp,nzp), stat=ierr) ; d2dx_c = 0.
|
||||
allocate(d2dz_c(nxp,nyp,nzp), stat=ierr) ; d2dz_c = 0.
|
||||
allocate(absk(nxp,nyp,nzp), stat=ierr) ; absk = 0.
|
||||
allocate(sd(nxp,nyp,nzp), stat=ierr) ; sd = 0.
|
||||
|
||||
|
||||
end subroutine m_terms_init
|
||||
|
|
@ -67,29 +73,32 @@ end subroutine m_terms_init
|
|||
|
||||
subroutine m_terms_finalize
|
||||
|
||||
deallocate(fsd_auto_avg_u)
|
||||
deallocate(fsd_auto)
|
||||
deallocate(avg_c_auto)
|
||||
deallocate(ddz_c_auto)
|
||||
deallocate(tflux_y)
|
||||
deallocate(c_auto_avg_w)
|
||||
deallocate(c_auto_avg_v)
|
||||
deallocate(c_auto_avg_u)
|
||||
deallocate(y_avg_w)
|
||||
deallocate(avg_fsd_auto)
|
||||
deallocate(y_avg_v)
|
||||
deallocate(c_auto)
|
||||
deallocate(y_avg_u)
|
||||
deallocate(ddy_c_auto)
|
||||
deallocate(y_avg_c_auto)
|
||||
deallocate(avg_u)
|
||||
deallocate(avg_v)
|
||||
deallocate(avg_w)
|
||||
deallocate(avg_y)
|
||||
deallocate(tflux_)
|
||||
deallocate(y_avg_tflux)
|
||||
deallocate(ddx_c_auto)
|
||||
deallocate(avg_tflux)
|
||||
deallocate(ddx_nx)
|
||||
deallocate(t1_fsd)
|
||||
deallocate(t2_fsd)
|
||||
deallocate(ddz_c)
|
||||
deallocate(vn)
|
||||
deallocate(ddy_c)
|
||||
deallocate(ddx_c)
|
||||
deallocate(fsd_avg_fu)
|
||||
deallocate(fsd_avg_t2)
|
||||
deallocate(fsd_avg_t1)
|
||||
deallocate(ny)
|
||||
deallocate(wrate)
|
||||
deallocate(avg_fsd)
|
||||
deallocate(fsd_avg_absk)
|
||||
deallocate(nx)
|
||||
deallocate(ddy_ny)
|
||||
deallocate(nz)
|
||||
deallocate(ddz_nz)
|
||||
deallocate(fu)
|
||||
deallocate(c)
|
||||
deallocate(fsd)
|
||||
deallocate(d2dy_c)
|
||||
deallocate(d2dx_c)
|
||||
deallocate(d2dz_c)
|
||||
deallocate(absk)
|
||||
deallocate(sd)
|
||||
|
||||
|
||||
end subroutine m_terms_finalize
|
||||
|
|
@ -103,7 +112,20 @@ integer :: i, j, k
|
|||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
y_avg_w(i) = y_avg_w(i) + w(i,j,k) * y(i,j,k)
|
||||
c(i,j,k) = ( 1.0 - y(i,j,k) )
|
||||
end do
|
||||
end do
|
||||
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
|
||||
fsd(i,j,k) = ( sqrt ( ( ( ((ddx_c(i,j,k))*(ddx_c(i,j,k))) + ((ddy_c(i,j,k))*(ddy_c(i,j,k))) ) + ((ddz_c(i,j,k))*(ddz_c(i,j,k))) ) ) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
|
@ -112,7 +134,17 @@ end do
|
|||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
y_avg_v(i) = y_avg_v(i) + v(i,j,k) * y(i,j,k)
|
||||
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
|
||||
avg_fsd(i) = avg_fsd(i) + fsd(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
|
@ -121,7 +153,27 @@ end do
|
|||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
c_auto(i,j,k) = ( 1.0 - y(i,j,k) )
|
||||
nx(i,j,k) = ( ( - ddx_c(i,j,k) ) / fsd(i,j,k) )
|
||||
end do
|
||||
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
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
nz(i,j,k) = ( ( - ddz_c(i,j,k) ) / fsd(i,j,k) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
|
@ -130,17 +182,18 @@ end do
|
|||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
avg_c_auto(i) = avg_c_auto(i) + c_auto(i,j,k)
|
||||
vn(i,j,k) = ( ( ( u(i,j,k) * nx(i,j,k) ) + ( v(i,j,k) * ny(i,j,k) ) ) + ( w(i,j,k) * nz(i,j,k) ) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
call ddz ( ddz_c_auto, c_auto )
|
||||
call ddz ( ddz_nz, nz )
|
||||
call d2dz ( d2dz_c, c )
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
c_auto_avg_w(i) = c_auto_avg_w(i) + w(i,j,k) * c_auto(i,j,k)
|
||||
sd(i,j,k) = ( ( ( ( ( d2dx_c(i,j,k) + d2dy_c(i,j,k) ) + d2dz_c(i,j,k) ) * rod ) + wrate(i,j,k) ) / fsd(i,j,k) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
|
@ -149,7 +202,7 @@ end do
|
|||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
c_auto_avg_v(i) = c_auto_avg_v(i) + v(i,j,k) * c_auto(i,j,k)
|
||||
fu(i,j,k) = ( ( vn(i,j,k) + sd(i,j,k) ) * nx(i,j,k) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
|
@ -158,7 +211,7 @@ end do
|
|||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
c_auto_avg_u(i) = c_auto_avg_u(i) + u(i,j,k) * c_auto(i,j,k)
|
||||
fsd_avg_fu(i) = fsd_avg_fu(i) + fu(i,j,k) * fsd(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
|
@ -167,17 +220,7 @@ end do
|
|||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
y_avg_u(i) = y_avg_u(i) + u(i,j,k) * y(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
call ddy ( ddy_c_auto, c_auto )
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
y_avg_c_auto(i) = y_avg_c_auto(i) + c_auto(i,j,k) * y(i,j,k)
|
||||
absk(i,j,k) = ( dabs ( ( ( ddx_nx(i,j,k) + ddy_ny(i,j,k) ) + ddz_nz(i,j,k) ) ) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
|
@ -186,62 +229,7 @@ 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
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
avg_y(i) = avg_y(i) + y(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
call ddx ( ddx_c_auto, c_auto )
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
fsd_auto(i,j,k) = ( sqrt ( ( ( ((ddx_c_auto(i,j,k))*(ddx_c_auto(i,j,k))) + ((ddy_c_auto(i,j,k))*(ddy_c_auto(i,j,k))) ) + ((ddz_c_auto(i,j,k))*(ddz_c_auto(i,j,k))) ) ) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
fsd_auto_avg_u(i) = fsd_auto_avg_u(i) + u(i,j,k) * fsd_auto(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
avg_fsd_auto(i) = avg_fsd_auto(i) + fsd_auto(i,j,k)
|
||||
fsd_avg_absk(i) = fsd_avg_absk(i) + absk(i,j,k) * fsd(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
|
@ -258,20 +246,9 @@ real*8 :: denum
|
|||
|
||||
denum=real(nfiles*nyp*nzp)
|
||||
|
||||
avg_u = avg_u / denum
|
||||
avg_v = avg_v / denum
|
||||
avg_w = avg_w / denum
|
||||
avg_c_auto = avg_c_auto / denum
|
||||
avg_y = avg_y / denum
|
||||
avg_fsd_auto = avg_fsd_auto / denum
|
||||
c_auto_avg_u = c_auto_avg_u / denum / avg_c_auto
|
||||
c_auto_avg_v = c_auto_avg_v / denum / avg_c_auto
|
||||
c_auto_avg_w = c_auto_avg_w / denum / avg_c_auto
|
||||
y_avg_u = y_avg_u / denum / avg_y
|
||||
y_avg_v = y_avg_v / denum / avg_y
|
||||
y_avg_w = y_avg_w / denum / avg_y
|
||||
y_avg_c_auto = y_avg_c_auto / denum / avg_y
|
||||
fsd_auto_avg_u = fsd_auto_avg_u / denum / avg_fsd_auto
|
||||
avg_fsd = avg_fsd / denum
|
||||
fsd_avg_fu = fsd_avg_fu / denum / avg_fsd
|
||||
fsd_avg_absk = fsd_avg_absk / denum / avg_fsd
|
||||
|
||||
|
||||
end subroutine m_terms_average_pass1
|
||||
|
|
@ -285,7 +262,19 @@ integer :: i, j, k
|
|||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
c_auto(i,j,k) = ( 1.0 - y(i,j,k) )
|
||||
c(i,j,k) = ( 1.0 - y(i,j,k) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
call ddz ( ddz_c, c )
|
||||
call ddy ( ddy_c, c )
|
||||
call ddx ( ddx_c, c )
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
fsd(i,j,k) = ( sqrt ( ( ( ((ddx_c(i,j,k))*(ddx_c(i,j,k))) + ((ddy_c(i,j,k))*(ddy_c(i,j,k))) ) + ((ddz_c(i,j,k))*(ddz_c(i,j,k))) ) ) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
|
@ -294,7 +283,7 @@ end do
|
|||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
tflux_(i,j,k) = ( (u(i,j,k) - avg_u(i)) * (c_auto(i,j,k) - avg_c_auto(i)) )
|
||||
ny(i,j,k) = ( ( - ddy_c(i,j,k) ) / fsd(i,j,k) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
|
@ -303,7 +292,29 @@ end do
|
|||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
avg_tflux(i) = avg_tflux(i) + tflux_(i,j,k)
|
||||
wrate(i,j,k) = ( rxn_rate ( c(i,j,k) ) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
call d2dy ( d2dy_c, c )
|
||||
call d2dx ( d2dx_c, c )
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
nx(i,j,k) = ( ( - ddx_c(i,j,k) ) / fsd(i,j,k) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
call ddx ( ddx_nx, nx )
|
||||
call ddy ( ddy_ny, ny )
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
nz(i,j,k) = ( ( - ddz_c(i,j,k) ) / fsd(i,j,k) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
|
@ -312,7 +323,18 @@ end do
|
|||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
tflux_y(i,j,k) = ( (u(i,j,k) - y_avg_u(i)) * (c_auto(i,j,k) - y_avg_c_auto(i)) )
|
||||
vn(i,j,k) = ( ( ( u(i,j,k) * nx(i,j,k) ) + ( v(i,j,k) * ny(i,j,k) ) ) + ( w(i,j,k) * nz(i,j,k) ) )
|
||||
end do
|
||||
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) ) ) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
|
@ -321,7 +343,52 @@ end do
|
|||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
y_avg_tflux(i) = y_avg_tflux(i) + tflux_y(i,j,k) * y(i,j,k)
|
||||
t2_fsd(i,j,k) = (((absk(i,j,k) - fsd_avg_absk(i)))*((absk(i,j,k) - fsd_avg_absk(i))))
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
fsd_avg_t2(i) = fsd_avg_t2(i) + t2_fsd(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
|
||||
sd(i,j,k) = ( ( ( ( ( d2dx_c(i,j,k) + d2dy_c(i,j,k) ) + d2dz_c(i,j,k) ) * rod ) + wrate(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
|
||||
fu(i,j,k) = ( ( vn(i,j,k) + sd(i,j,k) ) * nx(i,j,k) )
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
t1_fsd(i,j,k) = (((fu(i,j,k) - fsd_avg_fu(i)))*((fu(i,j,k) - fsd_avg_fu(i))))
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
||||
|
||||
do k = 1, nzp
|
||||
do j = 1, nyp
|
||||
do i = 1, nxp
|
||||
fsd_avg_t1(i) = fsd_avg_t1(i) + t1_fsd(i,j,k) * fsd(i,j,k)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
|
@ -338,8 +405,8 @@ real*8 :: denum
|
|||
|
||||
denum=real(nfiles*nyp*nzp)
|
||||
|
||||
avg_tflux = avg_tflux / denum
|
||||
y_avg_tflux = y_avg_tflux / denum / avg_y
|
||||
fsd_avg_t1 = fsd_avg_t1 / denum / avg_fsd
|
||||
fsd_avg_t2 = fsd_avg_t2 / denum / avg_fsd
|
||||
|
||||
|
||||
end subroutine m_terms_average_pass2
|
||||
|
|
|
|||
1551
code/post.f90
1551
code/post.f90
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue