subroutine masset (im1, im2) c c----------------------------------------------------------------------- c routine to define a mass setting range c----------------------------------------------------------------------- c byte line(6), txt(4,6) c integer masses(2,4), itab(2,6), im1, im2 c data txt/'H','+',2*0, 'H','E','+',0, 'H','E','+','+', * 'O','+',2*0, 'O','+','+',0, 'N','+',2*0/ data itab/1, 0, 2, 1, 3, 0, 0, 2, 0, 3, 0, 4/ c c----------------------------------------------------------------------- c *** get mass lookup table *** c----------------------------------------------------------------------- c call mastab (masses) c c----------------------------------------------------------------------- c *** prompt for the mass *** c----------------------------------------------------------------------- c 25 write (*, 50) 50 format(' Give species [e.g. L/H+] or to ', * 'enter settings: ', $) read (*, '(q, 9a1)') n, (line(i),i=1,n) if (n .eq. 0) go to 80 if (n .lt. 4) go to 25 c c----------------------------------------------------------------------- c *** determine if lo/hi mass channel *** c----------------------------------------------------------------------- c ilohi = 0 if (line(1) .eq. 'l' .or. line(1) .eq. 'L') ilohi = 1 if (line(1) .eq. 'h' .or. line(1) .eq. 'H') ilohi = 2 if (ilohi. eq. 0) go to 25 if (line(2) .ne. '/') go to 25 c c----------------------------------------------------------------------- c *** find the mass settings *** c----------------------------------------------------------------------- c do 70 im = 1, 6 do 75 j = 3, n if (txt(j-2, im) .ne. line(j)) go to 70 75 continue ij = itab(ilohi, im) if (ij .eq. 0) go to 25 jm1 = masses(1, ij) jm2 = masses(2, ij) if (ilohi .eq. 1) then jm1 = -4 * jm1 jm2 = -4 * jm2 end if go to 85 70 continue go to 25 c c----------------------------------------------------------------------- c *** enter mass settings explicitly *** c----------------------------------------------------------------------- c 80 write (*, '('' give settings : '', $)') read (*,*) jm1, jm2 85 continue im1 = min0(jm1, jm2) im2 = max0(jm1, jm2) c c----------------------------------------------------------------------- c----------------------------------------------------------------------- c return end