def iterate():    
    starting_index    = gSTART_INDEX
    last_index        = gLAST_INDEX 
    TIME_INTERVAL     = 10.
    START_x           = get_coordinate(gSTART_x)
    START_y           = get_coordinate(gSTART_y)
    COORDINATES       = np.array([[START_x, START_y, 0]])
    
    coord_x = START_x
    coord_y = START_y
    
    for fileindex in range(starting_index,last_index):
        grid_y, grid_x = np.mgrid[coord_y:coord_y:1j,coord_x:coord_x:1j]

        
        if fileindex < 1000:
            filename = '0' + str(fileindex)
        else:
            filename = str(fileindex)
        
        
        #filein = open('/Users/Anton/Desktop/Data/hd300a0/hd300a0_rel/sim' + filename + '.dat')
        filein = open('/Volumes/Seagate/4Anton/d300a0/dt10/simext' + filename + '.dat')
        datain = np.loadtxt(filein,input_dtype.dtype_rel_radiation())
        filein.close()
        a         = 0
        r         = datain['r']
        theta     = datain['theta']
        u_radial  = datain['u_1']/datain['u_t']
        u_theta   = datain['u_2']/datain['u_t']
        
        g11 = np.sqrt((np.divide( (np.power(r, 2)+a**(2.)*np.power(np.cos(theta),2)), (np.power(r, 2)-2.*r+a**2) ) ))
        g22 = np.sqrt((np.power(r,2)+a**(2.)*np.power(np.cos(theta),2)))
        
        points = (r*np.sin(theta),r*np.cos(theta))
        ux = (u_theta*np.cos(theta)*g22 + u_radial*np.sin(theta))
        uy = (-u_theta*np.sin(theta)*g22 + u_radial*np.cos(theta))
        
        grid_ux = griddata(points, ux, (grid_x, grid_y), method='linear', fill_value=1e-30)
        grid_uy = griddata(points, uy, (grid_x, grid_y), method='linear', fill_value=1e-30)
        try: 
            DELTA_x = grid_ux[0,0]*TIME_INTERVAL
            DELTA_y = grid_uy[0,0]*TIME_INTERVAL
            coord_x = coord_x + DELTA_x
            coord_y = coord_y + DELTA_y
            
            if (np.logical_or(coord_x > xmax, coord_y > ymax)):
                print('The particle have escaped the bounded region. Terminating loop at index ' + str(fileindex))
                break
            elif (np.logical_and(coord_x < 2, coord_y < 2)):
                print('The particle have been engulfed by the black hole. Terminating loop at index ' + str(fileindex))
                break
                
            COORDINATES = np.append(COORDINATES, np.array([[coord_x, coord_y, np.sqrt(grid_ux[0,0]**(2.) + grid_uy[0,0]**(2.))]]), axis=0)
        except IndexError:
            np.save(savefilename, COORDINATES)
            print('IndexError: The particle have escaped the bounded region. Terminating loop at index ' + str(fileindex))
            break
            
        print('Index:', fileindex, COORDINATES)
    np.save(savebase + savefilename + '.npy', COORDINATES)
    if index < 1000:
        index_str = str('0' + str(index))
    else:
        index_str = str(index)
    
    #File operations
    filename = 'simext' + index_str
    filein = open('/Volumes/Seagate/4Anton/d300a0/dt100/simavg0100-0189_rel.dat','rb')
    #filein = open('/Volumes/Seagate/4Anton/d300a0/dt10/'+filename+'.dat','rb')
    #datafile_all_forces = '/Users/Anton/Desktop/Data/Binaries/RAD-600-d300a0/' + index_str + '.npy'
    #datafile_all_forces = '/Users/Anton/Desktop/Data/Binaries/RAD-avg-d300a0/average.npy'


    #fileout = '/Users/Anton/Desktop/Data/Image/' + filename + '.png'
    
    datain = np.loadtxt(filein,input_dtype.dtype_rel_radiation())
    filein.close()
    
    #Convert coordinates from spherical to cartesian (physical units)
    r = datain['r']
    theta = datain['theta']
    phi = datain['phi']
    rho = datain['rho']
    
    points = (r*np.sin(theta),r*np.cos(theta))
    grid_rho = griddata(points, rho, (grid_x, grid_y), method='linear')
    
    ## Metric determinant ##
    a=0
    g_sch = np.power(r, 2)*np.sin(theta)
    
    + "_"
    + str(gSTART_y)
    + "_dt10.npy"
)


# File operations
# filebase = '/Users/Anton/Desktop/Data/d300a0/hd300a0_rel/'
filebase = "/Volumes/Seagate/4Anton/d300a0/dt10/"
filenumber_start = gSTART_INDEX
filenumber = filenumber_start

try:
    filein = open(filebase + "simext" + str(filenumber) + ".dat", "rb")
    # filein = open(filebase + 'simavg0070-0134_rel.dat', 'rb')
    datain = np.loadtxt(filein, dt.dtype_rel_radiation())
    filein.close()
except (IndexError, IOError):
    print("Wrong input dtype. Terminating.")

COORDINATES = np.load(savefilename)
step = len(COORDINATES) / 4.0
###### --------------------------------------------------------------------------------- ########
coord_index = np.floor(np.array([2.40 * step, 2.95 * step, 3.65 * step]))  # (10,10) 1.45*step,
# coord_index = np.floor(np.array([3.56*step ,3.81*step])) #(10,20) 1.45*step
# coord_index = np.floor(np.array([1.9*step, 2.9*step, 3.5*step])) #(60,90)
# coord_index = np.floor(np.array([0.5*step, 1.7*step, 2.55*step])) #(69,70)
###### --------------------------------------------------------------------------------- ########
LINE_INDEX = np.empty((len(coord_index), 1))

for i in range(0, len(coord_index)):