C NHARMO    SOURCE    CB215821  20/11/25    13:34:49     10792          
      SUBROUTINE NHARMO(IPOI1,IPOI2,NHAR,NUMHAR,NMIN,IHARNUM)
*------------------------------------------------------------------------
* cette routine sert à determiner le nombre d'harmonique distinctes
* dans deux champ par points
* elle sert à la multiplication de deux champ par points
*
* les deux champ par points en entrée sont actifs
*
*------------------------------------------------------------------------
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
-INC SMCHPOI
* ce segment contient les numéro des différents harmoniques trouvées
* et l'inversion du tableau
      SEGMENT NUMHAR(NHAR)
      SEGMENT IHARNUM(NVARH)
*  ce tableau contient les pointeurs des deux champ point
      DIMENSION ICHP(2)
*
*
*
      MCHPO1 = IPOI1
      ICHP(1)= IPOI1
      MCHPO2 = IPOI2
      ICHP(2)= IPOI2
      NHAR = 1
      NMAX = -100000
      NMIN = +100000
      SEGINI NUMHAR
*  boucle sur les deux champ points
      DO 300 K=1,2
        MCHPO1 = ICHP(K)
*  boucle sur les sous zones
        DO 200 I=1,MCHPO1.IPCHP(/1)
          NSUM = 0
          MSOUPO = MCHPO1.IPCHP(I)
          SEGACT MSOUPO
*   boucle sur les composantes de la sous zone
          DO 100 J=1,NOHARM(/1)
             IF (NOHARM(J) .NE. 0) THEN
                DO 50 L=1,NHAR
                      IF (NOHARM(J) .EQ. NUMHAR(L)) THEN
                         GOTO 100
                       ENDIF
  50            CONTINUE
                NUMHAR(**) = NOHARM(J)
                NMAX = MAX(NMAX,NOHARM(J))
                NMIN = MIN(NMIN,NOHARM(J))
              ENDIF
 100      CONTINUE
 200    CONTINUE
 300  CONTINUE
*
      NHAR = NUMHAR(/1)
      NVARH=NMAX-NMIN+1
* on inverse numhar
*
      SEGINI IHARNUM
      DO 400 I=1,NHAR
        IHARNUM(NOHARM(I)-NMIN+1)=I
 400  CONTINUE
c
      RETURN
      END



 
