|
qinit.f90.html |
|
|
Source file: qinit.f90
|
|
Directory: /Users/rjl/clawpack_src/clawpack_master/geoclaw/examples/bouss/radial_flat
|
|
Converted: Sat Mar 23 2024 at 11:13:12
using clawcode2html
|
|
This documentation file will
not reflect any later changes in the source file.
|
subroutine qinit(meqn,mbc,mx,my,xlower,ylower,dx,dy,q,maux,aux)
use geoclaw_module, only: sea_level
implicit none
! Subroutine arguments
integer, intent(in) :: meqn,mbc,mx,my,maux
real(kind=8), intent(in) :: xlower,ylower,dx,dy
real(kind=8), intent(inout) :: q(meqn,1-mbc:mx+mbc,1-mbc:my+mbc)
real(kind=8), intent(inout) :: aux(maux,1-mbc:mx+mbc,1-mbc:my+mbc)
! Locals
integer :: i,j
real(kind=8) :: r0,x,y,r
real(kind=8) :: eta, width, ampl
width = 100.d0 ! controls width of Gaussian
r0 = 0.d0 ! initial radius of Gaussian
ampl = 5.0d0 ! amplitude
! Set flat state based on sea_level
q = 0.d0
forall(i=1:mx, j=1:my)
q(1,i,j) = max(0.d0, sea_level - aux(1,i,j))
end forall
do i=1,mx
x = (xlower + (i-0.5d0)*dx)
do j=1,my
if (q(1,i,j) > 0.d0) then
y = (ylower + (j-0.5d0)*dy)
r = sqrt(x**2 + y**2)
eta = ampl * exp(-(((r-r0)/width)**2))
q(1,i,j) = max(0.d0, eta - aux(1,i,j))
q(2,i,j) = 0.d0
q(3,i,j) = 0.d0
endif
enddo
enddo
end subroutine qinit