Télécharger cmodfi.eso

Retour à la liste

Numérotation des lignes :

cmodfi
  1. C CMODFI SOURCE PV 17/12/08 21:16:13 9660
  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.  
  44. -INC PPARAM
  45. -INC CCOPTIO
  46. -INC DECHE
  47. *
  48. SEGMENT WR12
  49. REAL*8 EM0(2,NWA(1)),EM1(2,NWA(2)),EM2(2,NWA(3))
  50. REAL*8 EM3(2,NWA(4)),EM4(2,NWA(5)),EM5(2,NWA(6))
  51. REAL*8 EM6(2,NWA(7)),EM7(2,NWA(8)),EM8(2,NWA(9))
  52. REAL*8 SM0(NSTRS),SM1(NSTRS),SM2(NSTRS),SM3(NSTRS)
  53. REAL*8 SM4(NSTRS),SM5(NSTRS),SM6(NSTRS),SM7(NSTRS)
  54. REAL*8 SM8(NSTRS)
  55. ENDSEGMENT
  56. *
  57. DIMENSION NWA(9)
  58. *
  59. ******* Cas d'une formulation isotrope
  60. *
  61. IF(CMATE.EQ.'ISOTROPE') THEN
  62.  
  63. *
  64. JED=0
  65. IF (IFOUR.EQ.-2) JED=1
  66. *
  67. * test sur la branche
  68. *
  69. IF (NBR.EQ.0) THEN
  70. CALL MAXINT(EM0,NWA(1),TPS1,FTPS1,IRET1)
  71. CALL MAXINT(EM0,NWA(1),TPS2,FTPS2,IRET2)
  72. EFIC=(FTPS2+FTPS1)/2
  73. TR=0.
  74. E1=FTPS1
  75. E2=FTPS2
  76. GOTO 10
  77. ELSE IF (NBR.EQ.1) THEN
  78. CALL MAXINT(EM1,NWA(2),TPS1,FTPS1,IRET1)
  79. CALL MAXINT(EM1,NWA(2),TPS2,FTPS2,IRET2)
  80. TR=XMAT(5)
  81. ELSE IF (NBR.EQ.2) THEN
  82. CALL MAXINT(EM2,NWA(3),TPS1,FTPS1,IRET1)
  83. CALL MAXINT(EM2,NWA(3),TPS2,FTPS2,IRET2)
  84. TR=XMAT(7)
  85. ELSE IF (NBR.EQ.3) THEN
  86. CALL MAXINT(EM3,NWA(4),TPS1,FTPS1,IRET1)
  87. CALL MAXINT(EM3,NWA(4),TPS2,FTPS2,IRET2)
  88. TR=XMAT(9)
  89. ELSE IF (NBR.EQ.4) THEN
  90. CALL MAXINT(EM4,NWA(5),TPS1,FTPS1,IRET1)
  91. CALL MAXINT(EM4,NWA(5),TPS2,FTPS2,IRET2)
  92. TR=XMAT(11)
  93. *
  94. * 5 et plus
  95. *
  96. ELSE IF (NBR.EQ.5) THEN
  97. CALL MAXINT(EM5,NWA(6),TPS1,FTPS1,IRET1)
  98. CALL MAXINT(EM5,NWA(6),TPS2,FTPS2,IRET2)
  99. TR=XMAT(16+JED)
  100. ELSE IF (NBR.EQ.6) THEN
  101. CALL MAXINT(EM6,NWA(7),TPS1,FTPS1,IRET1)
  102. CALL MAXINT(EM6,NWA(7),TPS2,FTPS2,IRET2)
  103. TR=XMAT(18+JED)
  104. ELSE IF (NBR.EQ.7) THEN
  105. CALL MAXINT(EM7,NWA(8),TPS1,FTPS1,IRET1)
  106. CALL MAXINT(EM7,NWA(8),TPS2,FTPS2,IRET2)
  107. TR=XMAT(20+JED)
  108. ELSE IF (NBR.EQ.8) THEN
  109. CALL MAXINT(EM8,NWA(9),TPS1,FTPS1,IRET1)
  110. CALL MAXINT(EM8,NWA(9),TPS2,FTPS2,IRET2)
  111. TR=XMAT(22+JED)
  112. ENDIF
  113. *
  114. ******* Cas d'une formulation unidirectionnelle
  115. *
  116. ELSE IF(CMATE.EQ.'UNIDIREC') THEN
  117.  
  118. *
  119. JED=0
  120. IF (IFOUR.EQ.-2) JED=1
  121. IF (IFOUR.EQ. 2) JED=4
  122. *
  123. KED=0
  124. IF (IFOUR.EQ. 2) KED=4
  125.  
  126. * test sur la branche
  127. *
  128. IF (NBR.EQ.0) THEN
  129. CALL MAXINT(EM0,NWA(1),TPS1,FTPS1,IRET1)
  130. CALL MAXINT(EM0,NWA(1),TPS2,FTPS2,IRET2)
  131. EFIC=(FTPS2+FTPS1)/2
  132. TR=0.
  133. E1=FTPS1
  134. E2=FTPS2
  135. GOTO 10
  136. ELSE IF (NBR.EQ.1) THEN
  137. CALL MAXINT(EM1,NWA(2),TPS1,FTPS1,IRET1)
  138. CALL MAXINT(EM1,NWA(2),TPS2,FTPS2,IRET2)
  139. TR=XMAT(6+KED)
  140. ELSE IF (NBR.EQ.2) THEN
  141. CALL MAXINT(EM2,NWA(3),TPS1,FTPS1,IRET1)
  142. CALL MAXINT(EM2,NWA(3),TPS2,FTPS2,IRET2)
  143. TR=XMAT(8+KED)
  144. ELSE IF (NBR.EQ.3) THEN
  145. CALL MAXINT(EM3,NWA(4),TPS1,FTPS1,IRET1)
  146. CALL MAXINT(EM3,NWA(4),TPS2,FTPS2,IRET2)
  147. TR=XMAT(10+KED)
  148. ELSE IF (NBR.EQ.4) THEN
  149. CALL MAXINT(EM4,NWA(5),TPS1,FTPS1,IRET1)
  150. CALL MAXINT(EM4,NWA(5),TPS2,FTPS2,IRET2)
  151. TR=XMAT(12+KED)
  152. *
  153. * 5 et plus
  154. *
  155. ELSE IF (NBR.EQ.5) THEN
  156. CALL MAXINT(EM5,NWA(6),TPS1,FTPS1,IRET1)
  157. CALL MAXINT(EM5,NWA(6),TPS2,FTPS2,IRET2)
  158. TR=XMAT(16+JED)
  159. ELSE IF (NBR.EQ.6) THEN
  160. CALL MAXINT(EM6,NWA(7),TPS1,FTPS1,IRET1)
  161. CALL MAXINT(EM6,NWA(7),TPS2,FTPS2,IRET2)
  162. TR=XMAT(18+JED)
  163. ELSE IF (NBR.EQ.7) THEN
  164. CALL MAXINT(EM7,NWA(8),TPS1,FTPS1,IRET1)
  165. CALL MAXINT(EM7,NWA(8),TPS2,FTPS2,IRET2)
  166. TR=XMAT(20+JED)
  167. ELSE IF (NBR.EQ.8) THEN
  168. CALL MAXINT(EM8,NWA(9),TPS1,FTPS1,IRET1)
  169. CALL MAXINT(EM8,NWA(9),TPS2,FTPS2,IRET2)
  170. TR=XMAT(22+JED)
  171. ENDIF
  172. ENDIF
  173. *
  174. *
  175. E1=FTPS1
  176. E2=FTPS2
  177. IF(TPS2-TPS1.EQ.0.D0) THEN
  178. EFIC =FTPS1
  179. ELSE
  180. EFIC=1.D0/(TR*(TPS2-TPS1))*
  181. 1 ((FTPS1*(1.D0-EXP(-TR*(TPS2-TPS1))))
  182. 2 +(FTPS2-FTPS1)*(1.D0-(1.D0-EXP(-TR*(TPS2-TPS1)))/
  183. 3 (TR*(TPS2-TPS1))))
  184. ENDIF
  185. *
  186. *
  187. 10 IF (IRET1.EQ.0) THEN
  188. CALL ERREUR(854)
  189. RETURN
  190. ELSE IF (IRET2.EQ.0) THEN
  191. CALL ERREUR(854)
  192. RETURN
  193. ENDIF
  194. END
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  

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