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
subroutine apply_crs_dirichlet_base(A,b,is_uniform,edge,value_dirichlet)implicit none type(type_crs),intent(inout),optional::Areal(real64),intent(inout)::b(:)logical,intent(in)::is_uniforminteger(int32),intent(in)::edge(2)real(real64),intent(in)::value_dirichletinteger(int32)::i,j,k,p,Ninteger(int32)::p_idxinteger(int32)::ps,pereal(real64)::Aijlogical,allocatable::is_dirichlet_node(:)integer(int32)::ind,p1,p2if(.not.is_uniform)return if(present(A))thenN=size(b)p1=Edge(1)p2=Edge(2)if(present(A))then call A%find(p1,p1,ind)ps=A%ptr(p1)pe=A%ptr(p1+1)-1A%val(ps:pe)=0.0d0A%val(ind)=1.0d0call A%find(p2,p2,ind)ps=A%ptr(p2)pe=A%ptr(p2+1)-1A%val(ps:pe)=0.0d0A%val(ind)=1.0d0end ifb(p1)=value_dirichletb(p2)=value_dirichletelse! 行列 A がない場合は、b のみを変更b(edge(1))=value_dirichletb(edge(2))=value_dirichletend if end subroutine apply_crs_dirichlet_base