fluidvolume Subroutine

public subroutine fluidvolume(volume)

Uses

  • proc~~fluidvolume~~UsesGraph proc~fluidvolume modforces::fluidvolume module~modfields modfields proc~fluidvolume->module~modfields module~modglobal modglobal proc~fluidvolume->module~modglobal module~modmpi modmpi proc~fluidvolume->module~modmpi mpi mpi module~modmpi->mpi

Arguments

Type IntentOptional Attributes Name
real, intent(out) :: volume

Calls

proc~~fluidvolume~~CallsGraph proc~fluidvolume modforces::fluidvolume proc~sumy_ibm modmpi::sumy_ibm proc~fluidvolume->proc~sumy_ibm mpi_allreduce mpi_allreduce proc~sumy_ibm->mpi_allreduce

Called by

proc~~fluidvolume~~CalledByGraph proc~fluidvolume modforces::fluidvolume proc~calcfluidvolumes modforces::calcfluidvolumes proc~calcfluidvolumes->proc~fluidvolume proc~startup modstartup::startup proc~startup->proc~calcfluidvolumes program~dalesurban DALESURBAN program~dalesurban->proc~startup

Contents

Source Code


Source Code

  subroutine fluidvolume(volume)
    ! calculates fluid volume of domain excluding blocks

    use modglobal, only   : ib,ie,jb,je,kb,ke,dy,dxf,dzf
    use modfields, only   : IIc
    use modmpi, only      : sumy_ibm

    implicit none
    real, intent(out)             :: volume
    real, dimension(ib:ie,kb:ke)  :: sumy
    real, dimension(kb:ke)        :: sumxy
    integer                          k

    sumy = 0.
    sumxy = 0.

    ! integrate fluid volume in y
    call sumy_ibm(sumy,IIc(ib:ie,jb:je,kb:ke)*dy,ib,ie,jb,je,kb,ke,IIc(ib:ie,jb:je,kb:ke))

    ! integrate fluid area in x
    do k=kb,ke
      sumxy(k) = sum(sumy(ib:ie,k)*dxf(ib:ie))
    end do

    ! integrate fluid area in z
    volume = sum(sumxy(kb:ke)*dzf(kb:ke))

  end subroutine fluidvolume