Download nharmo.eso

Back to the list

   1 : C NHARMO    SOURCE    CHAT      05/01/13    01:57:05     5004           
   2 :       SUBROUTINE NHARMO(IPOI1,IPOI2,NHAR,NUMHAR,NMIN,IHARNUM)
   3 : *------------------------------------------------------------------------
   4 : * cette routine sert à determiner le nombre d'harmonique distinctes
   5 : * dans deux champ par points
   6 : * elle sert à la multiplication de deux champ par points
   7 : *
   8 : * les deux champ par points en entrée sont actifs 
   9 : * 
  10 : *------------------------------------------------------------------------
  11 :       IMPLICIT INTEGER(I-N)
  12 :       IMPLICIT REAL*8(A-H,O-Z)
  13 : -INC SMCHPOI
  14 : * ce segment contient les numéro des différents harmoniques trouvées
  15 : * et l'inversion du tableau
  16 :       SEGMENT NUMHAR(NHAR)
  17 :       SEGMENT IHARNUM(NVARH)
  18 : *  ce tableau contient les pointeurs des deux champ point
  19 :       DIMENSION ICHP(2)
  20 : *
  21 : *
  22 : * 
  23 :       MCHPO1 = IPOI1
  24 :       ICHP(1)= IPOI1
  25 :       MCHPO2 = IPOI2
  26 :       ICHP(2)= IPOI2
  27 :       NHAR = 1
  28 :       NMAX = -100000
  29 :       NMIN = +100000
  30 :       SEGINI NUMHAR
  31 : *  boucle sur les deux champ points 
  32 :       DO 300 K=1,2 
  33 :         MCHPO1 = ICHP(K)
  34 : *  boucle sur les sous zones
  35 :         DO 200 I=1,MCHPO1.IPCHP(/1)
  36 :           NSUM = 0
  37 :           MSOUPO = MCHPO1.IPCHP(I)
  38 :           SEGACT MSOUPO 
  39 : *   boucle sur les composantes de la sous zone
  40 :           DO 100 J=1,NOHARM(/1)
  41 :              IF (NOHARM(J) .NE. 0) THEN
  42 :                 DO 50 L=1,NHAR 
  43 :                       IF (NOHARM(J) .EQ. NUMHAR(L)) THEN
  44 :                          GOTO 100
  45 :                        ENDIF
  46 :   50            CONTINUE
  47 :                 NUMHAR(**) = NOHARM(J)
  48 :                 NMAX = MAX(NMAX,NOHARM(J))
  49 :                 NMIN = MIN(NMIN,NOHARM(J))
  50 :               ENDIF
  51 :  100      CONTINUE
  52 :  200    CONTINUE
  53 :  300  CONTINUE
  54 : *
  55 :       NHAR = NUMHAR(/1)
  56 :       NVARH=NMAX-NMIN+1
  57 : * on inverse numhar
  58 : *
  59 :       SEGINI IHARNUM
  60 :       DO 400 I=1,NHAR
  61 :         IHARNUM(NOHARM(I)-NMIN+1)=I
  62 :  400  CONTINUE
  63 : c       
  64 :       RETURN
  65 :       END
  66 :  
  67 :  
  68 :  

© Cast3M 2003 - All rights reserved.
Disclaimer