24 character(len=LINELENGTH),
pointer :: filename => null()
25 integer(I4B),
dimension(:),
pointer,
contiguous :: ibound => null()
57 subroutine model_cq(this, icnvg, isuppress_output)
59 integer(I4B),
intent(in) :: icnvg
60 integer(I4B),
intent(in) :: isuppress_output
65 subroutine model_bd(this, icnvg, isuppress_output)
67 integer(I4B),
intent(in) :: icnvg
68 integer(I4B),
intent(in) :: isuppress_output
77 deallocate (this%filename)
83 if (
associated(this%ibound)) &
87 call this%bndlist%Clear()
88 deallocate (this%bndlist)
91 call this%BaseModelType%model_da()
98 character(len=*),
intent(in) :: modelname
100 call this%BaseModelType%allocate_scalars(modelname)
101 allocate (this%bndlist)
102 allocate (this%filename)
112 call mem_allocate(this%ibound, this%dis%nodes,
'IBOUND', this%memoryPath)
113 do i = 1, this%dis%nodes
121 class(*),
pointer,
intent(inout) :: obj
125 if (.not.
associated(obj))
return
137 type(
listtype),
intent(inout) :: list
140 class(*),
pointer :: obj
150 type(
listtype),
intent(inout) :: list
151 integer(I4B),
intent(in) :: idx
154 class(*),
pointer :: obj
156 obj => list%GetItem(idx)
164 integer(I4B),
intent(in) :: id
This module contains simulation constants.
integer(i4b), parameter linelength
maximum length of a standard line
Models that solve themselves.
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.