![]() |
MODFLOW 6
version 6.7.0.dev2
USGS Modular Hydrologic Model
|
Data Types | |
type | particletype |
Particle tracked by the PRT model. More... | |
type | particlestoretype |
Structure of arrays to store particles. More... | |
Enumerations | |
enum | { active = 1 , term_boundary = 2 , term_weaksink = 3 , term_no_exits = 5 , term_stopzone = 6 , term_inactive = 7 , term_unreleased = 8 , term_no_exits_sub = 9 , term_timeout = 10 } |
Particle status enumeration. More... | |
Functions/Subroutines | |
subroutine | create_particle (particle) |
Create a new particle. More... | |
subroutine | create_particle_store (store, np, mempath) |
Allocate particle store. More... | |
subroutine | destroy (this, mempath) |
Destroy particle store after use. More... | |
subroutine | destroy_particle (particle) |
Destroy a particle after use. More... | |
subroutine | resize (this, np, mempath) |
Reallocate particle storage to the given size. More... | |
subroutine | get (this, particle, imdl, iprp, ip) |
Load a particle from the particle store. More... | |
subroutine | put (this, particle, ip) |
Save a particle's state to the particle store. More... | |
subroutine | transform_coords (this, xorigin, yorigin, zorigin, sinrot, cosrot, invert) |
Transform particle coordinates. More... | |
subroutine | reset_transform (this) |
Reset particle coordinate transformation properties. More... | |
subroutine | get_model_coords (this, x, y, z) |
Return the particle's model coordinates, inverting any applied transformation if needed. The particle's state is not altered. More... | |
integer function | num_stored (this) |
Return the number of particles. More... | |
Variables | |
integer, parameter | max_level = 4 |
Tracking "levels" defined in method modules. Currently only 3 used. More... | |
anonymous enum |
Particles begin in status 1 (active) at release time. Status may only increase over time. Status values greater than one imply termination. A particle may terminate for several reasons, all mutually exclusive. A particle's final tracking status will always be greater than one.
Status codes 0-3 and 5-8 correspond directly to MODPATH 7 status codes. Code 4 does not apply to PRT because PRT does not distinguish forwards from backwards tracking. Status code 9 provides more specific, subcell- level information about a particle which terminates due to no outflow. Code 10 distinguishes particles which have "timed out" upon reaching a user-specified stop time or the end of the simulation.
Definition at line 28 of file Particle.f90.
subroutine particlemodule::create_particle | ( | type(particletype), pointer | particle | ) |
Definition at line 145 of file Particle.f90.
subroutine particlemodule::create_particle_store | ( | type(particlestoretype), pointer | store, |
integer(i4b), intent(in) | np, | ||
character(*), intent(in) | mempath | ||
) |
[in] | np | number of particles |
[in] | mempath | path to memory |
Definition at line 152 of file Particle.f90.
subroutine particlemodule::destroy | ( | class(particlestoretype), intent(inout) | this, |
character(*), intent(in) | mempath | ||
) |
subroutine particlemodule::destroy_particle | ( | class(particletype), intent(inout) | particle | ) |
Definition at line 218 of file Particle.f90.
subroutine particlemodule::get | ( | class(particlestoretype), intent(inout) | this, |
class(particletype), intent(inout) | particle, | ||
integer(i4b), intent(in) | imdl, | ||
integer(i4b), intent(in) | iprp, | ||
integer(i4b), intent(in) | ip | ||
) |
This routine is used to initialize a particle for tracking. The advancing flag and coordinate transformation are reset.
[in,out] | this | particle store |
[in] | imdl | index of model particle originated in |
[in] | iprp | index of particle release package particle originated in |
[in] | ip | index into the particle list |
Definition at line 263 of file Particle.f90.
subroutine particlemodule::get_model_coords | ( | class(particletype), intent(in) | this, |
real(dp), intent(out) | x, | ||
real(dp), intent(out) | y, | ||
real(dp), intent(out) | z | ||
) |
[in] | this | particle |
[out] | x | x coordinate |
[out] | y | y coordinate |
[out] | z | z coordinate |
Definition at line 390 of file Particle.f90.
integer function particlemodule::num_stored | ( | class(particlestoretype) | this | ) |
Definition at line 409 of file Particle.f90.
subroutine particlemodule::put | ( | class(particlestoretype), intent(inout) | this, |
class(particletype), intent(in) | particle, | ||
integer(i4b), intent(in) | ip | ||
) |
[in,out] | this | particle storage |
[in] | ip | particle index |
Definition at line 306 of file Particle.f90.
subroutine particlemodule::reset_transform | ( | class(particletype), intent(inout) | this | ) |
[in,out] | this | particle |
Definition at line 375 of file Particle.f90.
subroutine particlemodule::resize | ( | class(particlestoretype), intent(inout) | this, |
integer(i4b), intent(in) | np, | ||
character(*), intent(in) | mempath | ||
) |
[in,out] | this | particle store |
[in] | np | number of particles |
[in] | mempath | path to memory |
Definition at line 224 of file Particle.f90.
subroutine particlemodule::transform_coords | ( | class(particletype), intent(inout) | this, |
real(dp), intent(in), optional | xorigin, | ||
real(dp), intent(in), optional | yorigin, | ||
real(dp), intent(in), optional | zorigin, | ||
real(dp), intent(in), optional | sinrot, | ||
real(dp), intent(in), optional | cosrot, | ||
logical(lgp), intent(in), optional | invert | ||
) |
Apply a translation and/or rotation to particle coordinates. No rescaling. It's also possible to invert a transformation. Be sure to reset the transformation after using it.
[in,out] | this | particle |
[in] | xorigin | x coordinate of origin |
[in] | yorigin | y coordinate of origin |
[in] | zorigin | z coordinate of origin |
[in] | sinrot | sine of rotation angle |
[in] | cosrot | cosine of rotation angle |
[in] | invert | whether to invert |
Definition at line 350 of file Particle.f90.
integer, parameter particlemodule::max_level = 4 |
Definition at line 12 of file Particle.f90.