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~3
nurbs_curve%get_knot
program~fdm_elevate_and_insert_1d->none~get_knot~3
none~get_wc~3
nurbs_curve%get_Wc
program~fdm_elevate_and_insert_1d->none~get_wc~3
none~get_xc~3
nurbs_curve%get_Xc
program~fdm_elevate_and_insert_1d->none~get_xc~3
none~set~3
nurbs_curve%set
program~fdm_elevate_and_insert_1d->none~set~3
proc~elevate_degree~3
nurbs_curve%elevate_degree
program~fdm_elevate_and_insert_1d->proc~elevate_degree~3
proc~finalize~3
nurbs_curve%finalize
program~fdm_elevate_and_insert_1d->proc~finalize~3
proc~generate_xc
generate_Xc
program~fdm_elevate_and_insert_1d->proc~generate_xc
proc~insert_knots~3
nurbs_curve%insert_knots
program~fdm_elevate_and_insert_1d->proc~insert_knots~3
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~3
nurbs_curve%get_knot_all
none~get_knot~3->proc~get_knot_all~3
proc~get_knoti~3
nurbs_curve%get_knoti
none~get_knot~3->proc~get_knoti~3
proc~get_wc_all~3
nurbs_curve%get_Wc_all
none~get_wc~3->proc~get_wc_all~3
proc~get_wci~3
nurbs_curve%get_Wci
none~get_wc~3->proc~get_wci~3
proc~get_xc_all~3
nurbs_curve%get_Xc_all
none~get_xc~3->proc~get_xc_all~3
proc~get_xcid~3
nurbs_curve%get_Xcid
none~get_xc~3->proc~get_xcid~3
proc~get_xci~3
nurbs_curve%get_Xci
none~get_xc~3->proc~get_xci~3
proc~set1a
nurbs_curve%set1a
none~set~3->proc~set1a
proc~set1~3
nurbs_curve%set1
none~set~3->proc~set1~3
proc~set2~3
nurbs_curve%set2
none~set~3->proc~set2~3
proc~set3~3
nurbs_curve%set3
none~set~3->proc~set3~3
proc~set4~3
nurbs_curve%set4
none~set~3->proc~set4~3
proc~elevate_degree~3->none~set~3
proc~elevate_degree_a_5_9
elevate_degree_A_5_9
proc~elevate_degree~3->proc~elevate_degree_a_5_9
proc~is_rational~3
nurbs_curve%is_rational
proc~elevate_degree~3->proc~is_rational~3
proc~insert_knots~3->none~set~3
interface~compute_multiplicity
compute_multiplicity
proc~insert_knots~3->interface~compute_multiplicity
proc~findspan
findspan
proc~insert_knots~3->proc~findspan
proc~insert_knot_a_5_1
insert_knot_A_5_1
proc~insert_knots~3->proc~insert_knot_a_5_1
proc~insert_knots~3->proc~is_rational~3
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~3
nurbs_curve%cmp_degree
proc~set1a->proc~cmp_degree~3
set
set
proc~set1a->set
proc~set1~3->proc~cmp_degree~3
proc~set1~3->set
proc~cmp_nc~3
nurbs_curve%cmp_nc
proc~set2~3->proc~cmp_nc~3
proc~compute_knot_vector
compute_knot_vector
proc~set2~3->proc~compute_knot_vector
proc~set2~3->set
proc~set3~3->proc~cmp_degree~3
proc~set3~3->set
proc~set4~3->set
proc~factln
factln
proc~bincoeff->proc~factln
proc~get_multiplicity~3
nurbs_curve%get_multiplicity
proc~cmp_degree~3->proc~get_multiplicity~3
proc~cmp_nc~3->interface~compute_multiplicity
proc~repelem
repelem
proc~compute_knot_vector->proc~repelem
proc~get_multiplicity~3->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, (:,:)