FEDEM Solver  R8.0
Source code of the dynamics solver
Data Types | Functions/Subroutines | Variables
explicitfunctionsmodule Module Reference

Data Types

type  splinedata
 
interface  funcvalue
 
interface  funcderivative
 

Functions/Subroutines

subroutine, private funcvalue1 (ikf, ifunc, rfunc, x, fn, ierr)
 
subroutine, private funcvalue2 (ikf, ifunc, rfunc, x, fn, ierr)
 
subroutine, private funcderivative1 (ikf, iorder, ifunc, rfunc, x, fn, ierr)
 
subroutine, private funcderivative2 (ikf, iorder, ifunc, rfunc, x, fn, ierr)
 
subroutine funcintegral (ikf, iorder, ifunc, rfunc, x, fn, ierr)
 
logical function canintegrateexplicitly (funcType, intOrder)
 
subroutine, private outofrangeerror (X, X0, X1)
 
real(dp) function func1 (IFUNC, RFUNC, T, X)
 
real(dp) function func2 (RFUNC, T, X)
 
real(dp) function func3 (RFUNC, T, X)
 
real(dp) function func4 (IFUNC, RFUNC, T, X, IERR)
 
real(dp) function func5 (IKF, IFUNC, RFUNC, constT, IERR)
 
real(dp) function func6 (IKF, IFUNC, RFUNC, T, IERR)
 
subroutine deallocatesplines ()
 
subroutine, private splin3 (X, Y, DERIV, N, Z, FVALUE, FDERIV, M, IOP, IERR)
 
real(dp) function func8 (RFUNC, T, X, IERR)
 
real(dp) function func9 (IFUNC, RFUNC, T, X, IERR)
 
real(dp) function func10 (IKF, IFUNC, RFUNC, X, IERR)
 
real(dp) function, private func10diff (IKF, IFUNC, RFUNC, X, IERR)
 
real(dp) function, private func10integral (IKF, IFUNC, RFUNC, X, IORD, IERR)
 
real(dp) function func11 (RFUNC, T)
 
real(dp) function, private rampintegral (IORD, X, OFFSET, SLOPE, X0, X3)
 
real(dp) function func12 (RFUNC, T)
 
real(dp) function func13 (RFUNC, T)
 
real(dp) function func14 (RFUNC, T)
 
real(dp) function func15 (RFUNC)
 
real(dp) function func16 (RFUNC, T)
 
real(dp) function func17 (RFUNC, T)
 
real(dp) function func18 (ikf, iFunc, rFunc, arg, ierr)
 
real(dp) function, private func18integral (ikf, iFunc, rFunc, arg, iorder, ierr)
 
real(dp) function func19 (ikf, iFunc, arg, ierr)
 
real(dp) function func19diff (ikf, iFunc, arg, ierr)
 
real(dp) function func20 (ikf, iFunc, args, ierr)
 
real(dp) function func20diff (ikf, iFunc, args, ierr)
 
real(dp) function func21 (ikf, iFunc, rFunc, args, ierr)
 
real(dp) function func21diff (ikf, iFunc, rFunc, args, ierr)
 
real(dp) function func22 (IKF, RFUNC, T, IERR)
 

Variables

integer, parameter, private dp = kind(1.0D0)
 
real(dp), parameter, private pi = 3.141592653589793238_dp
 
real(dp), parameter, private twopi = PI+PI
 
real(dp), parameter, private epsarg_p = 1.0e-15_dp
 
integer, parameter maxfunc_p = 22
 
integer, parameter nspln_p = 6
 
integer, parameter sinusoidal_p = 1
 
integer, parameter compl_sinus_p = 2
 
integer, parameter delayed_compl_sinus_p = 3
 
integer, parameter wave_sinus_p = 4
 
integer, parameter lin_vel_var_p = 5
 
integer, parameter spline_p = 6
 
integer, parameter wave_stokes5_p = 7
 
integer, parameter wave_streamline_p = 8
 
