Télécharger ottvab.eso

Retour à la liste

Numérotation des lignes :

ottvab
  1. C OTTVAB SOURCE FD218221 21/06/10 21:15:45 11030
  2. SUBROUTINE OTTVAB(SS1,VV1,XVAL,NDEF,MCN,MCO,SS2,VV2,
  3. & OO,TOL,RCZ,KR1,KR2,KR3,QV1,QV2,QV3,PWX,XC,IERUT)
  4. *
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8 (A-H,O-Z)
  7. DIMENSION SS1(*),VV1(*),XVAL(*),SS2(*),VV2(*)
  8. DIMENSION RCZ(*),QV1(MCN,*),QV2(MCN,*),QV3(*),PWX(*)
  9. DIMENSION KR1(*),KR2(*),KR3(*),XC(*)
  10. DIMENSION OO(3,3),KR4(10)
  11. DATA KR4/1,0,0,2,0,0,3,0,0,0/
  12. *
  13. MCO=0
  14. DO I=1,MCN
  15. KR1(I)=0
  16. KR2(I)=0
  17. KR3(I)=0
  18. ENDDO
  19. DO 100 KV0=1,MCN
  20. KV1=0
  21. CALL OTTVAC(SS1,VV1,XVAL,NDEF,VV2,OO,
  22. & XC,RCZ,KV0,KV1,TOL,IERUT)
  23. IF(IERUT.NE.0) RETURN
  24. IF(RCZ(KV0).GT.TOL) THEN
  25. IERUT=2
  26. GO TO 99
  27. ENDIF
  28. IF(ABS(RCZ(KV0)).GT.TOL) THEN
  29. GO TO 100
  30. ENDIF
  31. CALL OTTVAI(VV1,XVAL,VV2,SCRI,KV0,IERUT)
  32. IF(IERUT.NE.0) RETURN
  33. IF(KV0.NE.1.AND.KV0.NE.4.AND.KV0.NE.7) THEN
  34. IF(SCRI.GT.0.) THEN
  35. KR1(KV0)=1
  36. ENDIF
  37. ELSE
  38. IF(SCRI.GT.-TOL) THEN
  39. KR1(KV0)=1
  40. ENDIF
  41. ENDIF
  42. IF(KV0.EQ.2.OR.KV0.EQ.3.OR.KV0.EQ.5.OR.KV0.EQ.6
  43. & .OR.KV0.EQ.8.OR.KV0.EQ.9) THEN
  44. IF( ABS(SCRI).LE.TOL) THEN
  45. KR1(KV0)=2
  46. ENDIF
  47. ENDIF
  48. CALL OTTVAD(SS1,VV1,XVAL,NDEF,VV2,XC,
  49. & TOL,QV1,QV2,QV3,KV0,KR1,MCN,IERUT)
  50. IF(IERUT.NE.0) RETURN
  51. *
  52. WO0 = 0.
  53. DO J=1,NDEF
  54. WO0 = WO0 + QV1(KV0,J)*SS2(J)
  55. ENDDO
  56. PWX(KV0) = WO0
  57. IF (PWX(KV0).LT.-TOL) GO TO 100
  58. IF(ABS(PWX(KV0)).LE.TOL) THEN
  59. IF(KV0.EQ.3.AND.SS2(1).LE.0.) GO TO 100
  60. IF(KV0.EQ.6.AND.SS2(2).LE.0.) GO TO 100
  61. IF(KV0.EQ.9.AND.SS2(3).LE.0.) GO TO 100
  62. IF(KV0.EQ.2.AND.SS2(1).GE.0.) GO TO 100
  63. IF(KV0.EQ.5.AND.SS2(2).GE.0.) GO TO 100
  64. IF(KV0.EQ.8.AND.SS2(3).GE.0.) GO TO 100
  65. ENDIF
  66. IF(KV0.EQ.1.OR.KV0.EQ.4.OR.KV0.EQ.7) THEN
  67. RTRAC=XVAL(3)
  68. KV0C = KR4(KV0)
  69. XLAM1 = VV1(2*(KV0C-1)+1)
  70. XLAMAX = VV1(2*(KV0C-1)+2)
  71. IF(ABS(XLAM1-XLAMAX)*RTRAC.LE.TOL) THEN
  72. MCO = MCO + 1
  73. KR2(MCO) = KV0
  74. KR3(KV0) = 1
  75. ENDIF
  76. ELSE
  77. IF(KR1(KV0).NE.2) THEN
  78. IF((KV0.EQ.2.OR.KV0.EQ.3).AND.KR3(1).EQ.1) GO TO 10
  79. IF((KV0.EQ.5.OR.KV0.EQ.6).AND.KR3(4).EQ.1) GO TO 10
  80. IF((KV0.EQ.8.OR.KV0.EQ.9).AND.KR3(7).EQ.1) GO TO 10
  81. MCO = MCO + 1
  82. KR2(MCO) = KV0
  83. KR3(KV0) = 1
  84. 10 CONTINUE
  85. ENDIF
  86. ENDIF
  87. 100 CONTINUE
  88. *
  89. DO I=1,3
  90. I3=3*I
  91. IF(KR3(I3)+KR3(I3-1)+KR3(I3-2).GT.1) THEN
  92. IERUT=2
  93. GO TO 99
  94. ENDIF
  95. ENDDO
  96. RETURN
  97. 99 CONTINUE
  98. IERUT = 1
  99. RETURN
  100. END
  101.  
  102.  
  103.  

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