160 class(VirtualGwfExchangeType) :: this
161 integer(I4B) :: stage
163 type(STLVecInt) :: virtual_items
165 integer(I4B) :: qpactual_m1_idx, qpactual_m2_idx
166 integer(I4B) :: qavailable_m1_idx, qavailable_m2_idx
167 integer(I4B) :: id_mapped_m1_idx, id_mapped_m2_idx
168 class(*),
pointer :: vdi
171 call this%VirtualExchangeType%get_recv_items(stage, rank, &
176 vdi => this%mvr_qpactual_m1
177 qpactual_m1_idx = this%virtual_data_list%GetIndex(vdi)
178 vdi => this%mvr_qpactual_m2
179 qpactual_m2_idx = this%virtual_data_list%GetIndex(vdi)
180 vdi => this%mvr_qavailable_m1
181 qavailable_m1_idx = this%virtual_data_list%GetIndex(vdi)
182 vdi => this%mvr_qavailable_m2
183 qavailable_m2_idx = this%virtual_data_list%GetIndex(vdi)
184 vdi => this%mvr_id_mapped_m1
185 id_mapped_m1_idx = this%virtual_data_list%GetIndex(vdi)
186 vdi => this%mvr_id_mapped_m2
187 id_mapped_m2_idx = this%virtual_data_list%GetIndex(vdi)
189 if (this%v_model1%is_local .and. &
190 this%v_model2%orig_rank == rank)
then
193 if (this%mvr_qpactual_m2%check_stage(stage))
then
194 call virtual_items%push_back(qpactual_m2_idx)
196 if (this%mvr_qavailable_m2%check_stage(stage))
then
197 call virtual_items%push_back(qavailable_m2_idx)
199 if (this%mvr_id_mapped_m2%check_stage(stage))
then
200 call virtual_items%push_back(id_mapped_m2_idx)
202 else if (this%v_model2%is_local .and. &
203 this%v_model1%orig_rank == rank)
then
205 if (this%mvr_qpactual_m1%check_stage(stage))
then
206 call virtual_items%push_back(qpactual_m1_idx)
208 if (this%mvr_qavailable_m1%check_stage(stage))
then
209 call virtual_items%push_back(qavailable_m1_idx)
211 if (this%mvr_id_mapped_m1%check_stage(stage))
then
212 call virtual_items%push_back(id_mapped_m1_idx)