Télécharger graco5.eso

Retour à la liste

Numérotation des lignes :

graco5
  1. C GRACO5 SOURCE PV 22/04/15 17:10:52 11344
  2. SUBROUTINE GRACO5(IPREL,IDERL,IPPV,IPPR,IDDR,IVPO,
  3. # IPPVV1,VAL,VAL1,IVPO1,imasq,ittr,incom1,nc)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6. -INC CCHOLE
  7. C
  8. C COPIE DE CHOLE3 POUR FAIRE UN CHOLEVSKI INCOMPLET
  9. C
  10. DIMENSION IPPV(1),IVPO(1),IPPVV1(1),VAL(1),VAL1(1),IVPO1(1)
  11. dimension imasq(1),ittr(1)
  12. IDD2=IPPV(1)
  13. DO 10 J=IPREL,IDERL
  14. incomp=incom1
  15. if (ittr(j).ne.0) incomp=0
  16. JID=J-IPREL+1
  17. IDD3=IPPV(JID+1)
  18. IF(IDD3.NE.1)THEN
  19. DNORM=ABS(VAL(IDD3-1))*PRECC
  20. ELSE
  21. DNORM=0.
  22. ENDIF
  23. N2=IDD3-IDD2
  24. KD2=J-N2+1
  25. N2J=IDD3-J
  26. KIDEP=IVPO(JID)
  27. IBABA=MAX(IPPR,KD2+1)
  28. IF (IBABA.GT.IDDR) GOTO 30
  29. IDEB4=2*IPPVV1(IBABA-IPPR+1)
  30. IDD=IVPO1(IDEB4-1)
  31. ibabad=ibaba
  32. 21 continue
  33. DO 20 JHY=IBABAD,IDDR
  34. I1=JHY+N2J
  35. if(imasq(i1/masdim+1).eq.0) then
  36. ibabad=(i1/masdim+1)*masdim-n2j
  37. goto 21
  38. elseif(imasq(i1/masdim+1).lt.0) then
  39. ibabad=-imasq(i1/masdim+1)-n2j
  40. goto 21
  41. endif
  42. ILM=JHY-IPPR+1
  43. IDEB3=2*IPPVV1(ILM+1)
  44. NNJJ=IVPO1(IDEB3-1)
  45. IF(VAL(I1) .NE.0.D0.or.incomp.eq.0.or.ittr(jhy).ne.0) then
  46. N=NNJJ-IDD
  47. KD1=1+JHY-N
  48. IDEP=MAX(KD2,KD1)
  49. LLOL=JHY-IDEP
  50. LLON=LLOL-I1+KIDEP+1
  51. IF (LLON.GT.0) THEN
  52. P=0.D0
  53. IPOSM=N-LLOL+IDD-2
  54. IPLAC2=N2J+IDEP-1
  55. idebzc=ivpo1(ideb3)
  56. DO 2 IDEB2=IDEB3,IDEB4+2,-2
  57. IAUX=IVPO1(IDEB2-3)-IPOSM
  58. IPLAC=IVPO1(IDEB2-2)-IAUX
  59. IFINZ=MIN(IDEBZC-1,LLON+IPLAC)
  60. IDEBZC=MAX(1,IAUX)+IPLAC
  61. IPLAC3=IPLAC2-IPLAC
  62. lond=ifinz-idebzc+1
  63. if (lond.GT.0) then
  64. ideq=IDEBZC+IPLAC3
  65. if (IFINZ-IDEBZC.GT.masdim) then
  66. p=p+ddotpw(lond,VAL(ideq),VAL1(IDEBZC),
  67. > imasq(1),ideq,nc)
  68. else
  69. if (imasq(ideq/masdim+1).gt.0.or.
  70. > imasq((ifinz+iplac3)/masdim+1).gt.0)
  71. > p=p+ddotpv(lond,VAL(ideq),VAL1(IDEBZC))
  72. if (lond.ge.1) nc=nc+lond
  73. endif
  74. endif
  75. IF (IAUX.LE.1) GOTO 3
  76. 2 CONTINUE
  77. 3 CONTINUE
  78. if (abs(p).LT.dnorm.and.imasq(i1/masdim+1).le.0) goto 5
  79. VAL(I1)=VAL(I1)-P
  80. ENDIF
  81. ENDIF
  82. IF (ABS(VAL(I1)).GT.DNORM) then
  83. if (imasq(i1/masdim+1).le.0) imasq(i1/masdim+1)=1
  84. KIDEP=I1
  85. endif
  86. 5 continue
  87. IDEB4=IDEB3
  88. IDD=NNJJ
  89. 20 CONTINUE
  90. 30 CONTINUE
  91. IVPO(JID)=KIDEP
  92. IDD2=IDD3
  93. 10 CONTINUE
  94. RETURN
  95. END
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  

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