MODFLOW 6 version 6.9.0.dev0
USGS Modular Hydrologic Model
Loading...
Searching...
No Matches
particlemodule::particletype Type Reference

Particle tracked by the PRT model. More...

Collaboration diagram for particlemodule::particletype:
Collaboration graph

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)

Detailed Description

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.

Member Function/Subroutine Documentation

◆ destroy()

procedure, public particlemodule::particletype::destroy ( class(particletype), intent(inout) particle)

Definition at line 103 of file Particle.f90.

◆ get_id()

procedure, public particlemodule::particletype::get_id ( class(particletype), intent(in) this)

Definition at line 107 of file Particle.f90.

◆ get_model_coords()

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 )
Parameters
[in]thisparticle
[out]xx coordinate
[out]yy coordinate
[out]zz coordinate

Definition at line 104 of file Particle.f90.

◆ reset_transform()

procedure, public particlemodule::particletype::reset_transform ( class(particletype), intent(inout) this)
Parameters
[in,out]thisparticle

Definition at line 106 of file Particle.f90.

◆ transform()

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.

Parameters
[in,out]thisparticle
[in]xoriginx coordinate of origin
[in]yoriginy coordinate of origin
[in]zoriginz coordinate of origin
[in]sinrotsine of rotation angle
[in]cosrotcosine of rotation angle
[in]invertwhether to invert

Definition at line 105 of file Particle.f90.

Member Data Documentation

◆ advancing

logical(lgp), public particlemodule::particletype::advancing

Definition at line 100 of file Particle.f90.

100 logical(LGP), public :: advancing !< whether particle is still being tracked for current time step

◆ cosrot

real(dp), public particlemodule::particletype::cosrot

Definition at line 98 of file Particle.f90.

98 real(DP), public :: cosrot !< cosine of rotation angle for coordinate transformation from model to local

◆ extend

logical(lgp), public particlemodule::particletype::extend

Definition at line 73 of file Particle.f90.

73 logical(LGP), public :: extend !< whether to extend tracking beyond the end of the simulation

◆ extol

real(dp), public particlemodule::particletype::extol

Definition at line 80 of file Particle.f90.

80 real(DP), public :: extol !< tolerance for iterative solution of particle exit location and time in generalized Pollock's method

◆ frctrn

logical(lgp), public particlemodule::particletype::frctrn

Definition at line 74 of file Particle.f90.

74 logical(LGP), public :: frctrn !< whether to force solving the particle with the ternary method

◆ history

type(listtype), pointer, public particlemodule::particletype::history

Definition at line 101 of file Particle.f90.

101 type(ListType), public, pointer :: history !< history of particle positions (for cycle detection)

◆ iboundary

integer(i4b), dimension(max_level), public particlemodule::particletype::iboundary

Definition at line 83 of file Particle.f90.

83 integer(I4B), public :: iboundary(MAX_LEVEL) !< tracking domain boundary indices

◆ icu

integer(i4b), public particlemodule::particletype::icu

Definition at line 84 of file Particle.f90.

84 integer(I4B), public :: icu !< user cell number

◆ icycwin

integer(i4b), public particlemodule::particletype::icycwin

Definition at line 79 of file Particle.f90.

79 integer(I4B), public :: icycwin !< cycle detection window size

◆ idrymeth

integer(i4b), public particlemodule::particletype::idrymeth

Definition at line 77 of file Particle.f90.

77 integer(I4B), public :: idrymeth !< dry tracking method

◆ iexmeth

integer(i4b), public particlemodule::particletype::iexmeth

Definition at line 78 of file Particle.f90.

78 integer(I4B), public :: iexmeth !< method for iterative solution of particle exit location and time in generalized Pollock's method

◆ ilay

integer(i4b), public particlemodule::particletype::ilay

Definition at line 85 of file Particle.f90.

85 integer(I4B), public :: ilay !< grid layer

◆ imdl

integer(i4b), public particlemodule::particletype::imdl

