*
* $Id$
*
* $Log$
* Revision 1.1  1996/02/14 13:10:38  mclareni
* Initial revision
*
*
#include "higz/pilot.h"
*CMZ :  1.14/00 05/02/92  18.55.08  by  O.Couet
*-- Author :    O.Couet   07/01/92
      SUBROUTINE IGSTR(ISTID,CHOPT)
*.===========>
*.
*.  This routine allows to manage PHIGS structures. If HIGZ
*. is build without PHIGS, it just do nothing.
*.
*. _Input parameters:
*.
*.  INTEGER IST : Structure identifier
*.  CHARACTER CHOPT : Option
*.
*.      'O' open structure ISTID
*.      'N' open structure with name set
*.      'C' close structure
*.      'E' append structure ISTID in the current opened structure
*.      'D' delete all structures
*.      'P' post the structure on the active workstations
*.
*..==========> (O.Couet)
      CHARACTER*(*) CHOPT
#if defined(CERNLIB_PHIGS)
#include "higz/hiatt.inc"
#include "higz/hiphig.inc"
      DIMENSION IOPT(6)
      EQUIVALENCE (IOPTO,IOPT(1)),(IOPTN,IOPT(2))
      EQUIVALENCE (IOPTC,IOPT(3)),(IOPTE,IOPT(4))
      EQUIVALENCE (IOPTD,IOPT(5)),(IOPTP,IOPT(6))
      COMMON /NAMESET/ NSNO
*.______________________________________
*
      CALL UOPTC(CHOPT,'ONCEDP',IOPT)
*
      IF(IDIM.NE.3)RETURN
*
*              Open a new structure ISTID
*
      IF(IOPTO.NE.0)THEN
         CALL POPST(ISTID)
         LOSTOP=.TRUE.
      ENDIF
*
*              Close the current opened structure (ISTID not used)
*
      IF(IOPTC.NE.0)THEN
         CALL PCLST
         LOSTOP=.FALSE.
      ENDIF
*
*              Extend the current opened structure with the stucture ISTID
*
      IF (IOPTE.NE.0) THEN
         CALL PEXST(ISTID)
      ENDIF
*
*              Open structure with name set
*
      IF (IOPTN.NE.0) THEN
         CALL POPST(ISTID)
         CALL PADS(1,NSNO)
         NSNO=NSNO+1
         LOSTOP=.TRUE.
      ENDIF
*
*              Post structure
*
      IF(IOPTP.NE.0)THEN
         DO 10 I=1,INOPWK
            IF(IGIWTY(ILOPWK(I)).GT.0.AND.ACWKFL(I))THEN
               CALL PPOST(ILOPWK(I),ISTID,1.)
            ENDIF
   10    CONTINUE
      ENDIF
*
*              Delete all structures
*
      IF(IOPTD.NE.0)THEN
         CALL PDAS
         LOSTEX=.FALSE.
      ENDIF
*
#endif
      END
