Nodes of different colours represent the following:
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.
Nodes of different colours represent the following:
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.
Source Code
pure elemental module function jacobian_side_second(self,i,j,r)result(jacobian)implicit none class(type_side_second),intent(in)::selfinteger(int32),intent(in)::i! Global coordinate direction (1=x, 2=y, 3=z)integer(int32),intent(in)::j! Local coordinate direction (1=ξ)type(type_dp_vector_3d),intent(in)::rreal(real64)::jacobianinteger(int32)::kreal(real64)::dpsi_valtype(type_dp_vector_3d)::coordjacobian=0.0d0! The Jacobian is defined as J = sum(dNi/dξ * xi) over all nodesif(j==1)then do k=1,self%get_num_nodes()! Get the shape function derivative at point rdpsi_val=self%dpsi(k,1,r)! Get the coordinates of node kcoord=self%get_coordinate(k)select case(i)case(1)! x-componentjacobian=jacobian+dpsi_val*coord%xcase(2)! y-componentjacobian=jacobian+dpsi_val*coord%ycase(3)! z-componentjacobian=jacobian+dpsi_val*coord%zend select end do end if end function jacobian_side_second