anchor.diff:            ! ... Advance the location of the float from the time t to
             ! ... the time t+dt:
             ! ...
  -          !print*, 'Before rk5: ', FLT%lon(flo), FLT%lat(flo)
  -          !print*, 'Before rk5: ', vp
  -          call spherical_rk5(2,vp,internal_time,internal_dt,vn,RHS)
  -          !print*, 'After rk5: ', vn
  +          if (fractional) then
  +            call spherical_rk5(2,vp,FLT%release_time(flo),fractional_dt,vn,RHS)
  +          else
  +            call spherical_rk5(2,vp,internal_time,internal_dt,vn,RHS)
  +          endif
   
             ! ... Update travelled distance:
             ! ...
  
positive.code: 
        ! ... First, check the float has been released:
        ! ...
        if (FLT%release_time(flo).le.internal_time-initial_time) &
                                                   FLT%released(flo) = .true.
  
        if (FLT%released(flo)) then
          ! ... Now, check if the device is floating
  
negative.code: 
  ! ... Local variables:
  ! ...
  logical init,fractional
  integer flo,kout,nfloating,nstranded,noutside
  integer                                  :: external_step
  real(dp)                                 :: external_time
  !real(dp)                                 :: internal_time
  real(dp)                                 :: initial_time
  real(dp)                                 :: fractional_dt
  real(dp), dimension(2)                   :: vp,vn
  
  real(dp)                                 :: system_time
  