#$=head1 NAME #$ #$signoi - signal and noise separation #$ #$=head1 SYNOPSIS #$ #$C #$ #$C #$ #$C #$ #$=head1 PARAMETERS #$ #$=over 4 #$ #$=item nn type(filter) #$ #$ Noise filter #$ #$=item ss type(filter) #$ #$ Signal filter #$ #$=item niter integer #$ #$ Number of itterations #$ #$=item nd integer #$ #$ Number of data points #$ #$=item eps real #$ #$ Epsilon #$ #$=item adj,add,data,sign #$ #$ Standard operator parameters #$ #$=back #$ #$=head1 DESCRIPTION #$ #$Signal an noise separation Claerbout style #$ #$=head1 SEE ALSO #$ #$L,L,L #$ #$=head1 LIBRARY #$ #$B #$ #$=cut module signoi { use helicon use polydiv use solver_mod use cgstep_mod integer, private :: i integer :: niter, nd real :: eps type( filter), dimension( :), pointer :: nn, ss real, dimension (nd), allocatable :: dd #% _init (nn, ss, niter, nd, eps) i = 0 #% _lop (data, sign) integer stat1; i = i + 1 call helicon_init (nn (i)) call polydiv_init (nd, ss (i)) stat1 = helicon_lop (.false., .false., data, dd) call solver_prec (helicon_lop, cgstep, niter= niter, x=sign, dat = dd, prec= polydiv_lop, nprec= nd, eps= eps) call cgstep_close() #% _close call polydiv_close() }