This module contains an abstract class and a broadband implmentation that sums over all spectral points
   The abstract base class defines the routines that extenstions must implement: reduce() and are_desired()
   The intent is for users to extend it as required, using mo_flxues_broadband as an example
Abstract base class:
  reduce() function accepts spectral flux profiles, computes desired outputs
  are_desired() returns a logical
| procedure(are_desired_abstract), public :: are_desired | |
| procedure(reduce_abstract), public :: reduce | 
Class implementing broadband integration for the complete flux profile. Data components are pointers so results can be written directly into memory
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=wp), | public, | dimension(:,:), pointer | :: | flux_dn | => | NULL() | |
| real(kind=wp), | public, | dimension(:,:), pointer | :: | flux_dn_dir | => | NULL() | |
| real(kind=wp), | public, | dimension(:,:), pointer | :: | flux_net | => | NULL() | |
| real(kind=wp), | public, | dimension(:,:), pointer | :: | flux_up | => | NULL() | 
| procedure, public :: are_desired => are_desired_broadband | |
| procedure, public :: reduce => reduce_broadband |