My Project
|
Struct that holds information to do transforms for one particular grid resolution. More...
#include <transi.h>
Public Attributes | |
INPUT | |
int | ndgl |
Number of lattitudes. | |
int * | nloen |
Number of longitude points for each latitude DIMENSIONS(1:NDGL) | |
int | nlon |
Number of longitude points for all latitudes . | |
int | nsmax |
Spectral truncation wave number. | |
_bool | lsplit |
If false, the distribution does not allow latitudes to be split. | |
int | llatlon |
If true, the transforms compute extra coefficients for latlon transforms. | |
int | flt |
If true, the Fast-Legendre-Transform method is used which is faster for higher resolutions (N1024) | |
int | fft |
FFT library to use underneith FFT992 = 1 ; FFTW = 2. | |
char * | readfp |
char * | writefp |
const void * | cache |
size_t | cachesize |
PARALLELISATION | |
int | myproc |
Current MPI task (numbering starting at 1) | |
int | nproc |
Number of parallel MPI tasks. | |
MULTI-TRANSFORMS-MANAGEMENT | |
int | handle |
Resolution tag for which info is required ,default is the first defined resulution (input) | |
_bool | ldlam |
True if the corresponding resolution is LAM, false if it is global. | |
SPECTRAL SPACE | |
int | nspec |
Number of complex spectral coefficients on this PE. | |
int | nspec2 |
Number of complex spectral coefficients on this PE times 2 (real and imag) | |
int | nspec2g |
global KSPEC2 | |
int | nspec2mx |
Maximun KSPEC2 among all PEs. | |
int | nump |
Number of spectral waves handled by this PE. | |
int | ngptot |
Total number of grid columns on this PE. | |
int | ngptotg |
Total number of grid columns on the Globe. | |
int | ngptotmx |
Maximum number of grid columns on any of the PEs. | |
int * | ngptotl |
Number of grid columns on each PE DIMENSIONS(1:N_REGIONS_NS,1:N_REGIONS_EW) | |
int * | nmyms |
This PEs spectral zonal wavenumbers DIMENSIONS(1:NUMP) | |
int * | nasm0 |
Address in a spectral array of (m, n=m) DIMENSIONS(0:NSMAX) | |
int | nprtrw |
Number of processors in A-direction (input) | |
int * | numpp |
No. of wave numbers each wave set is responsible for. DIMENSIONS(1:NPRTRW) | |
int * | npossp |
Defines partitioning of global spectral fields among PEs DIMENSIONS(1:NPRTRW+1) | |
int * | nptrms |
Pointer to the first wave number of a given a-set DIMENSIONS(1:NPRTRW) | |
int * | nallms |
Wave numbers for all wave-set concatenated together to give all wave numbers in wave-set order DIMENSIONS(1:NSMAX+1) | |
int * | ndim0g |
Defines partitioning of global spectral fields among PEs DIMENSIONS(0:NSMAX) | |
int * | nvalue |
n value for each KSPEC2 spectral coeffient DIMENSIONS(1:NSPEC2) | |
GRIDPOINT SPACE | |
int | n_regions_NS |
Number of regions in North-South direction. | |
int | n_regions_EW |
Number of regions in East-West direction. | |
int | my_region_NS |
My region in North-South direction. | |
int | my_region_EW |
My region in East-West direction. | |
int * | n_regions |
Number of East-West Regions per band of North-South Regions. | |
int * | nfrstlat |
First latitude of each a-set in grid-point space DIMENSIONS(1:N_REGIONS_NS) | |
int * | nlstlat |
Last latitude of each a-set in grid-point space DIMENSIONS(1:N_REGIONS_NS) | |
int | nfrstloff |
Offset for first lat of own a-set in grid-point space. | |
int * | nptrlat |
Pointer to the start of each latitude DIMENSIONS(1:NDGL) | |
int * | nptrfrstlat |
Pointer to the first latitude of each a-set in NSTA and NONL arrays DIMENSIONS(1:N_REGIONS_NS) | |
int * | nptrlstlat |
Pointer to the last latitude of each a-set in NSTA and NONL arrays DIMENSIONS(1:N_REGIONS_NS) | |
int | nptrfloff |
Offset for pointer to the first latitude of own a-set NSTA and NONL arrays, i.e. nptrfrstlat(myseta)-1. | |
int * | nsta |
Position of first grid column for the latitudes on a processor. DIMENSIONS(1:NDGL+N_REGIONS_NS-1,1:N_REGIONS_EW) | |
int * | nonl |
Number of grid columns for the latitudes on a processor. Similar to nsta() in data structure. DIMENSIONS(1:NDGL+N_REGIONS_NS-1,1:N_REGIONS_EW) | |
_bool * | ldsplitlat |
True if latitude is split in grid point space over two a-sets. DIMENSIONS(1:NDGL) | |
FOURIER SPACE | |
int | nprtrns |
No. of sets in N-S direction (Fourier space) (always equal to NPRTRW) | |
int * | nultpp |
Number of latitudes for which each a-set is calculating the FFT's. DIMENSIONS(1:NPRTRNS) | |
int * | nptrls |
Pointer to first global latitude of each a-set for which it performs the Fourier calculations DIMENSIONS(1:NPRTRNS) | |
int * | nnmeng |
associated (with NLOENG) cut-off zonal wavenumber DIMENSIONS(1:NDGL) | |
LEGENDRE | |
| |
double * | rmu |
sin(Gaussian latitudes) DIMENSIONS(1:NDGL) | |
double * | rgw |
Gaussian weights DIMENSIONS(1:NDGL) | |
double * | rpnm |
Legendre polynomials DIMENSIONS(1:NLEI3,1:NSPOLEGL) | |
int | nlei3 |
First dimension of Legendre polynomials. | |
int | nspolegl |
Second dimension of Legendre polynomials. | |
int * | npms |
Adress for legendre polynomial for given M (NSMAX) DIMENSIONS(0:NSMAX) | |
double * | rlapin |
Eigen-values of the inverse Laplace operator DIMENSIONS(-1:NSMAX+2) | |
int * | ndglu |
Number of active points in an hemisphere for a given wavenumber "m" DIMENSIONS(0:NSMAX) | |
Struct that holds information to do transforms for one particular grid resolution.
The values ndgl, nloen, and nsmax need to be provided yourself, all other values will be defined during the trans_setup() call or trans_inquire() calls
int* Trans_t::n_regions |
Number of East-West Regions per band of North-South Regions.
DIMENSIONS(1:N_REGIONS_NS)
int* Trans_t::nsta |
Position of first grid column for the latitudes on a processor.
DIMENSIONS(1:NDGL+N_REGIONS_NS-1,1:N_REGIONS_EW)
The information is available for all processors. The b-sets are distinguished by the last dimension of nsta(). The latitude band for each a-set is addressed by nptrfrstlat(jaset),nptrlstlat(jaset), and nptrfloff=nptrfrstlat(myseta) on this processors a-set. Each split latitude has two entries in nsta(,:) which necessitates the rather complex addressing of nsta(,:) and the overdimensioning of nsta by N_REGIONS_NS.