anchor.diff:        enddo
   
         call heat_output_log(hecMESH, fstrPARAM, fstrHEAT, total_step, next_time)
  -      call heat_output_result(hecMESH, fstrHEAT, total_step, next_time, is_end)
  -      call heat_output_visual(hecMESH, fstrRESULT, fstrHEAT, total_step, next_time, is_end)
  -      call heat_output_restart(hecMESH, fstrHEAT, total_step, is_end, next_time)
  +      call heat_output_result(hecMESH, fstrHEAT, total_step, next_time, outflag)
  +      call heat_output_visual(hecMESH, fstrRESULT, fstrHEAT, total_step, next_time, outflag)
  +      call heat_output_restart(hecMESH, fstrHEAT, total_step, outflag, next_time)
   
         total_step = total_step + 1
         current_time = next_time
  
positive.code:             write(*,*) ' *** EXCEEDED TOLERANCE OF VARIATION IN TEMPERATUTE.'
              write(*,*) ' : NODE NUMBER  = ', mnod, ' : DELTA TEMP   = ', tmpmax
            endif
            delta_time = 0.5d0*delta_time
            cycle tr_loop
          endif
  
          if(iterALL <= miniter) delta_time = delta_time*1.5d0
        else
          if(fstrHEAT%is_iter_max_limit) call hecmw_abort( hecmw_comm_get_comm() )
        endif
  
negative.code:     !C--------------------   START TRANSIET LOOP   ------------------------
      tr_loop: do
  
        if(end_time <= current_time + delta_time_base + delta_time_base*1.0d-6) then
          delta_time_base = end_time - current_time
        endif
        if( 0.0d0 < DELMIN .and. fstrHEAT%timepoint_id > 0 ) then
          remain_time = get_remain_to_next_timepoints(current_time, 0.0d0, fstrPARAM%timepoints(fstrHEAT%timepoint_id))
          delta_time = dmin1(delta_time_base, remain_time)
        else
          delta_time = delta_time_base
        endif
        next_time = current_time + delta_time
        if( fstrHEAT%is_steady == 1 ) then
          is_end = .true.
        else
          if( (end_time - next_time) / (end_time - start_time) < 1.d-12 ) is_end = .true.
        endif
        if( 0.0d0 < DELMIN .and. fstrHEAT%timepoint_id > 0 ) then
          outflag = is_end .or. is_at_timepoints(next_time, 0.0d0, fstrPARAM%timepoints(fstrHEAT%timepoint_id))
        else
          outflag = is_end
        endif
  
        if( hecMESH%my_rank.eq.0 ) then
          write(IMSG,"(a,i8,a,1pe12.5,a,1pe12.5)") " ** Increment No. :", total_step, ", total time: ", &
          & next_time, ", delta t: ", delta_time
          write(*,   "(a,i8,a,1pe12.5,a,1pe12.5)") " ** Increment No. :", total_step, ", total time: ", &
          & next_time, ", delta t: ", delta_time
        endif
  
        if(delta_time_base < DELMIN .and. (.not. outflag))then
          if(hecMESH%my_rank == 0) write(IMSG,*) ' !!! DELTA TIME EXCEEDED TOLERANCE OF TIME INCREMENT'
          call hecmw_abort(hecmw_comm_get_comm())
        endif
  
        call heat_solve_main(hecMESH, hecMAT, hecMATmpc, fstrPARAM, fstrHEAT, ISTEP, iterALL, next_time, delta_time)
  
        if(0.0d0 < DELMIN)then
          tmpmax = 0.0d0
  