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.
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
subroutine mg_phi_bc_store_lvl(mg,lvl,nc)type(mg_t),intent(inout)::mginteger,intent(in)::lvlinteger,intent(in)::ncreal(dp)::bc(nc,nc)integer::i,id,nb,nb_id,bc_typedo i=1,size(mg%lvls(lvl)%my_ids)id=mg%lvls(lvl)%my_ids(i)do nb=1,mg_num_neighborsnb_id=mg%boxes(id)%neighbors(nb)if(nb_id<mg_no_box)then! Physical boundaryif(associated(mg%bc(nb,mg_iphi)%boundary_cond))then call mg%bc(nb,mg_iphi)%boundary_cond(mg%boxes(id),nc,&mg_iphi,nb,bc_type,bc)elsebc_type=mg%bc(nb,mg_iphi)%bc_typebc=mg%bc(nb,mg_iphi)%bc_valueend if! Store the boundary condition type. This is not globally set in! the tree, but all negative values are treated the same in! other parts of the codemg%boxes(id)%neighbors(nb)=bc_type! Store ghost cell data in the right-hand sidecall box_set_gc(mg%boxes(id),nb,nc,mg_irhs,bc)end if end do end do end subroutine mg_phi_bc_store_lvl