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.
Source Code
SLL_PUREsubroutine s_bsplines_uniform__get_icell_and_offset(self,x,icell,x_offset)class(sll_t_bsplines_uniform),intent(in)::selfreal(wp),intent(in)::xinteger,intent(out)::icellreal(wp),intent(out)::x_offsetSLL_ASSERT(x>=self%xmin)SLL_ASSERT(x<=self%xmax)if(x==self%xmin)then;icell=1;x_offset=0.0_wpelse if(x==self%xmax)then;icell=self%ncells;x_offset=1.0_wpelsex_offset=(x-self%xmin)*self%inv_dx! 0 <= x_offset <= num_cellsicell=int(x_offset)x_offset=x_offset-real(icell,wp)! 0 <= x_offset < 1icell=icell+1end if end subroutine s_bsplines_uniform__get_icell_and_offset