MODFLOW 6  version 6.7.0.dev0
USGS Modular Hydrologic Model
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  contains
21  procedure, public :: apply => apply_ptb
22  procedure, public :: deallocate
24 
25 contains
26 
27  !> @brief Create a new pass-to-bottom tracking method
28  subroutine create_method_cell_ptb(method)
29  type(methodcellpasstobottype), pointer :: method
30  allocate (method)
31  allocate (method%name)
32  method%name = "passtobottom"
33  method%delegates = .false.
34  end subroutine create_method_cell_ptb
35 
36  !> @brief Deallocate the pass-to-bottom tracking method
37  subroutine deallocate (this)
38  class(methodcellpasstobottype), intent(inout) :: this
39  deallocate (this%name)
40  end subroutine deallocate
41 
42  !> @brief Pass particle vertically and instantaneously to the cell bottom
43  subroutine apply_ptb(this, particle, tmax)
44  ! dummy
45  class(methodcellpasstobottype), intent(inout) :: this
46  type(particletype), pointer, intent(inout) :: particle
47  real(DP), intent(in) :: tmax
48 
49  ! Check termination/reporting conditions
50  call this%check(particle, this%cell%defn)
51  if (.not. particle%advancing) return
52 
53  ! Pass to bottom face
54  particle%z = this%cell%defn%bot
55  particle%iboundary(2) = this%cell%defn%npolyverts + 2
56 
57  ! Save datum
58  call this%save(particle, reason=1)
59  end subroutine apply_ptb
60 
subroutine, public create_defn(cellDefn)
Create a new cell definition object.
Definition: CellDefn.f90:44
This module defines variable data types.
Definition: kind.f90:8
subroutine, public create_method_cell_ptb(method)
Create a new pass-to-bottom 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:12
Base type for grid cells of a concrete type. Contains a cell-definition which is information shared b...
Definition: Cell.f90:13
Base type for particle tracking methods.
Definition: Method.f90:31
Particle tracked by the PRT model.
Definition: Particle.f90:32
A subcell of a cell.
Definition: Subcell.f90:9
Manages particle track (i.e. pathline) files.