Télécharger modico.eso

Retour à la liste

Numérotation des lignes :

modico
  1. C MODICO SOURCE CB215821 19/10/08 21:15:14 10329
  2. SUBROUTINE MODICO(IPOI1,IEV1,ISOUS,ICOMP,IGA,IDR,
  3. * IEVG,IEVD,XVA,IVA,IEV)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6. -INC SMCHAML
  7.  
  8. -INC PPARAM
  9. -INC CCOPTIO
  10. -INC SMEVOLL
  11. -INC SMLREEL
  12. -INC SMNUAGE
  13. POINTEUR MLREE4.MLREEL
  14. MCHEL1=IPOI1
  15. MCHAM1=MCHEL1.ICHAML(ISOUS)
  16. MELVA1=MCHAM1.IELVAL(ICOMP)
  17. MNUAGE=MELVA1.IELCHE(1,1)
  18. NVFLO=0
  19. IA1=0
  20. IA2=0
  21. DO 203 INO=1,NUANOM(/2)
  22. IF (NUATYP(INO).EQ.'FLOTTANT')THEN
  23. IF (NVFLO.EQ.0)THEN
  24. IA1=INO
  25. ENDIF
  26. IF (NVFLO.EQ.1)THEN
  27. IA2=INO
  28. ENDIF
  29. NVFLO=NVFLO+1
  30. ENDIF
  31. 203 CONTINUE
  32. DO 204 IB=1,NUANOM(/2)
  33. IF (NUATYP(IB).EQ.'EVOLUTIO') GOTO 205
  34. 204 CONTINUE
  35. 205 NUAVFL=NUAPOI(IA1)
  36. IF (NVFLO.EQ.2.AND.IVA.EQ.2) THEN
  37. NUAVF1=NUAPOI(IA2)
  38. ENDIF
  39. NUAVIN=NUAPOI(IB)
  40. C
  41. MEVOL1=IEVG
  42. MEVOL2=IEVD
  43. KEVOL1=MEVOL1.IEVOLL(1)
  44. KEVOL2=MEVOL2.IEVOLL(1)
  45. MLREEL=KEVOL1.IPROGX
  46. MLREE1=KEVOL1.IPROGY
  47. MLREE2=KEVOL2.IPROGX
  48. MLREE3=KEVOL2.IPROGY
  49. XX=PROG(2)-MLREE2.PROG(2)
  50. YOGA=MLREE1.PROG(2)/PROG(2)
  51. YODR=MLREE3.PROG(2)/MLREE2.PROG(2)
  52. C
  53. C interpolation linéaire de module d'YOUNG
  54. C et de la contrainte de limite élastique
  55. C
  56. IF (IVA.EQ.1)THEN
  57. YOU1=(YOGA-YODR)/(NUAFLO(IGA)-NUAFLO(IDR))*
  58. & (XVA-NUAFLO(IDR))+YODR
  59. SIGY=(MLREE1.PROG(2)-MLREE3.PROG(2))/
  60. & (NUAFLO(IGA)-NUAFLO(IDR))*
  61. & (XVA-NUAFLO(IDR))+MLREE3.PROG(2)
  62. ENDIF
  63. IF (IVA.EQ.2)THEN
  64. YOU1=(YOGA-YODR)/(NUAVF1.NUAFLO(IGA)-NUAVF1.NUAFLO(IDR))*
  65. & (XVA-NUAVF1.NUAFLO(IDR))+YODR
  66. SIGY=(MLREE1.PROG(2)-MLREE3.PROG(2))/
  67. & (NUAVF1.NUAFLO(IGA)-NUAVF1.NUAFLO(IDR))*
  68. & (XVA-NUAVF1.NUAFLO(IDR))+MLREE3.PROG(2)
  69. ENDIF
  70.  
  71. MEVOL1=IEV1
  72. SEGINI,MEVOLL=MEVOL1
  73. IEV=MEVOLL
  74. KEVOL1=IEVOLL(1)
  75. SEGINI,KEVOLL=KEVOL1
  76. IEVOLL(1)=KEVOLL
  77. MLREE1=IPROGX
  78. MLREE2=IPROGY
  79. SEGINI,MLREE3=MLREE1
  80. IPROGX=MLREE3
  81. SEGINI,MLREE4=MLREE2
  82. IPROGY=MLREE4
  83. YOU2=MLREE4.PROG(2)/MLREE3.PROG(2)
  84. C On teste le module d'Young
  85. TEST2=ABS((YOU2 - YOU1)/YOU2)
  86. IF (TEST2.GT.1.D-10) THEN
  87. IEV=0
  88. INTERR(1)=IEV1
  89. MOTERR(1:30)='est mal interpolé. Voir MODICO'
  90. CALL ERREUR(633)
  91. RETURN
  92. ENDIF
  93. C On modifie la courbe de traction : le point 2 sur
  94. C la courbe est le point d'intersection de 2 droite
  95. IF (MLREE3.PROG(/1).GT.3) THEN
  96. X1=MLREE3.PROG(3)
  97. X2=MLREE3.PROG(4)
  98. Y1=MLREE4.PROG(3)
  99. Y2=MLREE4.PROG(4)
  100. IF (ABS(XX).GT.1.D-20) THEN
  101. XK2=(Y1-Y2)/(X1-X2)
  102. X2NEW=(XK2*X1-Y1)/(XK2-YOU1)
  103. Y2NEW=YOU1*X2NEW
  104. MLREE3.PROG(2)=X2NEW
  105. MLREE4.PROG(2)=Y2NEW
  106. C write(6,*) 'K : ',XK2
  107. C write(6,*) 'X1 : ',X1
  108. C write(6,*) 'E : ',YOU1
  109. C write(6,*) 'Y1 : ',Y1
  110. C write(6,*) 'e_new : ',X2new
  111. C write(6,*) 'Y_new : ',Y2NEW
  112. C write(6,*) ' '
  113. C write(6,*) '----------------------------------------'
  114. ENDIF
  115. ENDIF
  116. END
  117.  
  118.  

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