#$=head1 NAME #$ #$mspef - find prediction error filter #$ #$=head1 SYNOPSIS #$ #$C #$ #$=head1 INPUT PARAMETERS #$ #$=over 4 #$ #$=item dd - C #$ #$ Input data #$ #$=item niter - integer #$ #$ Number of itterations #$ #$=back #$ #$=head1 OUTPUT PARAMETERS #$ #$=over 4 #$ #$=item aa - type(msfilter) #$ #$ output filter #$ #$=back #$ #$=head1 DESCRIPTION #$ #$ Find multi-scale prediction-error filter (helix magic) #$ #$=head1 SEE ALSO #$ #$L,L,L,L,L #$ #$=head1 LIBRARY #$ #$B #$ #$=cut module mspef { # Find multi-scale prediction-error filter (helix magic) use mshconest use cgstep_mod use solver_mod contains subroutine find_pef( yy, aa, niter) { integer, intent( in) :: niter real, dimension( :), pointer :: yy type( msfilter) :: aa integer :: is real, dimension( size( yy), size( aa%lag, 2)) :: dd do is = 1, size( dd, 2) dd( :,is) = -yy call mshconest_init( yy, aa) call solver( mshconest_lop, cgstep, aa%flt, pack( dd, .true.), niter, x0= aa%flt) call cgstep_close() } }