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)
92 call tsp_obs_cr(this%obs, inobs, this%depvartype)
100 character(len=*),
intent(in) :: modelname
102 call this%GwtModelType%allocate_scalars(modelname)
104 call mem_allocate(this%iAdvScheme,
'ADVSCHEME', this%memoryPath)
106 call mem_allocate(this%ieqnsclfac,
'IEQNSCLFAC', this%memoryPath)
115 call mem_allocate(this%fmi%gwfflowja, this%nja,
'GWFFLOWJA', &
117 call mem_allocate(this%fmi%gwfhead, this%neq,
'GWFHEAD', &
119 call mem_allocate(this%fmi%gwfsat, this%neq,
'GWFSAT', &
121 call mem_allocate(this%fmi%gwfspdis, 3, this%neq,
'GWFSPDIS', &
131 class(*),
pointer :: disPtr
136 adv_options%iAdvScheme = this%iAdvScheme
137 dsp_options%ixt3d = this%ixt3d
141 call this%gridConnection%getDiscretization(
castasdisutype(disptr))
142 call this%fmi%fmi_df(this%dis, 1)
144 if (this%inadv > 0)
then
145 call this%adv%adv_df(adv_options)
147 if (this%indsp > 0)
then
148 this%dsp%idiffc = this%owner%dsp%idiffc
149 this%dsp%idisp = this%owner%dsp%idisp
150 call this%dsp%dsp_df(this%dis, dsp_options)
151 if (this%dsp%idiffc > 0)
then
153 trim(this%dsp%memoryPath))
155 if (this%dsp%idisp > 0)
then
157 trim(this%dsp%memoryPath))
159 trim(this%dsp%memoryPath))
161 trim(this%dsp%memoryPath))
163 trim(this%dsp%memoryPath))
165 trim(this%dsp%memoryPath))
173 this%neq = this%dis%nodes
174 this%nja = this%dis%nja
175 this%ia => this%dis%con%ia
176 this%ja => this%dis%con%ja
179 call this%allocate_arrays()
189 call this%fmi%fmi_ar(this%ibound)
190 if (this%inadv > 0)
then
191 call this%adv%adv_ar(this%dis, this%ibound)
193 if (this%indsp > 0)
then
194 call this%dsp%dsp_ar(this%ibound, this%mst%thetam)
211 call this%dis%dis_da()
212 call this%fmi%fmi_da()
213 call this%adv%adv_da()
214 call this%dsp%dsp_da()
216 deallocate (this%dis)
217 deallocate (this%fmi)
218 deallocate (this%adv)
219 deallocate (this%dsp)
221 if (
associated(this%mst))
then
223 deallocate (this%mst)
239 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, dvt)
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...