anchor.diff:         &  '             KE', '          PE','               TE', &
          &'       Niter',' FCNT'
   
  -  ! initialize the time tracker
  +  !-------------------------------------------------------------------!
  +  ! Time integration loop
  +  !-------------------------------------------------------------------!
  +
     time = start_time
   
     time_march: do while ( time .le. end_time)  ! loop for time-marching
   
        time = time + dT ! update the time
   
  -     ! Newton iterations
  +     !----------------------------------------------------------------!
  +     ! Newton iteration loop
  +     !----------------------------------------------------------------!
  +
        newton_cnt = 0
   
        newton: do k = 1, MAX_NEWTON_ITER
  
positive.code:         !-------------------------------------------------------------!
          ! Check for convergence and stop is necessary
          !-------------------------------------------------------------!
          if ( update_norm .le. ABS_TOL .AND. res_norm .le. ABS_TOL) &
               & exit newton
  
          if (k .eq. MAX_NEWTON_ITER) then
             call disp(" >> Newton solution failed in ", k , "iterations")
  
negative.code: 
       end do newton
  
       !----------------------------------------------------------------!
       ! print the summary of the newton iteration
       !----------------------------------------------------------------!
       write(*,'(f15.2,e15.6,e15.6,e15.6,e15.6,e15.6,xi4,xi8)') &
            &time, update_norm, res_norm, body1%KE, body1%PE, &
            & body1%KE + body1%PE, newton_cnt, fcnt
  
  !!$     !----------------------------------------------------------------!     
  !!$     ! extrapolate to next time step
  !!$     !-----------------------------------------------------------------!
  !!$     dq     = get_approx_q(q,q_dot)
  !!$     q_dot  = get_approx_q_dot(q,1)
  
    end do time_march
  
    call print_body(body1)
  