integer, parameter wave_embedded_p = 9
 
integer, parameter lin_var_p = 10
 
integer, parameter ramp_p = 11
 
integer, parameter step_p = 12
 
integer, parameter square_puls_p = 13
 
integer, parameter dirac_puls_p = 14
 
integer, parameter constant_p = 15
 
integer, parameter lim_ramp_p = 16
 
integer, parameter scale_p = 17
 
integer, parameter device_function_p = 18
 
integer, parameter math_expression_p = 19
 
integer, parameter user_defined_p = 21
 
integer, parameter smooth_traj_p = 22
 
character(len=19), dimension(maxfunc_p), parameter functype_p = (/ 'SINUSOIDAL ', 'COMPL_SINUS ', 'DELAYED_COMPL_SINUS', 'WAVE_SINUS ', 'LIN_VEL_VAR ', 'SPLINE ', 'WAVE_STOKES5 ', 'WAVE_STREAMLINE ', 'WAVE_EMBEDDED ', 'LIN_VAR ', 'RAMP ', 'STEP ', 'SQUARE_PULS ', 'DIRAC_PULS ', 'CONSTANT ', 'LIM_RAMP ', 'SCALE ', 'DEVICE_FUNCTION ', 'MATH_EXPRESSION ', '-------------------', 'USER_DEFINED ', 'SMOOTH_TRAJ ' /)
 
integer, save dbgfunc = 0
 
type(splinedata), dimension(nspln_p), save, private spl
 
integer, dimension(nspln_p), save last = 0
 

Function/Subroutine Documentation

◆ canintegrateexplicitly()

logical function explicitfunctionsmodule::canintegrateexplicitly ( integer, intent(in)  funcType,
integer, intent(in)  intOrder 
)

◆ deallocatesplines()

subroutine explicitfunctionsmodule::deallocatesplines

◆ func1()

real(dp) function explicitfunctionsmodule::func1 ( integer, dimension(3), intent(in)  IFUNC,
real(dp), dimension(:), intent(in)  RFUNC,
real(dp), intent(in)  T,
real(dp), intent(in)  X 
)

◆ func10()

real(dp) function explicitfunctionsmodule::func10 ( integer, intent(in)  IKF,
integer, dimension(:), intent(in)  IFUNC,
real(dp), dimension(:,:), intent(in)  RFUNC,
real(dp), intent(in)  X,
integer, intent(inout)  IERR 
)

◆ func10diff()

real(dp) function, private explicitfunctionsmodule::func10diff ( integer, intent(in)  IKF,
integer, dimension(:), intent(in)  IFUNC,
real(dp), dimension(:,:), intent(in)  RFUNC,
real(dp), intent(in)  X,
integer, intent(inout)  IERR 
)
private

◆ func10integral()

real(dp) function, private explicitfunctionsmodule::func10integral ( integer, intent(in)  IKF,
integer, dimension(:), intent(in)  IFUNC,
real(dp), dimension(:,:), intent(in)  RFUNC,
real(dp), intent(in)  X,
integer, intent(in)  IORD,
integer, intent(inout)  IERR 
)
private

◆ func11()

real(dp) function explicitfunctionsmodule::func11 ( real(dp), dimension(3), intent(in)  RFUNC,
real(dp), intent(in)  T 
)

◆ func12()

real(dp) function explicitfunctionsmodule::func12 ( real(dp), dimension(3), intent(in)  RFUNC,
real(dp), intent(in)  T 
)

◆ func13()

real(dp) function explicitfunctionsmodule::func13 ( real(dp), dimension(4), intent(in)  RFUNC,
real(dp), intent(in)  T 
)

◆ func14()

real(dp) function explicitfunctionsmodule::func14 ( real(dp), dimension(4), intent(in)  RFUNC,
real(dp), intent(in)  T 
)

◆ func15()

real(dp) function explicitfunctionsmodule::func15 ( real(dp), dimension(1), intent(in)  RFUNC)

