fitpack
Modern Fortran library for curve and surface fitting with splines
Loading...
Searching...
No Matches
fitpack_fitters_c Module Reference

C interface to module fitpack_fitters. More...

Data Types

interface  f_associated
 Pointer-identity check. Returns true iff a and b view the same underlying Fortran object (their internal c_ptrs match and are non-null). Useful for C-API consumers that want object identity without exposing raw pointers — e.g. GUI panels checking whether an input view points at the same Fortran allocation as the project that owns it. More...
 
interface  f_char
 Pointer view of a null-terminated C string: a character(:,c_char), pointer result aliasing the C buffer — no copy, no allocation. Always associated: a null, zero-length or ABSENT input yields a 0-length module sentinel, safe to pass to required character(*) dummies and to trim(). Two overloads: More...
 
interface  f_pointer
 
interface  f_poly_pointer
 Per-consumer-module resolver(s) for polymorphic procedure args. One module procedure per abstract base any wrapper in this module consumes — colocated with the consumer so the resolver sees every bound concrete subtype known at THIS module's regen time (cross-package coverage included via the cumulative all_type_parents registry). Local (not exported); consumer wrappers call it via the local generic below. More...
 

Functions/Subroutines

character(len=:, kind=c_char) function, pointer from_c_string_ptr_cptr (c_str)
 Pointer view from a type(c_ptr) C string. Aliases the C buffer; always associated (0-length sentinel for null/empty input). The sentinel is a NUL byte viewed as zero-length, so it is simultaneously an empty Fortran string and a valid empty C string: a callee that re-derives the length with strlen (any character(len=1) :: s(*) dummy) stops at the NUL instead of reading on into adjacent statics.
 
subroutine c_array_to_string (scalar_len, scalar, ptr)
 Turn array of characters to a character string.
 
character(len=:, kind=c_char) function, pointer from_c_string_ptr_arr (c_str)
 Pointer view from a character(*) assumed-size C buffer. The dummy is optional: an absent argument (NULL passed to the optional bind(C) dummy) maps to the 0-length sentinel — always associated, safe for required character(*) callee dummies.
 
logical(c_bool) function, public fitpack_fitter_c_is_same (this, that)
 Pointer-identity check: true iff both wrappers point to the same underlying Fortran object (and that object is allocated).
 
type(c_ptr) function fitpack_fitter_c_get_pointer (this)
 Get opaque pointer to embedded Fortran object (non-allocating) Abstract types cannot use c_f_pointer; return the raw c_ptr instead.
 
type(fitpack_curve) function, pointer fitpack_fitter_c_get_accessor_pointer (this)
 Concrete-typed pointer for reading base-declared components on this proxy-less abstract base. Casts the opaque handle to the first concrete child (fitpack_curve); a base component sits at the same offset in every descendant, so the read is valid for any runtime subtype.
 
real(c_double) function, public fitpack_fitter_c_mse (this)
 
integer(c_int32_t) function, public fitpack_fitter_c_core_comm_size (this)
 
subroutine, public fitpack_fitter_c_destroy_base (this)
 
subroutine, public fitpack_fitter_c_core_comm_pack (this, n, buffer)
 
subroutine, public fitpack_fitter_c_core_comm_expand (this, n, buffer)
 
subroutine, public fitpack_fitter_c_getcomp_c (this, ptr, extents)
 Raw view of component 'c': address of the first element, plus the component's 1 extent(s). Null pointer and zero extents when the object or the component is unallocated; an allocated but zero-sized component still reports its true shape, but has no representable address. Symbol uses the getcomp_ infix (not get_) so it can never collide with a type-bound procedure named get_<component>.
 
subroutine, public fitpack_fitter_c_getcomp_wrk (this, ptr, extents)
 Raw view of component 'wrk': address of the first element, plus the component's 1 extent(s). Null pointer and zero extents when the object or the component is unallocated; an allocated but zero-sized component still reports its true shape, but has no representable address. Symbol uses the getcomp_ infix (not get_) so it can never collide with a type-bound procedure named get_<component>.
 
subroutine, public fitpack_fitter_c_getcomp_iwrk (this, ptr, extents)
 Raw view of component 'iwrk': address of the first element, plus the component's 1 extent(s). Null pointer and zero extents when the object or the component is unallocated; an allocated but zero-sized component still reports its true shape, but has no representable address. Symbol uses the getcomp_ infix (not get_) so it can never collide with a type-bound procedure named get_<component>.
 
