
module signoi {
  use helicon
  use polydiv
  use solver_prc_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_prc(m=sign, d=dd, Fop=helicon_lop, stepper=cgstep,
    niter=niter, Sop=polydiv_lop, nSop=nd, eps=eps)
    call cgstep_close()
#% _close
    call polydiv_close()
}
