| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | private | :: | spectral_mod_initialized_flag | = | .false. | ||
| real(kind=p), | private, | allocatable, dimension(:, :) | :: | el2 | |||
| real(kind=p), | private, | allocatable, dimension(:, :) | :: | elm2 | |||
| real(kind=p), | private, | allocatable, dimension(:, :) | :: | el4 | |||
| real(kind=p), | private, | allocatable, dimension(:, :) | :: | trfilt | |||
| real(kind=p), | private, | allocatable, dimension(:, :) | :: | gradym | |||
| real(kind=p), | private, | allocatable, dimension(:, :) | :: | gradyp | |||
| real(kind=p), | private, | allocatable, dimension(:, :) | :: | uvdx | |||
| real(kind=p), | private, | allocatable, dimension(:, :) | :: | uvdym | |||
| real(kind=p), | private, | allocatable, dimension(:, :) | :: | uvdyp | |||
| real(kind=p), | private, | allocatable, dimension(:, :) | :: | vddym | |||
| real(kind=p), | private, | allocatable, dimension(:, :) | :: | vddyp | |||
| real(kind=p), | private, | allocatable, dimension(:) | :: | gradx |
| procedure, public :: initialize => ModSpectral_initialize | |
| procedure, public :: delete => ModSpectral_delete | |
| procedure, public :: spec2grid => ModSpectral_spec2grid | |
| procedure, public :: grid2spec => ModSpectral_grid2spec | |
| procedure, public :: gradient => ModSpectral_gradient | |
| procedure, public :: vel2vort => ModSpectral_vel2vort | |
| procedure, public :: vort2vel => ModSpectral_vort2vel | |
| procedure, public :: grid_vel2vort => ModSpectral_grid_vel2vort | |
| procedure, public :: truncate => ModSpectral_truncate | |
| procedure, public :: grid_filter => ModSpectral_grid_filter | |
| procedure, public :: laplacian => ModSpectral_laplacian | |
| procedure, public :: laplacian_inv => ModSpectral_laplacian_inv |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModSpectral_t), | intent(in) | :: | this | |||
| complex(kind=p), | intent(in) | :: | input(mx,nx) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModSpectral_t), | intent(in) | :: | this | |||
| complex(kind=p), | intent(in) | :: | input(mx,nx) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModSpectral_t), | intent(in) | :: | this | |||
| complex(kind=p), | intent(in) | :: | vorm(mx,nx) | |||
| integer, | intent(in) | :: | kcos |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModSpectral_t), | intent(in) | :: | this | |||
| real(kind=p), | intent(in) | :: | vorg(ix,il) |
Initialize the spectral module instance
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModSpectral_t), | intent(inout) | :: | this | |||
| class(ModGeometry_t), | intent(in), | target | :: | mod_geometry |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModSpectral_t), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModSpectral_t), | intent(in) | :: | this | |||
| complex(kind=p), | intent(inout) | :: | vor(mx,nx) |
Compute the Vorticity and Divergenge from a wind field (U,V). All the fields are in the spectral space.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModSpectral_t), | intent(in) | :: | this | |||
| complex(kind=p), | dimension(mx, nx) | :: | ucosm | |||
| complex(kind=p), | dimension(mx, nx) | :: | vcosm | |||
| complex(kind=p), | intent(inout), | dimension(mx, nx) | :: | vorm | ||
| complex(kind=p), | intent(inout), | dimension(mx, nx) | :: | divm |
Compute the U and V winds from the Vorticity and Divergenge fields. All the fields are in the spectral space.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModSpectral_t), | intent(in) | :: | this | |||
| complex(kind=p), | intent(in), | dimension(mx, nx) | :: | vorm | ||
| complex(kind=p), | intent(in), | dimension(mx, nx) | :: | divm | ||
| complex(kind=p), | intent(inout), | dimension(mx, nx) | :: | ucosm | ||
| complex(kind=p), | intent(inout), | dimension(mx, nx) | :: | vcosm |
Convert u and v in the grid space to Vorticity and Divergence in the spectral space.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModSpectral_t), | intent(in) | :: | this | |||
| real(kind=p), | intent(in) | :: | ug(ix,il) | |||
| real(kind=p), | intent(in) | :: | vg(ix,il) | |||
| complex(kind=p), | intent(out) | :: | vorm(mx,nx) | |||
| complex(kind=p), | intent(out) | :: | divm(mx,nx) | |||
| integer, | intent(in) | :: | kcos |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModSpectral_t), | intent(in) | :: | this | |||
| complex(kind=p), | intent(inout), | dimension(mx, nx) | :: | psi | ||
| complex(kind=p), | intent(inout), | dimension(mx, nx) | :: | psdx | ||
| complex(kind=p), | intent(inout), | dimension(mx, nx) | :: | psdy |
Compute a spectrally-filtered grid-point field.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModSpectral_t), | intent(in) | :: | this | |||
| real(kind=p), | intent(inout) | :: | fg1(ix,il) | Original grid-point field |
||
| real(kind=p), | intent(inout) | :: | fg2(ix,il) | Filtered grid-point field |