Télécharger monde1.eso

Retour à la liste

Numérotation des lignes :

  1. C MONDE1 SOURCE PV 15/07/29 15:39:46 8593
  2. SUBROUTINE MONDE1 (IPPVV,VECTBB,VAL,IVPO,
  3. > NA,IPREL,MULRE,INC,IFIB,dnorm)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6. DIMENSION VECTBB(*),VAL(*),IVPO(*),IPPVV(*)
  7.  
  8. * nombres de groupes (incluant la diagonale)
  9. nbg=ippvv(2)-1
  10. * longueur de la premiere ligne
  11. lpl=ivpo(2*(nbg+1))-ivpo(2*1)
  12. * nb termes premiere ligne
  13. nval=ivpo(2*(nbg+1)-1)-ivpo(2*1-1)
  14. * la partie triangulaire = le dernier groupe
  15. do 200 k=0,(mulre-1)*inc,inc
  16. ig=nbg
  17. do 120 ilm=na,1,-1
  18. ii=iprel-1+ilm
  19. vkon=vectbb(ii+k)
  20. if (abs(vkon).lt.dnorm) goto 120
  21. ildeb=ivpo(2*ig)
  22. ilfin=ildeb+ilm-1
  23. ideb=ivpo(2*ig-1)
  24. ifin=ideb+ilfin-ildeb
  25. * dans le groupe
  26. jdec=-ideb+ildeb+lpl*(ilm-1)+((ilm-1)*(ilm-2))/2
  27. do 130 j=ifin-1,ideb,-1
  28. ipos=j-nval +iprel
  29. jpos=j+jdec
  30. vectbb(ipos+k)=vectbb(ipos+k)-vkon*val(jpos)
  31. 130 continue
  32. 120 continue
  33. * les groupes (hors groupe diagonal)
  34. ** jdecb = lpl*na+((na)*(na-1))/2
  35. ilfin=ivpo(2*1)-1
  36. do 10 ig=1,nbg-1
  37. * ildeb=ivpo(2*ig)
  38. ildeb=ilfin+1
  39. ilfin=ivpo(2*(ig+1))-1
  40. ideb=ivpo(2*ig-1)
  41. ifin=ilfin+ideb-ildeb
  42. * les lignes
  43. * dans le groupe
  44. ** jdec = jdecb-(ideb-ildeb)
  45. jdec = -(ideb-ildeb)
  46. do 30 j=ideb,ifin
  47. ipos=j-nval+iprel
  48. p1=vectbb(ipos+k)
  49. * jpos=j-ideb+ildeb+lpl*(ilm-1)+((ilm-1)*(ilm-2))/2
  50. jpos=j+jdec
  51. do 20 ilm=1,na
  52. ** jpos=jpos-ilm+1-lpl
  53. ii=iprel-1+ilm
  54. p1=p1-vectbb(ii+k)*val(jpos)
  55. jpos=jpos+ilm-1+lpl
  56. 20 continue
  57. vectbb(ipos+k)=p1
  58. 30 continue
  59. 10 continue
  60. 200 continue
  61. return
  62. end
  63.  
  64.  
  65.  
  66.  

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