664 class(PrtPrpType),
intent(inout) :: this
665 character(len=*),
intent(inout) :: option
666 logical(LGP),
intent(inout) :: found
668 character(len=MAXCHARLEN) :: fname
669 character(len=MAXCHARLEN) :: keyword
671 character(len=*),
parameter :: fmttrkbin = &
672 "(4x, 'PARTICLE TRACKS WILL BE SAVED TO BINARY FILE: ', a, /4x, &
673 &'OPENED ON UNIT: ', I0)"
674 character(len=*),
parameter :: fmttrkcsv = &
675 "(4x, 'PARTICLE TRACKS WILL BE SAVED TO CSV FILE: ', a, /4x, &
676 &'OPENED ON UNIT: ', I0)"
680 this%stoptime = this%parser%GetDouble()
682 case (
'STOPTRAVELTIME')
683 this%stoptraveltime = this%parser%GetDouble()
685 case (
'STOP_AT_WEAK_SINK')
686 this%istopweaksink = 1
689 this%istopzone = this%parser%GetInteger()
695 call this%parser%GetStringCaps(keyword)
696 if (keyword ==
'FILEOUT')
then
698 call this%parser%GetString(fname)
701 call openfile(this%itrkout, this%iout, fname,
'DATA(BINARY)', &
704 write (this%iout, fmttrkbin) trim(adjustl(fname)), this%itrkout
707 fname = trim(fname)//
'.hdr'
708 call openfile(this%itrkhdr, this%iout, fname,
'CSV', &
709 filstat_opt=
'REPLACE', mode_opt=mnormal)
712 call store_error(
'OPTIONAL TRACK KEYWORD MUST BE '// &
713 'FOLLOWED BY FILEOUT')
717 call this%parser%GetStringCaps(keyword)
718 if (keyword ==
'FILEOUT')
then
720 call this%parser%GetString(fname)
723 call openfile(this%itrkcsv, this%iout, fname,
'CSV', &
724 filstat_opt=
'REPLACE')
725 write (this%iout, fmttrkcsv) trim(adjustl(fname)), this%itrkcsv
728 call store_error(
'OPTIONAL TRACKCSV KEYWORD MUST BE &
729 &FOLLOWED BY FILEOUT')
735 case (
'EXTEND_TRACKING')
738 case (
'EXIT_SOLVE_TOLERANCE')
739 this%extol = this%parser%GetDouble()
740 if (this%extol <=
dzero) &
741 call store_error(
'EXIT_SOLVE_TOLERANCE MUST BE POSITIVE')
743 this%foundtol = .true.
744 case (
'RELEASE_TIME_TOLERANCE')
745 this%rttol = this%parser%GetDouble()
746 if (this%rttol <=
dzero) &
747 call store_error(
'RELEASE_TIME_TOLERANCE MUST BE POSITIVE')
749 case (
'RELEASE_TIME_FREQUENCY')
750 this%rtfreq = this%parser%GetDouble()
751 if (this%rtfreq <=
dzero) &
752 call store_error(
'RELEASE_TIME_FREQUENCY MUST BE POSITIVE')
754 case (
'DEV_FORCETERNARY')
755 call this%parser%DevOpt()
757 write (this%iout,
'(4x,a)') &
758 'TRACKING WILL BE DONE USING THE TERNARY METHOD REGARDLESS OF CELL TYPE'
760 case (
'DEV_EXIT_SOLVE_METHOD')
761 call this%parser%DevOpt()
762 this%iexmeth = this%parser%GetInteger()
763 if (.not. (this%iexmeth /= 1 .or. this%iexmeth /= 2)) &
764 call store_error(
'DEV_EXIT_SOLVE_METHOD MUST BE &
765 &1 (BRENT) OR 2 (CHANDRUPATLA)')
772 if (.not. found)
then
773 errmsg =
"UNKNOWN PRP OPTION '"//trim(keyword)//
"'."
774 call store_error(errmsg)
775 call this%parser%StoreErrorUnit()
780 this%schedule => create_release_schedule(tol=this%rttol)
This module contains simulation constants.
real(dp), parameter dzero
real constant zero
integer(i4b), parameter maxcharlen
maximum length of char string
character(len= *), parameter, public trackdtypes
character(len= *), parameter, public trackheader