26 character(len=LENMODELNAME), &
27 dimension(:),
pointer,
contiguous :: mname1 => null()
28 character(len=LENPACKAGENAME), &
29 dimension(:),
pointer,
contiguous :: pname1 => null()
30 character(len=LENMODELNAME), &
31 dimension(:),
pointer,
contiguous :: mname2 => null()
32 character(len=LENPACKAGENAME), &
33 dimension(:),
pointer,
contiguous :: pname2 => null()
34 integer(I4B),
dimension(:),
pointer,
contiguous :: id1 => null()
35 integer(I4B),
dimension(:),
pointer,
contiguous :: id2 => null()
36 integer(I4B),
dimension(:),
pointer,
contiguous :: imvrtype => null()
37 real(dp),
dimension(:),
pointer,
contiguous ::
value => null()
56 integer(I4B),
intent(in) :: maxsize
57 character(len=LENMEMPATH),
intent(in) :: memoryPath
60 allocate (this%mname1(maxsize))
61 allocate (this%pname1(maxsize))
62 allocate (this%mname2(maxsize))
63 allocate (this%pname2(maxsize))
68 call mem_allocate(this%imvrtype, maxsize,
'IMVRTYPE', memorypath)
69 call mem_allocate(this%value, maxsize,
'VALUE', memorypath)
81 integer(I4B),
intent(out) :: nmvr
82 character(len=LENMODELNAME),
intent(in) :: modelname
85 integer(I4B) :: maxmvr
87 character(len=LINELENGTH) :: line
88 character(len=12) :: mvrtype_char
92 maxmvr =
size(this%id1)
96 call parser%GetNextLine(endofblock)
101 call parser%GetCurrentLine(line)
102 write (
errmsg,
'(a,a)')
'Movers exceed MAXMVR on line: ', &
105 call parser%StoreErrorUnit()
109 if (modelname ==
'')
then
110 call parser%GetStringCaps(this%mname1(i))
112 this%mname1(i) = modelname
114 call parser%GetStringCaps(this%pname1(i))
115 this%id1(i) = parser%GetInteger()
118 if (modelname ==
'')
then
119 call parser%GetStringCaps(this%mname2(i))
121 this%mname2(i) = modelname
123 call parser%GetStringCaps(this%pname2(i))
124 this%id2(i) = parser%GetInteger()
127 call parser%GetStringCaps(mvrtype_char)
128 select case (mvrtype_char)
138 call store_error(
'Invalid mover type: '//trim(mvrtype_char))
139 call parser%StoreErrorUnit()
141 this%value(i) = parser%GetDouble()
159 deallocate (this%mname1)
160 deallocate (this%pname1)
161 deallocate (this%mname2)
162 deallocate (this%pname2)
This module contains block parser methods.
This module contains simulation constants.
integer(i4b), parameter linelength
maximum length of a standard line
integer(i4b), parameter lenmodelname
maximum length of the model name
integer(i4b), parameter lenpackagename
maximum length of the package name
integer(i4b), parameter lenmempath
maximum length of the memory path
This module contains the GwfMvrPeriodDataModule Module.
subroutine destroy(this)
@ brief Destroy memory
subroutine read_from_parser(this, parser, nmvr, modelname)
@ brief Fill the arrays from parser
subroutine construct(this, maxsize, memoryPath)
@ brief Construct arrays
This module defines variable data types.
This module contains simulation methods.
subroutine, public store_error(msg, terminate)
Store an error message.
This module contains simulation variables.
character(len=maxcharlen) errmsg
error message string
Derived type for GwfMvrPeriodDataType.