46 integer(I4B) :: model_id
47 character(len=*) :: model_name
51 class(*),
pointer :: obj
53 allocate (virtual_gwf_model)
54 call virtual_gwf_model%create(model_name, model_id, model)
56 obj => virtual_gwf_model
63 character(len=*) :: name
68 call this%VirtualModelType%create(name, id, model)
71 call this%allocate_data()
72 call this%init_virtual_data()
79 call this%set(this%npf_iangle1%base(),
'IANGLE1',
'NPF',
map_all_type)
80 call this%set(this%npf_iangle2%base(),
'IANGLE2',
'NPF',
map_all_type)
81 call this%set(this%npf_iangle3%base(),
'IANGLE3',
'NPF',
map_all_type)
82 call this%set(this%npf_iwetdry%base(),
'IWETDRY',
'NPF',
map_all_type)
83 call this%set(this%inbuy%base(),
'INBUY',
'',
map_all_type)
84 call this%set(this%npf_icelltype%base(),
'ICELLTYPE',
'NPF',
map_node_type)
85 call this%set(this%npf_k11%base(),
'K11',
'NPF',
map_node_type)
86 call this%set(this%npf_k22%base(),
'K22',
'NPF',
map_node_type)
87 call this%set(this%npf_k33%base(),
'K33',
'NPF',
map_node_type)
88 call this%set(this%npf_angle1%base(),
'ANGLE1',
'NPF',
map_node_type)
89 call this%set(this%npf_angle2%base(),
'ANGLE2',
'NPF',
map_node_type)
90 call this%set(this%npf_angle3%base(),
'ANGLE3',
'NPF',
map_node_type)
91 call this%set(this%npf_wetdry%base(),
'WETDRY',
'NPF',
map_node_type)
92 call this%set(this%buy_dense%base(),
'DENSE',
'BUY',
map_node_type)
100 integer(I4B) :: nr_nodes
103 call this%VirtualModelType%prepare_stage(stage)
117 call this%map(this%x%base(), nr_nodes, &
119 call this%map(this%ibound%base(), nr_nodes, &
121 call this%map(this%x_old%base(), nr_nodes, &
124 call this%map(this%npf_icelltype%base(), nr_nodes, (/
stg_bfr_con_ar/))
129 if (this%npf_iangle1%get() > 0)
then
130 call this%map(this%npf_angle1%base(), nr_nodes, (/
stg_bfr_con_ar/))
132 call this%map(this%npf_angle1%base(), 0, (/
stg_never/))
134 if (this%npf_iangle2%get() > 0)
then
135 call this%map(this%npf_angle2%base(), nr_nodes, (/
stg_bfr_con_ar/))
137 call this%map(this%npf_angle2%base(), 0, (/
stg_never/))
139 if (this%npf_iangle3%get() > 0)
then
140 call this%map(this%npf_angle3%base(), nr_nodes, (/
stg_bfr_con_ar/))
142 call this%map(this%npf_angle3%base(), 0, (/
stg_never/))
144 if (this%npf_iwetdry%get() > 0)
then
145 call this%map(this%npf_wetdry%base(), nr_nodes, (/
stg_bfr_con_ar/))
147 call this%map(this%npf_wetdry%base(), 0, (/
stg_never/))
150 if (this%inbuy%get() > 0)
then
151 call this%map(this%buy_dense%base(), nr_nodes, (/
stg_bfr_exg_cf/))
153 call this%map(this%buy_dense%base(), 0, (/
stg_never/))
163 call this%VirtualModelType%destroy()
164 call this%deallocate_data()
171 allocate (this%npf_iangle1)
172 allocate (this%npf_iangle2)
173 allocate (this%npf_iangle3)
174 allocate (this%npf_iwetdry)
175 allocate (this%inbuy)
176 allocate (this%npf_icelltype)
177 allocate (this%npf_k11)
178 allocate (this%npf_k22)
179 allocate (this%npf_k33)
180 allocate (this%npf_angle1)
181 allocate (this%npf_angle2)
182 allocate (this%npf_angle3)
183 allocate (this%npf_wetdry)
184 allocate (this%buy_dense)
191 deallocate (this%npf_iangle1)
192 deallocate (this%npf_iangle2)
193 deallocate (this%npf_iangle3)
194 deallocate (this%npf_iwetdry)
195 deallocate (this%inbuy)
196 deallocate (this%npf_icelltype)
197 deallocate (this%npf_k11)
198 deallocate (this%npf_k22)
199 deallocate (this%npf_k33)
200 deallocate (this%npf_angle1)
201 deallocate (this%npf_angle2)
202 deallocate (this%npf_angle3)
203 deallocate (this%npf_wetdry)
204 deallocate (this%buy_dense)
This module defines variable data types.
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_all_type
integer(i4b), parameter, public map_node_type
integer(i4b), parameter, public vdc_gwfmodel_type
type(listtype), public virtual_model_list
subroutine vgwf_prepare_stage(this, stage)
subroutine deallocate_data(this)
subroutine, public add_virtual_gwf_model(model_id, model_name, model)
Add virtual GWF model.
subroutine init_virtual_data(this)
subroutine vgwf_create(this, name, id, model)
subroutine allocate_data(this)
subroutine vgwf_destroy(this)