Function that returns
Type | Intent | Optional | 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) |
Function that returns the acf of an array.
Type | Intent | Optional | 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? |
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.
Type | Intent | Optional | 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 |
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.
Type | Intent | Optional | 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? |