49 subroutine model_cq(this, icnvg, isuppress_output)
51 integer(I4B),
intent(in) :: icnvg
52 integer(I4B),
intent(in) :: isuppress_output
56 subroutine model_bd(this, icnvg, isuppress_output)
58 integer(I4B),
intent(in) :: icnvg
59 integer(I4B),
intent(in) :: isuppress_output
67 deallocate (this%filename)
75 if (
associated(this%ibound)) &
79 call this%bndlist%Clear()
80 deallocate (this%bndlist)
83 call this%BaseModelType%model_da()
89 character(len=*),
intent(in) :: modelname
91 call this%BaseModelType%allocate_scalars(modelname)
92 allocate (this%bndlist)
93 allocate (this%filename)
103 this%nja = this%dis%nja
105 call mem_allocate(this%ibound, this%dis%nodes,
'IBOUND', this%memoryPath)
106 do i = 1, this%dis%nodes
110 call mem_allocate(this%flowja, this%nja,
'FLOWJA', this%memoryPath)
112 this%flowja(i) =
dzero
118 class(*),
pointer,
intent(inout) :: obj
122 if (.not.
associated(obj))
return
133 type(
listtype),
intent(inout) :: list
136 class(*),
pointer :: obj
145 type(
listtype),
intent(inout) :: list
146 integer(I4B),
intent(in) :: idx
149 class(*),
pointer :: obj
151 obj => list%GetItem(idx)
158 integer(I4B),
intent(in) :: id
This module contains simulation constants.
integer(i4b), parameter linelength
maximum length of a standard line
real(dp), parameter dzero
real constant zero
Models that solve themselves.
logical function has_pending(this)
Whether the model has any pending work.
class(explicitmodeltype) function, pointer, public getexplicitmodelfromlist(list, idx)
@ brief Get generic object from list and return as explicit model
subroutine allocate_arrays(this)
Allocate array variables.
subroutine set_idsoln(this, id)
Set the solution ID.
subroutine model_bd(this, icnvg, isuppress_output)
@ brief Calculate model budget
subroutine, public addexplicitmodeltolist(list, model)
@ brief Add explicit model to a generic list
subroutine model_da(this)
@ brief Deallocate the model
subroutine allocate_scalars(this, modelname)
@ brief Allocate scalar variables
subroutine model_solve(this)
@ brief Solve the model
class(explicitmodeltype) function, pointer, public castasexplicitmodelclass(obj)
@ brief Cast a generic object into an explicit model
subroutine model_cq(this, icnvg, isuppress_output)
@ brief Calculate model flows
subroutine model_ad(this)
@ brief Advance the model
This module defines variable data types.
Highest level model type. All models extend this parent type.
Base type for models that solve themselves.
A generic heterogeneous doubly-linked list.