Télécharger cmodfi.eso

Retour à la liste

Numérotation des lignes :

  1. C CMODFI SOURCE BP208322 17/03/01 21:15:57 9325
  2. SUBROUTINE CMODFI(TPS1,TPS2,NBR,WR12,wrk52,wrk53,NWA,
  3. 1 EFIC,TR,E1,E2)
  4. C MODFIC SOURCE AM 99/08/13 21:22:31 3647
  5. * SUBROUTINE MODFIC(TPS1,TPS2,NBR,WR12,WRK0,NWA,
  6. * 1 EFIC,TR,E1,E2,KERRE,CMATE)
  7. *
  8. *
  9. *==============================================================
  10. * calcul du module fictif d'une chaine de Maxwell
  11. *==============================================================
  12. *
  13. *
  14. * entrees
  15. *
  16. *
  17. * WRK12
  18. * EMi(2,NWA(i+1)) i=0 a 8
  19. * = EVOLUTION DU MODUE D'YOUNG DE LA BRANCHE i
  20. * SMi(NSTRS) i=1 a 8
  21. * = VARIABLES INTERNES AU DEBUT DU PAS D'INTEGRATION
  22. *
  23. * TPS1 = TEMPS AU DEBUT DU PAS D'INTEGRATION
  24. * TPS2 = TEMPS A LA FIN DU PAS D'INTEGRATION
  25. * NBR = INDICE DE LA CHAINE DE MAXWELL CONCERNEE
  26. * NWA = TABLEAU DES DIMENSIONS DES EVOLUTIONS DES MODULES DE CHAQUE CHAINE
  27. *
  28. *
  29. * sortie
  30. *
  31. * EFIC = MODULE FICTIF DE LA CHAINE DE MAXWELL
  32. * TR = TEMPS DE RELAXATION DE LA CHAINE DE MAXWELL
  33. * E1 = MODULE DE LA CHAINE DE MAXWELL AU DEBUT DU PAS
  34. * E2 = MODULE DE LA CHAINE DE MAXWELL A LA FIN DU PAS
  35. * KERRE = INDICATEUR D'ERREUR
  36. *
  37. *
  38. *
  39. *==============================================================
  40. *
  41. IMPLICIT INTEGER(I-N)
  42. IMPLICIT REAL*8(A-H,O-Z)
  43. -INC CCOPTIO
  44. -INC DECHE
  45. *
  46. SEGMENT WR12
  47. REAL*8 EM0(2,NWA(1)),EM1(2,NWA(2)),EM2(2,NWA(3))
  48. REAL*8 EM3(2,NWA(4)),EM4(2,NWA(5)),EM5(2,NWA(6))
  49. REAL*8 EM6(2,NWA(7)),EM7(2,NWA(8)),EM8(2,NWA(9))
  50. REAL*8 SM0(NSTRS),SM1(NSTRS),SM2(NSTRS),SM3(NSTRS)
  51. REAL*8 SM4(NSTRS),SM5(NSTRS),SM6(NSTRS),SM7(NSTRS)
  52. REAL*8 SM8(NSTRS)
  53. ENDSEGMENT
  54. *
  55. DIMENSION NWA(9)
  56. *
  57. ******* Cas d'une formulation isotrope
  58. *
  59. IF(CMATE.EQ.'ISOTROPE') THEN
  60.  
  61. *
  62. JED=0
  63. IF (IFOUR.EQ.-2) JED=1
  64. *
  65. * test sur la branche
  66. *
  67. IF (NBR.EQ.0) THEN
  68. CALL MAXINT(EM0,NWA(1),TPS1,FTPS1,IRET1)
  69. CALL MAXINT(EM0,NWA(1),TPS2,FTPS2,IRET2)
  70. EFIC=(FTPS2+FTPS1)/2
  71. TR=0.
  72. E1=FTPS1
  73. E2=FTPS2
  74. GOTO 10
  75. ELSE IF (NBR.EQ.1) THEN
  76. CALL MAXINT(EM1,NWA(2),TPS1,FTPS1,IRET1)
  77. CALL MAXINT(EM1,NWA(2),TPS2,FTPS2,IRET2)
  78. TR=XMAT(5)
  79. ELSE IF (NBR.EQ.2) THEN
  80. CALL MAXINT(EM2,NWA(3),TPS1,FTPS1,IRET1)
  81. CALL MAXINT(EM2,NWA(3),TPS2,FTPS2,IRET2)
  82. TR=XMAT(7)
  83. ELSE IF (NBR.EQ.3) THEN
  84. CALL MAXINT(EM3,NWA(4),TPS1,FTPS1,IRET1)
  85. CALL MAXINT(EM3,NWA(4),TPS2,FTPS2,IRET2)
  86. TR=XMAT(9)
  87. ELSE IF (NBR.EQ.4) THEN
  88. CALL MAXINT(EM4,NWA(5),TPS1,FTPS1,IRET1)
  89. CALL MAXINT(EM4,NWA(5),TPS2,FTPS2,IRET2)
  90. TR=XMAT(11)
  91. *
  92. * 5 et plus
  93. *
  94. ELSE IF (NBR.EQ.5) THEN
  95. CALL MAXINT(EM5,NWA(6),TPS1,FTPS1,IRET1)
  96. CALL MAXINT(EM5,NWA(6),TPS2,FTPS2,IRET2)
  97. TR=XMAT(16+JED)
  98. ELSE IF (NBR.EQ.6) THEN
  99. CALL MAXINT(EM6,NWA(7),TPS1,FTPS1,IRET1)
  100. CALL MAXINT(EM6,NWA(7),TPS2,FTPS2,IRET2)
  101. TR=XMAT(18+JED)
  102. ELSE IF (NBR.EQ.7) THEN
  103. CALL MAXINT(EM7,NWA(8),TPS1,FTPS1,IRET1)
  104. CALL MAXINT(EM7,NWA(8),TPS2,FTPS2,IRET2)
  105. TR=XMAT(20+JED)
  106. ELSE IF (NBR.EQ.8) THEN
  107. CALL MAXINT(EM8,NWA(9),TPS1,FTPS1,IRET1)
  108. CALL MAXINT(EM8,NWA(9),TPS2,FTPS2,IRET2)
  109. TR=XMAT(22+JED)
  110. ENDIF
  111. *
  112. ******* Cas d'une formulation unidirectionnelle
  113. *
  114. ELSE IF(CMATE.EQ.'UNIDIREC') THEN
  115.  
  116. *
  117. JED=0
  118. IF (IFOUR.EQ.-2) JED=1
  119. IF (IFOUR.EQ. 2) JED=4
  120. *
  121. KED=0
  122. IF (IFOUR.EQ. 2) KED=4
  123.  
  124. * test sur la branche
  125. *
  126. IF (NBR.EQ.0) THEN
  127. CALL MAXINT(EM0,NWA(1),TPS1,FTPS1,IRET1)
  128. CALL MAXINT(EM0,NWA(1),TPS2,FTPS2,IRET2)
  129. EFIC=(FTPS2+FTPS1)/2
  130. TR=0.
  131. E1=FTPS1
  132. E2=FTPS2
  133. GOTO 10
  134. ELSE IF (NBR.EQ.1) THEN
  135. CALL MAXINT(EM1,NWA(2),TPS1,FTPS1,IRET1)
  136. CALL MAXINT(EM1,NWA(2),TPS2,FTPS2,IRET2)
  137. TR=XMAT(6+KED)
  138. ELSE IF (NBR.EQ.2) THEN
  139. CALL MAXINT(EM2,NWA(3),TPS1,FTPS1,IRET1)
  140. CALL MAXINT(EM2,NWA(3),TPS2,FTPS2,IRET2)
  141. TR=XMAT(8+KED)
  142. ELSE IF (NBR.EQ.3) THEN
  143. CALL MAXINT(EM3,NWA(4),TPS1,FTPS1,IRET1)
  144. CALL MAXINT(EM3,NWA(4),TPS2,FTPS2,IRET2)
  145. TR=XMAT(10+KED)
  146. ELSE IF (NBR.EQ.4) THEN
  147. CALL MAXINT(EM4,NWA(5),TPS1,FTPS1,IRET1)
  148. CALL MAXINT(EM4,NWA(5),TPS2,FTPS2,IRET2)
  149. TR=XMAT(12+KED)
  150. *
  151. * 5 et plus
  152. *
  153. ELSE IF (NBR.EQ.5) THEN
  154. CALL MAXINT(EM5,NWA(6),TPS1,FTPS1,IRET1)
  155. CALL MAXINT(EM5,NWA(6),TPS2,FTPS2,IRET2)
  156. TR=XMAT(16+JED)
  157. ELSE IF (NBR.EQ.6) THEN
  158. CALL MAXINT(EM6,NWA(7),TPS1,FTPS1,IRET1)
  159. CALL MAXINT(EM6,NWA(7),TPS2,FTPS2,IRET2)
  160. TR=XMAT(18+JED)
  161. ELSE IF (NBR.EQ.7) THEN
  162. CALL MAXINT(EM7,NWA(8),TPS1,FTPS1,IRET1)
  163. CALL MAXINT(EM7,NWA(8),TPS2,FTPS2,IRET2)
  164. TR=XMAT(20+JED)
  165. ELSE IF (NBR.EQ.8) THEN
  166. CALL MAXINT(EM8,NWA(9),TPS1,FTPS1,IRET1)
  167. CALL MAXINT(EM8,NWA(9),TPS2,FTPS2,IRET2)
  168. TR=XMAT(22+JED)
  169. ENDIF
  170. ENDIF
  171. *
  172. *
  173. E1=FTPS1
  174. E2=FTPS2
  175. IF(TPS2-TPS1.EQ.0.D0) THEN
  176. EFIC =FTPS1
  177. ELSE
  178. EFIC=1.D0/(TR*(TPS2-TPS1))*
  179. 1 ((FTPS1*(1.D0-EXP(-TR*(TPS2-TPS1))))
  180. 2 +(FTPS2-FTPS1)*(1.D0-(1.D0-EXP(-TR*(TPS2-TPS1)))/
  181. 3 (TR*(TPS2-TPS1))))
  182. ENDIF
  183. *
  184. *
  185. 10 IF (IRET1.EQ.0) THEN
  186. CALL ERREUR(854)
  187. RETURN
  188. ELSE IF (IRET2.EQ.0) THEN
  189. CALL ERREUR(854)
  190. RETURN
  191. ENDIF
  192. END
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  

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