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)
83 integer(I4B),
intent(out) :: nmvr
84 character(len=LENMODELNAME),
intent(in) :: modelname
87 integer(I4B) :: maxmvr
89 character(len=LINELENGTH) :: line
90 character(len=12) :: mvrtype_char
94 maxmvr =
size(this%id1)
98 call parser%GetNextLine(endofblock)
103 call parser%GetCurrentLine(line)
104 write (
errmsg,
'(a,a)')
'Movers exceed MAXMVR on line: ', &
107 call parser%StoreErrorUnit()
111 if (modelname ==
'')
then
112 call parser%GetStringCaps(this%mname1(i))
114 this%mname1(i) = modelname
116 call parser%GetStringCaps(this%pname1(i))
117 this%id1(i) = parser%GetInteger()
120 if (modelname ==
'')
then
121 call parser%GetStringCaps(this%mname2(i))
123 this%mname2(i) = modelname
125 call parser%GetStringCaps(this%pname2(i))
126 this%id2(i) = parser%GetInteger()
129 call parser%GetStringCaps(mvrtype_char)
130 select case (mvrtype_char)
140 call store_error(
'Invalid mover type: '//trim(mvrtype_char))
141 call parser%StoreErrorUnit()
143 this%value(i) = parser%GetDouble()
162 deallocate (this%mname1)
163 deallocate (this%pname1)
164 deallocate (this%mname2)
165 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.