◆ func16()

real(dp) function explicitfunctionsmodule::func16 ( real(dp), dimension(4), intent(in)  RFUNC,
real(dp), intent(in)  T 
)

◆ func17()

real(dp) function explicitfunctionsmodule::func17 ( real(dp), dimension(1), intent(in)  RFUNC,
real(dp), intent(in)  T 
)

◆ func18()

real(dp) function explicitfunctionsmodule::func18 ( integer, intent(in)  ikf,
integer, dimension(5), intent(in)  iFunc,
real(dp), dimension(2), intent(in)  rFunc,
real(dp), intent(in)  arg,
integer, intent(inout)  ierr 
)

◆ func18integral()

real(dp) function, private explicitfunctionsmodule::func18integral ( integer, intent(in)  ikf,
integer, dimension(5), intent(in)  iFunc,
real(dp), dimension(2), intent(in)  rFunc,
real(dp), intent(in)  arg,
integer, intent(in)  iorder,
integer, intent(inout)  ierr 
)
private

◆ func19()

real(dp) function explicitfunctionsmodule::func19 ( integer, intent(in)  ikf,
integer, dimension(3), intent(in)  iFunc,
real(dp), intent(in)  arg,
integer, intent(inout)  ierr 
)

◆ func19diff()

real(dp) function explicitfunctionsmodule::func19diff ( integer, intent(in)  ikf,
integer, dimension(3), intent(in)  iFunc,
real(dp), intent(in)  arg,
integer, intent(inout)  ierr 
)

◆ func2()

real(dp) function explicitfunctionsmodule::func2 ( real(dp), dimension(:), intent(in)  RFUNC,
real(dp), intent(in)  T,
real(dp), intent(in)  X 
)

◆ func20()

real(dp) function explicitfunctionsmodule::func20 ( integer, intent(in)  ikf,
integer, dimension(4), intent(in)  iFunc,
real(dp), dimension(:), intent(in)  args,
integer, intent(inout)  ierr 
)

◆ func20diff()

real(dp) function explicitfunctionsmodule::func20diff ( integer, intent(in)  ikf,
integer, dimension(4), intent(in)  iFunc,
real(dp), dimension(:), intent(in)  args,
integer, intent(inout)  ierr 
)

◆ func21()

real(dp) function explicitfunctionsmodule::func21 ( integer, intent(in)  ikf,
integer, dimension(4), intent(in)  iFunc,
real(dp), dimension(:), intent(in)  rFunc,
real(dp), dimension(:), intent(in)  args,
integer, intent(inout)  ierr 
)

◆ func21diff()

real(dp) function explicitfunctionsmodule::func21diff ( integer, intent(in)  ikf,
integer, dimension(4), intent(in)  iFunc,
real(dp), dimension(:), intent(in)  rFunc,
real(dp), dimension(:), intent(in)  args,
integer, intent(inout)  ierr 
)

◆ func22()

real(dp) function explicitfunctionsmodule::func22 ( integer, intent(in)  IKF,
real(dp), dimension(4), intent(in)  RFUNC,
real(dp), intent(in)  T,
integer, intent(inout)  IERR 
)

◆ func3()

real(dp) function explicitfunctionsmodule::func3 ( real(dp), dimension(:), intent(in)  RFUNC,
real(dp), intent(in)  T,
real(dp), intent(in)  X 
)

◆ func4()

real(dp) function explicitfunctionsmodule::func4 ( integer, dimension(:), intent(in)  IFUNC,
real(dp), dimension(:), intent(in)  RFUNC,
real(dp), intent(in)  T,
real(dp), intent(in)  X,
integer, intent(inout)  IERR 
)

◆ func5()

real(dp) function explicitfunctionsmodule::func5 ( integer, intent(in)  IKF,
integer, dimension(:), intent(in)  IFUNC,
real(dp), dimension(:), intent(in)  RFUNC,
real(dp), intent(in)  constT,
integer, intent(inout)  IERR 
)

