28 integer(i4B),
pointer :: iadvscheme => null()
29 integer(i4B),
pointer :: ixt3d => null()
30 real(dp),
pointer :: ieqnsclfac => null()
52 character(len=*),
intent(in) :: name
53 integer(I4B),
intent(in) :: iout
56 class(*),
pointer :: modelPtr
57 integer(I4B),
target :: inobs
58 integer(I4B) :: adv_unit, dsp_unit
61 call this%allocate_scalars(name)
66 this%ieqnsclfac =
done
69 this%gridConnection => gridconn
70 modelptr => gridconn%model
76 if (this%owner%inadv > 0)
then
77 this%inadv = huge(1_i4b)
78 adv_unit = huge(1_i4b)
80 if (this%owner%indsp > 0)
then
81 this%indsp = huge(1_i4b)
82 dsp_unit = huge(1_i4b)
86 call disu_cr(this%dis, this%name,
'', -1, this%iout)
87 call fmi_cr(this%fmi, this%name, 0, this%iout, this%ieqnsclfac, &
89 call adv_cr(this%adv, this%name, adv_unit, this%iout, this%fmi, &
91 call dsp_cr(this%dsp, this%name,
'', -dsp_unit, this%iout, this%fmi)
103 character(len=*),
intent(in) :: modelname
105 call this%GwtModelType%allocate_scalars(modelname)
107 call mem_allocate(this%iAdvScheme,
'ADVSCHEME', this%memoryPath)
109 call mem_allocate(this%ieqnsclfac,
'IEQNSCLFAC', this%memoryPath)
121 call mem_allocate(this%fmi%gwfflowja, this%nja,
'GWFFLOWJA', &
123 call mem_allocate(this%fmi%gwfhead, this%neq,
'GWFHEAD', &
125 call mem_allocate(this%fmi%gwfsat, this%neq,
'GWFSAT', &
127 call mem_allocate(this%fmi%gwfspdis, 3, this%neq,
'GWFSPDIS', &
140 class(*),
pointer :: disPtr
145 adv_options%iAdvScheme = this%iAdvScheme
146 dsp_options%ixt3d = this%ixt3d
150 call this%gridConnection%getDiscretization(
castasdisutype(disptr))
151 call this%fmi%fmi_df(this%dis, 1)
153 if (this%inadv > 0)
then
154 call this%adv%adv_df(adv_options)
156 if (this%indsp > 0)
then
157 this%dsp%idiffc = this%owner%dsp%idiffc
158 this%dsp%idisp = this%owner%dsp%idisp
159 call this%dsp%dsp_df(this%dis, dsp_options)
160 if (this%dsp%idiffc > 0)
then
162 trim(this%dsp%memoryPath))
164 if (this%dsp%idisp > 0)
then
166 trim(this%dsp%memoryPath))
168 trim(this%dsp%memoryPath))
170 trim(this%dsp%memoryPath))
172 trim(this%dsp%memoryPath))
174 trim(this%dsp%memoryPath))
182 this%neq = this%dis%nodes
183 this%nja = this%dis%nja
184 this%ia => this%dis%con%ia
185 this%ja => this%dis%con%ja
188 call this%allocate_arrays()
201 call this%fmi%fmi_ar(this%ibound)
202 if (this%inadv > 0)
then
203 call this%adv%adv_ar(this%dis, this%ibound)
205 if (this%indsp > 0)
then
206 call this%dsp%dsp_ar(this%ibound, this%mst%thetam)
226 call this%dis%dis_da()
227 call this%fmi%fmi_da()
228 call this%adv%adv_da()
229 call this%dsp%dsp_da()
231 deallocate (this%dis)
232 deallocate (this%fmi)
233 deallocate (this%adv)
234 deallocate (this%dsp)
236 if (
associated(this%mst))
then
238 deallocate (this%mst)
254 call this%NumericalModelType%model_da()
This module contains simulation constants.
real(dp), parameter done
real constant 1
subroutine, public disu_cr(dis, name_model, input_mempath, inunit, iout)
Create a new unstructured discretization object.
class(disutype) function, pointer, public castasdisutype(dis)
Cast base to DISU.
Refactoring issues towards parallel:
subroutine, public dsp_cr(dspobj, name_model, input_mempath, inunit, iout, fmi)
Create a DSP object.
subroutine allocate_scalars(this, modelname)
Allocate scalars associated with the interface model object.
subroutine gwtifmod_ar(this)
Override allocate and read the GWT interface model and its packages so that we can create stuff from ...
subroutine gwtifmod_da(this)
Clean up resources.
subroutine gwtifmod_df(this)
Define the GWT interface model.
subroutine gwtifmod_cr(this, name, iout, gridConn)
Create the interface model, analogously to what.
subroutine allocate_fmi(this)
Allocate a Flow Model Interface (FMI) object for the interface model.
class(gwtmodeltype) function, pointer, public castasgwtmodel(model)
Cast to GwtModelType.
– @ brief Mobile Storage and Transfer (MST) Module
subroutine, public mst_cr(mstobj, name_model, inunit, iout, fmi)
@ brief Create a new package object
This module defines variable data types.
character(len=lenmempath) function create_mem_path(component, subcomponent, context)
returns the path to the memory object
subroutine, public adv_cr(advobj, name_model, inunit, iout, fmi, eqnsclfac)
@ brief Create a new ADV object
subroutine, public fmi_cr(fmiobj, name_model, inunit, iout, eqnsclfac, depvartype)
Create a new FMI object.
subroutine, public tsp_obs_cr(obs, inobs)
Create a new TspObsType object.
This class is used to construct the connections object for the interface model's spatial discretizati...
data structure (and helpers) for passing dsp option data
The GWT Interface Model is a utility to calculate the solution's exchange coefficients from the inter...