docs: def tk03(n=100, dec=0, lat=0, rev='no', G2=0, G3=0):
      """
      Generates vectors drawn from the TK03.gad model of secular
      variation (Tauxe and Kent, 2004) at given latitude and rotated
      about a vertical axis by the given declination. Return a nested list of
      of [dec,inc,intensity].
  
      Parameters
      ----------
      n : number of vectors to determine (default is 100)
      dec : mean declination of data set (default is 0)
      lat : latitude at which secular variation is simulated (default is 0)
      rev : if reversals are to be included this should be 'yes' (default is 'no')
      G2 : specify average g_2^0 fraction (default is 0)
      G3 : specify average g_3^0 fraction (default is 0)
  
      Returns
      ----------
      tk_03_output : a nested list of declination, inclination, and intensity (in nT)
  
      Examples
      --------
      >>> ipmag.tk03(n=5, dec=0, lat=0)
      [[14.752502674158681, -36.189370642603834, 16584.848620957589],
       [9.2859465437113311, -10.064247301056071, 17383.950391596223],
       [2.4278460589582913, 4.8079990844938019, 18243.679003572055],
       [352.93759572283585, 0.086693343935840397, 18524.551174838372],
       [352.48366219759953, 11.579098286352332, 24928.412830772766]]
      """
      tk_03_output = []
      for k in range(n):
          gh = pmag.mktk03(8, k, G2, G3)  # terms and random seed
          # get a random longitude, between 0 and 359
          lon = random.randint(0, 360)
          vec = pmag.getvec(gh, lat, lon)  # send field model and lat to getvec
          vec[0] += dec
          if vec[0] >= 360.:
              vec[0] -= 360.
          if k % 2 == 0 and rev == 'yes':
              vec[0] += 180.
              vec[1] = -vec[1]
          tk_03_output.append([vec[0], vec[1], vec[2]])
      return tk_03_output