type(c_ptr) function, public fitpack_fitter_c_ref_iopt (this)
 Get pointer to scalar property 'iopt'.
 
type(c_ptr) function, public fitpack_fitter_c_ref_smoothing (this)
 Get pointer to scalar property 'smoothing'.
 
type(c_ptr) function, public fitpack_fitter_c_ref_fp (this)
 Get pointer to scalar property 'fp'.
 
type(c_ptr) function, public fitpack_fitter_c_ref_lwrk (this)
 Get pointer to scalar property 'lwrk'.
 
type(c_ptr) function, public fitpack_fitter_c_ref_liwrk (this)
 Get pointer to scalar property 'liwrk'.
 
class(fitpack_fitter) function, pointer fitpack_fitter_c_get_poly_pointer (this)
 

Detailed Description

C interface to module fitpack_fitters.

Function/Subroutine Documentation

◆ c_array_to_string()

subroutine fitpack_fitters_c::c_array_to_string ( integer, intent(in) scalar_len,
character(kind=c_char, len=scalar_len), dimension(1), intent(in), target scalar,
character(:, kind=c_char), intent(out), pointer ptr )
private

Turn array of characters to a character string.

◆ fitpack_fitter_c_core_comm_expand()

subroutine, public fitpack_fitters_c::fitpack_fitter_c_core_comm_expand ( type(fitpack_fitter_c), intent(inout) this,
integer(c_int32_t), intent(in), value n,
real(c_double), dimension(n), intent(in) buffer )
Here is the call graph for this function:

◆ fitpack_fitter_c_core_comm_pack()

subroutine, public fitpack_fitters_c::fitpack_fitter_c_core_comm_pack ( type(fitpack_fitter_c), intent(inout) this,
integer(c_int32_t), intent(in), value n,
real(c_double), dimension(n), intent(inout) buffer )
Here is the call graph for this function:

◆ fitpack_fitter_c_core_comm_size()

integer(c_int32_t) function, public fitpack_fitters_c::fitpack_fitter_c_core_comm_size ( type(fitpack_fitter_c), intent(in) this)
Here is the call graph for this function:

◆ fitpack_fitter_c_destroy_base()

subroutine, public fitpack_fitters_c::fitpack_fitter_c_destroy_base ( type(fitpack_fitter_c), intent(inout) this)
Here is the call graph for this function:

◆ fitpack_fitter_c_get_accessor_pointer()

type(fitpack_curve) function, pointer fitpack_fitters_c::fitpack_fitter_c_get_accessor_pointer ( type(fitpack_fitter_c), intent(in) this)
private

Concrete-typed pointer for reading base-declared components on this proxy-less abstract base. Casts the opaque handle to the first concrete child (fitpack_curve); a base component sits at the same offset in every descendant, so the read is valid for any runtime subtype.

◆ fitpack_fitter_c_get_pointer()

type(c_ptr) function fitpack_fitters_c::fitpack_fitter_c_get_pointer ( type(fitpack_fitter_c), intent(in) this)
private

Get opaque pointer to embedded Fortran object (non-allocating) Abstract types cannot use c_f_pointer; return the raw c_ptr instead.

◆ fitpack_fitter_c_get_poly_pointer()

class(fitpack_fitter) function, pointer fitpack_fitters_c::fitpack_fitter_c_get_poly_pointer ( type(fitpack_fitter_c), intent(in) this)
private

◆ fitpack_fitter_c_getcomp_c()

subroutine, public fitpack_fitters_c::fitpack_fitter_c_getcomp_c ( type(fitpack_fitter_c), intent(in) this,
type(c_ptr), intent(out) ptr,
integer(c_int64_t), dimension(1), intent(out) extents )

Raw view of component 'c': address of the first element, plus the component's 1 extent(s). Null pointer and zero extents when the object or the component is unallocated; an allocated but zero-sized component still reports its true shape, but has no representable address. Symbol uses the getcomp_ infix (not get_) so it can never collide with a type-bound procedure named get_<component>.

Here is the call graph for this function:

◆ fitpack_fitter_c_getcomp_iwrk()