◆ func6()

real(dp) function explicitfunctionsmodule::func6 ( integer, intent(in)  IKF,
integer, dimension(:), intent(in)  IFUNC,
real(dp), dimension(:,:), intent(in)  RFUNC,
real(dp), intent(in)  T,
integer, intent(inout)  IERR 
)

◆ func8()

real(dp) function explicitfunctionsmodule::func8 ( real(dp), dimension(:), intent(in)  RFUNC,
real(dp), intent(in)  T,
real(dp), intent(in)  X,
integer, intent(inout)  IERR 
)

◆ func9()

real(dp) function explicitfunctionsmodule::func9 ( integer, dimension(:), intent(in)  IFUNC,
real(dp), dimension(:), intent(in)  RFUNC,
real(dp), intent(in)  T,
real(dp), intent(in)  X,
integer, intent(inout)  IERR 
)

◆ funcderivative1()

subroutine, private explicitfunctionsmodule::funcderivative1 ( integer, intent(in)  ikf,
integer, intent(in)  iorder,
integer, dimension(:), intent(in)  ifunc,
real(dp), dimension(:), intent(in)  rfunc,
real(dp), intent(in)  x,
real(dp), intent(out)  fn,
integer, intent(out)  ierr 
)
private

◆ funcderivative2()

subroutine, private explicitfunctionsmodule::funcderivative2 ( integer, intent(in)  ikf,
integer, intent(in)  iorder,
integer, dimension(:), intent(in)  ifunc,
real(dp), dimension(:), intent(in)  rfunc,
real(dp), dimension(:), intent(in)  x,
real(dp), intent(out)  fn,
integer, intent(out)  ierr 
)
private

◆ funcintegral()

subroutine explicitfunctionsmodule::funcintegral ( integer, intent(in)  ikf,
integer, intent(in)  iorder,
integer, dimension(:), intent(in)  ifunc,
real(dp), dimension(:), intent(in)  rfunc,
real(dp), intent(in)  x,
real(dp), intent(out)  fn,
integer, intent(inout)  ierr 
)

◆ funcvalue1()

subroutine, private explicitfunctionsmodule::funcvalue1 ( integer, intent(in)  ikf,
integer, dimension(:), intent(in)  ifunc,
real(dp), dimension(:), intent(in)  rfunc,
real(dp), intent(in)  x,
real(dp), intent(out)  fn,
integer, intent(inout)  ierr 
)
private

◆ funcvalue2()

subroutine, private explicitfunctionsmodule::funcvalue2 ( integer, intent(in)  ikf,
integer, dimension(:), intent(in)  ifunc,
real(dp), dimension(:), intent(in)  rfunc,
real(dp), dimension(:), intent(in)  x,
real(dp), intent(out)  fn,
integer, intent(inout)  ierr 
)
private

◆ outofrangeerror()

subroutine, private explicitfunctionsmodule::outofrangeerror ( real(dp), intent(in)  X,
real(dp), intent(in)  X0,
real(dp), intent(in)  X1 
)
private

◆ rampintegral()

real(dp) function, private explicitfunctionsmodule::rampintegral ( integer, intent(in)  IORD,
real(dp), intent(in)  X,
real(dp), intent(in)  OFFSET,
real(dp), intent(in)  SLOPE,
real(dp), intent(in)  X0,
real(dp), intent(in), optional  X3 
)
private

◆ splin3()

subroutine, private explicitfunctionsmodule::splin3 ( real(dp), dimension(:), intent(in)  X,
real(dp), dimension(:), intent(in)  Y,
real(dp), dimension(:,:), intent(inout)  DERIV,
integer, intent(in)  N,
real(dp), dimension(:), intent(in)  Z,
real(dp), dimension(:), intent(out)  FVALUE,
real(dp), dimension(:,:), intent(out)  FDERIV,
integer, intent(in)  M,
integer, intent(in)  IOP,
integer, intent(out)  IERR 
)
private

