fxt_fwrap Module



Interfaces

interface

Interface declarations to the fxtf_wrapper.c routines.

Those routines enable the passing of Fortran arrays to the FXTPACK and take care of putting the data into the fxt_vecld data structures, which are then passed on to the actual fxt_* routines.

  • public subroutine fxtf_flptld_evl(v, vn, flpt, u, un, w) bind(c)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=c_double), dimension(*) :: v
    integer(kind=c_int), value :: vn
    type(c_ptr), value :: flpt
    real(kind=c_double), dimension(*) :: u
    integer(kind=c_int), value :: un
    type(c_ptr), value :: w

interface

Interface declarations to the fxtf_wrapper.c routines.

Those routines enable the passing of Fortran arrays to the FXTPACK and take care of putting the data into the fxt_vecld data structures, which are then passed on to the actual fxt_* routines.

  • public subroutine fxtf_flptld_exp(u, un, flpt, v, vn, w) bind(c)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=c_double), dimension(*) :: u
    integer(kind=c_int), value :: un
    type(c_ptr), value :: flpt
    real(kind=c_double), dimension(*) :: v
    integer(kind=c_int), value :: vn
    type(c_ptr), value :: w

interface

Interface declarations to the fxtf_wrapper.c routines.

Those routines enable the passing of Fortran arrays to the FXTPACK and take care of putting the data into the fxt_vecld data structures, which are then passed on to the actual fxt_* routines.

  • private subroutine fxtf_faltld_evl(v, vn, falt, m, u, un, w) bind(c)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=c_double), dimension(*) :: v
    integer(kind=c_int), value :: vn
    type(c_ptr), value :: falt
    integer(kind=c_long), value :: m
    real(kind=c_double), dimension(*) :: u
    integer(kind=c_int), value :: un
    type(c_ptr), value :: w

interface

Interface declarations to the fxtf_wrapper.c routines.

Those routines enable the passing of Fortran arrays to the FXTPACK and take care of putting the data into the fxt_vecld data structures, which are then passed on to the actual fxt_* routines.

  • private subroutine fxtf_faltld_exp(u, un, falt, m, v, vn, w) bind(c)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=c_double), dimension(*) :: u
    integer(kind=c_int), value :: un
    type(c_ptr), value :: falt
    integer(kind=c_long), value :: m
    real(kind=c_double), dimension(*) :: v
    integer(kind=c_int), value :: vn
    type(c_ptr), value :: w

Derived Types

type, public ::  fxtf_flptld_type

This datatype provides a handle to the information that FXTPACK needs to have about the transformation.

Components

Type Visibility Attributes Name Initial
type(c_ptr), public :: handle

Handle for the fast Legendre polynomial transformation data in FXTPACK.

type(c_ptr), public :: work

Pointer to the working array, that is required by the transformations.


Subroutines

public subroutine fxtf_flptld_m2n(flpt, modal_data, nodal_data)

Convert modal data to nodal data using flpt.

Read more…

Arguments

Type IntentOptional Attributes Name
type(fxtf_flptld_type), intent(in) :: flpt

Description of the Fast Legendre Polynomial Transform

real(kind=rk), target :: modal_data(:)

Modal data

real(kind=rk), target :: nodal_data(:)

Nodal data

public subroutine fxtf_flptld_n2m(flpt, nodal_data, modal_data)

Convert nodal data to modal data using flpt.

Read more…

Arguments

Type IntentOptional Attributes Name
type(fxtf_flptld_type) :: flpt

Description of the Fast Legendre Polynomial Transform

real(kind=rk), target :: nodal_data(:)

Nodal data

real(kind=rk), target :: modal_data(:)

Modal data

public subroutine fxtf_flptld_init(flpt, degree, nPoints, prec)

Initialize the flpt data structure for fast legendre polynomial transformation via the fxtpack.

Arguments

Type IntentOptional Attributes Name
type(fxtf_flptld_type), intent(out) :: flpt

Handle to the resulting fast polynomial table.

integer, intent(in) :: degree

Polynomial degree.

integer, intent(in), optional :: nPoints

Number of points.

Read more…
real(kind=c_double), intent(in), optional :: prec

Required precision for the transformation.

Read more…