C SINON     SOURCE    CB215821  24/07/17    21:15:18     11961          
C  INSTRUCTION SINON
C
      SUBROUTINE SINON
      IMPLICIT INTEGER(I-N)

-INC PPARAM
-INC CCOPTIO
-INC CCNOYAU
-INC SMBLOC
-INC CCREDLE

      character*(LOCHAI) chauer
      CHARACTER*8 IJCH
      CHARACTER*4 MCLE(7),ICHG
      DIMENSION IMOTCO(7)
      SAVE IMOTCO
      DATA MCLE/'SI  ','SINO','FINS','REPE','FIN ','FINP','FINM'/
      DATA IMOTCO(1)/-1/

* TC on met en commentaire la suite car pas possible
* de tester l'imbrication des bloc et des si ( les cartes des
* procedures sont deja lues mais pas execute
C      IF(MBFONC.EQ.0) THEN
C         NOMLU=0
C         MTXBLC=MTXBL
C         NN=NINSTV
C         IIPS=1
C         IREPET=0
C  106    CONTINUE
C         MBCOUR=MBCOUR+1
C         IF(MBCOUR.GT.NN) THEN
C            CALL ERREUR(520)
C            MBCOUR=MBCOUR-1
C            RETURN
C         ENDIF
C         IDEF= MTXBA(MBCOUR)
C         IPLAC=MTXBLA(IDEF+1)
C         IF(INOOB2(IPLAC).NE.'MOT     ') GO TO 106
C         IP=IOUEP2(IPLAC)
C         IDEBCH=IPCHAR(IP)
C         IFINCH=IPCHAR(IP+1)-1
C         ICHG=ICHARA(IDEBCH:IFINCH)
C         IF(ICHG.EQ.'FINS') THEN
C           IIPS=IIPS-1
C         ELSEIF(ICHG.EQ.'SI  ')  THEN
C           IIPS=IIPS+1
C         ELSEIF(ICHG.EQ.'FINP'.OR.ICHG.EQ.'FINM') THEN
CC           MBCOUR=MBCOUR-1
C           CALL ERREUR (521)
C           RETURN
C         ENDIF
C         IF(IIPS.EQ.0)   RETURN
C         GO TO 106
C      ENDIF
      IPSI=0
      IREPET=0
      ilupoy=0
   1  CONTINUE
      CALL NOUTRU
      if(ilupoy.eq.0) then
        lectab=1
        call quetyp (ijch, 1,iretou)
        IF(IERR.NE.0) RETURN
        sredle=iredle
        chauer = text
      endif
*  POUR NE PAS ETRE GENE PAR LA RECHERCHE DE L'INDICE DE LA TABLE
      LECTAB=1
      CALL LIRMO3(MCLE,7,IR,0,IMOTCO)
      IF (IERR.NE.0) RETURN
      ilupoy=ilupoy+1
      GOTO (10,20,30,40,50,60,60),IR
  10  CONTINUE
      IPSI=IPSI+1
      GOTO 1
  20  CONTINUE
      GOTO 1
  30  CONTINUE
      IF (IPSI.EQ.0) THEN
         IF(IREPET.NE.0) THEN
           moterr =chauer
           CALL ERREUR(520)
         ENDIF
         RETURN
      ENDIF
      IPSI=IPSI-1
      GOTO 1
  40  CONTINUE
  
      CALL REPETE(1)
      IF (IERR.NE.0) RETURN
C  NE FAIRE QU'UNE SEULE FOIS LA BOUCLE
      IREPET=IREPET + 1
      MBCONT=1
      GOTO 1
      
  50  CONTINUE
      CALL QUETYP( IJCH, 0, IRETOU)
      IF(IERR.NE.0) RETURN
      
      IF( IRETOU.EQ.0) GO TO 1
      IF(IREPET.EQ.0) THEN
       MBCOUR = MBCOUR - 1
       moterr =chauer
       CALL ERREUR (520)
       RETURN
      ENDIF
      CALL FIN
      IF(IERR.NE.0) RETURN
      IREPET=IREPET -1
      GOTO 1
      
   60 CONTINUE
      MBCOUR = MBCOUR - 1
      moterr =chauer
      CALL ERREUR (521)
      RETURN
      END





 
 
 
 