Variable Documentation

◆ compl_sinus_p

integer, parameter explicitfunctionsmodule::compl_sinus_p = 2

◆ constant_p

integer, parameter explicitfunctionsmodule::constant_p = 15

◆ dbgfunc

integer, save explicitfunctionsmodule::dbgfunc = 0

◆ delayed_compl_sinus_p

integer, parameter explicitfunctionsmodule::delayed_compl_sinus_p = 3

◆ device_function_p

integer, parameter explicitfunctionsmodule::device_function_p = 18

◆ dirac_puls_p

integer, parameter explicitfunctionsmodule::dirac_puls_p = 14

◆ dp

integer, parameter, private explicitfunctionsmodule::dp = kind(1.0D0)
private

◆ epsarg_p

real(dp), parameter, private explicitfunctionsmodule::epsarg_p = 1.0e-15_dp
private

◆ functype_p

character(len=19), dimension(maxfunc_p), parameter explicitfunctionsmodule::functype_p = (/ 'SINUSOIDAL ', 'COMPL_SINUS ', 'DELAYED_COMPL_SINUS', 'WAVE_SINUS ', 'LIN_VEL_VAR ', 'SPLINE ', 'WAVE_STOKES5 ', 'WAVE_STREAMLINE ', 'WAVE_EMBEDDED ', 'LIN_VAR ', 'RAMP ', 'STEP ', 'SQUARE_PULS ', 'DIRAC_PULS ', 'CONSTANT ', 'LIM_RAMP ', 'SCALE ', 'DEVICE_FUNCTION ', 'MATH_EXPRESSION ', '-------------------', 'USER_DEFINED ', 'SMOOTH_TRAJ ' /)

◆ last

integer, dimension(nspln_p), save explicitfunctionsmodule::last = 0

◆ lim_ramp_p

integer, parameter explicitfunctionsmodule::lim_ramp_p = 16

◆ lin_var_p

integer, parameter explicitfunctionsmodule::lin_var_p = 10

◆ lin_vel_var_p

integer, parameter explicitfunctionsmodule::lin_vel_var_p = 5

◆ math_expression_p

integer, parameter explicitfunctionsmodule::math_expression_p = 19

◆ maxfunc_p

integer, parameter explicitfunctionsmodule::maxfunc_p = 22

◆ nspln_p

integer, parameter explicitfunctionsmodule::nspln_p = 6

◆ pi

real(dp), parameter, private explicitfunctionsmodule::pi = 3.141592653589793238_dp
private

◆ ramp_p

integer, parameter explicitfunctionsmodule::ramp_p = 11

◆ scale_p

integer, parameter explicitfunctionsmodule::scale_p = 17

◆ sinusoidal_p

integer, parameter explicitfunctionsmodule::sinusoidal_p = 1

◆ smooth_traj_p

integer, parameter explicitfunctionsmodule::smooth_traj_p = 22

◆ spl

type(splinedata), dimension(nspln_p), save, private explicitfunctionsmodule::spl
private

◆ spline_p

integer, parameter explicitfunctionsmodule::spline_p = 6

◆ square_puls_p

integer, parameter explicitfunctionsmodule::square_puls_p = 13

◆ step_p

integer, parameter explicitfunctionsmodule::step_p = 12

◆ twopi

real(dp), parameter, private explicitfunctionsmodule::twopi = PI+PI
private

◆ user_defined_p

integer, parameter explicitfunctionsmodule::user_defined_p = 21

◆ wave_embedded_p

integer, parameter explicitfunctionsmodule::wave_embedded_p = 9

◆ wave_sinus_p

integer, parameter explicitfunctionsmodule::wave_sinus_p = 4

◆ wave_stokes5_p

integer, parameter explicitfunctionsmodule::wave_stokes5_p = 7

◆ wave_streamline_p

integer, parameter explicitfunctionsmodule::wave_streamline_p = 8