30 real(dp),
allocatable :: times(:)
47 real(dp),
intent(in) :: tol
51 allocate (sched%times(0))
52 allocate (sched%time_select)
53 allocate (sched%step_select)
54 call sched%time_select%init()
55 call sched%step_select%init()
64 deallocate (this%times)
65 call this%time_select%deallocate()
66 call this%step_select%deallocate()
67 deallocate (this%time_select)
68 deallocate (this%step_select)
73 subroutine log(this, iout)
75 integer(I4B),
intent(in) :: iout
76 character(len=*),
parameter :: fmt = &
77 &
"(6x,A,': ',50(G0,' '))"
80 write (iout, fmt)
'RELEASE SCHEDULE', this%times
82 write (iout,
"(1x,a,1x,a)")
'NO RELEASES SCHEDULED'
95 real(DP),
intent(in) :: trelease
97 this%times(
size(this%times)) = trelease
113 character(len=LINELENGTH),
intent(in),
optional :: lines(:)
114 integer(I4B) :: it, i
115 real(DP) :: tprevious
119 call this%time_select%advance()
123 if (
present(lines))
then
124 call this%step_select%init()
125 do i = 1,
size(lines)
126 call this%step_select%read(lines(i))
131 if (
allocated(this%times))
deallocate (this%times)
132 allocate (this%times(0))
141 call this%schedule(trelease)
147 if (this%time_select%any())
then
148 do it = this%time_select%selection(1), this%time_select%selection(2)
149 trelease = this%time_select%times(it)
155 atol=this%tolerance)) cycle
156 call this%schedule(trelease)
167 logical function any(this)
result(a)
177 integer function count(this)
result(n)
This module contains simulation constants.
integer(i4b), parameter linelength
maximum length of a standard line
real(dp), parameter dzero
real constant zero
real(dp), parameter done
real constant 1
This module defines variable data types.
pure logical function, public is_close(a, b, rtol, atol, symmetric)
Check if a real value is approximately equal to another.
Particle release scheduling.
subroutine schedule(this, trelease)
Add a release time to the schedule.
subroutine advance(this, lines)
Refresh the schedule for the current time step.
subroutine log(this, iout)
Write the release schedule to the given output unit.
integer function count(this)
Return the number of releases scheduled.
type(releasescheduletype) function, pointer, public create_release_schedule(tol)
Create a new release schedule object.
subroutine deallocate(this)
Deallocate the release schedule.
logical function any(this)
Check if any releases are scheduled.
logical(lgp), pointer, public endofperiod
flag indicating end of stress period
real(dp), pointer, public totimc
simulation time at start of time step
integer(i4b), pointer, public kstp
current time step number
Specify times for some event to occur.
Time step selection module.
Particle release scheduling utility.
Represents a series of instants at which some event should occur.
Time step selection type.