My Project
Loading...
Searching...
No Matches
Trans_t Struct Reference

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)
 

Detailed Description

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

  • All scalar values will be defined by trans_setup()
  • All array values will be allocated if needed, and defined by individual calls to trans_inquire()
Note
Many of these values are of no interest for normal usage

Member Data Documentation

◆ n_regions

int* Trans_t::n_regions

Number of East-West Regions per band of North-South Regions.

DIMENSIONS(1:N_REGIONS_NS)

◆ nsta

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.


The documentation for this struct was generated from the following file: