mean_array Subroutine

public subroutine mean_array(nside, cube, cube_mean)

Average cube along spatial axis depending on level n

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: nside

nside of the cube

real(kind=xp), intent(in), dimension(:,:,:), allocatable:: cube

cube

real(kind=xp), intent(inout), dimension(:,:,:), allocatable:: cube_mean

average cube


Called by

proc~~mean_array~~CalledByGraph proc~mean_array mean_array proc~main_rohsa main_rohsa proc~main_rohsa->proc~mean_array program~rohsa ROHSA program~rohsa->proc~main_rohsa

Contents

Source Code


Source Code

  subroutine mean_array(nside, cube, cube_mean)
    !! Average cube along spatial axis depending on level n 
    implicit none

    integer, intent(in) :: nside !! nside of the cube
    real(xp), intent(in), dimension(:,:,:), allocatable :: cube !! cube
    real(xp), intent(inout), dimension(:,:,:), allocatable :: cube_mean !! average cube

    integer :: i, j, k, l, n
    real(xp), dimension(:), allocatable :: spectrum

    allocate(spectrum(size(cube,dim=1)))
    spectrum = 0.
    
    n = size(cube, dim=2) / nside

    do i=1,size(cube_mean,dim=2)
       do j=1,size(cube_mean,dim=3)
          do k=1,n
             do l=1,n
                spectrum = spectrum + cube(:,k+((i-1)*n),l+((j-1)*n))
             enddo
          enddo
          spectrum = spectrum / (n**2)
          cube_mean(:,i,j) = spectrum
          spectrum = 0.
       enddo
    enddo
    
  end subroutine mean_array