calc_acf Subroutine

private subroutine calc_acf()

Note

Function that returns the autocorrelation function of a surface in PARAM%acf_surf

Arguments

None

Calls

proc~~calc_acf~~CallsGraph proc~calc_acf calc_acf proc~acf_wiener acf_wiener proc~calc_acf->proc~acf_wiener calc_fftw3_real_bwd calc_fftw3_real_bwd proc~acf_wiener->calc_fftw3_real_bwd calc_fftw3_real_fwd calc_fftw3_real_fwd proc~acf_wiener->calc_fftw3_real_fwd tab_calc_fftw3_real_bwd tab_calc_fftw3_real_bwd proc~acf_wiener->tab_calc_fftw3_real_bwd tab_calc_fftw3_real_fwd tab_calc_fftw3_real_fwd proc~acf_wiener->tab_calc_fftw3_real_fwd trans_corner2center trans_corner2center proc~acf_wiener->trans_corner2center

Called by

proc~~calc_acf~~CalledByGraph proc~calc_acf calc_acf proc~read_job read_job proc~read_job->proc~calc_acf proc~prg_surf prg_surf proc~prg_surf->proc~read_job program~main main program~main->proc~prg_surf

Source Code

   subroutine calc_acf()
   !================================================================================================
   !<@note Function that returns the autocorrelation function of a surface in PARAM%acf_surf
   !<
   !<@endnote
   !------------------------------------------------------------------------------------------------
   implicit none

      integer(kind=I4) :: w, h
      logical(kind=I4) :: set_acf

      ! if set_acf is true, the acf becomes the prescribed one
      read(JOB,*) set_acf ; LINE_READ = LINE_READ +1 ; write(SPY,*) LINE_READ, "Set ACF ", set_acf

      w = PARAM%width
      h = PARAM%height

      call acf_wiener(  tab_in = PARAM%surf(1:w, 1:h),          &  ! IN
                       tab_out = PARAM%acf_surf(1:w, 1:h),      &  ! OUT
                             w = w,                             &  ! IN
                             h = h  )                              ! IN

      if ( set_acf ) PARAM%imp_acf(1:w, 1:h) = PARAM%acf_surf(1:w, 1:h)

   return
   endsubroutine calc_acf