![]() |
MODFLOW 6
version 6.8.0.dev0
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 |
| Particle track output manager. Handles printing as well as writing to files. One output unit can be configured for printing. Multiple files can be configured for writing, with each file optionally associated with a PRP package or with the full model. Events can be filtered by type, so that only certain event types are printed or written to files. More... | |
Functions/Subroutines | |
| subroutine | init_file (this, iun, csv, iprp) |
| Initialize a binary or CSV file. More... | |
| subroutine | destroy (this) |
| Destroy the particle track manager. More... | |
| subroutine | expand_files (this, increment) |
| Grow the array of track files. More... | |
| subroutine | select_events (this, release, featexit, timestep, terminate, weaksink, usertime, subfexit, dropped) |
| Pick events to track. More... | |
| logical function | is_selected (this, event) |
| 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_print (this) |
| Is the output unit valid? More... | |
| logical(lgp) function, public | write_particle_event (context, particle, event) |
| Write a particle event to files for which the particle is eligible, and print the event to output unit if requested. This function is the module's main entry point. It should be subscribed as an event handler to particle event dispatchers. 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 124 of file ParticleTracks.f90.
| subroutine particletracksmodule::expand_files | ( | class(particletrackstype) | this, |
| integer(i4b), intent(in), optional | increment | ||
| ) |
Definition at line 130 of file ParticleTracks.f90.
| 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 100 of file ParticleTracks.f90.
| logical function particletracksmodule::is_selected | ( | class(particletrackstype), intent(inout) | this, |
| class(particleeventtype), intent(in) | event | ||
| ) |
|
private |
| subroutine particletracksmodule::select_events | ( | class(particletrackstype) | this, |
| logical(lgp), intent(in) | release, | ||
| logical(lgp), intent(in) | featexit, | ||
| logical(lgp), intent(in) | timestep, | ||
| logical(lgp), intent(in) | terminate, | ||
| logical(lgp), intent(in) | weaksink, | ||
| logical(lgp), intent(in) | usertime, | ||
| logical(lgp), intent(in) | subfexit, | ||
| logical(lgp), intent(in) | dropped | ||
| ) |
Definition at line 159 of file ParticleTracks.f90.
| logical function particletracksmodule::should_print | ( | class(particletrackstype), intent(inout) | this | ) |
Definition at line 274 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 218 of file ParticleTracks.f90.
| logical(lgp) function, public particletracksmodule::write_particle_event | ( | class(*), pointer | context, |
| type(particletype), intent(inout), pointer | particle, | ||
| class(particleeventtype), intent(in), pointer | event | ||
| ) |
Definition at line 283 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 47 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 43 of file ParticleTracks.f90.