Definition at line 68 of file Particle.f90.

68 integer(I4B), public :: imdl !< index of model the particle originated in

◆ ip

integer(i4b), public particlemodule::particletype::ip

Definition at line 71 of file Particle.f90.

71 integer(I4B), public :: ip !< index of particle in the particle list

◆ iprp

integer(i4b), public particlemodule::particletype::iprp

Definition at line 69 of file Particle.f90.

69 integer(I4B), public :: iprp !< index of release package the particle is from

◆ irpt

integer(i4b), public particlemodule::particletype::irpt

Definition at line 70 of file Particle.f90.

70 integer(I4B), public :: irpt !< index of release point the particle is from

◆ istatus

integer(i4b), public particlemodule::particletype::istatus

Definition at line 87 of file Particle.f90.

87 integer(I4B), public :: istatus !< tracking status

◆ istopweaksink

integer(i4b), public particlemodule::particletype::istopweaksink

Definition at line 75 of file Particle.f90.

75 integer(I4B), public :: istopweaksink !< weak sink option (0: do not stop, 1: stop)

◆ istopzone

integer(i4b), public particlemodule::particletype::istopzone

Definition at line 76 of file Particle.f90.

76 integer(I4B), public :: istopzone !< stop zone number

◆ itrdomain

integer(i4b), dimension(max_level), public particlemodule::particletype::itrdomain

Definition at line 82 of file Particle.f90.

82 integer(I4B), public :: itrdomain(MAX_LEVEL) !< tracking domain indices

◆ izone

integer(i4b), public particlemodule::particletype::izone

Definition at line 86 of file Particle.f90.

86 integer(I4B), public :: izone !< current zone number

◆ name

character(len=lenboundname), public particlemodule::particletype::name = ''

Definition at line 67 of file Particle.f90.

◆ sinrot

real(dp), public particlemodule::particletype::sinrot

Definition at line 97 of file Particle.f90.

97 real(DP), public :: sinrot !< sine of rotation angle for coordinate transformation from model to local

◆ transformed

logical(lgp), public particlemodule::particletype::transformed

Definition at line 99 of file Particle.f90.

99 logical(LGP), public :: transformed !< whether coordinates have been transformed from model to local

◆ trelease

real(dp), public particlemodule::particletype::trelease

Definition at line 91 of file Particle.f90.

91 real(DP), public :: trelease !< release time

◆ tstop

real(dp), public particlemodule::particletype::tstop

Definition at line 92 of file Particle.f90.

92 real(DP), public :: tstop !< stop time

◆ ttrack

real(dp), public particlemodule::particletype::ttrack

Definition at line 93 of file Particle.f90.

93 real(DP), public :: ttrack !< time tracked so far

◆ x

real(dp), public particlemodule::particletype::x

Definition at line 88 of file Particle.f90.

88 real(DP), public :: x !< x coordinate

◆ xorigin

real(dp), public particlemodule::particletype::xorigin

Definition at line 94 of file Particle.f90.

94 real(DP), public :: xorigin !< x origin for coordinate transformation from model to local

◆ y

real(dp), public particlemodule::particletype::y

Definition at line 89 of file Particle.f90.

89 real(DP), public :: y !< y coordinate

◆ yorigin

real(dp), public particlemodule::particletype::yorigin

Definition at line 95 of file Particle.f90.

95 real(DP), public :: yorigin !< y origin for coordinate transformation from model to local

◆ z

real(dp), public particlemodule::particletype::z

Definition at line 90 of file Particle.f90.

90 real(DP), public :: z !< z coordinate

◆ zorigin

real(dp), public particlemodule::particletype::zorigin

Definition at line 96 of file Particle.f90.

96 real(DP), public :: zorigin !< z origin for coordinate transformation from model to local

The documentation for this type was generated from the following file:
  • /home/runner/work/modflow6/modflow6/src/Solution/ParticleTracker/Particle/Particle.f90