*
* $Id$
*
* $Log$
* Revision 1.1  1996/02/28 16:24:08  mclareni
* Initial revision
*
*
#include "hepdb/pilot.h"
      SUBROUTINE CDGPID (PATHN, IDN)
*     ==============================
*
************************************************************************
*                                                                      *
*        SUBR. CDGPID (PATHN, IDN*)                                    *
*                                                                      *
*   Finds the unique directory identifier from the path name           *
*                                                                      *
*   Arguments :                                                        *
*                                                                      *
*     PATHN    Character string describing the pathname                *
*     IDN      Unique directory identifier                             *
*                                                                      *
*   Called by CDDINF, CDEALI, CDEHLP, CDENAM, CDRHLP, CDRNAM, CDGNAM   *
*                                                                      *
*   Error Condition :                                                  *
*                                                                      *
*     IDN       >  0 : No error                                        *
*               =  0 : No dictionary for directory identifier          *
*               <  0 : Illegal path name                               *
*                                                                      *
************************************************************************
*
#include "hepdb/cdcblk.inc"
#include "hepdb/ctpath.inc"
      CHARACTER       PATHN*(*)
*
*     ------------------------------------------------------------------
*
* *** Extract the top directory and the trailing part from the path name
*
      IDN    = 0
      CALL CDWTOP (PATHN, PAT2CT, NCHR)
      IF (NCHR.LE.0)       GO TO 999
*
* *** Find the appropriate dictionary for the directory path name
*
      IF (LBUPCD.LE.0)     GO TO 999
      LDIC   = LQ(KOFUCD+LBUPCD-KLDICD)
      IF (LDIC.LE.0)       GO TO 999
      NITEM  = IQ(KOFUCD+LDIC+MDCNTM)
*
* *** Look up the current path in the dictionary
*
      DO 10 ITEM = 1, NITEM
        IPNT   = KOFUCD + LDIC + (ITEM - 1) * NWITCD + 1
        IF (IQ(IPNT+MDCITM).GT.0) THEN
          IF (NCHR.EQ.IQ(IPNT+MDCNCH)) THEN
            CALL UHTOC (IQ(IPNT+MDCNAM), 4, PAT3CT, NCHR)
            IF (PAT2CT(1:NCHR).EQ.PAT3CT(1:NCHR)) THEN
              IDN    = IQ(IPNT+MDCITM)
              GO TO 999
            ENDIF
          ENDIF
        ENDIF
   10 CONTINUE
*                                                             END CDGPID
  999 END
