MODFLOW 6  version 6.5.0.dev2
MODFLOW 6 Code Documentation
MethodCellPassToBot.f90
Go to the documentation of this file.
2 
3  use kindmodule, only: dp, i4b
4  use methodmodule, only: methodtype
6  use prtfmimodule, only: prtfmitype
7  use basedismodule, only: disbasetype
9  use cellmodule, only: celltype
10  use subcellmodule, only: subcelltype
12  implicit none
13 
14  private
15  public :: methodcellpasstobottype
16  public :: create_method_cell_ptb
17 
19  private
20  type(celldefntype), pointer :: defn
21  contains
22  procedure, public :: apply => apply_ptb
23  procedure, public :: destroy
25 
26 contains
27 
28  !> @brief Create a new tracking method
29  subroutine create_method_cell_ptb(method)
30  type(methodcellpasstobottype), pointer :: method
31  allocate (method)
32  allocate (method%type)
33  method%type = "passtobottom"
34  method%delegates = .false.
35  call create_defn(method%defn)
36  end subroutine create_method_cell_ptb
37 
38  !> @brief Destroy the tracking method
39  subroutine destroy(this)
40  class(methodcellpasstobottype), intent(inout) :: this
41  deallocate (this%type)
42  end subroutine destroy
43 
44  !> @brief Pass particle vertically and instantaneously to the cell bottom
45  subroutine apply_ptb(this, particle, tmax)
46  ! -- dummy
47  class(methodcellpasstobottype), intent(inout) :: this
48  type(particletype), pointer, intent(inout) :: particle
49  real(DP), intent(in) :: tmax
50 
51  call this%update(particle, this%defn)
52  if (.not. particle%advancing) return
53  particle%z = this%defn%bot
54  particle%iboundary(2) = this%defn%npolyverts + 2
55  call this%save(particle, reason=1) ! reason=1: cell transition
56  end subroutine apply_ptb
57 
subroutine, public create_defn(cellDefn)
Create a new cell definition object.
Definition: CellDefn.f90:42
This module defines variable data types.
Definition: kind.f90:8
subroutine, public create_method_cell_ptb(method)
Create a new tracking method.
subroutine apply_ptb(this, particle, tmax)
Pass particle vertically and instantaneously to the cell bottom.
Particle tracking strategies.
Definition: Method.f90:2
Base grid cell definition.
Definition: CellDefn.f90:10
Base type for grid cells of a concrete type. Contains a cell-definition which is information shared b...
Definition: Cell.f90:10
Base type for particle tracking methods.
Definition: Method.f90:29
A particle tracked by the PRT model.
Definition: Particle.f90:31
A subcell of a cell.
Definition: Subcell.f90:9
Manages particle track (i.e. pathline) files.
Definition: TrackData.f90:38