subroutine, public fitpack_fitters_c::fitpack_fitter_c_getcomp_iwrk ( type(fitpack_fitter_c), intent(in) this,
type(c_ptr), intent(out) ptr,
integer(c_int64_t), dimension(1), intent(out) extents )

Raw view of component 'iwrk': address of the first element, plus the component's 1 extent(s). Null pointer and zero extents when the object or the component is unallocated; an allocated but zero-sized component still reports its true shape, but has no representable address. Symbol uses the getcomp_ infix (not get_) so it can never collide with a type-bound procedure named get_<component>.

Here is the call graph for this function:

◆ fitpack_fitter_c_getcomp_wrk()

subroutine, public fitpack_fitters_c::fitpack_fitter_c_getcomp_wrk ( type(fitpack_fitter_c), intent(in) this,
type(c_ptr), intent(out) ptr,
integer(c_int64_t), dimension(1), intent(out) extents )

Raw view of component 'wrk': address of the first element, plus the component's 1 extent(s). Null pointer and zero extents when the object or the component is unallocated; an allocated but zero-sized component still reports its true shape, but has no representable address. Symbol uses the getcomp_ infix (not get_) so it can never collide with a type-bound procedure named get_<component>.

Here is the call graph for this function:

◆ fitpack_fitter_c_is_same()

logical(c_bool) function, public fitpack_fitters_c::fitpack_fitter_c_is_same ( type(fitpack_fitter_c), intent(in) this,
type(fitpack_fitter_c), intent(in) that )

Pointer-identity check: true iff both wrappers point to the same underlying Fortran object (and that object is allocated).

◆ fitpack_fitter_c_mse()

real(c_double) function, public fitpack_fitters_c::fitpack_fitter_c_mse ( type(fitpack_fitter_c), intent(in) this)
Here is the call graph for this function:

◆ fitpack_fitter_c_ref_fp()

type(c_ptr) function, public fitpack_fitters_c::fitpack_fitter_c_ref_fp ( type(fitpack_fitter_c), intent(in) this)

Get pointer to scalar property 'fp'.

Here is the call graph for this function:

◆ fitpack_fitter_c_ref_iopt()

type(c_ptr) function, public fitpack_fitters_c::fitpack_fitter_c_ref_iopt ( type(fitpack_fitter_c), intent(in) this)

Get pointer to scalar property 'iopt'.

Here is the call graph for this function:

◆ fitpack_fitter_c_ref_liwrk()

type(c_ptr) function, public fitpack_fitters_c::fitpack_fitter_c_ref_liwrk ( type(fitpack_fitter_c), intent(in) this)

Get pointer to scalar property 'liwrk'.

Here is the call graph for this function:

◆ fitpack_fitter_c_ref_lwrk()

type(c_ptr) function, public fitpack_fitters_c::fitpack_fitter_c_ref_lwrk ( type(fitpack_fitter_c), intent(in) this)

Get pointer to scalar property 'lwrk'.

Here is the call graph for this function:

◆ fitpack_fitter_c_ref_smoothing()

type(c_ptr) function, public fitpack_fitters_c::fitpack_fitter_c_ref_smoothing ( type(fitpack_fitter_c), intent(in) this)

Get pointer to scalar property 'smoothing'.

Here is the call graph for this function:

◆ from_c_string_ptr_arr()

character(len=:, kind=c_char) function, pointer fitpack_fitters_c::from_c_string_ptr_arr ( character(len=1, kind=c_char), dimension(*), intent(in), optional, target c_str)
private

Pointer view from a character(*) assumed-size C buffer. The dummy is optional: an absent argument (NULL passed to the optional bind(C) dummy) maps to the 0-length sentinel — always associated, safe for required character(*) callee dummies.

◆ from_c_string_ptr_cptr()

character(len=:, kind=c_char) function, pointer fitpack_fitters_c::from_c_string_ptr_cptr ( type(c_ptr), intent(in) c_str)
private

Pointer view from a type(c_ptr) C string. Aliases the C buffer; always associated (0-length sentinel for null/empty input). The sentinel is a NUL byte viewed as zero-length, so it is simultaneously an empty Fortran string and a valid empty C string: a callee that re-derives the length with strlen (any character(len=1) :: s(*) dummy) stops at the NUL instead of reading on into adjacent statics.