anchor.diff:      integer(kind=kint), save ::  tstep1, tstep2
       real(kind=kreal), save :: ttime1, ttime2
   
  -    integer(kind=kint) :: ierr
  +    integer(kind=kint) :: ierr, i
       real(kind=kreal) :: w
       logical :: flg_read1, flg_read2
       real(kind=kreal), allocatable :: temp0(:,:)
  
positive.code:     ! when temperature is assumed constant
      if (flg_constant) then
        if (.not. flg_read1) call read_result_at(hecMESH, tstep1, ttime1, temp0(1,:))
        temp(:) = temp0(1,:)
        return
      endif
      ! when ctime is out-of-range (left side)
      if (ctime <= ttime1) then
        if (.not. flg_read1) call read_result_at(hecMESH, tstep1, ttime1, temp0(1,:))
        temp(:) = temp0(1,:)
        return
      endif
      ! proceed until ctime is within [ttime1, ttime2]
  
negative.code:       tstep1 = tstep2
        ttime1 = ttime2
        if (flg_read2) then
          do i=1, hecMESH%n_node
            temp0(1,i) = temp0(2,i)
          enddo
          flg_read1 = .true.
        endif
        flg_read2 = .false.
  