!=======================================================================
      integer function mitcplr_match_comp( carg )
      implicit none
! Predefined constants/arrays
#include "CPLR_SIG.h"
! Arguments
      character*(*) carg
! Local
      integer j,jmatch
!     ------------------------------------------------------------------

      if ( carg .EQ. coupler_Name ) then
       mitcplr_match_comp=-1
       stop 'mitcplr_match_comp: I should not reach this point'
      else

! Search through list of components
      jmatch=0
      do j=1,num_components
       if ( carg .EQ. component_List(j) ) then
        if ( jmatch .NE. 0 ) then
         if (DEBUG) write(0,*) 'mitcplr_match_comp: String arg = ',carg
         stop 'mitcplr_match_comp: More than one match to string'
        else
         jmatch=j
        endif
       endif
      enddo

! If no matches, create entry in list
      if ( jmatch .EQ. 0) then
       if ( num_components .EQ. MAX_COMPONENTS ) then
        stop 'mitcplr_match_comp: Too many components types entered'
       endif
       num_components=num_components+1
       jmatch=num_components
       call mitcplr_initcomp( jmatch, carg )
      endif

! Return index within list
      mitcplr_match_comp=jmatch

      endif

!     ------------------------------------------------------------------
      return
      end
!=======================================================================
