      subroutine fismt (reac,mt)
c
c     this routine returns a FISPACT reaction number for a 
c        reaction description
c
c     ******************************************************************
c
c     input:
c        reac   a4    reaction description
c
c     output
c        mt     i     FISPACT reaction number
c
c     ******************************************************************
c
      character*4    reac
      integer        mt
c
      integer        maxr
      parameter      (maxr = 29)
      character*4    reac1
      character*4    mtc(maxr)
      integer        itemp,lis
      integer        mtt(maxr)
      data           mtc /'n   ','2n  ','3n  ','f   ','na  ','n3a ',
     1                    '2na ','3na ','np  ','n2a ','2n2a','nd  ',
     2                    'nt  ','nh  ','nd2a','nt2a','4n  ','g   ',
     3                    'p   ','d   ','t   ','h   ','a   ','2a  ',
     4                    '3a  ','2p  ','pa  ','t2a ','d2a '/
      data           mtt / 4    , 16   , 17   , 18   , 22   , 23   ,
     1                     24   , 25   , 28   , 29   , 30   , 32   ,
     2                     33   , 34   , 35   , 36   , 37   , 102  ,
     3                     103  , 104  , 105  , 106  , 107  , 108  ,
     4                     109  , 111  , 112  , 113  , 114  /
c
c     find isomer state
      lis = 0
      reac1 = reac
      do 10 itemp = 4,2,-1
         if (reac1(itemp:itemp) .eq. '*') then
            lis = lis+1
         else if (reac1(itemp:itemp) .ne. ' ') then
            go to 20
         endif
         reac1(itemp:itemp)= ' '
10    continue
20    continue
c
c     find mt
      do 30 itemp = 1,maxr
         if (reac1 .eq. mtc(itemp)) go to 40
30    continue 
      write (6,601) reac
      mt = -999
      return
40    mt = 10*mtt(itemp)+lis
      return
c
601   format (' ERROR  could not find mt for ',a)
      end
