TreeMig Code
|
Go to the source code of this file.
Functions/Subroutines | |
subroutine | gft2dconvolution (isp, ny, mx, niy, mjx, spatdatain, kerneltransf, spatdataout) |
subroutine | gft2dtransformkernel (ny, mx, niy, mjx, y_dim_kernel, x_dim_kernel, kernelin, kerneltransf) |
GFT2DTransformKernel | |
subroutine | setdimsforfft (ispec) |
SetDimsForFFT | |
subroutine | lowpassfilter (dimy_start, dimy_end, dimx_start, dimx_end, filterexpo, filter) |
LowPassFilter | |
subroutine gft2dconvolution | ( | integer, intent(in) | isp, |
integer, intent(in) | ny, | ||
integer, intent(in) | mx, | ||
integer, intent(in) | niy, | ||
integer, intent(in) | mjx, | ||
real(kind=gft_prec), dimension(0:ny-1,mx), intent(in) | spatdatain, | ||
complex(kind=gft_prec), dimension(0:niy/2,mjx), intent(in) | kerneltransf, | ||
real(kind=gft_prec), dimension(0:ny-1,mx), intent(out) | spatdataout ) |
GFT2DConvolution
Convolution by Fast Fourier Transform (FFT) of seed dispersal kernel and seed production area
done in several steps:
USE GFT
ny | maxlatEvenext, y-dimension of intermediate area, a bit more than maxlat |
mx | maxlonEvenext, x-dimension of intermediate area, a bit more than maxlon |
niy | maxlatExt, y-dimension of large area |
mjx | maxlonExt, x-dimension of large area |
kernelTransf | transformed kernel |
Definition at line 37 of file GFTConvolution2D.f90.
subroutine gft2dtransformkernel | ( | integer, intent(in) | ny, |
integer, intent(in) | mx, | ||
integer, intent(in) | niy, | ||
integer, intent(in) | mjx, | ||
integer, intent(in) | y_dim_kernel, | ||
integer, intent(in) | x_dim_kernel, | ||
real (kind=gft_prec), dimension(0:(y_dim_kernel-1),x_dim_kernel ), intent(in) | kernelin, | ||
complex(kind=gft_prec), dimension(0:(niy/2),mjx), intent(out) | kerneltransf ) |
GFT2DTransformKernel
Fast Fourier transforms the seed dispersal kernel to the frequency domain !> done in several steps: #- the kernel is stored to the center of the intermediate area #- it is mirrored to the corners of this intermediate area #- the intermediate area with the mirrored kernel is stored to the 0,0, corner of the large are #- the fft transformation is done
ny | maxlatEvenext, y-dimension of intermediate area, a bit more than maxlat |
mx | maxlonEvenext, x-dimension of intermediate area, a bit more than maxlon |
niy | maxlatExt, y-dimension of large area |
mjx | maxlonExt, x-dimension of large area |
y_dim_kernel | rad* 2 +2.; y-dimension of kernel |
x_dim_kernel | rad* 2 +2.; x-dimension of kernel (normally the same as y_dim_kernel |
kernelIn | this is the kernel |
kernelTransf | the Fourier Transform of the kernel on the large area (complex) |
Definition at line 166 of file GFTConvolution2D.f90.
subroutine lowpassfilter | ( | integer, intent(in) | dimy_start, |
integer, intent(in) | dimy_end, | ||
integer, intent(in) | dimx_start, | ||
integer, intent(in) | dimx_end, | ||
real, intent(in) | filterexpo, | ||
complex(kind=gft_prec), dimension(dimy_start:dimy_end,dimx_start:dimx_end), intent(out) | filter ) |
LowPassFilter
Attempt for filtering the noise out in frequency domain. Not used currently.
Here a distance weighted low pass filter, i.e. decreasing with distance from (0,1) cell. dimy-start is normally 0, dimx_start is normally 1
dimy_start,dimy_end,dimx_start,dimx_end | : INTEGER, dimension bounds of the areas in frequency domain |
filterexpo:factor | determining the slope of decrease with distance |
filter,the | filter to be multiplied to the signal, i.e. the transformed kernel, the transformed seed production |
Definition at line 283 of file GFTConvolution2D.f90.
subroutine setdimsforfft | ( | integer, intent(in) | ispec | ) |
SetDimsForFFT
Sets the dimenstions of the Fast Fourier Transformations, for the next even (intermediate) area and for the large extended area
ispec | : species identifier |
Definition at line 236 of file GFTConvolution2D.f90.