public function hmap_axisNB_eval_gij(sf, qL_in, q_G, qR_in) result(g_ab)
evaluate sum_ij (qL_i (G_ij(q_G)) qR_j) ,,
where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and
dzeta_dalpha then known to be either 0.0 for ds and dtheta and 1.0 for dzeta
Type Bound
t_hmap_axisNB
Arguments
Type
Intent Optional Attributes
Name
class(t_hmap_axisNB ),
intent(in)
::
sf
real(kind=wp),
intent(in)
::
qL_in (3)
real(kind=wp),
intent(in)
::
q_G (3)
real(kind=wp),
intent(in)
::
qR_in (3)
Return Value
real(kind=wp)
proc~~hmap_axisnb_eval_gij~~CallsGraph
proc~hmap_axisnb_eval_gij
t_hmap_axisNB%hmap_axisNB_eval_gij
proc~hmap_axisnb_eval_tnb_hat
t_hmap_axisNB%hmap_axisNB_eval_TNB_hat
proc~hmap_axisnb_eval_gij->proc~hmap_axisnb_eval_tnb_hat
dgemv
dgemv
proc~hmap_axisnb_eval_tnb_hat->dgemv
proc~fbase_eval
t_fBase%fBase_eval
proc~hmap_axisnb_eval_tnb_hat->proc~fbase_eval
proc~fbase_eval_xn
t_fBase%fBase_eval_xn
proc~fbase_eval->proc~fbase_eval_xn
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.
proc~~hmap_axisnb_eval_gij~~CalledByGraph
proc~hmap_axisnb_eval_gij
t_hmap_axisNB%hmap_axisNB_eval_gij
proc~hmap_axisnb_test
hmap_axisNB_test
proc~hmap_axisnb_test->proc~hmap_axisnb_eval_gij
proc~hmap_axisnb_init_params
hmap_axisNB_init_params
proc~hmap_axisnb_init_params->proc~hmap_axisnb_test
interface~t_hmap_axisnb
t_hmap_axisNB
interface~t_hmap_axisnb->proc~hmap_axisnb_init_params
proc~hmap_axisnb_init
hmap_axisNB_init
interface~t_hmap_axisnb->proc~hmap_axisnb_init
proc~hmap_axisnb_init->proc~hmap_axisnb_init_params
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.
Source Code
FUNCTION hmap_axisNB_eval_gij ( sf , qL_in , q_G , qR_in ) RESULT ( g_ab )
!-----------------------------------------------------------------------------------------------------------------------------------
! INPUT VARIABLES
CLASS ( t_hmap_axisNB ), INTENT ( IN ) :: sf
REAL ( wp ) , INTENT ( IN ) :: qL_in ( 3 )
REAL ( wp ) , INTENT ( IN ) :: q_G ( 3 )
REAL ( wp ) , INTENT ( IN ) :: qR_in ( 3 )
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
REAL ( wp ) :: g_ab
!-----------------------------------------------------------------------------------------------------------------------------------
! LOCAL VARIABLES
REAL ( wp ), DIMENSION ( 3 ) :: X0 , T , N , B , Np , Bp , Tq
!===================================================================================================================================
! |q1 | |N.N B.N Tq.N | |q1 |
!q_i G_ij q_j = (dalpha |q2 | ) |N.B B.B Tq.B | (dbeta |q2 | )
! |q3 | |N.Tq B.Tq Tq.Tq| |q3 |
ASSOCIATE ( q1 => q_G ( 1 ), q2 => q_G ( 2 ), zeta => q_G ( 3 ))
CALL sf % eval_TNB ( zeta , X0 , T , N , B , Np , Bp )
Tq = ( T + q1 * Np + q2 * Bp )
g_ab = SUM ( N * N ) * qL_in ( 1 ) * qR_in ( 1 ) &
+ SUM ( B * B ) * qL_in ( 2 ) * qR_in ( 2 ) &
+ SUM ( Tq * Tq ) * qL_in ( 3 ) * qR_in ( 3 ) &
+ SUM ( N * B ) * ( qL_in ( 1 ) * qR_in ( 2 ) + qL_in ( 2 ) * qR_in ( 1 )) &
+ SUM ( N * Tq ) * ( qL_in ( 1 ) * qR_in ( 3 ) + qL_in ( 3 ) * qR_in ( 1 )) &
+ SUM ( B * Tq ) * ( qL_in ( 2 ) * qR_in ( 3 ) + qL_in ( 3 ) * qR_in ( 2 ))
END ASSOCIATE
END FUNCTION hmap_axisNB_eval_gij