641 class(UzfType),
intent(inout) :: this
643 character(len=LENBOUNDNAME) :: bndName
644 character(len=LINELENGTH) :: text
645 character(len=LINELENGTH) :: line
647 logical :: endOfBlock
652 real(DP),
pointer :: bndElem => null()
654 character(len=20) :: cellid
655 character(len=LINELENGTH) :: title
656 character(len=LINELENGTH) :: tag
657 integer(I4B) :: ntabrows
658 integer(I4B) :: ntabcols
661 character(len=*),
parameter :: fmtlsp = &
662 &
"(1X,/1X,'REUSING ',A,'S FROM LAST STRESS PERIOD')"
663 character(len=*),
parameter :: fmtblkerr = &
664 &
"('Looking for BEGIN PERIOD iper. Found ', a, ' instead.')"
665 character(len=*),
parameter :: fmtisvflow = &
666 "(4x,'CELL-BY-CELL FLOW INFORMATION WILL BE SAVED TO BINARY FILE &
667 &WHENEVER ICBCFL IS NOT ZERO.')"
668 character(len=*),
parameter :: fmtflow = &
669 &
"(4x, 'FLOWS WILL BE SAVED TO FILE: ', a, /4x, 'OPENED ON UNIT: ', I7)"
673 if (this%inunit == 0)
return
676 if (this%ionper <
kper)
then
679 call this%parser%GetBlock(
'PERIOD', isfound, ierr, &
680 supportopenclose=.true., &
681 blockrequired=.false.)
685 call this%read_check_ionper()
691 this%ionper =
nper + 1
694 call this%parser%GetCurrentLine(line)
695 write (errmsg, fmtblkerr) adjustl(trim(line))
697 call this%parser%StoreErrorUnit()
703 this%issflag = this%gwfiss
706 if (this%ionper ==
kper)
then
709 if (this%iprpak /= 0)
then
716 if (this%ietflag /= 0)
then
717 ntabcols = ntabcols + 3
718 if (this%ietflag == 2)
then
719 ntabcols = ntabcols + 3
722 if (this%inamedbound == 1)
then
723 ntabcols = ntabcols + 1
727 title = trim(adjustl(this%text))//
' PACKAGE ('// &
728 trim(adjustl(this%packName))//
') DATA FOR PERIOD'
729 write (title,
'(a,1x,i6)') trim(adjustl(title)),
kper
730 call table_cr(this%inputtab, this%packName, title)
731 call this%inputtab%table_df(ntabrows, ntabcols, this%iout, &
734 call this%inputtab%initialize_column(tag, 10)
736 call this%inputtab%initialize_column(tag, 20, alignment=tableft)
738 call this%inputtab%initialize_column(tag, 12)
739 if (this%ietflag /= 0)
then
741 call this%inputtab%initialize_column(tag, 12)
743 call this%inputtab%initialize_column(tag, 12)
745 call this%inputtab%initialize_column(tag, 12)
746 if (this%ietflag == 2)
then
748 call this%inputtab%initialize_column(tag, 12)
750 call this%inputtab%initialize_column(tag, 12)
752 call this%inputtab%initialize_column(tag, 12)
755 if (this%inamedbound == 1)
then
757 call this%inputtab%initialize_column(tag, lenboundname, &
764 call this%parser%GetNextLine(endofblock)
768 i = this%parser%GetInteger()
769 if (i < 1 .or. i > this%nodes)
then
770 tag = trim(adjustl(this%text))//
' PACKAGE ('// &
771 trim(adjustl(this%packName))//
') DATA FOR PERIOD'
772 write (tag,
'(a,1x,i0)') trim(adjustl(tag)),
kper
774 write (errmsg,
'(a,a,i0,1x,a,i0,a)') &
775 trim(adjustl(tag)),
': UZFNO ', i, &
776 'must be greater than 0 and less than or equal to ', this%nodes,
'.'
782 if (this%inamedbound > 0)
then
783 bndname = this%boundname(i)
789 call this%parser%GetStringCaps(text)
791 bndelem => this%sinf_pvar(i)
793 'BND', this%tsManager, this%iprpak, &
797 call this%parser%GetStringCaps(text)
799 bndelem => this%pet_pvar(i)
801 'BND', this%tsManager, this%iprpak, &
805 call this%parser%GetStringCaps(text)
807 bndelem => this%extdp(i)
809 'BND', this%tsManager, this%iprpak, &
813 call this%parser%GetStringCaps(text)
815 bndelem => this%extwc_pvar(i)
817 'BND', this%tsManager, this%iprpak, &
821 call this%parser%GetStringCaps(text)
823 bndelem => this%ha_pvar(i)
825 'BND', this%tsManager, this%iprpak, &
829 call this%parser%GetStringCaps(text)
831 bndelem => this%hroot_pvar(i)
833 'BND', this%tsManager, this%iprpak, &
837 call this%parser%GetStringCaps(text)
839 bndelem => this%rootact_pvar(i)
841 'BND', this%tsManager, this%iprpak, &
846 call this%parser%GetStringCaps(text)
847 bndelem => this%uauxvar(j, i)
849 'AUX', this%tsManager, this%iprpak, &
854 if (this%iprpak /= 0)
then
857 node = this%igwfnode(i)
859 call this%dis%noder_to_string(node, cellid)
865 call this%inputtab%add_term(i)
866 call this%inputtab%add_term(cellid)
867 call this%inputtab%add_term(this%sinf_pvar(i))
868 if (this%ietflag /= 0)
then
869 call this%inputtab%add_term(this%pet_pvar(i))
870 call this%inputtab%add_term(this%extdp(i))
871 call this%inputtab%add_term(this%extwc_pvar(i))
872 if (this%ietflag == 2)
then
873 call this%inputtab%add_term(this%ha_pvar(i))
874 call this%inputtab%add_term(this%hroot_pvar(i))
875 call this%inputtab%add_term(this%rootact_pvar(i))
878 if (this%inamedbound == 1)
then
879 call this%inputtab%add_term(this%boundname(i))
886 if (this%iprpak /= 0)
then
887 call this%inputtab%finalize_table()
892 write (this%iout, fmtlsp) trim(this%filtyp)
898 call this%parser%StoreErrorUnit()
902 if ((this%issflag == 0 .AND.
kper == 1) .or. &
903 (
kper == 2 .AND. this%issflagold == 1))
then
905 call this%uzfobj%setwaves(i)
912 this%wcnew(i) = this%uzfobj%get_wcnew(i)
917 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).