MODFLOW 6  version 6.7.0.dev2
USGS Modular Hydrologic Model
methodmodule::methodtype Type Reference

Base type for particle tracking methods. More...

Inheritance diagram for methodmodule::methodtype:
Inheritance graph
Collaboration diagram for methodmodule::methodtype:
Collaboration graph

Public Attributes

character(len=40), pointer, public name
 method name More...
 
logical(lgp), public delegates
 whether the method delegates More...
 
type(prtfmitype), pointer, public fmi => null()
 ptr to fmi More...
 
class(celltype), pointer, public cell => null()
 ptr to the current cell More...
 
class(subcelltype), pointer, public subcell => null()
 ptr to the current subcell More...
 
type(particleeventdispatchertype), pointer, public events => null()
 ptr to event dispatcher More...
 
type(timeselecttype), pointer, public tracktimes => null()
 ptr to user-defined tracking times More...
 
integer(i4b), dimension(:), pointer, public, contiguous izone => null()
 pointer to zone numbers More...
 
real(dp), dimension(:), pointer, public, contiguous flowja => null()
 pointer to intercell flows More...
 
real(dp), dimension(:), pointer, public, contiguous porosity => null()
 pointer to aquifer porosity More...
 
real(dp), dimension(:), pointer, public, contiguous retfactor => null()
 pointer to retardation factor More...
 

Private Member Functions

procedure(apply), deferred apply
 apply the method to the particle More...
 
procedure(assess), deferred assess
 assess conditions before tracking More...
 
procedure(deallocate), deferred deallocate
 deallocate the method object More...
 
procedure load
 load the subdomain tracking method More...
 
procedure get_level
 get the tracking method level More...
 
procedure init
 
procedure track
 
procedure try_pass
 
procedure release
 
procedure terminate
 
procedure timestep
 
procedure weaksink
 
procedure usertime
 

Detailed Description

The PRT tracking algorithm invokes a "tracking method" for each domain. A domain can be a model, cell in a model, or subcell in a cell. Tracking proceeds recursively, delegating to a possibly arbitrary number of subdomains (currently, only the three above are recognized). A tracking method is responsible for advancing a particle through a domain, delegating to subdomains as needed depending on cell geometry (implementing the strategy pattern).

Definition at line 54 of file Method.f90.

Member Function/Subroutine Documentation

◆ apply()

procedure(apply), deferred methodmodule::methodtype::apply
private

Definition at line 68 of file Method.f90.

◆ assess()

procedure(assess), deferred methodmodule::methodtype::assess
private

Definition at line 69 of file Method.f90.

◆ deallocate()

procedure(deallocate), deferred methodmodule::methodtype::deallocate
private

pass the particle to the next subdomain

Definition at line 70 of file Method.f90.

◆ get_level()

procedure methodmodule::methodtype::get_level
private

Definition at line 74 of file Method.f90.

◆ init()

procedure methodmodule::methodtype::init
private

Definition at line 76 of file Method.f90.

◆ load()

procedure methodmodule::methodtype::load
private

Definition at line 73 of file Method.f90.

◆ release()

procedure methodmodule::methodtype::release
private

Definition at line 80 of file Method.f90.

◆ terminate()

procedure methodmodule::methodtype::terminate
private

Definition at line 81 of file Method.f90.

◆ timestep()

procedure methodmodule::methodtype::timestep
private

Definition at line 82 of file Method.f90.

◆ track()

procedure methodmodule::methodtype::track
private

Definition at line 77 of file Method.f90.

◆ try_pass()

procedure methodmodule::methodtype::try_pass
private

Definition at line 78 of file Method.f90.

◆ usertime()

procedure methodmodule::methodtype::usertime
private

Definition at line 84 of file Method.f90.

◆ weaksink()

procedure methodmodule::methodtype::weaksink
private

Definition at line 83 of file Method.f90.

Member Data Documentation

◆ cell

class(celltype), pointer, public methodmodule::methodtype::cell => null()

Definition at line 58 of file Method.f90.

58  class(CellType), pointer, public :: cell => null() !< ptr to the current cell

◆ delegates

logical(lgp), public methodmodule::methodtype::delegates

Definition at line 56 of file Method.f90.

56  logical(LGP), public :: delegates !< whether the method delegates

◆ events

type(particleeventdispatchertype), pointer, public methodmodule::methodtype::events => null()

Definition at line 60 of file Method.f90.

60  type(ParticleEventDispatcherType), pointer, public :: events => null() !< ptr to event dispatcher

◆ flowja

real(dp), dimension(:), pointer, public, contiguous methodmodule::methodtype::flowja => null()

Definition at line 63 of file Method.f90.

63  real(DP), dimension(:), pointer, contiguous, public :: flowja => null() !< pointer to intercell flows

◆ fmi

type(prtfmitype), pointer, public methodmodule::methodtype::fmi => null()

Definition at line 57 of file Method.f90.

57  type(PrtFmiType), pointer, public :: fmi => null() !< ptr to fmi

◆ izone

integer(i4b), dimension(:), pointer, public, contiguous methodmodule::methodtype::izone => null()

Definition at line 62 of file Method.f90.

62  integer(I4B), dimension(:), pointer, contiguous, public :: izone => null() !< pointer to zone numbers

◆ name

character(len=40), pointer, public methodmodule::methodtype::name

Definition at line 55 of file Method.f90.

55  character(len=40), pointer, public :: name !< method name

◆ porosity

real(dp), dimension(:), pointer, public, contiguous methodmodule::methodtype::porosity => null()

Definition at line 64 of file Method.f90.

64  real(DP), dimension(:), pointer, contiguous, public :: porosity => null() !< pointer to aquifer porosity

◆ retfactor

real(dp), dimension(:), pointer, public, contiguous methodmodule::methodtype::retfactor => null()

Definition at line 65 of file Method.f90.

65  real(DP), dimension(:), pointer, contiguous, public :: retfactor => null() !< pointer to retardation factor

◆ subcell

class(subcelltype), pointer, public methodmodule::methodtype::subcell => null()

Definition at line 59 of file Method.f90.

59  class(SubcellType), pointer, public :: subcell => null() !< ptr to the current subcell

◆ tracktimes

type(timeselecttype), pointer, public methodmodule::methodtype::tracktimes => null()

Definition at line 61 of file Method.f90.

61  type(TimeSelectType), pointer, public :: tracktimes => null() !< ptr to user-defined tracking times

The documentation for this type was generated from the following file: