This is the EDUSOFT call.
The F90 calling sequence is:
! Input arguments :
integer :: edumode ! 0 diagnostic mode
! 1 timing mode
! 2 reduced imaging (threshold) mode
! 3 imaging mode
type(edu_pattern) :: edupat(edu_npat) ! initialized by pat_init().
integer(kind=int32) :: dx ! x size of the input image.
integer(kind=int32) :: dy ! y size of the input image.
integer(kind=int16), dimension(dx,dy) :: im ! input image.
integer(kind=int16) :: threshold ! EDU threshold.
! x EDU offset (must contain at least x0+dx data).
integer(kind=int16), dimension(0:x0+dx-1) :: offX
! y EDU offset (must contain at least y0+dy data).
integer(kind=int16), dimension(0:y0+dy-1) :: offY
! x coordinate of the closest pixel to the output CCD node.
integer(kind=int32) :: x0
! y coordinate of the closest pixel to the output CCD node.
integer(kind=int32) :: y0
! es_nmax : Maximum number of events that can be found in a frame by EDUSOFT.
! (See declaration subsection).
! Output argument :
! Data structure containing the EDUSOFT output event list.
type(edu_out) :: eduout
call edusoft(edumode,edupat,dx,dy,im,threshold, &
offX(0:x0+dx-1),offY(0:y0+dy-1),x0,y0,es_nmax,eduout)