MODFLOW 6
version 6.7.0.dev0
USGS Modular Hydrologic Model
|
This is a generic data structure to virtualize pieces of memory in 2 distinct ways: More...
Public Member Functions | |
procedure(vm_allocate_if), deferred | vm_allocate |
procedure(vm_deallocate_if), deferred | vm_deallocate |
procedure | base => vm_to_base |
procedure | check_stage => vm_check_stage |
procedure | link => vm_link |
procedure | get_element_map |
Public Attributes | |
logical(lgp) | is_remote = .false. |
is remote memory, when true (default is false) More... | |
character(len=lenvarname) | var_name |
variable name More... | |
character(len=lencomponentname) | subcmp_name |
subcomponent name, e.g. package name More... | |
character(len=lenmempath) | mem_path |
memory path More... | |
integer(i4b), dimension(:), allocatable | sync_stages |
stage(s) at which to synchronize More... | |
integer(i4b) | map_type |
the type of map More... | |
logical(lgp) | is_reduced |
when true, the discontinuous remote data is compressed into contiguous virtual memory More... | |
integer(i4b), dimension(:), pointer, contiguous | remote_elem_shift => null() |
contiguous list with 0-based remote indexes More... | |
integer(i4b), dimension(:), pointer, contiguous | remote_to_virtual => null() |
sparse list which maps remote index to virtual More... | |
type(memorytype), pointer | virtual_mt => null() |
1) Virtualize remote memory This concerns memory residing on another process. Typically, these pieces are subsets of certain model and exchange data and lookup tables are kept with the data to manage their mapping. The stage(s) at which to synchronize the virtual memory is stored as well.
2) Virtualize local memory In this case no virtual memory item is created, no lookup tables and synchronization are necessary. The virtual memory item will be pointed to the original memory location at the requested synchronization stage.
Definition at line 35 of file VirtualBase.f90.
procedure virtualbasemodule::virtualdatatype::base |
Definition at line 53 of file VirtualBase.f90.
procedure virtualbasemodule::virtualdatatype::check_stage |
Definition at line 54 of file VirtualBase.f90.
procedure virtualbasemodule::virtualdatatype::get_element_map |
Definition at line 56 of file VirtualBase.f90.
procedure virtualbasemodule::virtualdatatype::link |
Definition at line 55 of file VirtualBase.f90.
procedure(vm_allocate_if), deferred virtualbasemodule::virtualdatatype::vm_allocate |
Definition at line 51 of file VirtualBase.f90.
procedure(vm_deallocate_if), deferred virtualbasemodule::virtualdatatype::vm_deallocate |
Definition at line 52 of file VirtualBase.f90.
logical(lgp) virtualbasemodule::virtualdatatype::is_reduced |
Definition at line 42 of file VirtualBase.f90.
logical(lgp) virtualbasemodule::virtualdatatype::is_remote = .false. |
Definition at line 36 of file VirtualBase.f90.
integer(i4b) virtualbasemodule::virtualdatatype::map_type |
Definition at line 41 of file VirtualBase.f90.
character(len=lenmempath) virtualbasemodule::virtualdatatype::mem_path |
Definition at line 39 of file VirtualBase.f90.
integer(i4b), dimension(:), pointer, contiguous virtualbasemodule::virtualdatatype::remote_elem_shift => null() |
Definition at line 44 of file VirtualBase.f90.
integer(i4b), dimension(:), pointer, contiguous virtualbasemodule::virtualdatatype::remote_to_virtual => null() |
Definition at line 47 of file VirtualBase.f90.
character(len=lencomponentname) virtualbasemodule::virtualdatatype::subcmp_name |
Definition at line 38 of file VirtualBase.f90.
integer(i4b), dimension(:), allocatable virtualbasemodule::virtualdatatype::sync_stages |
Definition at line 40 of file VirtualBase.f90.
character(len=lenvarname) virtualbasemodule::virtualdatatype::var_name |
Definition at line 37 of file VirtualBase.f90.
type(memorytype), pointer virtualbasemodule::virtualdatatype::virtual_mt => null() |
Definition at line 49 of file VirtualBase.f90.