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 laplacian_set_methods(mg)type(mg_t),intent(inout)::mgif(all(mg%periodic))then! For a fully periodic Laplacian, remove the mean from the rhs and phi so! that a unique and periodic solution can be foundmg%subtract_mean=.true.end if select case(mg%geometry_type)case(mg_cartesian)mg%box_op=>box_lplselect case(mg%smoother_type)! case (smoother_jacobi)! mg%box_smoother => box_jacobi_lplcase(mg_smoother_gs,mg_smoother_gsrb)mg%box_smoother=>box_gs_lplcase defaulterror stop"laplacian_set_methods: unsupported smoother type"end select case defaulterror stop"laplacian_set_methods: unsupported geometry"end select end subroutine laplacian_set_methods