MODFLOW 6 version 6.9.0.dev0
USGS Modular Hydrologic Model
Loading...
Searching...
No Matches
methodcellternarymodule::methodcellternarytype Type Referenceabstract
Inheritance diagram for methodcellternarymodule::methodcellternarytype:
Inheritance graph
Collaboration diagram for methodcellternarymodule::methodcellternarytype:
Collaboration graph

Public Member Functions

procedure, public apply (this, particle, tmax)
 Apply the ternary method to a polygonal cell.
procedure, public deallocate (this)
 Destroy the tracking method.
procedure, public load (this, particle, next_level, submethod)
 Load subcell into tracking method.
procedure, public load_subcell (this, particle)
 Pass particle to next subcell if there is one, or to the cell face.
procedure vertvelo (this)
 Calculate vertex velocities.
procedure calc_thru_hcsum (this, vm0ival, divcell, le, li, lm, areasub, areacell, unintx, uninty, unextx, unexty, unintxnext, unintynext, kappax, kappay, vm0x, vm0y, vm1x, vm1y, hcsum)
procedure, public assess (this, particle, cell_defn, tmax)
 Check reporting/terminating conditions before tracking the particle across the cell.
procedure(assess), deferred assess (this, particle, cell_defn, tmax)
 assess conditions before tracking
procedure, public cellexit (this, particle)
 Particle exits a cell.
procedure, public forms_cycle (this, particle, event)
 Check if the event forms a cycle in the particle path.
procedure, public store_event (this, particle, event)
 Save the event in the particle's history. Acts like a queue, the oldest event is removed when the event count exceeds the maximum size.
procedure, public get_level (this)
 Get the cell method's level.
procedure get_level (this)
 get the tracking method level
procedure, public try_pass (this, particle, nextlevel, advancing)
 Try passing the particle to the next subdomain. or to a boundary of this method's tracking domain.
procedure try_pass (this, particle, nextlevel, advancing)
 Try passing the particle to the next subdomain.
procedure iboundary_to_icellface (this, iboundary)
 Convert an iboundary number to an iface number.
procedure(apply), deferred apply (this, particle, tmax)
 apply the method to the particle
procedure(deallocate), deferred deallocate (this)
 deallocate the method object
procedure load (this, particle, next_level, submethod)
 load the subdomain tracking method
procedure init (this, fmi, cell, subcell, events, tracktimes, izone, flowja, porosity, retfactor)
 Initialize the method with pointers to model data.
procedure track (this, particle, level, tmax)
 Track the particle over subdomains of the given.
procedure release (this, particle)
 A particle is released.
procedure terminate (this, particle, status)
 A particle terminates.
procedure timestep (this, particle)
 A time step ends.
procedure weaksink (this, particle)
 A particle leaves a weak sink.
procedure usertime (this, particle)
 A user-defined tracking time occurs.
procedure dropped (this, particle)
 A particle drops to the water table.

Public Attributes

integer(i4b) nverts
 number of vertices
real(dp), dimension(:), allocatable xvert
real(dp), dimension(:), allocatable yvert
 cell vertex coordinates
real(dp), dimension(:), allocatable vne
 cell edge normal velocities
real(dp), dimension(:), allocatable vv0x
real(dp), dimension(:), allocatable vv0y
real(dp), dimension(:), allocatable vv1x
real(dp), dimension(:), allocatable vv1y
 cell vertex velocities
real(dp) xctr
real(dp) yctr
 cell center coordinates
real(dp) vctrx
real(dp) vctry
 cell center velocities
real(dp) ztop
real(dp) zbot
 cell top and bottom elevations
real(dp) dz
 cell thickness
real(dp) vztop
real(dp) vzbot
 cell top and bottom velocities
integer(i4b), dimension(:), allocatable iprev
 array of shifted indices
real(dp), dimension(:), allocatable xvertnext
real(dp), dimension(:), allocatable yvertnext
 arrays of shifted cell vertex coordinates
integer(i4b), pointer, public zeromethod
character(len=40), pointer, public name
 method name
logical(lgp), public delegates
 whether the method delegates
type(prtfmitype), pointer, public fmi => null()
 ptr to fmi
class(celltype), pointer, public cell => null()
 ptr to the current cell
class(subcelltype), pointer, public subcell => null()
 ptr to the current subcell
type(particleeventdispatchertype), pointer, public events => null()
 ptr to event dispatcher
type(timeselecttype), pointer, public tracktimes => null()
 ptr to user-defined tracking times
integer(i4b), dimension(:), pointer, public, contiguous izone => null()
 pointer to zone numbers
real(dp), dimension(:), pointer, public, contiguous flowja => null()
 pointer to intercell flows
real(dp), dimension(:), pointer, public, contiguous porosity => null()
 pointer to aquifer porosity
