![]() |
MODFLOW 6 version 6.9.0.dev0
USGS Modular Hydrologic Model
|
Particle tracked by the PRT model. More...

Public Member Functions | |
| procedure, public | destroy (particle) |
| Destroy a particle after use. | |
| procedure, public | 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. | |
| procedure, public | transform (this, xorigin, yorigin, zorigin, sinrot, cosrot, invert) |
| Transform particle coordinates. | |
| procedure, public | reset_transform (this) |
| Reset particle coordinate transformation properties. | |
| procedure, public | get_id (this) |
| Get a string identifier for the particle. | |
Public Attributes | |
| character(len=lenboundname), public | name = '' |
| optional particle name | |
| integer(i4b), public | imdl |
| index of model the particle originated in | |
| integer(i4b), public | iprp |
| index of release package the particle is from | |
| integer(i4b), public | irpt |
| index of release point the particle is from | |
| integer(i4b), public | ip |
| index of particle in the particle list | |
| logical(lgp), public | extend |
| whether to extend tracking beyond the end of the simulation | |
| logical(lgp), public | frctrn |
| whether to force solving the particle with the ternary method | |
| integer(i4b), public | istopweaksink |
| weak sink option (0: do not stop, 1: stop) | |
| integer(i4b), public | istopzone |
| stop zone number | |
| integer(i4b), public | idrymeth |
| dry tracking method | |
| integer(i4b), public | iexmeth |
| method for iterative solution of particle exit location and time in generalized Pollock's method | |
| integer(i4b), public | icycwin |
| cycle detection window size | |
| real(dp), public | extol |
| tolerance for iterative solution of particle exit location and time in generalized Pollock's method | |
| integer(i4b), dimension(max_level), public | itrdomain |
| tracking domain indices | |
| integer(i4b), dimension(max_level), public | iboundary |
| tracking domain boundary indices | |
| integer(i4b), public | icu |
| user cell number | |
| integer(i4b), public | ilay |
| grid layer | |
| integer(i4b), public | izone |
| current zone number | |
| integer(i4b), public | istatus |
| tracking status | |
| real(dp), public | x |
| x coordinate | |
| real(dp), public | y |
| y coordinate | |
| real(dp), public | z |
| z coordinate | |
| real(dp), public | trelease |
| release time | |
| real(dp), public | tstop |
| stop time | |
| real(dp), public | ttrack |
| time tracked so far | |
| real(dp), public | xorigin |
| x origin for coordinate transformation from model to local | |
| real(dp), public | yorigin |
| y origin for coordinate transformation from model to local | |
| real(dp), public | zorigin |
| z origin for coordinate transformation from model to local | |
| real(dp), public | sinrot |
| sine of rotation angle for coordinate transformation from model to local | |
| real(dp), public | cosrot |
| cosine of rotation angle for coordinate transformation from model to local | |
| logical(lgp), public | transformed |
| whether coordinates have been transformed from model to local | |
| logical(lgp), public | advancing |
| whether particle is still being tracked for current time step | |
| type(listtype), pointer, public | history |
| history of particle positions (for cycle detection) | |
Record-type to conveniently shuffle a particle's state to/from storage before/after its trajectory is solved for each time step.
Particle coordinates may be local to the cell or global/model. Routines are provided to convert a particle's global coordinates to/from cell-local coordinates for tracking through cell subdomains.
Particles are identified by composite key, i.e., combinations of properties imdl, iprp, irpt, and trelease. An optional label may be provided, but need not be unique.
Particles carry a coordinate transform along with themselves, instead of just letting the tracking methods handle transforms, because we may need to report an event at any time in model coordinates.
Definition at line 64 of file Particle.f90.
| procedure, public particlemodule::particletype::destroy | ( | class(particletype), intent(inout) | particle | ) |
Definition at line 103 of file Particle.f90.
| procedure, public particlemodule::particletype::get_id | ( | class(particletype), intent(in) | this | ) |
Definition at line 107 of file Particle.f90.
| procedure, public particlemodule::particletype::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 104 of file Particle.f90.
| procedure, public particlemodule::particletype::reset_transform | ( | class(particletype), intent(inout) | this | ) |
| [in,out] | this | particle |
Definition at line 106 of file Particle.f90.
| procedure, public particlemodule::particletype::transform | ( | 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 105 of file Particle.f90.
| logical(lgp), public particlemodule::particletype::advancing |
Definition at line 100 of file Particle.f90.
| real(dp), public particlemodule::particletype::cosrot |
Definition at line 98 of file Particle.f90.
| logical(lgp), public particlemodule::particletype::extend |
Definition at line 73 of file Particle.f90.
| real(dp), public particlemodule::particletype::extol |
Definition at line 80 of file Particle.f90.
| logical(lgp), public particlemodule::particletype::frctrn |
Definition at line 74 of file Particle.f90.
| type(listtype), pointer, public particlemodule::particletype::history |
Definition at line 101 of file Particle.f90.
| integer(i4b), dimension(max_level), public particlemodule::particletype::iboundary |
Definition at line 83 of file Particle.f90.
| integer(i4b), public particlemodule::particletype::icu |
Definition at line 84 of file Particle.f90.
| integer(i4b), public particlemodule::particletype::icycwin |
Definition at line 79 of file Particle.f90.
| integer(i4b), public particlemodule::particletype::idrymeth |
Definition at line 77 of file Particle.f90.
| integer(i4b), public particlemodule::particletype::iexmeth |
Definition at line 78 of file Particle.f90.
| integer(i4b), public particlemodule::particletype::ilay |
Definition at line 85 of file Particle.f90.
| integer(i4b), public particlemodule::particletype::imdl |
Definition at line 68 of file Particle.f90.
| integer(i4b), public particlemodule::particletype::ip |
Definition at line 71 of file Particle.f90.
| integer(i4b), public particlemodule::particletype::iprp |
Definition at line 69 of file Particle.f90.
| integer(i4b), public particlemodule::particletype::irpt |
Definition at line 70 of file Particle.f90.
| integer(i4b), public particlemodule::particletype::istatus |
Definition at line 87 of file Particle.f90.
| integer(i4b), public particlemodule::particletype::istopweaksink |
Definition at line 75 of file Particle.f90.
| integer(i4b), public particlemodule::particletype::istopzone |
Definition at line 76 of file Particle.f90.
| integer(i4b), dimension(max_level), public particlemodule::particletype::itrdomain |
Definition at line 82 of file Particle.f90.
| integer(i4b), public particlemodule::particletype::izone |
Definition at line 86 of file Particle.f90.
| character(len=lenboundname), public particlemodule::particletype::name = '' |
Definition at line 67 of file Particle.f90.
| real(dp), public particlemodule::particletype::sinrot |
Definition at line 97 of file Particle.f90.
| logical(lgp), public particlemodule::particletype::transformed |
Definition at line 99 of file Particle.f90.
| real(dp), public particlemodule::particletype::trelease |
Definition at line 91 of file Particle.f90.
| real(dp), public particlemodule::particletype::tstop |
Definition at line 92 of file Particle.f90.
| real(dp), public particlemodule::particletype::ttrack |
Definition at line 93 of file Particle.f90.
| real(dp), public particlemodule::particletype::x |
Definition at line 88 of file Particle.f90.
| real(dp), public particlemodule::particletype::xorigin |
Definition at line 94 of file Particle.f90.
| real(dp), public particlemodule::particletype::y |
Definition at line 89 of file Particle.f90.
| real(dp), public particlemodule::particletype::yorigin |
Definition at line 95 of file Particle.f90.
| real(dp), public particlemodule::particletype::z |
Definition at line 90 of file Particle.f90.
| real(dp), public particlemodule::particletype::zorigin |
Definition at line 96 of file Particle.f90.