anchor.diff:      integer(kind=kint) :: ndof, nn
   
       integer(kind=kint) :: j, tot_step, step_count
  -    integer(kind=kint) :: sub_step
  -    integer(kind=kint) :: itemp, ttemp, tintl
  -    real(kind=kreal) :: tt, factor
  -    real(kind=kreal) :: time_1, time_2
  -    logical          :: ctchanged
  +    integer(kind=kint) :: sub_step, ss_end
  +    real(kind=kreal)   :: factor
  +    real(kind=kreal)   :: time_1, time_2
  +    logical            :: ctchanged
       integer(kind=kint) :: restart_step_num, restart_substep_num
   
       hecMAT%NDOF = hecMESH%n_dof
  
positive.code:       enddo    !--- end of substep  loop
  
        restart_substep_num = 1
  
      enddo      !--- end of tot_step loop
      !
      !  message
  
negative.code:       ! -------------------------------------------------------------------------
        !      STEP LOOP
        ! -------------------------------------------------------------------------
        ss_end = fstrSOLID%step_ctrl(tot_step)%num_substep
        if( fstrSOLID%TEMP_irres > 0 ) then
          ss_end = (fstrSOLID%TEMP_irres-fstrSOLID%TEMP_tstep)/fstrSOLID%TEMP_interval + 1
          fstrSOLID%TEMP_tstep = fstrSOLID%TEMP_tstep + step_count*fstrSOLID%TEMP_interval
        endif
        do sub_step = restart_substep_num, ss_end
  
          ! ----- time history of factor
          if( fstrSOLID%TEMP_irres > 0 ) then
            fstrSOLID%FACTOR(1) = 0.d0
            fstrSOLID%FACTOR(2) = 1.d0
          else if( fstrSOLID%TEMP_irres > 0 ) then
            call table_nlsta(hecMESH,fstrSOLID,tot_step,sub_step-1,factor)
            fstrSOLID%FACTOR(1) = factor
            call table_nlsta(hecMESH,fstrSOLID,tot_step,sub_step, factor)
            fstrSOLID%FACTOR(2) = factor
          endif
  
          if( dabs(fstrSOLID%FACTOR(2)-fstrSOLID%FACTOR(1))<1.0e-20 ) then
            if( hecMESH%my_rank==0) then
  