MODFLOW 6  version 6.6.0.dev0
USGS Modular Hydrologic Model
virtualbasemodule::virtualdatatype Type Reference

This is a generic data structure to virtualize pieces of memory in 2 distinct ways: More...

Inheritance diagram for virtualbasemodule::virtualdatatype:
Inheritance graph
Collaboration diagram for virtualbasemodule::virtualdatatype:
Collaboration graph

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()
 

Detailed Description

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.

Member Function/Subroutine Documentation

◆ base()

procedure virtualbasemodule::virtualdatatype::base

Definition at line 53 of file VirtualBase.f90.

◆ check_stage()

procedure virtualbasemodule::virtualdatatype::check_stage

Definition at line 54 of file VirtualBase.f90.

◆ get_element_map()

procedure virtualbasemodule::virtualdatatype::get_element_map

Definition at line 56 of file VirtualBase.f90.

◆ link()

procedure virtualbasemodule::virtualdatatype::link

Definition at line 55 of file VirtualBase.f90.

◆ vm_allocate()

procedure(vm_allocate_if), deferred virtualbasemodule::virtualdatatype::vm_allocate

Definition at line 51 of file VirtualBase.f90.

◆ vm_deallocate()

procedure(vm_deallocate_if), deferred virtualbasemodule::virtualdatatype::vm_deallocate

Definition at line 52 of file VirtualBase.f90.

Member Data Documentation

◆ is_reduced

logical(lgp) virtualbasemodule::virtualdatatype::is_reduced

Definition at line 42 of file VirtualBase.f90.

42  logical(LGP) :: is_reduced !< when true, the discontinuous remote data is compressed

◆ is_remote

logical(lgp) virtualbasemodule::virtualdatatype::is_remote = .false.

Definition at line 36 of file VirtualBase.f90.

36  logical(LGP) :: is_remote = .false. !< is remote memory, when true (default is false)

◆ map_type

integer(i4b) virtualbasemodule::virtualdatatype::map_type

Definition at line 41 of file VirtualBase.f90.

41  integer(I4B) :: map_type !< the type of map

◆ mem_path

character(len=lenmempath) virtualbasemodule::virtualdatatype::mem_path

Definition at line 39 of file VirtualBase.f90.

39  character(len=LENMEMPATH) :: mem_path !< memory path

◆ remote_elem_shift

integer(i4b), dimension(:), pointer, contiguous virtualbasemodule::virtualdatatype::remote_elem_shift => null()

Definition at line 44 of file VirtualBase.f90.

44  integer(I4B), dimension(:), &
45  pointer, contiguous :: remote_elem_shift => null() !< contiguous list with 0-based remote indexes

◆ remote_to_virtual

integer(i4b), dimension(:), pointer, contiguous virtualbasemodule::virtualdatatype::remote_to_virtual => null()

Definition at line 47 of file VirtualBase.f90.

47  integer(I4B), dimension(:), &
48  pointer, contiguous :: remote_to_virtual => null() !< sparse list which maps remote index to virtual

◆ subcmp_name

character(len=lencomponentname) virtualbasemodule::virtualdatatype::subcmp_name

Definition at line 38 of file VirtualBase.f90.

38  character(len=LENCOMPONENTNAME) :: subcmp_name !< subcomponent name, e.g. package name

◆ sync_stages

integer(i4b), dimension(:), allocatable virtualbasemodule::virtualdatatype::sync_stages

Definition at line 40 of file VirtualBase.f90.

40  integer(I4B), dimension(:), allocatable :: sync_stages !< stage(s) at which to synchronize

◆ var_name

character(len=lenvarname) virtualbasemodule::virtualdatatype::var_name

Definition at line 37 of file VirtualBase.f90.

37  character(len=LENVARNAME) :: var_name !< variable name

◆ virtual_mt

type(memorytype), pointer virtualbasemodule::virtualdatatype::virtual_mt => null()

Definition at line 49 of file VirtualBase.f90.

49  type(MemoryType), pointer :: virtual_mt => null()

The documentation for this type was generated from the following file: