Télécharger nharmo.eso

Retour à la liste

Numérotation des lignes :

nharmo
  1. C NHARMO SOURCE CB215821 20/11/25 13:34:49 10792
  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.  
  69.  
  70.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales