diff --git a/share/streams/shr_dmodel_mod.F90 b/share/streams/shr_dmodel_mod.F90 index 8c2c2c9ce6e9..e2e2532b49f6 100644 --- a/share/streams/shr_dmodel_mod.F90 +++ b/share/streams/shr_dmodel_mod.F90 @@ -672,7 +672,7 @@ subroutine shr_dmodel_readLBUB(stream,pio_subsystem,pio_iotype,pio_iodesc_r8, pi rDateUB = real(mDateUB,R8) + real(mSecUB,R8)/spd call t_stopf(trim(lstr)//'_setup') - if (rDateM < rDateLB .or. rDateM > rDateUB) then + if (rDateM < rDateLB .or. rDateM >= rDateUB) then call t_startf(trim(lstr)//'_fbound') if (my_task == master_task) then ! call shr_stream_findBounds(stream,mDate,mSec, & diff --git a/share/streams/shr_tInterp_mod.F90 b/share/streams/shr_tInterp_mod.F90 index 04e1cb5639d6..139aa2b2740c 100644 --- a/share/streams/shr_tInterp_mod.F90 +++ b/share/streams/shr_tInterp_mod.F90 @@ -305,6 +305,11 @@ subroutine shr_tInterp_getAvgCosz(tavCosz,lonr,latr,ymd1,tod1,ymd2,tod2,eccen,mv tod = tod1 do while( reday < reday2) ! mid-interval t-steps thru interval [LB,UB] + !--- get next cosz value for t-avg --- + call shr_tInterp_getCosz(cosz,lonr,latr,ymd,tod,eccen,mvelpp,lambm0,obliqr,calendar) + n = n + ldt + tavCosz = tavCosz + cosz*real(ldt,SHR_KIND_R8) ! add to partial sum + !--- advance to next time in [LB,UB] --- ymd0 = ymd tod0 = tod @@ -312,19 +317,6 @@ subroutine shr_tInterp_getAvgCosz(tavCosz,lonr,latr,ymd1,tod1,ymd2,tod2,eccen,mv call shr_cal_advDateInt(ldt,'seconds',ymd0,tod0,ymd,tod,calendar) call shr_cal_timeSet(reday,ymd,tod,calendar) - if (reday > reday2) then - ymd = ymd2 - tod = tod2 - timeint = reday2-reday0 - call ESMF_TimeIntervalGet(timeint,s_i8=dtsec) - ldt = dtsec - endif - - !--- get next cosz value for t-avg --- - call shr_tInterp_getCosz(cosz,lonr,latr,ymd,tod,eccen,mvelpp,lambm0,obliqr,calendar) - n = n + ldt - tavCosz = tavCosz + cosz*real(ldt,SHR_KIND_R8) ! add to partial sum - end do tavCosz = tavCosz/real(n,SHR_KIND_R8) ! form t-avg