2 SUBROUTINE ntimesteps (model, RunInterval, nl, Nsteps, Rsteps)
42 integer,
intent(in) :: model
43 integer,
intent(inout) :: nl
44 integer,
intent(out) :: Nsteps, Rsteps
46 real(dp),
intent(in) :: RunInterval
50 integer :: extra, gn, ig, il, ng, ngm1
51 integer,
dimension(Ngrids) :: WindowSteps, my_Nsteps
53#if defined MODEL_COUPLING && !defined MCT_LIB
55 real(dp) :: ENDtime, NEXTtime
110#if defined MODEL_COUPLING && !defined MCT_LIB
117 nexttime=
time(ng)+runinterval
119 IF (nexttime.eq.endtime)
THEN
134 IF (model.eq.
inlm)
THEN
135 nexttime=
time(ng)+runinterval
138 ELSE IF (model.eq.
itlm)
THEN
139 nexttime=
time(ng)+runinterval
142 ELSE IF (model.eq.
iadm)
THEN
143 nexttime=
time(ng)-runinterval
157 windowsteps(ig)=int((runinterval+0.5_r8*
dt(ng))/
dt(ng))
162 IF ((model.eq.
inlm).or. &
163 & (model.eq.
itlm).or. &
164 & (model.eq.
irpm))
THEN
206 my_nsteps(ig)=max(my_nsteps(ig), windowsteps(ig)+extra)
210#if defined ADJOINT && !defined NESTING
214 ELSE IF (model.eq.
iadm)
THEN
215 my_nsteps(ig)=max(my_nsteps(ig), windowsteps(ig)+extra)
225 IF (windowsteps(ig).ne.windowsteps(ig-1))
THEN
229 WRITE (
stdout,10) nl, ngm1,
dt(ngm1), ng,
dt(ng)
230 10
FORMAT (/,
' NTIMESTEPS - timestep size are not the ', &
231 &
' same in nesting layer: ',i2, &
232 & 2(/,14x,
'Grid ',i2.2,3x,
'dt = ',f11.3))
242 rsteps=windowsteps(1)+extra
244 nsteps=min(nsteps, my_nsteps(ig))
245 rsteps=min(rsteps, windowsteps(ig)+extra)
252#if defined NESTING && defined ADJOINT
295 integer,
intent(out) :: icount
297 real(dp),
intent(in) :: RunInterval
301 logical :: DoNestLayer, Time_Step
302 integer :: NL, Nsteps, Rsteps
303 integer :: dg, ig, istep, ng
316 IF (.not.
allocated(stepinfo))
THEN
324 nstepinfo=int((runinterval+0.5_r8*
dt(dg))/
dt(dg))*(rs-1)+ &
326 allocate ( stepinfo(nstepinfo,
ngrids+3) )
342 DO WHILE (donestlayer)
345 IF (icount.le.nstepinfo)
THEN
346 stepinfo(icount,1)=nl
347 stepinfo(icount,2)=nsteps
348 stepinfo(icount,3)=rsteps
363 IF (
master)
WRITE(
stdout,10)
', nStepInfo = ', nstepinfo, &
371 10
FORMAT (/,
' NLM_STEP_SEQUENCE - too small dimension parameter ', &
372 & a,i0,3x,i0,/,21x,
'Recompute dimensions for ''StepInfo''')
integer, dimension(:), allocatable refinestepscounter
integer, dimension(:), allocatable refinesteps
logical, dimension(:), allocatable telescoping
integer, dimension(:,:), allocatable gridnumber
integer, dimension(:), allocatable gridsinlayer
integer, dimension(:), allocatable ntimes
real(dp), dimension(:), allocatable dt
logical, dimension(:,:), allocatable compositegrid
real(dp), dimension(:), allocatable time
logical, dimension(:), allocatable refinedgrid
integer, dimension(:), allocatable refinescale
integer, dimension(:), allocatable step_counter
real(dp), dimension(:), allocatable initime
subroutine nlm_step_sequence(runinterval, icount)
subroutine ntimesteps(model, runinterval, nl, nsteps, rsteps)