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()
94 do i = 1, this%nproviders
95 this%qtomvr(i) =
dzero
96 this%qformvr(i) =
dzero
108 do i = 1, this%nreceivers
109 this%qfrommvr0(i) = this%qfrommvr(i)
110 this%qfrommvr(i) =
dzero
112 do i = 1, this%nproviders
113 this%qtomvr(i) =
dzero
114 this%qtformvr(i) = this%qformvr(i)
126 do i = 1, this%nproviders
127 this%qformvr(i) =
dzero
150 nullify (this%iprmap)
159 call mem_allocate(this%nproviders,
'NPROVIDERS', this%memoryPath)
160 call mem_allocate(this%nreceivers,
'NRECEIVERS', this%memoryPath)
173 call mem_allocate(this%iprmap, this%nproviders,
'IPRMAP', this%memoryPath)
174 call mem_allocate(this%qtformvr, this%nproviders,
'QTFORMVR', this%memoryPath)
175 call mem_allocate(this%qformvr, this%nproviders,
'QFORMVR', this%memoryPath)
176 call mem_allocate(this%qtomvr, this%nproviders,
'QTOMVR', this%memoryPath)
177 call mem_allocate(this%qfrommvr, this%nreceivers,
'QFROMMVR', this%memoryPath)
178 call mem_allocate(this%qfrommvr0, this%nreceivers,
'QFROMMVR0', &
182 do i = 1, this%nproviders
184 this%qtformvr(i) =
dzero
185 this%qformvr(i) =
dzero
186 this%qtomvr(i) =
dzero
188 do i = 1, this%nreceivers
189 this%qfrommvr(i) =
dzero
190 this%qfrommvr0(i) =
dzero
200 integer,
intent(in) :: ireceiver
201 qfrommvr = this%qfrommvr(ireceiver)
206 real(dp) :: qfrommvr0
207 integer,
intent(in) :: ireceiver
208 qfrommvr0 = this%qfrommvr0(ireceiver)
214 integer,
intent(in) :: iprovider
215 qtomvr = this%qtomvr(iprovider)
220 integer,
intent(in) :: iprovider
221 real(DP),
intent(in) :: qformvr
222 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)