48 integer(I4B) :: model_id
49 character(len=*) :: model_name
53 class(*),
pointer :: obj
55 allocate (virtual_gwt_model)
56 call virtual_gwt_model%create(model_name, model_id, model)
58 obj => virtual_gwt_model
65 character(len=*) :: name
70 call this%VirtualModelType%create(name, id, model)
73 call this%allocate_data()
74 call this%init_virtual_data()
81 call this%set(this%dsp_idiffc%base(),
'IDIFFC',
'DSP',
map_all_type)
82 call this%set(this%dsp_idisp%base(),
'IDISP',
'DSP',
map_all_type)
83 call this%set(this%dsp_diffc%base(),
'DIFFC',
'DSP',
map_node_type)
84 call this%set(this%dsp_alh%base(),
'ALH',
'DSP',
map_node_type)
85 call this%set(this%dsp_alv%base(),
'ALV',
'DSP',
map_node_type)
86 call this%set(this%dsp_ath1%base(),
'ATH1',
'DSP',
map_node_type)
87 call this%set(this%dsp_ath2%base(),
'ATH2',
'DSP',
map_node_type)
88 call this%set(this%dsp_atv%base(),
'ATV',
'DSP',
map_node_type)
89 call this%set(this%fmi_gwfhead%base(),
'GWFHEAD',
'FMI',
map_node_type)
90 call this%set(this%fmi_gwfsat%base(),
'GWFSAT',
'FMI',
map_node_type)
91 call this%set(this%fmi_gwfspdis%base(),
'GWFSPDIS',
'FMI',
map_node_type)
92 call this%set(this%fmi_gwfflowja%base(),
'GWFFLOWJA',
'FMI',
map_conn_type)
93 call this%set(this%mst_thetam%base(),
'THETAM',
'MST',
map_node_type)
94 call this%set(this%indsp%base(),
'INDSP',
'',
map_all_type)
95 call this%set(this%inmst%base(),
'INMST',
'',
map_all_type)
101 integer(I4B) :: stage
103 integer(I4B) :: nr_nodes, nr_conns
106 call this%VirtualModelType%prepare_stage(stage)
123 call this%map(this%x%base(), nr_nodes, &
127 if (this%dsp_idiffc%get() > 0)
then
128 call this%map(this%dsp_diffc%base(), nr_nodes, (/
stg_bfr_con_ar/))
131 if (this%dsp_idisp%get() > 0)
then
139 call this%map(this%fmi_gwfhead%base(), nr_nodes, (/
stg_bfr_exg_ad/))
140 call this%map(this%fmi_gwfsat%base(), nr_nodes, (/
stg_bfr_exg_ad/))
141 call this%map(this%fmi_gwfspdis%base(), 3, nr_nodes, (/
stg_bfr_exg_ad/))
142 call this%map(this%fmi_gwfflowja%base(), nr_conns, (/
stg_bfr_exg_ad/))
144 if (this%indsp%get() > 0 .and. this%inmst%get() > 0)
then
145 call this%map(this%mst_thetam%base(), nr_nodes, (/
stg_aft_con_ar/))
155 allocate (this%dsp_idiffc)
156 allocate (this%dsp_idisp)
157 allocate (this%dsp_diffc)
158 allocate (this%dsp_alh)
159 allocate (this%dsp_alv)
160 allocate (this%dsp_ath1)
161 allocate (this%dsp_ath2)
162 allocate (this%dsp_atv)
163 allocate (this%fmi_gwfhead)
164 allocate (this%fmi_gwfsat)
165 allocate (this%fmi_gwfspdis)
166 allocate (this%fmi_gwfflowja)
167 allocate (this%mst_thetam)
168 allocate (this%indsp)
169 allocate (this%inmst)
176 deallocate (this%dsp_idiffc)
177 deallocate (this%dsp_idisp)
178 deallocate (this%dsp_diffc)
179 deallocate (this%dsp_alh)
180 deallocate (this%dsp_alv)
181 deallocate (this%dsp_ath1)
182 deallocate (this%dsp_ath2)
183 deallocate (this%dsp_atv)
184 deallocate (this%fmi_gwfhead)
185 deallocate (this%fmi_gwfsat)
186 deallocate (this%fmi_gwfspdis)
187 deallocate (this%fmi_gwfflowja)
188 deallocate (this%mst_thetam)
189 deallocate (this%indsp)
190 deallocate (this%inmst)
197 call this%VirtualModelType%destroy()
198 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_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)