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 buffer_refinement_boundaries(mg,id,nc,iv,dry_run)type(mg_t),intent(inout)::mginteger,intent(in)::idinteger,intent(in)::ncinteger,intent(in)::ivlogical,intent(in)::dry_runinteger::nb,nb_id,c_ids(2**(2-1))integer::n,c_id,c_rankdo nb=1,mg_num_neighborsnb_id=mg%boxes(id)%neighbors(nb)if(nb_id>mg_no_box)then if(mg_has_children(mg%boxes(nb_id)))thenc_ids=mg%boxes(nb_id)%children(mg_child_adj_nb(:,&mg_neighb_rev(nb)))do n=1,mg_num_children/2c_id=c_ids(n)c_rank=mg%boxes(c_id)%rankif(c_rank/=mg%my_rank)then! Send all coarse ghost cellscall buffer_for_fine_nb(mg,mg%boxes(id),nc,iv,c_id,&c_rank,nb,dry_run)end if end do end if end if end do end subroutine buffer_refinement_boundaries