docs: def pt_rot(EP, Lats, Lons):
      """
      Rotates points on a globe by an Euler pole rotation using method of
      Cox and Hart 1986, box 7-3.
  
      Parameters
      ----------
      EP : Euler pole list [lat,lon,angle]
      Lats : list of latitudes of points to be rotated
      Lons : list of longitudes of points to be rotated
  
      Returns
      _________
      RLats : rotated latitudes
      RLons : rotated longitudes
      """
  # gets user input of Rotation pole lat,long, omega for plate and converts
  # to radians
      E = dir2cart([EP[1], EP[0], 1.])  # EP is pole lat,lon omega
      omega = EP[2] * np.pi / 180.  # convert to radians
      RLats, RLons = [], []
      for k in range(len(Lats)):
          if Lats[k] <= 90.:  # peel off delimiters
              # converts to rotation pole to cartesian coordinates
              A = dir2cart([Lons[k], Lats[k], 1.])
  # defines cartesian coordinates of the pole A
              R = [[0., 0., 0.], [0., 0., 0.], [0., 0., 0.]]
              R[0][0] = E[0] * E[0] * (1 - np.cos(omega)) + np.cos(omega)
              R[0][1] = E[0] * E[1] * (1 - np.cos(omega)) - E[2] * np.sin(omega)
              R[0][2] = E[0] * E[2] * (1 - np.cos(omega)) + E[1] * np.sin(omega)
              R[1][0] = E[1] * E[0] * (1 - np.cos(omega)) + E[2] * np.sin(omega)
              R[1][1] = E[1] * E[1] * (1 - np.cos(omega)) + np.cos(omega)
              R[1][2] = E[1] * E[2] * (1 - np.cos(omega)) - E[0] * np.sin(omega)
              R[2][0] = E[2] * E[0] * (1 - np.cos(omega)) - E[1] * np.sin(omega)
              R[2][1] = E[2] * E[1] * (1 - np.cos(omega)) + E[0] * np.sin(omega)
              R[2][2] = E[2] * E[2] * (1 - np.cos(omega)) + np.cos(omega)
  # sets up rotation matrix
              Ap = [0, 0, 0]
              for i in range(3):
                  for j in range(3):
                      Ap[i] += R[i][j] * A[j]
  # does the rotation
              Prot = cart2dir(Ap)
              RLats.append(Prot[1])
              RLons.append(Prot[0])
          else:  # preserve delimiters
              RLats.append(Lats[k])
              RLons.append(Lons[k])
      return RLats, RLons