14 character(len=LENMEMPATH) :: memorypath
15 character(len=LENMODELNAME),
pointer :: name => null()
16 character(len=3),
pointer :: macronym => null()
17 integer(I4B),
pointer :: idsoln => null()
18 integer(I4B),
pointer :: id => null()
19 integer(I4B),
pointer :: iout => null()
20 integer(I4B),
pointer :: inewton => null()
21 integer(I4B),
pointer :: iprpak => null()
22 integer(I4B),
pointer :: iprflow => null()
23 integer(I4B),
pointer :: ipakcb => null()
73 character(len=*),
intent(in) :: line
74 character(len=*),
intent(in),
optional :: fmt
76 character(len=LINELENGTH) :: cfmt
79 if (
present(fmt))
then
86 write (this%iout, trim(cfmt)) trim(line)
102 character(len=*),
intent(in) :: modelname
105 call mem_allocate(this%macronym, 3,
'MACRONYM', this%memoryPath)
108 call mem_allocate(this%inewton,
'INEWTON', this%memoryPath)
109 call mem_allocate(this%iprpak,
'IPRPAK', this%memoryPath)
110 call mem_allocate(this%iprflow,
'IPRFLOW', this%memoryPath)
111 call mem_allocate(this%ipakcb,
'IPAKCB', this%memoryPath)
112 call mem_allocate(this%idsoln,
'IDSOLN', this%memoryPath)
114 this%name = modelname
148 class(*),
pointer,
intent(inout) :: obj
152 if (.not.
associated(obj))
return
162 type(
listtype),
intent(inout) :: list
165 class(*),
pointer :: obj
173 type(
listtype),
intent(inout) :: list
174 integer(I4B),
intent(in) :: idx
177 class(*),
pointer :: obj
179 obj => list%GetItem(idx)
subroutine, public addbasemodeltolist(list, model)
subroutine model_ar(this)
Allocate and read.
subroutine model_ot(this)
Output results.
subroutine model_message(this, line, fmt)
Write line to model iout.
class(basemodeltype) function, pointer, public castasbasemodelclass(obj)
class(basemodeltype) function, pointer, public getbasemodelfromlist(list, idx)
subroutine model_dt(this)
Calculate time step length.
subroutine allocate_scalars(this, modelname)
Allocate scalar variables.
subroutine model_rp(this)
Read and prepare.
subroutine model_df(this)
Define the model.
subroutine model_fp(this)
Final processing.
subroutine model_da(this)
Deallocate.
This module contains simulation constants.
integer(i4b), parameter linelength
maximum length of a standard line
integer(i4b), parameter lenmodelname
maximum length of the model name
integer(i4b), parameter lenmempath
maximum length of the memory path
This module defines variable data types.
Highest level model type. All models extend this parent type.
A generic heterogeneous doubly-linked list.