real(dp), dimension(:), pointer, public, contiguous retfactor => null()
 pointer to retardation factor

Private Attributes

type(methodsubcellternarytype), pointer method_subcell_tern => null()

Detailed Description

Definition at line 22 of file MethodCellTernary.f90.

Member Function/Subroutine Documentation

◆ apply() [1/2]

procedure, public methodcellternarymodule::methodcellternarytype::apply ( class(methodcellternarytype), intent(inout) this,
type(particletype), intent(inout), pointer particle,
real(dp), intent(in) tmax )

Definition at line 47 of file MethodCellTernary.f90.

◆ apply() [2/2]

procedure(apply), deferred methodmodule::methodtype::apply ( class(methodtype), intent(inout) this,
type(particletype), intent(inout), pointer particle,
real(dp), intent(in) tmax )
pure virtualinherited

Definition at line 71 of file Method.f90.

◆ assess() [1/2]

procedure, public methodcellmodule::methodcelltype::assess ( class(methodcelltype), intent(inout) this,
type(particletype), intent(inout), pointer particle,
type(celldefntype), intent(inout), pointer cell_defn,
real(dp), intent(in) tmax )
inherited

Check a number of conditions determining whether to continue tracking the particle or terminate it, as well as whether to record any output data as per selected reporting conditions.

Definition at line 20 of file MethodCell.f90.

◆ assess() [2/2]

procedure(assess), deferred methodmodule::methodtype::assess ( class(methodtype), intent(inout) this,
type(particletype), intent(inout), pointer particle,
type(celldefntype), intent(inout), pointer cell_defn,
real(dp), intent(in) tmax )
pure virtualinherited

Definition at line 72 of file Method.f90.

◆ calc_thru_hcsum()

procedure methodcellternarymodule::methodcellternarytype::calc_thru_hcsum ( class(methodcellternarytype), intent(inout) this,
real(dp) vm0ival,
real(dp) divcell,
real(dp), dimension(:) le,
real(dp), dimension(:) li,
real(dp), dimension(:) lm,
real(dp), dimension(:) areasub,
real(dp) areacell,
real(dp), dimension(:) unintx,
real(dp), dimension(:) uninty,
real(dp), dimension(:) unextx,
real(dp), dimension(:) unexty,
real(dp), dimension(:) unintxnext,
real(dp), dimension(:) unintynext,
real(dp), dimension(:) kappax,
real(dp), dimension(:) kappay,
real(dp), dimension(:) vm0x,
real(dp), dimension(:) vm0y,
real(dp), dimension(:) vm1x,
real(dp), dimension(:) vm1y,
real(dp) hcsum )

Definition at line 53 of file MethodCellTernary.f90.

◆ cellexit()

procedure, public methodcellmodule::methodcelltype::cellexit ( class(methodcelltype), intent(inout) this,
type(particletype), intent(inout), pointer particle )
inherited

Definition at line 21 of file MethodCell.f90.

◆ deallocate() [1/2]

procedure, public methodcellternarymodule::methodcellternarytype::deallocate ( class(methodcellternarytype), intent(inout) this)

Definition at line 48 of file MethodCellTernary.f90.

◆ deallocate() [2/2]

procedure(deallocate), deferred methodmodule::methodtype::deallocate ( class(methodtype), intent(inout) this)
pure virtualinherited

Definition at line 73 of file Method.f90.

◆ dropped()

procedure methodmodule::methodtype::dropped ( class(methodtype), intent(inout) this,
type(particletype), intent(inout), pointer particle )
inherited

Definition at line 88 of file Method.f90.

◆ forms_cycle()

procedure, public methodcellmodule::methodcelltype::forms_cycle ( class(methodcelltype), intent(inout) this,
type(particletype), intent(inout), pointer particle,
class(particleeventtype), intent(in), pointer event )
inherited

Definition at line 22 of file MethodCell.f90.

◆ get_level() [1/2]

procedure, public methodcellmodule::methodcelltype::get_level ( class(methodcelltype), intent(in) this)
inherited

Definition at line 24 of file MethodCell.f90.

◆ get_level() [2/2]

procedure methodmodule::methodtype::get_level ( class(methodtype), intent(in) this)
inherited

pass the particle to the next subdomain

Definition at line 74 of file Method.f90.

◆ iboundary_to_icellface()

procedure methodcellmodule::methodcelltype::iboundary_to_icellface ( class(methodcelltype), intent(inout) this,
integer(i4b), intent(in) iboundary )
inherited

Definition at line 26 of file MethodCell.f90.

◆ init()

