func_acf Module


Uses

  • module~~func_acf~~UsesGraph module~func_acf func_acf data_arch data_arch module~func_acf->data_arch fftw3 fftw3 module~func_acf->fftw3 miscellaneous miscellaneous module~func_acf->miscellaneous module~crest_param crest_param module~func_acf->module~crest_param stat_mom stat_mom module~func_acf->stat_mom module~crest_param->data_arch module~crest_param->stat_mom pikaia_oop pikaia_oop module~crest_param->pikaia_oop

Used by

  • module~~func_acf~~UsedByGraph module~func_acf func_acf module~script script module~script->module~func_acf program~main main program~main->module~script

Functions

private function autocov_impo(xi, xj, tau1, tau2, alpha, ang)

Function that returns

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=R8), intent(in) :: xi

coordinate

real(kind=R8), intent(in) :: xj

coordinate

real(kind=R8), intent(in) :: tau1

correlation length along

real(kind=R8), intent(in) :: tau2

correlation length along

real(kind=R8), intent(in) :: alpha

log(z) where z is often 0.2

real(kind=R8), intent(in) :: ang

angle (rad)

Return Value real(kind=r8)


Subroutines

public subroutine acf_wiener(tab_in, tab_out, w, h, multi_fft)

Function that returns the acf of an array.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=R8), intent(in), dimension(1:w, 1:h) :: tab_in

input array

real(kind=R8), intent(out), dimension(1:w, 1:h) :: tab_out

acf of the input array

integer(kind=I4), intent(in) :: w

2D array length

integer(kind=I4), intent(in) :: h

2D array width

logical(kind=I4), intent(in), optional :: multi_fft

run parallel acfs?

private subroutine apod2(tab_in, tab_out, long, larg, tau1, tau2, ang)

Function that returns an apodized array.
To prevent gaps from appearing after FFT (because of non periodic waves), the surface must be transformed, but not too much. Here a modified Tukey window is determined. The starting surface is not modified below the “correlation lengths”. Above the correlation lengths, a smooth decrease is forced with a cosine squared.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=R8), intent(in), dimension(1:long, 1:larg) :: tab_in

input acf

real(kind=R8), intent(out), dimension(1:long, 1:larg) :: tab_out

apodized acf

integer(kind=I4), intent(in) :: long

surface acf length

integer(kind=I4), intent(in) :: larg

surface acf width

real(kind=R8), intent(in) :: tau1

surface first correlation length

real(kind=R8), intent(in) :: tau2

surface second correlation length

real(kind=R8), intent(in) :: ang

ellipsis angle

public subroutine calc_imp_acf(long, larg, tau1, tau2, alpha, ang, tab_acf, apod)

Function that returns the theoretical autocorrelation function in an array.
The autocorrelation function is supposed to be obtained from a real surface which must be periodic or nearly periodic (because of the use of FFTs). In addition, the surface is supposed to be 0 mean and normalized (), therefore acf is zero-mean and normalized so that its max value is 1.

Read more…

Arguments

Type IntentOptional Attributes Name
integer(kind=I4), intent(in) :: long

surface acf width

integer(kind=I4), intent(in) :: larg

surface acf height

real(kind=R8), intent(in) :: tau1

first correlation length

real(kind=R8), intent(in) :: tau2

surface second correlation length

real(kind=R8), intent(in) :: alpha

parameter that controls the expondential decrease

real(kind=R8), intent(in) :: ang

acf ellipsis angle

real(kind=R8), intent(out), dimension(1:long, 1:larg) :: tab_acf

resulting acf

logical(kind=I4), intent(in) :: apod

apodization?