51 class(MapperType) :: this
54 class(SpatialModelConnectionType),
pointer :: conn
55 class(VirtualExchangeType),
pointer :: vx
56 character(len=LENMEMPATH) :: virt_mem_path, local_mem_path
61 if (.not. vx%v_model1%is_local)
then
62 virt_mem_path = vx%get_vrt_mem_path(
'NODEM1',
'')
63 call this%map_data_full(0,
'NODEM1', conn%prim_exchange%memoryPath, &
67 if (vx%has_mover() .and. vx%container_type == vdc_gwfexg_type)
then
68 local_mem_path = create_mem_path(vx%name,
'MVR')
69 virt_mem_path = vx%get_vrt_mem_path(
'QPACTUAL_M1',
'MVR')
70 call this%map_data_full(conn%owner%idsoln,
'QPACTUAL_M1', &
71 local_mem_path,
'QPACTUAL_M1', &
73 virt_mem_path = vx%get_vrt_mem_path(
'QAVAILABLE_M1',
'MVR')
74 call this%map_data_full(conn%owner%idsoln,
'QAVAILABLE_M1', &
75 local_mem_path,
'QAVAILABLE_M1', &
77 virt_mem_path = vx%get_vrt_mem_path(
'ID_MAPPED_M1',
'MVR')
78 call this%map_data_full(conn%owner%idsoln,
'ID_MAPPED_M1', &
79 local_mem_path,
'ID_MAPPED_M1', &
83 if (vx%has_mover() .and. (vx%container_type == vdc_gwtexg_type .or. &
84 vx%container_type == vdc_gweexg_type))
then
85 local_mem_path = create_mem_path(vx%name,
'MVT')
86 virt_mem_path = vx%get_vrt_mem_path(
'QUANTITY_M1',
'MVT')
87 call this%map_data_full(conn%owner%idsoln,
'QUANTITY_M1', &
88 local_mem_path,
'QUANTITY_M1', &
92 if (.not. vx%v_model2%is_local)
then
93 virt_mem_path = vx%get_vrt_mem_path(
'NODEM2',
'')
94 call this%map_data_full(0,
'NODEM2', conn%prim_exchange%memoryPath, &
98 if (vx%has_mover() .and. vx%container_type == vdc_gwfexg_type)
then
99 local_mem_path = create_mem_path(vx%name,
'MVR')
100 virt_mem_path = vx%get_vrt_mem_path(
'QPACTUAL_M2',
'MVR')
101 call this%map_data_full(conn%owner%idsoln,
'QPACTUAL_M2', &
102 local_mem_path,
'QPACTUAL_M2', &
104 virt_mem_path = vx%get_vrt_mem_path(
'QAVAILABLE_M2',
'MVR')
105 call this%map_data_full(conn%owner%idsoln,
'QAVAILABLE_M2', &
106 local_mem_path,
'QAVAILABLE_M2', &
108 virt_mem_path = vx%get_vrt_mem_path(
'ID_MAPPED_M2',
'MVR')
109 call this%map_data_full(conn%owner%idsoln,
'ID_MAPPED_M2', &
110 local_mem_path,
'ID_MAPPED_M2', &
114 if (vx%has_mover() .and. (vx%container_type == vdc_gwtexg_type .or. &
115 vx%container_type == vdc_gweexg_type))
then
116 local_mem_path = create_mem_path(vx%name,
'MVT')
117 virt_mem_path = vx%get_vrt_mem_path(
'QUANTITY_M2',
'MVT')
118 call this%map_data_full(conn%owner%idsoln,
'QUANTITY_M2', &
119 local_mem_path,
'QUANTITY_M2', &
type(listtype), public baseconnectionlist
integer(i4b), parameter, public stg_bfr_exg_fc
before exchange formulate (per solution)
integer(i4b), parameter, public stg_aft_con_rp
after connection read prepare
integer(i4b), parameter, public stg_bfr_con_df
before connection define
class(spatialmodelconnectiontype) function, pointer, public get_smc_from_list(list, idx)
Get the connection from a list.
class(virtualexchangetype) function, pointer, public get_virtual_exchange(exg_id)
Returns a virtual exchange with the specified id.
Class to manage spatial connection of a model to one or more models of the same type....
The Virtual Exchange is based on two Virtual Models and is therefore not always strictly local or rem...