654 class(UzfType),
intent(inout) :: this
656 character(len=LENBOUNDNAME) :: bndName
657 character(len=LINELENGTH) :: text
658 character(len=LINELENGTH) :: line
660 logical :: endOfBlock
665 real(DP),
pointer :: bndElem => null()
667 character(len=20) :: cellid
668 character(len=LINELENGTH) :: title
669 character(len=LINELENGTH) :: tag
670 integer(I4B) :: ntabrows
671 integer(I4B) :: ntabcols
674 character(len=*),
parameter :: fmtlsp = &
675 &
"(1X,/1X,'REUSING ',A,'S FROM LAST STRESS PERIOD')"
676 character(len=*),
parameter :: fmtblkerr = &
677 &
"('Looking for BEGIN PERIOD iper. Found ', a, ' instead.')"
678 character(len=*),
parameter :: fmtisvflow = &
679 "(4x,'CELL-BY-CELL FLOW INFORMATION WILL BE SAVED TO BINARY FILE &
680 &WHENEVER ICBCFL IS NOT ZERO.')"
681 character(len=*),
parameter :: fmtflow = &
682 &
"(4x, 'FLOWS WILL BE SAVED TO FILE: ', a, /4x, 'OPENED ON UNIT: ', I7)"
686 if (this%inunit == 0)
return
689 if (this%ionper <
kper)
then
692 call this%parser%GetBlock(
'PERIOD', isfound, ierr, &
693 supportopenclose=.true., &
694 blockrequired=.false.)
698 call this%read_check_ionper()
704 this%ionper =
nper + 1
707 call this%parser%GetCurrentLine(line)
708 write (errmsg, fmtblkerr) adjustl(trim(line))
710 call this%parser%StoreErrorUnit()
716 this%issflag = this%gwfiss
719 if (this%ionper ==
kper)
then
722 if (this%iprpak /= 0)
then
729 if (this%ietflag /= 0)
then
730 ntabcols = ntabcols + 3
731 if (this%ietflag == 2)
then
732 ntabcols = ntabcols + 3
735 if (this%inamedbound == 1)
then
736 ntabcols = ntabcols + 1
740 title = trim(adjustl(this%text))//
' PACKAGE ('// &
741 trim(adjustl(this%packName))//
') DATA FOR PERIOD'
742 write (title,
'(a,1x,i6)') trim(adjustl(title)),
kper
743 call table_cr(this%inputtab, this%packName, title)
744 call this%inputtab%table_df(ntabrows, ntabcols, this%iout, &
747 call this%inputtab%initialize_column(tag, 10)
749 call this%inputtab%initialize_column(tag, 20, alignment=tableft)
751 call this%inputtab%initialize_column(tag, 12)
752 if (this%ietflag /= 0)
then
754 call this%inputtab%initialize_column(tag, 12)
756 call this%inputtab%initialize_column(tag, 12)
758 call this%inputtab%initialize_column(tag, 12)
759 if (this%ietflag == 2)
then
761 call this%inputtab%initialize_column(tag, 12)
763 call this%inputtab%initialize_column(tag, 12)
765 call this%inputtab%initialize_column(tag, 12)
768 if (this%inamedbound == 1)
then
770 call this%inputtab%initialize_column(tag, lenboundname, &
777 call this%parser%GetNextLine(endofblock)
781 i = this%parser%GetInteger()
782 if (i < 1 .or. i > this%nodes)
then
783 tag = trim(adjustl(this%text))//
' PACKAGE ('// &
784 trim(adjustl(this%packName))//
') DATA FOR PERIOD'
785 write (tag,
'(a,1x,i0)') trim(adjustl(tag)),
kper
787 write (errmsg,
'(a,a,i0,1x,a,i0,a)') &
788 trim(adjustl(tag)),
': UZFNO ', i, &
789 'must be greater than 0 and less than or equal to ', this%nodes,
'.'
795 if (this%inamedbound > 0)
then
796 bndname = this%boundname(i)
802 call this%parser%GetStringCaps(text)
804 bndelem => this%sinf_pvar(i)
806 'BND', this%tsManager, this%iprpak, &
810 call this%parser%GetStringCaps(text)
812 bndelem => this%pet_pvar(i)
814 'BND', this%tsManager, this%iprpak, &
818 call this%parser%GetStringCaps(text)
820 bndelem => this%extdp(i)
822 'BND', this%tsManager, this%iprpak, &
826 call this%parser%GetStringCaps(text)
828 bndelem => this%extwc_pvar(i)
830 'BND', this%tsManager, this%iprpak, &
834 call this%parser%GetStringCaps(text)
836 bndelem => this%ha_pvar(i)
838 'BND', this%tsManager, this%iprpak, &
842 call this%parser%GetStringCaps(text)
844 bndelem => this%hroot_pvar(i)
846 'BND', this%tsManager, this%iprpak, &
850 call this%parser%GetStringCaps(text)
852 bndelem => this%rootact_pvar(i)
854 'BND', this%tsManager, this%iprpak, &
859 call this%parser%GetStringCaps(text)
860 bndelem => this%uauxvar(j, i)
862 'AUX', this%tsManager, this%iprpak, &
867 if (this%iprpak /= 0)
then
870 node = this%igwfnode(i)
872 call this%dis%noder_to_string(node, cellid)
878 call this%inputtab%add_term(i)
879 call this%inputtab%add_term(cellid)
880 call this%inputtab%add_term(this%sinf_pvar(i))
881 if (this%ietflag /= 0)
then
882 call this%inputtab%add_term(this%pet_pvar(i))
883 call this%inputtab%add_term(this%extdp(i))
884 call this%inputtab%add_term(this%extwc_pvar(i))
885 if (this%ietflag == 2)
then
886 call this%inputtab%add_term(this%ha_pvar(i))
887 call this%inputtab%add_term(this%hroot_pvar(i))
888 call this%inputtab%add_term(this%rootact_pvar(i))
891 if (this%inamedbound == 1)
then
892 call this%inputtab%add_term(this%boundname(i))
899 if (this%iprpak /= 0)
then
900 call this%inputtab%finalize_table()
905 write (this%iout, fmtlsp) trim(this%filtyp)
911 call this%parser%StoreErrorUnit()
915 if ((this%issflag == 0 .AND.
kper == 1) .or. &
916 (
kper == 2 .AND. this%issflagold == 1))
then
918 call this%uzfobj%setwaves(i)
925 this%wcnew(i) = this%uzfobj%get_wcnew(i)
930 this%issflagold = this%issflag
integer(i4b), pointer, public nper
number of stress period
subroutine, public read_value_or_time_series_adv(textInput, ii, jj, bndElem, pkgName, auxOrBnd, tsManager, iprpak, varName)
Call this subroutine from advanced packages to define timeseries link for a variable (varName).