91 lines
2.3 KiB
Fortran
91 lines
2.3 KiB
Fortran
module m_terms
|
|
|
|
use m_parameters
|
|
use m_arrays
|
|
use m_calculate
|
|
|
|
implicit none
|
|
|
|
real*8, allocatable, dimension(:,:,:) :: c_auto
|
|
real*8, allocatable, dimension(:,:,:) :: fsd_auto
|
|
real*8, allocatable, dimension(:,:,:) :: wrate_auto
|
|
real*8, allocatable, dimension(:,:,:) :: ddz_c_auto
|
|
real*8, allocatable, dimension(:,:,:) :: ddy_c_auto
|
|
real*8, allocatable, dimension(:,:,:) :: ddx_c_auto
|
|
|
|
|
|
contains
|
|
|
|
subroutine m_terms_init
|
|
|
|
integer :: ierr
|
|
|
|
allocate(c_auto(nxp,nyp,nzp), stat=ierr) ; c_auto = 0.
|
|
allocate(fsd_auto(nxp,nyp,nzp), stat=ierr) ; fsd_auto = 0.
|
|
allocate(wrate_auto(nxp,nyp,nzp), stat=ierr) ; wrate_auto = 0.
|
|
allocate(ddz_c_auto(nxp,nyp,nzp), stat=ierr) ; ddz_c_auto = 0.
|
|
allocate(ddy_c_auto(nxp,nyp,nzp), stat=ierr) ; ddy_c_auto = 0.
|
|
allocate(ddx_c_auto(nxp,nyp,nzp), stat=ierr) ; ddx_c_auto = 0.
|
|
|
|
|
|
end subroutine m_terms_init
|
|
|
|
|
|
subroutine m_terms_finalize
|
|
|
|
deallocate(c_auto)
|
|
deallocate(fsd_auto)
|
|
deallocate(wrate_auto)
|
|
deallocate(ddz_c_auto)
|
|
deallocate(ddy_c_auto)
|
|
deallocate(ddx_c_auto)
|
|
|
|
|
|
end subroutine m_terms_finalize
|
|
|
|
|
|
subroutine m_terms_calculate_instant
|
|
|
|
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) )
|
|
end do
|
|
end do
|
|
end do
|
|
|
|
call ddy ( ddy_c_auto, c_auto )
|
|
call ddz ( ddz_c_auto, c_auto )
|
|
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
|
|
wrate_auto(i,j,k) = ( rxn_rate ( c_auto(i,j,k) ) )
|
|
end do
|
|
end do
|
|
end do
|
|
|
|
|
|
|
|
end subroutine m_terms_calculate_instant
|
|
|
|
|
|
end module m_terms
|
|
|
|
! {'c_auto': '( 1.0 - y(i,j,k) )', 'fsd_auto': '( 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))) ) ) )', 'wrate_auto': '( rxn_rate ( c_auto(i,j,k) ) )'}
|
|
! {'ddz_c_auto': ('ddz', 'c_auto'), 'ddy_c_auto': ('ddy', 'c_auto'), 'ddx_c_auto': ('ddx', 'c_auto')}
|
|
! {'fsd_auto': ['ddx_c_auto', 'ddy_c_auto', 'ddz_c_auto'], 'ddz_c_auto': ['c_auto'], 'c_auto': [], 'ddy_c_auto': ['c_auto'], 'ddx_c_auto': ['c_auto'], 'wrate_auto': ['c_auto']}
|
|
! ['c_auto', 'ddy_c_auto', 'ddz_c_auto', 'ddx_c_auto', 'fsd_auto', 'wrate_auto']
|