49 integer(I4B) :: model_id
50 character(len=*) :: model_name
54 class(*),
pointer :: obj
56 allocate (virtual_gwt_model)
57 call virtual_gwt_model%create(model_name, model_id, model)
59 obj => virtual_gwt_model
66 character(len=*) :: name
71 call this%VirtualModelType%create(name, id, model)
74 call this%allocate_data()
75 call this%init_virtual_data()
82 call this%set(this%dsp_idiffc%base(),
'IDIFFC',
'DSP',
map_all_type)
83 call this%set(this%dsp_idisp%base(),
'IDISP',
'DSP',
map_all_type)
84 call this%set(this%dsp_diffc%base(),
'DIFFC',
'DSP',
map_node_type)
85 call this%set(this%dsp_alh%base(),
'ALH',
'DSP',
map_node_type)
86 call this%set(this%dsp_alv%base(),
'ALV',
'DSP',
map_node_type)
87 call this%set(this%dsp_ath1%base(),
'ATH1',
'DSP',
map_node_type)
88 call this%set(this%dsp_ath2%base(),
'ATH2',
'DSP',
map_node_type)
89 call this%set(this%dsp_atv%base(),
'ATV',
'DSP',
map_node_type)
90 call this%set(this%fmi_igwfspdis%base(),
'IGWFSPDIS',
'FMI',
map_all_type)
91 call this%set(this%fmi_gwfhead%base(),
'GWFHEAD',
'FMI',
map_node_type)
92 call this%set(this%fmi_gwfsat%base(),
'GWFSAT',
'FMI',
map_node_type)
93 call this%set(this%fmi_gwfspdis%base(),
'GWFSPDIS',
'FMI',
map_node_type)
94 call this%set(this%fmi_gwfflowja%base(),
'GWFFLOWJA',
'FMI',
map_conn_type)
95 call this%set(this%mst_thetam%base(),
'THETAM',
'MST',
map_node_type)
96 call this%set(this%indsp%base(),
'INDSP',
'',
map_all_type)
97 call this%set(this%inmst%base(),
'INMST',
'',
map_all_type)
103 integer(I4B) :: stage
105 integer(I4B) :: nr_nodes, nr_conns
108 call this%VirtualModelType%prepare_stage(stage)
126 call this%map(this%x%base(), nr_nodes, &
130 if (this%dsp_idiffc%get() > 0)
then
131 call this%map(this%dsp_diffc%base(), nr_nodes, (/
stg_bfr_con_ar/))
134 if (this%dsp_idisp%get() > 0)
then
142 if (this%indsp%get() > 0 .and. this%inmst%get() > 0)
then
143 call this%map(this%mst_thetam%base(), nr_nodes, (/
stg_aft_con_ar/))
151 call this%map(this%fmi_gwfhead%base(), nr_nodes, (/
stg_bfr_exg_ad/))
152 call this%map(this%fmi_gwfsat%base(), nr_nodes, (/
stg_bfr_exg_ad/))
153 if (this%fmi_igwfspdis%get() > 0)
then
154 call this%map(this%fmi_gwfspdis%base(), 3, nr_nodes, (/
stg_bfr_exg_ad/))
156 call this%map(this%fmi_gwfspdis%base(), 3, 0, (/
stg_never/))
158 call this%map(this%fmi_gwfflowja%base(), nr_conns, (/
stg_bfr_exg_ad/))
167 allocate (this%dsp_idiffc)
168 allocate (this%dsp_idisp)
169 allocate (this%dsp_diffc)
170 allocate (this%dsp_alh)
171 allocate (this%dsp_alv)
172 allocate (this%dsp_ath1)
173 allocate (this%dsp_ath2)
174 allocate (this%dsp_atv)
175 allocate (this%fmi_igwfspdis)
176 allocate (this%fmi_gwfhead)
177 allocate (this%fmi_gwfsat)
178 allocate (this%fmi_gwfspdis)
179 allocate (this%fmi_gwfflowja)
180 allocate (this%mst_thetam)
181 allocate (this%indsp)
182 allocate (this%inmst)
189 deallocate (this%dsp_idiffc)
190 deallocate (this%dsp_idisp)
191 deallocate (this%dsp_diffc)
192 deallocate (this%dsp_alh)
193 deallocate (this%dsp_alv)
194 deallocate (this%dsp_ath1)
195 deallocate (this%dsp_ath2)
196 deallocate (this%dsp_atv)
197 deallocate (this%fmi_igwfspdis)
198 deallocate (this%fmi_gwfhead)
199 deallocate (this%fmi_gwfsat)
200 deallocate (this%fmi_gwfspdis)
201 deallocate (this%fmi_gwfflowja)
202 deallocate (this%mst_thetam)
203 deallocate (this%indsp)
204 deallocate (this%inmst)
211 call this%VirtualModelType%destroy()
212 call this%deallocate_data()
This module defines variable data types.
integer(i4b), parameter, public stg_aft_con_ar
afterr connection allocate read
integer(i4b), parameter, public stg_aft_mdl_df
after model define
integer(i4b), parameter, public stg_bfr_exg_ad
before exchange advance (per solution)
integer(i4b), parameter, public stg_bfr_exg_cf
before exchange calculate (per solution)
integer(i4b), parameter, public stg_never
never
integer(i4b), parameter, public stg_bfr_con_ar
before connection allocate read
integer(i4b), parameter, public map_conn_type
integer(i4b), parameter, public map_all_type
integer(i4b), parameter, public map_node_type
integer(i4b), parameter, public vdc_gwtmodel_type
type(listtype), public virtual_model_list
subroutine vgwt_create(this, name, id, model)
subroutine deallocate_data(this)
subroutine, public add_virtual_gwt_model(model_id, model_name, model)
subroutine vgwt_prepare_stage(this, stage)
subroutine vgwt_destroy(this)
subroutine allocate_data(this)
subroutine init_virtual_data(this)