![]() |
MODFLOW 6
version 6.7.0.dev2
USGS Modular Hydrologic Model
|
Particle track output module. More...
Data Types | |
type | particletrackfiletype |
Output file containing all or some particle pathlines. More... | |
type | particletrackeventselectiontype |
Selection of particle events. More... | |
type | particletrackstype |
Manages particle track output (logging/writing). More... | |
Functions/Subroutines | |
subroutine | init_file (this, iun, csv, iprp) |
Initialize a binary or CSV file. More... | |
subroutine | destroy (this) |
subroutine | expand_files (this, increment) |
Grow the array of track files. More... | |
subroutine | select_events (this, release, cellexit, timestep, terminate, weaksink, usertime) |
Pick events to track. More... | |
logical function | is_selected (this, event_code) |
Check if a given event code is selected for tracking. More... | |
logical function | should_save (this, particle, file) |
Check whether a particle belongs in a given file i.e. if the file is enabled and its group matches the particle's. More... | |
subroutine, private | save_event (iun, particle, event, csv) |
Save an event to a binary or CSV file. More... | |
logical function | should_log (this) |
Log output unit valid? More... | |
subroutine, private | log_event (iun, particle, event) |
Print a particle event summary. More... | |
subroutine | handle_event (this, particle, event) |
Handle a particle event. More... | |
Variables | |
character(len= *), parameter, public | trackheader = 'kper,kstp,imdl,iprp,irpt,ilay,icell,izone,istatus,ireason,trelease,t,x,y,z,name' |
character(len= *), parameter, public | trackdtypes = '<i4,<i4,<i4,<i4,<i4,<i4,<i4,<i4,<i4,<i4,<f8,<f8,<f8,<f8,<f8,|S40' |
Each particle's track consists of events reported as the particle is advected through the model domain. Events are snapshots of particle state, along with optional metadata, at a particular moment in time.
Particles have no ID property. A particle can be uniquely identified by the unique combination of its release attributes (model, package, position, and time). This is possible because only one particle may be released from a given point at a given time.
This module consumes particle events and is responsible for writing them to one or more track files, binary or CSV, and for logging the events if requested. Each track file is associated with either a PRP package or with the full PRT model (there may only be 1 such latter).
subroutine particletracksmodule::destroy | ( | class(particletrackstype) | this | ) |
Definition at line 112 of file ParticleTracks.f90.
subroutine particletracksmodule::expand_files | ( | class(particletrackstype) | this, |
integer(i4b), intent(in), optional | increment | ||
) |
Definition at line 118 of file ParticleTracks.f90.
subroutine particletracksmodule::handle_event | ( | class(particletrackstype), intent(inout) | this, |
type(particletype), intent(in), pointer | particle, | ||
class(particleeventtype), intent(in), pointer | event | ||
) |
subroutine particletracksmodule::init_file | ( | class(particletrackstype) | this, |
integer(i4b), intent(in) | iun, | ||
logical(lgp), intent(in), optional | csv, | ||
integer(i4b), intent(in), optional | iprp | ||
) |
Definition at line 89 of file ParticleTracks.f90.
logical function particletracksmodule::is_selected | ( | class(particletrackstype), intent(inout) | this, |
integer(i4b), intent(in) | event_code | ||
) |
Definition at line 170 of file ParticleTracks.f90.
|
private |
|
private |
subroutine particletracksmodule::select_events | ( | class(particletrackstype) | this, |
logical(lgp), intent(in) | release, | ||
logical(lgp), intent(in) | cellexit, | ||
logical(lgp), intent(in) | timestep, | ||
logical(lgp), intent(in) | terminate, | ||
logical(lgp), intent(in) | weaksink, | ||
logical(lgp), intent(in) | usertime | ||
) |
Definition at line 147 of file ParticleTracks.f90.
logical function particletracksmodule::should_log | ( | class(particletrackstype), intent(inout) | this | ) |
Definition at line 253 of file ParticleTracks.f90.
logical function particletracksmodule::should_save | ( | class(particletrackstype), intent(inout) | this, |
type(particletype), intent(in), pointer | particle, | ||
type(particletrackfiletype), intent(in) | file | ||
) |
Definition at line 184 of file ParticleTracks.f90.
character(len=*), parameter, public particletracksmodule::trackdtypes = '<i4,<i4,<i4,<i4,<i4,<i4,<i4,<i4,<i4,<i4,<f8,<f8,<f8,<f8,<f8,|S40' |
Definition at line 38 of file ParticleTracks.f90.
character(len=*), parameter, public particletracksmodule::trackheader = 'kper,kstp,imdl,iprp,irpt,ilay,icell,izone,istatus,ireason,trelease,t,x,y,z,name' |
Definition at line 34 of file ParticleTracks.f90.