code: def pvwatts_dc(g_poa_effective, temp_cell, pdc0, gamma_pdc, temp_ref=25.):
      r
  
      pdc = (g_poa_effective * 0.001 * pdc0 *
             (1 + gamma_pdc * (temp_cell - temp_ref)))
  
      return pdc
docs: r"""
      Implements NREL's PVWatts DC power model [1]_:
  
      .. math::
  
          P_{dc} = \frac{G_{poa eff}}{1000} P_{dc0} ( 1 + \gamma_{pdc} (T_{cell} - T_{ref}))
  
      Parameters
      ----------
      g_poa_effective: numeric
          Irradiance transmitted to the PV cells in units of W/m**2. To be
          fully consistent with PVWatts, the user must have already
          applied angle of incidence losses, but not soiling, spectral,
          etc.
      temp_cell: numeric
          Cell temperature in degrees C.
      pdc0: numeric
          Nameplate DC rating.
      gamma_pdc: numeric
          The temperature coefficient in units of 1/C. Typically -0.002 to
          -0.005 per degree C.
      temp_ref: numeric, default 25.0
          Cell reference temperature. PVWatts defines it to be 25 C and
          is included here for flexibility.
  
      Returns
      -------
      pdc: numeric
          DC power.
  
      References
      ----------
      .. [1] A. P. Dobos, "PVWatts Version 5 Manual"
             http://pvwatts.nrel.gov/downloads/pvwattsv5.pdf
             (2014).