procedure methodmodule::methodtype::init ( class(methodtype), intent(inout) this,
type(prtfmitype), intent(in), optional, pointer fmi,
class(celltype), intent(in), optional, pointer cell,
class(subcelltype), intent(in), optional, pointer subcell,
type(particleeventdispatchertype), intent(in), optional, pointer events,
type(timeselecttype), intent(in), optional, pointer tracktimes,
integer(i4b), dimension(:), intent(in), optional, pointer izone,
real(dp), dimension(:), intent(in), optional, pointer flowja,
real(dp), dimension(:), intent(in), optional, pointer porosity,
real(dp), dimension(:), intent(in), optional, pointer retfactor )
inherited

Definition at line 79 of file Method.f90.

◆ load() [1/2]

procedure, public methodcellternarymodule::methodcellternarytype::load ( class(methodcellternarytype), intent(inout) this,
type(particletype), intent(inout), pointer particle,
integer(i4b), intent(in) next_level,
class(methodtype), intent(inout), pointer submethod )

Definition at line 49 of file MethodCellTernary.f90.

◆ load() [2/2]

procedure methodmodule::methodtype::load ( class(methodtype), intent(inout) this,
type(particletype), intent(inout), pointer particle,
integer, intent(in) next_level,
class(methodtype), intent(inout), pointer submethod )
inherited

Definition at line 77 of file Method.f90.

◆ load_subcell()

procedure, public methodcellternarymodule::methodcellternarytype::load_subcell ( class(methodcellternarytype), intent(inout) this,
type(particletype), intent(inout), pointer particle )

Definition at line 50 of file MethodCellTernary.f90.

◆ release()

procedure methodmodule::methodtype::release ( class(methodtype), intent(inout) this,
type(particletype), intent(inout), pointer particle )
inherited

Definition at line 83 of file Method.f90.

◆ store_event()

procedure, public methodcellmodule::methodcelltype::store_event ( class(methodcelltype), intent(inout) this,
type(particletype), intent(inout), pointer particle,
class(particleeventtype), intent(in), pointer event )
inherited

Definition at line 23 of file MethodCell.f90.

◆ terminate()

procedure methodmodule::methodtype::terminate ( class(methodtype), intent(inout) this,
type(particletype), intent(inout), pointer particle,
integer(i4b), intent(in), optional status )
inherited

Definition at line 84 of file Method.f90.

◆ timestep()

procedure methodmodule::methodtype::timestep ( class(methodtype), intent(inout) this,
type(particletype), intent(inout), pointer particle )
inherited

Definition at line 85 of file Method.f90.

◆ track()

procedure methodmodule::methodtype::track ( class(methodtype), intent(inout) this,
type(particletype), intent(inout), pointer particle,
integer(i4b) level,
real(dp), intent(in) tmax )
inherited

Definition at line 80 of file Method.f90.

◆ try_pass() [1/2]

procedure, public methodcellmodule::methodcelltype::try_pass ( class(methodcelltype), intent(inout) this,
type(particletype), intent(inout), pointer particle,
integer(i4b) nextlevel,
logical(lgp) advancing )
inherited

If the particle is not advancing, or if it's not at a boundary, nothing happens. Otherwise, raise a cell exit event. Then, if at a net outflow boundary face, or top face of a partially saturated cell, terminate.

Definition at line 25 of file MethodCell.f90.

◆ try_pass() [2/2]

procedure methodmodule::methodtype::try_pass ( class(methodtype), intent(inout) this,
type(particletype), intent(inout), pointer particle,
integer(i4b) nextlevel,
logical(lgp) advancing )
inherited

Definition at line 81 of file Method.f90.

◆ usertime()

procedure methodmodule::methodtype::usertime ( class(methodtype), intent(inout) this,
type(particletype), intent(inout), pointer particle )
inherited

Definition at line 87 of file Method.f90.

◆ vertvelo()

procedure methodcellternarymodule::methodcellternarytype::vertvelo ( class(methodcellternarytype), intent(inout) this)

Definition at line 52 of file MethodCellTernary.f90.

◆ weaksink()

procedure methodmodule::methodtype::weaksink ( class(methodtype), intent(inout) this,
type(particletype), intent(inout), pointer particle )
inherited

Definition at line 86 of file Method.f90.

Member Data Documentation

◆ cell

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

Definition at line 61 of file Method.f90.

◆ delegates

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

Definition at line 59 of file Method.f90.

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

◆ dz

real(dp) methodcellternarymodule::methodcellternarytype::dz

Definition at line 39 of file MethodCellTernary.f90.

39 real(DP) :: dz !< cell thickness

◆ events

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

Definition at line 63 of file Method.f90.

◆ flowja

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

Definition at line 66 of file Method.f90.

◆ fmi

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

Definition at line 60 of file Method.f90.

◆ iprev

integer(i4b), dimension(:), allocatable methodcellternarymodule::methodcellternarytype::iprev

Definition at line 42 of file MethodCellTernary.f90.

42 integer(I4B), allocatable, dimension(:) :: iprev !< array of shifted indices

◆ izone

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

Definition at line 65 of file Method.f90.

