docs: def export_hcurves_by_imt_csv(
          key, kind, rlzs_assoc, fname, sitecol, array, oq, checksum):
      """
      Export the curves of the given realization into CSV.
  
      :param key: output_type and export_type
      :param kind: a string with the kind of output (realization or statistics)
      :param rlzs_assoc: a :class:`openquake.commonlib.source.RlzsAssoc` instance
      :param fname: name of the exported file
      :param sitecol: site collection
      :param array: an array of shape (N, L) and dtype numpy.float32
      :param oq: job.ini parameters
      """
      nsites = len(sitecol)
      fnames = []
      for imt, imls in oq.imtls.items():
          slc = oq.imtls(imt)
          dest = add_imt(fname, imt)
          lst = [('lon', F32), ('lat', F32), ('depth', F32)]
          for iml in imls:
              lst.append(('poe-%s' % iml, F32))
          hcurves = numpy.zeros(nsites, lst)
          for sid, lon, lat, dep in zip(
                  range(nsites), sitecol.lons, sitecol.lats, sitecol.depths):
              hcurves[sid] = (lon, lat, dep) + tuple(array[sid, slc])
          fnames.append(writers.write_csv(dest, hcurves, comment=_comment(
              rlzs_assoc, kind, oq.investigation_time) + (
                  ', imt="%s", checksum=%d' % (imt, checksum)
              ), header=[name for (name, dt) in lst]))
      return fnames