122 lines
3 KiB
Fortran
122 lines
3 KiB
Fortran
subroutine write_tp_stat
|
|
use m_parameters
|
|
use m_stats
|
|
implicit none
|
|
|
|
write(tp_stat,"(i10,f15.10,9e15.6)") itime,time, &
|
|
energy,rms_u_prime,x_length,tau_e,eta,kol_vs, &
|
|
kol_ts,lambda,eps_v
|
|
call flush(tp_stat)
|
|
|
|
end subroutine write_tp_stat
|
|
|
|
|
|
subroutine write_tp_field
|
|
use m_parameters
|
|
use m_fdm_calc
|
|
implicit none
|
|
|
|
integer :: i, j, k, ii
|
|
|
|
if (fdm_sw.eq.0) then
|
|
|
|
if(mod(nx,spx).eq.0) then
|
|
write(tp_field,897) time,nx/spx,ny/spy,nz_all/spz
|
|
else
|
|
write(tp_field,897) time,nx/spx+1,ny/spy+1,nz_all/spz+1
|
|
endif
|
|
|
|
do k=1,nz_all,spz
|
|
do j=1,ny,spy
|
|
do i=1,nx,spx
|
|
write(tp_field,'(6e18.9)') dx*real(i),dy*real(j),dz*real(k),u_(i,j,k),v_(i,j,k),w_(i,j,k) ! u',v',w'
|
|
enddo
|
|
enddo
|
|
enddo
|
|
|
|
else
|
|
|
|
if(mod(nx,spx).eq.0) then
|
|
write(tp_field,897) time,nx/spx,ny/spy,nz_all/spz
|
|
else
|
|
write(tp_field,897) time,nx/spx+1,ny/spy+1,nz_all/spz+1
|
|
endif
|
|
|
|
do ii=1,nz_all,spz
|
|
do j=1,ny,spy
|
|
do i=1,nx,spx
|
|
write(tp_field,'(7e20.10)') real(i)*hx,real(j)*hx,real(ii)*hx, &
|
|
(1.-y1(2,i,j,ii)/y1(1,i,j,ii)),u_(i,j,ii), &
|
|
v_(i,j,ii),w_(i,j,ii)
|
|
enddo
|
|
enddo
|
|
enddo
|
|
|
|
endif
|
|
|
|
call flush(tp_field)
|
|
|
|
897 format('ZONE T="time= ',f10.5,'" I= ',i4,' J= ',i4,' K= ',i4,' F=POINT')
|
|
|
|
end subroutine write_tp_field
|
|
|
|
subroutine write_model_spectrum
|
|
use m_parameters
|
|
implicit none
|
|
integer :: i
|
|
real*8 :: k, wmag, ratio, fac
|
|
real*8 :: e_spec_log00=0.
|
|
real*8 :: e_spec_log01=0.
|
|
real*8 :: e_spec_log02=0.
|
|
real*8 :: e_spec_log03=0.
|
|
|
|
do i=1,kmax
|
|
k=real(i,8)
|
|
|
|
wmag=real(k, 8)
|
|
ratio=wmag / peak_wavenum
|
|
e_spec_log01=wmag**(-5.d0/3.d0)
|
|
e_spec_log02=ratio**3 / peak_wavenum * exp(-3.0D0*ratio)
|
|
|
|
fac = two * PI * ratio
|
|
e_spec_log03=fac**4 / (one + fac**2)**3
|
|
|
|
if(model_e_spec(i).le.0.) e_spec_log00=0.
|
|
write(model_spectrum,'(i3,4e15.5)') i,model_e_spec(i),&
|
|
e_spec_log01,e_spec_log02,e_spec_log03
|
|
write(tp_tke_spec,'(i5,e15.5)') i,model_e_spec(i)
|
|
enddo
|
|
end subroutine write_model_spectrum
|
|
|
|
subroutine write_vel_max
|
|
use m_parameters
|
|
use m_fdm_calc
|
|
implicit none
|
|
write(tp_max_min_uvw,'(f12.6,6e18.8)')time,umax,vmax,wmax,umin,vmin,wmin
|
|
end subroutine write_vel_max
|
|
|
|
subroutine write_tp_eps_spec
|
|
use m_parameters
|
|
use m_stats
|
|
implicit none
|
|
integer :: i
|
|
write(tp_eps_spec,'(a15,f11.5,a1)')'ZONE T= " time=',time,'"'
|
|
write(tp_eps_spec,*) 'I=',kmax,'F=POINT'
|
|
do i=1,kmax
|
|
write(tp_eps_spec,'(i5,e15.5)') i,e_spec1(i)
|
|
enddo
|
|
end subroutine write_tp_eps_spec
|
|
|
|
subroutine write_tp_spec
|
|
use m_parameters
|
|
use m_stats
|
|
implicit none
|
|
integer :: i
|
|
|
|
write(501,'(a15,f11.5,a1)')'ZONE T= " time=',time,'"'
|
|
write(501,*) 'I=',kmax,'F=POINT'
|
|
do i=1,kmax
|
|
write(501,'(i5,2e15.5)') i,e_spec(i),e_spec1(i)
|
|
enddo
|
|
end subroutine write_tp_spec
|
|
|