1841 class(MawType),
intent(inout) :: this
1843 character(len=LINELENGTH) :: title
1844 character(len=LINELENGTH) :: line
1845 character(len=LINELENGTH) :: text
1846 character(len=16) :: csteady
1848 logical :: endOfBlock
1849 integer(I4B) :: ierr
1850 integer(I4B) :: node
1852 integer(I4B) :: ntabcols
1853 integer(I4B) :: ntabrows
1854 integer(I4B) :: imaw
1855 integer(I4B) :: ibnd
1857 integer(I4B) :: jpos
1858 integer(I4B) :: iheadlimit_warning
1860 character(len=*),
parameter :: fmtblkerr = &
1861 &
"('Looking for BEGIN PERIOD iper. Found ', a, ' instead.')"
1862 character(len=*),
parameter :: fmtlsp = &
1863 &
"(1X,/1X,'REUSING ',A,'S FROM LAST STRESS PERIOD')"
1866 iheadlimit_warning = 0
1869 this%imawiss = this%gwfiss
1872 if (this%imawissopt == 1)
then
1877 this%nbound = this%maxbound
1881 if (this%inunit == 0)
return
1884 if (this%ionper <
kper)
then
1887 call this%parser%GetBlock(
'PERIOD', isfound, ierr, &
1888 supportopenclose=.true., &
1889 blockrequired=.false.)
1893 call this%read_check_ionper()
1899 this%ionper =
nper + 1
1902 call this%parser%GetCurrentLine(line)
1903 write (errmsg, fmtblkerr) adjustl(trim(line))
1904 call store_error(errmsg, terminate=.true.)
1910 if (this%ionper ==
kper)
then
1913 if (this%iprpak /= 0)
then
1916 title = trim(adjustl(this%text))//
' PACKAGE ('// &
1917 trim(adjustl(this%packName))//
') DATA FOR PERIOD'
1918 write (title,
'(a,1x,i6)') trim(adjustl(title)),
kper
1919 call table_cr(this%inputtab, this%packName, title)
1920 call this%inputtab%table_df(1, 5, this%iout, finalize=.false.)
1922 call this%inputtab%initialize_column(text, 10, alignment=tabcenter)
1924 call this%inputtab%initialize_column(text, 20, alignment=tableft)
1926 write (text,
'(a,1x,i6)')
'VALUE', n
1927 call this%inputtab%initialize_column(text, 15, alignment=tabcenter)
1934 call this%parser%GetNextLine(endofblock)
1935 if (endofblock)
exit
1937 imaw = this%parser%GetInteger()
1938 if (imaw < 1 .or. imaw > this%nmawwells)
then
1939 write (errmsg,
'(2(a,1x),i0,a)') &
1940 'IMAW must be greater than 0 and', &
1941 'less than or equal to ', this%nmawwells,
'.'
1942 call store_error(errmsg)
1947 call this%maw_set_stressperiod(imaw, iheadlimit_warning)
1950 if (this%iprpak /= 0)
then
1951 call this%parser%GetCurrentLine(line)
1952 call this%inputtab%line_to_columns(line)
1955 if (this%iprpak /= 0)
then
1956 call this%inputtab%finalize_table()
1961 write (this%iout, fmtlsp) trim(this%filtyp)
1965 if (iheadlimit_warning > 0)
then
1966 write (warnmsg,
'(a,a,a,1x,a,1x,a)') &
1967 "HEAD_LIMIT in '", trim(this%packName),
"' was below the well bottom", &
1968 "for one or more multi-aquifer well(s). This may result in", &
1969 "convergence failures for some models."
1970 call store_warning(warnmsg, substring=warnmsg(:50))
1974 if (count_errors() > 0)
then
1975 call this%parser%StoreErrorUnit()
1979 if (this%check_attr /= 0)
then
1980 call this%maw_check_attributes()
1983 if (this%iprpak == 1)
then
1984 if (this%imawiss /= 0)
then
1985 csteady =
'STEADY-STATE '
1987 csteady =
'TRANSIENT '
1991 title = trim(adjustl(this%text))//
' PACKAGE ('// &
1992 trim(adjustl(this%packName))//
') '//trim(adjustl(csteady))// &
1993 ' RATE DATA FOR PERIOD'
1994 write (title,
'(a,1x,i6)') trim(adjustl(title)),
kper
1996 call table_cr(this%inputtab, this%packName, title)
1997 call this%inputtab%table_df(this%nmawwells, ntabcols, this%iout)
1999 call this%inputtab%initialize_column(text, 10, alignment=tabcenter)
2001 call this%inputtab%initialize_column(text, 12, alignment=tabcenter)
2003 call this%inputtab%initialize_column(text, 12, alignment=tabcenter)
2004 text =
'SPECIFIED HEAD'
2005 call this%inputtab%initialize_column(text, 12, alignment=tabcenter)
2006 text =
'PUMP ELEVATION'
2007 call this%inputtab%initialize_column(text, 12, alignment=tabcenter)
2008 text =
'REDUCTION LENGTH'
2009 call this%inputtab%initialize_column(text, 12, alignment=tabcenter)
2010 do n = 1, this%nmawwells
2011 call this%inputtab%add_term(n)
2012 call this%inputtab%add_term(this%status(n))
2013 call this%inputtab%add_term(this%rate(n))
2014 if (this%iboundpak(n) < 0)
then
2015 call this%inputtab%add_term(this%well_head(n))
2017 call this%inputtab%add_term(
' ')
2019 call this%inputtab%add_term(this%pumpelev(n))
2020 if (this%reduction_length(n) /= dep20)
then
2021 call this%inputtab%add_term(this%reduction_length(n))
2023 call this%inputtab%add_term(
' ')
2028 if (this%iflowingwells > 0)
then
2031 title = trim(adjustl(this%text))//
' PACKAGE ('// &
2032 trim(adjustl(this%packName))//
') '//trim(adjustl(csteady))// &
2033 ' FLOWING WELL DATA FOR PERIOD'
2034 write (title,
'(a,1x,i6)') trim(adjustl(title)),
kper
2037 do n = 1, this%nmawwells
2038 if (this%fwcond(n) > dzero)
then
2039 ntabrows = ntabrows + 1
2042 if (ntabrows > 0)
then
2043 call table_cr(this%inputtab, this%packName, title)
2044 call this%inputtab%table_df(ntabrows, ntabcols, this%iout)
2046 call this%inputtab%initialize_column(text, 10, alignment=tabcenter)
2048 call this%inputtab%initialize_column(text, 12, alignment=tabcenter)
2050 call this%inputtab%initialize_column(text, 12, alignment=tabcenter)
2051 text =
'REDUCTION LENGTH'
2052 call this%inputtab%initialize_column(text, 12, alignment=tabcenter)
2053 do n = 1, this%nmawwells
2054 if (this%fwcond(n) > dzero)
then
2055 call this%inputtab%add_term(n)
2056 call this%inputtab%add_term(this%fwelev(n))
2057 call this%inputtab%add_term(this%fwcond(n))
2058 call this%inputtab%add_term(this%fwrlen(n))
2065 title = trim(adjustl(this%text))//
' PACKAGE ('// &
2066 trim(adjustl(this%packName))//
') '//trim(adjustl(csteady))// &
2067 ' WELL SHUTOFF DATA FOR PERIOD'
2068 write (title,
'(a,1x,i6)') trim(adjustl(title)),
kper
2071 do n = 1, this%nmawwells
2072 if (this%shutofflevel(n) /= dep20)
then
2073 ntabrows = ntabrows + 1
2076 if (ntabrows > 0)
then
2077 call table_cr(this%inputtab, this%packName, title)
2078 call this%inputtab%table_df(ntabrows, ntabcols, this%iout)
2080 call this%inputtab%initialize_column(text, 10, alignment=tabcenter)
2082 call this%inputtab%initialize_column(text, 12, alignment=tabcenter)
2084 call this%inputtab%initialize_column(text, 12, alignment=tabcenter)
2086 call this%inputtab%initialize_column(text, 12, alignment=tabcenter)
2087 do n = 1, this%nmawwells
2088 if (this%shutofflevel(n) /= dep20)
then
2089 call this%inputtab%add_term(n)
2090 call this%inputtab%add_term(this%shutofflevel(n))
2091 call this%inputtab%add_term(this%shutoffmin(n))
2092 call this%inputtab%add_term(this%shutoffmax(n))
2101 do n = 1, this%nmawwells
2102 do j = 1, this%ngwfnodes(n)
2103 jpos = this%get_jpos(n, j)
2104 node = this%get_gwfnode(n, j)
2105 this%nodelist(ibnd) = node
2106 this%bound(1, ibnd) = this%xnewpak(n)
2107 this%bound(2, ibnd) = this%satcond(jpos)
2108 this%bound(3, ibnd) = this%botscrn(jpos)
2109 if (this%iboundpak(n) > 0)
then
2110 this%bound(4, ibnd) = this%rate(n)
2112 this%bound(4, ibnd) = dzero
integer(i4b), pointer, public nper
number of stress period