program~~fdm_elevate_and_insert_1d~~UsesGraph
program~fdm_elevate_and_insert_1d
fdm_elevate_and_insert_1d
fortime
fortime
program~fdm_elevate_and_insert_1d->fortime
module~forcad
forcad
program~fdm_elevate_and_insert_1d->module~forcad
module~forcad_utils
forcad_utils
program~fdm_elevate_and_insert_1d->module~forcad_utils
module~forcad_kinds
forcad_kinds
module~forcad->module~forcad_kinds
module~forcad_nurbs_curve
forcad_nurbs_curve
module~forcad->module~forcad_nurbs_curve
module~forcad_nurbs_surface
forcad_nurbs_surface
module~forcad->module~forcad_nurbs_surface
module~forcad_nurbs_volume
forcad_nurbs_volume
module~forcad->module~forcad_nurbs_volume
module~forcad_utils->module~forcad_kinds
module~forcad_nurbs_curve->module~forcad_utils
module~forcad_nurbs_curve->module~forcad_kinds
fordebug
fordebug
module~forcad_nurbs_curve->fordebug
module~forcad_nurbs_surface->module~forcad_utils
module~forcad_nurbs_surface->module~forcad_kinds
module~forcad_nurbs_surface->fordebug
module~forcad_nurbs_volume->module~forcad_utils
module~forcad_nurbs_volume->module~forcad_kinds
module~forcad_nurbs_volume->fordebug
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
set control points
set weights
set knot vector
set NURBS curve
deallocate temporary arrays
copy initial NURBS curve (before refinement)
get initial control points, dimension, number of control points and degrees of freedom
elevate degree and get sensitivities (Bs: in compact form, memory efficient)
set knot vectors to insert
multiplicities of knots to insert
insert knots and get sensitivities (Bs: in compact form, memory efficient)
compute global sensitivities (dXc_old/dXc_new)
get new degrees of freedom (after refinement)
start finite difference computations
compute relative error between finite difference and analytical sensitivities
finalize
program~~fdm_elevate_and_insert_1d~~CallsGraph
program~fdm_elevate_and_insert_1d
fdm_elevate_and_insert_1d
none~get_knot
nurbs_curve%get_knot
program~fdm_elevate_and_insert_1d->none~get_knot
none~get_wc
nurbs_curve%get_Wc
program~fdm_elevate_and_insert_1d->none~get_wc
none~get_xc
nurbs_curve%get_Xc
program~fdm_elevate_and_insert_1d->none~get_xc
none~set
nurbs_curve%set
program~fdm_elevate_and_insert_1d->none~set
proc~elevate_degree
nurbs_curve%elevate_degree
program~fdm_elevate_and_insert_1d->proc~elevate_degree
proc~finalize
nurbs_curve%finalize
program~fdm_elevate_and_insert_1d->proc~finalize
proc~generate_xc~2
generate_Xc
program~fdm_elevate_and_insert_1d->proc~generate_xc~2
proc~insert_knots
nurbs_curve%insert_knots
program~fdm_elevate_and_insert_1d->proc~insert_knots
proc~kron_eye
kron_eye
program~fdm_elevate_and_insert_1d->proc~kron_eye
proc~linspace
linspace
program~fdm_elevate_and_insert_1d->proc~linspace
timer_start
timer_start
program~fdm_elevate_and_insert_1d->timer_start
timer_stop
timer_stop
program~fdm_elevate_and_insert_1d->timer_stop
proc~get_knot_all
nurbs_curve%get_knot_all
none~get_knot->proc~get_knot_all
proc~get_knoti
nurbs_curve%get_knoti
none~get_knot->proc~get_knoti
proc~get_wc_all
nurbs_curve%get_Wc_all
none~get_wc->proc~get_wc_all
proc~get_wci
nurbs_curve%get_Wci
none~get_wc->proc~get_wci
proc~get_xc_all
nurbs_curve%get_Xc_all
none~get_xc->proc~get_xc_all
proc~get_xci
nurbs_curve%get_Xci
none~get_xc->proc~get_xci
proc~get_xcid
nurbs_curve%get_Xcid
none~get_xc->proc~get_xcid
proc~set1
nurbs_curve%set1
none~set->proc~set1
proc~set1a
nurbs_curve%set1a
none~set->proc~set1a
proc~set2
nurbs_curve%set2
none~set->proc~set2
proc~set3
nurbs_curve%set3
none~set->proc~set3
proc~set4
nurbs_curve%set4
none~set->proc~set4
proc~elevate_degree->none~set
proc~elevate_degree_a_5_9
elevate_degree_A_5_9
proc~elevate_degree->proc~elevate_degree_a_5_9
proc~is_rational
nurbs_curve%is_rational
proc~elevate_degree->proc~is_rational
proc~insert_knots->none~set
interface~compute_multiplicity
compute_multiplicity
proc~insert_knots->interface~compute_multiplicity
proc~findspan
findspan
proc~insert_knots->proc~findspan
proc~insert_knot_a_5_1
insert_knot_A_5_1
proc~insert_knots->proc~insert_knot_a_5_1
proc~insert_knots->proc~is_rational
proc~compute_multiplicity1
compute_multiplicity1
interface~compute_multiplicity->proc~compute_multiplicity1
proc~compute_multiplicity2
compute_multiplicity2
interface~compute_multiplicity->proc~compute_multiplicity2
proc~elevate_degree_a_5_9->interface~compute_multiplicity
proc~bincoeff
bincoeff
proc~elevate_degree_a_5_9->proc~bincoeff
proc~cmp_degree
nurbs_curve%cmp_degree
proc~set1->proc~cmp_degree
set
set
proc~set1->set
proc~set1a->proc~cmp_degree
proc~set1a->set
proc~cmp_nc
nurbs_curve%cmp_nc
proc~set2->proc~cmp_nc
proc~compute_knot_vector
compute_knot_vector
proc~set2->proc~compute_knot_vector
proc~set2->set
proc~set3->proc~cmp_degree
proc~set3->set
proc~set4->set
proc~factln
factln
proc~bincoeff->proc~factln
proc~get_multiplicity
nurbs_curve%get_multiplicity
proc~cmp_degree->proc~get_multiplicity
proc~cmp_nc->interface~compute_multiplicity
proc~repelem
repelem
proc~compute_knot_vector->proc~repelem
proc~get_multiplicity->interface~compute_multiplicity
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Variables
Type
Attributes
Name
Initial
real(kind=rk),
allocatable
::
B (:,:)
real(kind=rk),
allocatable
::
Bfd (:,:)
real(kind=rk),
allocatable
::
Bs (:,:)
real(kind=rk),
allocatable
::
S1 (:,:)
real(kind=rk),
allocatable
::
S2 (:,:)
real(kind=rk),
allocatable
::
Wc (:)
real(kind=rk),
allocatable
::
Xc (:,:)
real(kind=rk),
allocatable
::
Xc0 (:,:)
real(kind=rk),
allocatable
::
Xcm_vec (:)
real(kind=rk),
allocatable
::
Xcp_vec (:)
real(kind=rk),
allocatable
::
Xm (:,:)
real(kind=rk),
allocatable
::
Xp (:,:)
integer
::
d
integer
::
dim
integer
::
i
integer
::
idx
real(kind=rk),
allocatable
::
knot (:)
integer
::
nc0
integer
::
ndof_new
integer
::
ndof_old
integer,
parameter
::
nins
=
5
number of knots to insert
integer,
allocatable
::
r (:)
real(kind=rk)
::
rel_err
type(nurbs_curve )
::
sh0
type(nurbs_curve )
::
shfd
type(nurbs_curve )
::
shr
type(timer)
::
t
integer,
parameter
::
tdeg
=
3
degrees to elevate
real(kind=rk),
parameter
::
tol
=
1e-5_rk
tolerance of finite differences
real(kind=rk),
allocatable
::
u (:)
Functions
Arguments
Type
Intent Optional Attributes
Name
real(kind=rk),
intent(in)
::
L
Return Value
real(kind=rk), allocatable, (:,:)