subroutine volume ! Calculate zone volume and average area based on geometry of sweep !--------------------------------------------------------------- ! GLOBALS use global use sweeps IMPLICIT NONE ! LOCALS INTEGER :: n REAL, PARAMETER :: third = 1.0/3.0 !------------------------------------------------------------------------ select case (ngeom) case (0) radius = 1.0 do n = nmin-3, nmax+4 dvol (n) = dx (n) dvol0(n) = dx0(n) enddo case (1) radius = 1.0 do n = nmin-3, nmax+4 dvol (n) = dx (n)*(xa (n)+0.5*dx (n)) dvol0(n) = dx0(n)*(xa0(n)+0.5*dx0(n)) enddo case (2) radius = 1.0 do n = nmin-3, nmax+4 dvol (n) = dx (n)*(xa (n)*(xa (n)+dx (n))+dx (n)*dx (n)*third) dvol0(n) = dx0(n)*(xa0(n)*(xa0(n)+dx0(n))+dx0(n)*dx0(n)*third) enddo case (3) do n = nmin-3, nmax+4 dvol (n) = dx (n)*radius dvol0(n) = dx0(n)*radius enddo case (4) do n = nmin-3, nmax+4 dvol (n) = (cos(xa (n))-cos(xa (n+1)))*radius dvol0(n) = (cos(xa0(n))-cos(xa0(n+1)))*radius enddo case (5) do n = nmin-3, nmax+4 dvol (n) = dx (n) * radius dvol0(n) = dx0(n) * radius enddo case default write(*,*) 'Geometry', ngeom, ' not implemented.' stop end select return end