◆ method_subcell_tern

type(methodsubcellternarytype), pointer methodcellternarymodule::methodcellternarytype::method_subcell_tern => null()
private

Definition at line 24 of file MethodCellTernary.f90.

◆ name

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

Definition at line 58 of file Method.f90.

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

◆ nverts

integer(i4b) methodcellternarymodule::methodcellternarytype::nverts

Definition at line 25 of file MethodCellTernary.f90.

25 integer(I4B) :: nverts !< number of vertices

◆ porosity

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

Definition at line 67 of file Method.f90.

◆ retfactor

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

Definition at line 68 of file Method.f90.

◆ subcell

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

Definition at line 62 of file Method.f90.

◆ tracktimes

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

Definition at line 64 of file Method.f90.

◆ vctrx

real(dp) methodcellternarymodule::methodcellternarytype::vctrx

Definition at line 35 of file MethodCellTernary.f90.

35 real(DP) :: vctrx

◆ vctry

real(dp) methodcellternarymodule::methodcellternarytype::vctry

Definition at line 36 of file MethodCellTernary.f90.

36 real(DP) :: vctry !< cell center velocities

◆ vne

real(dp), dimension(:), allocatable methodcellternarymodule::methodcellternarytype::vne

Definition at line 28 of file MethodCellTernary.f90.

28 real(DP), allocatable, dimension(:) :: vne !< cell edge normal velocities

◆ vv0x

real(dp), dimension(:), allocatable methodcellternarymodule::methodcellternarytype::vv0x

Definition at line 29 of file MethodCellTernary.f90.

29 real(DP), allocatable, dimension(:) :: vv0x

◆ vv0y

real(dp), dimension(:), allocatable methodcellternarymodule::methodcellternarytype::vv0y

Definition at line 30 of file MethodCellTernary.f90.

30 real(DP), allocatable, dimension(:) :: vv0y

◆ vv1x

real(dp), dimension(:), allocatable methodcellternarymodule::methodcellternarytype::vv1x

Definition at line 31 of file MethodCellTernary.f90.

31 real(DP), allocatable, dimension(:) :: vv1x

◆ vv1y

real(dp), dimension(:), allocatable methodcellternarymodule::methodcellternarytype::vv1y

Definition at line 32 of file MethodCellTernary.f90.

32 real(DP), allocatable, dimension(:) :: vv1y !< cell vertex velocities

◆ vzbot

real(dp) methodcellternarymodule::methodcellternarytype::vzbot

Definition at line 41 of file MethodCellTernary.f90.

41 real(DP) :: vzbot !< cell top and bottom velocities

◆ vztop

real(dp) methodcellternarymodule::methodcellternarytype::vztop

Definition at line 40 of file MethodCellTernary.f90.

40 real(DP) :: vztop

◆ xctr

real(dp) methodcellternarymodule::methodcellternarytype::xctr

Definition at line 33 of file MethodCellTernary.f90.

33 real(DP) :: xctr

◆ xvert

real(dp), dimension(:), allocatable methodcellternarymodule::methodcellternarytype::xvert

Definition at line 26 of file MethodCellTernary.f90.

26 real(DP), allocatable, dimension(:) :: xvert

◆ xvertnext

real(dp), dimension(:), allocatable methodcellternarymodule::methodcellternarytype::xvertnext

Definition at line 43 of file MethodCellTernary.f90.

43 real(DP), allocatable, dimension(:) :: xvertnext

◆ yctr

real(dp) methodcellternarymodule::methodcellternarytype::yctr

Definition at line 34 of file MethodCellTernary.f90.

34 real(DP) :: yctr !< cell center coordinates

◆ yvert

real(dp), dimension(:), allocatable methodcellternarymodule::methodcellternarytype::yvert

Definition at line 27 of file MethodCellTernary.f90.

27 real(DP), allocatable, dimension(:) :: yvert !< cell vertex coordinates

◆ yvertnext

real(dp), dimension(:), allocatable methodcellternarymodule::methodcellternarytype::yvertnext

Definition at line 44 of file MethodCellTernary.f90.

44 real(DP), allocatable, dimension(:) :: yvertnext !< arrays of shifted cell vertex coordinates

◆ zbot

real(dp) methodcellternarymodule::methodcellternarytype::zbot

Definition at line 38 of file MethodCellTernary.f90.

38 real(DP) :: zbot !< cell top and bottom elevations

◆ zeromethod

integer(i4b), pointer, public methodcellternarymodule::methodcellternarytype::zeromethod

Definition at line 45 of file MethodCellTernary.f90.

45 integer(I4B), public, pointer :: zeromethod

◆ ztop

real(dp) methodcellternarymodule::methodcellternarytype::ztop

Definition at line 37 of file MethodCellTernary.f90.

37 real(DP) :: ztop

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