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 ahelmholtz_set_methods(mg)type(mg_t),intent(inout)::mgif(mg%n_extra_vars==0.and.mg%is_allocated)then error stop"ahelmholtz_set_methods: mg%n_extra_vars == 0"elsemg%n_extra_vars=max(3,mg%n_extra_vars)end if! Use Neumann zero boundary conditions for the variable coefficient, since! it is needed in ghost cells.mg%bc(:,mg_iveps1)%bc_type=mg_bc_neumannmg%bc(:,mg_iveps1)%bc_value=0.0_dpmg%bc(:,mg_iveps2)%bc_type=mg_bc_neumannmg%bc(:,mg_iveps2)%bc_value=0.0_dpmg%bc(:,mg_iveps3)%bc_type=mg_bc_neumannmg%bc(:,mg_iveps3)%bc_value=0.0_dpselect case(mg%geometry_type)case(mg_cartesian)mg%box_op=>box_ahelmhselect case(mg%smoother_type)case(mg_smoother_gs,mg_smoother_gsrb)mg%box_smoother=>box_gs_ahelmhcase defaulterror stop"ahelmholtz_set_methods: unsupported smoother type"end select case defaulterror stop"ahelmholtz_set_methods: unsupported geometry"end select end subroutine ahelmholtz_set_methods