16 character(len=LENMEMPATH) :: memorypath
17 integer(I4B),
pointer :: nproviders
18 integer(I4B),
pointer :: nreceivers
19 integer(I4B),
dimension(:),
pointer,
contiguous :: iprmap => null()
20 real(dp),
dimension(:),
pointer,
contiguous :: qtformvr => null()
21 real(dp),
dimension(:),
pointer,
contiguous :: qformvr => null()
22 real(dp),
dimension(:),
pointer,
contiguous :: qtomvr => null()
23 real(dp),
dimension(:),
pointer,
contiguous :: qfrommvr => null()
24 real(dp),
dimension(:),
pointer,
contiguous :: qfrommvr0 => null()
45 character(len=*),
intent(in) :: mempath
46 packagemover%memoryPath = mempath
47 call mem_setptr(packagemover%nproviders,
'NPROVIDERS', &
48 packagemover%memoryPath)
49 call mem_setptr(packagemover%nreceivers,
'NRECEIVERS', &
50 packagemover%memoryPath)
51 call mem_setptr(packagemover%iprmap,
'IPRMAP', packagemover%memoryPath)
52 call mem_setptr(packagemover%qtformvr,
'QTFORMVR', packagemover%memoryPath)
53 call mem_setptr(packagemover%qformvr,
'QFORMVR', packagemover%memoryPath)
54 call mem_setptr(packagemover%qtomvr,
'QTOMVR', packagemover%memoryPath)
55 call mem_setptr(packagemover%qfrommvr,
'QFROMMVR', packagemover%memoryPath)
56 call mem_setptr(packagemover%qfrommvr0,
'QFROMMVR0', packagemover%memoryPath)
61 packagemover%memoryPath =
''
62 packagemover%nproviders => null()
63 packagemover%nreceivers => null()
64 packagemover%iprmap => null()
65 packagemover%qtformvr => null()
66 packagemover%qformvr => null()
67 packagemover%qtomvr => null()
68 packagemover%qfrommvr => null()
69 packagemover%qfrommvr0 => null()
72 subroutine ar(this, nproviders, nreceivers, memoryPath)
74 integer,
intent(in) :: nproviders
75 integer,
intent(in) :: nreceivers
76 character(len=*),
intent(in) :: memoryPath
78 this%memoryPath = memorypath
79 call this%allocate_scalars()
80 this%nproviders = nproviders
81 this%nreceivers = nreceivers
83 call this%allocate_arrays()
91 do i = 1, this%nproviders
92 this%qtomvr(i) =
dzero
93 this%qformvr(i) =
dzero
102 do i = 1, this%nreceivers
103 this%qfrommvr0(i) = this%qfrommvr(i)
104 this%qfrommvr(i) =
dzero
106 do i = 1, this%nproviders
107 this%qtomvr(i) =
dzero
108 this%qtformvr(i) = this%qformvr(i)
117 do i = 1, this%nproviders
118 this%qformvr(i) =
dzero
138 nullify (this%iprmap)
144 call mem_allocate(this%nproviders,
'NPROVIDERS', this%memoryPath)
145 call mem_allocate(this%nreceivers,
'NRECEIVERS', this%memoryPath)
155 call mem_allocate(this%iprmap, this%nproviders,
'IPRMAP', this%memoryPath)
156 call mem_allocate(this%qtformvr, this%nproviders,
'QTFORMVR', this%memoryPath)
157 call mem_allocate(this%qformvr, this%nproviders,
'QFORMVR', this%memoryPath)
158 call mem_allocate(this%qtomvr, this%nproviders,
'QTOMVR', this%memoryPath)
159 call mem_allocate(this%qfrommvr, this%nreceivers,
'QFROMMVR', this%memoryPath)
160 call mem_allocate(this%qfrommvr0, this%nreceivers,
'QFROMMVR0', &
164 do i = 1, this%nproviders
166 this%qtformvr(i) =
dzero
167 this%qformvr(i) =
dzero
168 this%qtomvr(i) =
dzero
170 do i = 1, this%nreceivers
171 this%qfrommvr(i) =
dzero
172 this%qfrommvr0(i) =
dzero
179 integer,
intent(in) :: ireceiver
180 qfrommvr = this%qfrommvr(ireceiver)
185 real(dp) :: qfrommvr0
186 integer,
intent(in) :: ireceiver
187 qfrommvr0 = this%qfrommvr0(ireceiver)
193 integer,
intent(in) :: iprovider
194 qtomvr = this%qtomvr(iprovider)
199 integer,
intent(in) :: iprovider
200 real(DP),
intent(in) :: qformvr
201 this%qformvr(iprovider) = this%qformvr(iprovider) + qformvr
This module contains simulation constants.
real(dp), parameter dzero
real constant zero
integer(i4b), parameter lenmempath
maximum length of the memory path
This module defines variable data types.
real(dp) function get_qtomvr(this, iprovider)
subroutine ar(this, nproviders, nreceivers, memoryPath)
real(dp) function get_qfrommvr(this, ireceiver)
subroutine, public nulllify_packagemover_pointer(packagemover)
subroutine, public set_packagemover_pointer(packagemover, memPath)
real(dp) function get_qfrommvr0(this, ireceiver)
subroutine accumulate_qformvr(this, iprovider, qformvr)
subroutine allocate_arrays(this)
subroutine allocate_scalars(this)