Nodes of different colours represent the following:
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
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
function advect_get_particle_dt(partp,end_time)result(dt_p)use mod_global_parameterstype(particle_ptr),intent(in)::partpdouble precision,intent(in)::end_timedouble precision::dt_pinteger::ipart,iipart,idimsdouble precision::v(1:ndir),dtdims(1:ndim)if(const_dt_particles>0)thendt_p=const_dt_particlesreturn end if! make sure we step only one cell at a time:call derivs_advect(partp%self%time,partp%self%x,v)do idims=1,ndimdtdims(idims)=minval(ps(partp%igrid)%ds(ixMlo1:ixMhi1,ixMlo2:ixMhi2,&ixMlo3:ixMhi3,idims))/(max(abs(v(idims)),smalldouble))end dodt_p=particles_cfl*minval(dtdims)! Make sure we do not advance beyond end_timecall limit_dt_endtime(end_time-partp%self%time,dt_p)end function advect_get_particle_dt