module helix_mod  
! DEFINE helix filter type
use flt_type
    implicit none

  contains
  subroutine allocatehelix( aa, nh)             ! allocate a filter
	type( filter) :: aa
	integer       :: nh                         ! count of filter coefs (excl 1)
	allocate( aa%flt( nh), aa%lag( nh))         ! allocate filter and lags.
	nullify( aa%mis)                            ! set null pointer for "mis".
	aa%flt = 0.                                 ! zero filter coef values
  end subroutine 
  subroutine deallocatehelix( aa)               ! destroy a filter
	type( filter) :: aa
	deallocate( aa%flt, aa%lag)                 ! free memory
	if (associated( aa%mis)) deallocate(aa%mis) ! if logicals were allocated free them
  end subroutine 
end module 

