![]() |
MODFLOW 6
version 6.7.0.dev1
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... | |
enum | { release = 0 , exit = 1 , timestep = 2 , terminate = 3 , weaksink = 4 , usertime = 5 } |
Particle event 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 | 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" (1: model, 2: cell, 3: subcell). A level identifies the domain through which a tracking method is responsible for moving a particle. Methods each operate on a particular level, delegating among more methods as appropriate for finer-grained levels. 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 31 of file Particle.f90.
anonymous enum |
A number of events may occur to particles, each of which may (or may not) be of interest to the user. The user selects among events to be reported. A corresponding event code is reported with each record to identify the record's cause.
Records may be identical except for their event code, reflecting the fact that multiple events of interest may occur at any given moment.
Definition at line 53 of file Particle.f90.
subroutine particlemodule::create_particle | ( | type(particletype), pointer | particle | ) |
Definition at line 163 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 171 of file Particle.f90.
subroutine particlemodule::destroy | ( | class(particlestoretype), intent(inout) | this, |
character(*), intent(in) | mempath | ||
) |
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 273 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 397 of file Particle.f90.
integer function particlemodule::num_stored | ( | class(particlestoretype) | this | ) |
Definition at line 416 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 314 of file Particle.f90.
subroutine particlemodule::reset_transform | ( | class(particletype), intent(inout) | this | ) |
[in,out] | this | particle |
Definition at line 382 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 235 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 357 of file Particle.f90.
integer, parameter particlemodule::max_level = 4 |
Definition at line 15 of file Particle.f90.