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 get_flux(u,xC,flux_dim,flux)real(dp),intent(in)::u(nw_phys)real(dp),intent(in)::xC(ndim)integer,intent(in)::flux_dimreal(dp),intent(out)::flux(nw_flux)! Density fluxflux(iw_rho)=u(iw_rho)*u(iw_mom(flux_dim))! Momentum flux with pressure termflux(iw_mom(1))=u(iw_rho)*u(iw_mom(1))*u(iw_mom(flux_dim))flux(iw_mom(2))=u(iw_rho)*u(iw_mom(2))*u(iw_mom(flux_dim))flux(iw_mom(3))=u(iw_rho)*u(iw_mom(3))*u(iw_mom(flux_dim))flux(iw_mom(flux_dim))=flux(iw_mom(flux_dim))+u(iw_e)! Energy fluxflux(iw_e)=u(iw_mom(flux_dim))*(u(iw_e)*inv_gamma_1+0.5_dp*&u(iw_rho)*sum(u(iw_mom(1:ndim))**2)+u(iw_e))! Tracer flux. Note that tracers stay conservative.flux(tracer(1))=u(tracer(1))*u(iw_mom(flux_dim))end subroutine get_flux