Télécharger k1k2.eso

Retour à la liste

Numérotation des lignes :

k1k2
  1. C K1K2 SOURCE MB234859 26/06/04 21:15:28 12564
  2. SUBROUTINE K1K2(MELE,MINTE,MINTE1,NBN2,NBN1,NBNN,SWORK,
  3. > KK,KERRE)
  4. C----------------------------------------------------------------------
  5. C
  6. C PASSAGE D'UN SPG DE CHAMELEM VERS UN AUTRE SPG DE DEGRE INFERIEUR ---
  7. C
  8. C----------------------------------------------------------------------
  9. IMPLICIT REAL*8(A-H,O-Z)
  10. -INC CCREEL
  11. -INC PPARAM
  12. -INC CCOPTIO
  13. -INC SMINTE
  14. SEGMENT SWORK
  15. REAL*8 VAL1(NBN1),VAL2(NBN2),VALN(NBN2)
  16. REAL*8 SHP1(6,NBN1),SHP2(6,NBN2),XE(3,NBNN)
  17. ENDSEGMENT
  18. SEGMENT/AMOI/(BM(NBN2,NBN1)*D,AM(NBN2,NBN2)*D,VAL3(NBN1)*D)
  19. C
  20. JDIM=KERRE
  21. IF(JDIM.EQ.0) THEN
  22. KERRE=29
  23. RETURN
  24. ENDIF
  25. C
  26. KERRE=0
  27.  
  28. SEGINI AMOI
  29.  
  30. C Verification cas 2D ou 3D ou 1D plan
  31. IFR = IFOUR+4
  32. GO TO (81,81,81,81,81,82,83,83,83,83,83,83,83,83,83),IFR
  33. 89 KERRE=29
  34. GO TO 99
  35. 81 IDK=3
  36. GO TO 86
  37. 82 IDK=4
  38. GO TO 86
  39. 83 IDK=2
  40. 86 CONTINUE
  41. CCC --- CHAMP SOMMET --> CHAMP CENTRE
  42. ISDJC=0
  43. IF(NBN2.EQ.1) THEN
  44. VV=0.D0
  45. DO 30 IC=1,MINTE1.SHPTOT(/3)
  46. DO 33 ID=1,IDK
  47. DO 331 IE=1,NBN1
  48. SHP1(ID,IE)=MINTE1.SHPTOT(ID,IE,IC)
  49. 331 CONTINUE
  50. 33 CONTINUE
  51. CALL GTEMRD(XE,SHP1,JDIM,NBN1,DJAC)
  52. IF (DJAC.LT.0) ISDJC=ISDJC+1
  53. DJAC=ABS(DJAC)*MINTE1.POIGAU(IC)
  54. IF(IFR.EQ.4.OR.IFR.EQ.5) THEN
  55. CALL DISTRR(XE,SHP1,NBNN,RR)
  56. IF(IFR.EQ.4.OR.(IFR.EQ.5.AND.
  57. + NIFOUR.EQ.0)) THEN
  58. DJAC=DJAC*RR*2*XPI
  59. ELSE
  60. DJAC=DJAC*RR*XPI
  61. ENDIF
  62. ENDIF
  63. DO 31 IB=1,NBN1
  64. VAL3(IB)=VAL3(IB)+SHP1(1,IB)*DJAC
  65. VV=VV+SHP1(1,IB)*DJAC
  66. 31 CONTINUE
  67. 30 CONTINUE
  68. C
  69. IF (ISDJC.NE.0 .AND. ISDJC.NE.MINTE1.SHPTOT(/3)) THEN
  70. KERRE=195
  71. GOTO 99
  72. ENDIF
  73. C
  74. WW=0.D0
  75. DO 32 IB=1,NBN1
  76. WW=WW+VAL3(IB)*VAL1(IB)
  77. 32 CONTINUE
  78. VAL2(1)=WW/VV
  79.  
  80. CCC --- CHAMP SOMMET --> CHAMP CENTREP1 ou MSOMMET
  81. ELSE
  82. VV=0.D0
  83. ISDJC=0
  84. DO 40 IC=1,MINTE1.SHPTOT(/3)
  85. DO 43 ID=1,IDK
  86. DO 431 IE=1,NBN1
  87. SHP1(ID,IE)=MINTE1.SHPTOT(ID,IE,IC)
  88. 431 CONTINUE
  89. DO 432 IE=1,NBN2
  90. SHP2(ID,IE)=SHPTOT(ID,IE,IC)
  91. 432 CONTINUE
  92. 43 CONTINUE
  93. IF (KK.EQ.1) THEN
  94. CALL GTEMRD(XE,SHP1,JDIM,NBNN,DJAC)
  95. IF (DJAC.LT.0) ISDJC=ISDJC+1
  96. DJAC=ABS(DJAC)*MINTE1.POIGAU(IC)
  97. ELSEIF (KK.EQ.2) THEN
  98. CALL GTEMRD(XE,SHP2,JDIM,NBNN,DJAC)
  99. IF (DJAC.LT.0) ISDJC=ISDJC+1
  100. DJAC=ABS(DJAC)*POIGAU(IC)
  101. ENDIF
  102. IF(IFR.EQ.4.OR.IFR.EQ.5) THEN
  103. IF (KK.EQ.1) THEN
  104. CALL DISTRR(XE,SHP1,NBNN,RR)
  105. ELSEIF (KK.EQ.2) THEN
  106. CALL DISTRR(XE,SHP2,NBNN,RR)
  107. ENDIF
  108. IF(IFR.EQ.4.OR.(IFR.EQ.5.AND.
  109. + NIFOUR.EQ.0)) THEN
  110. DJAC=DJAC*RR*2*XPI
  111. ELSE
  112. DJAC=DJAC*RR*XPI
  113. ENDIF
  114. ENDIF
  115. C
  116. C CALCUL DE LA MATRICE ET DU SECOND MEMBRE
  117. C
  118. DO 20 IA=1,NBN2
  119. DO 21 IB=1,NBN1
  120. BM(IA,IB)=BM(IA,IB)+SHP1(1,IB)*SHP2(1,IA)*DJAC
  121. 21 CONTINUE
  122. DO 22 IB=1,NBN2
  123. AM(IA,IB)=AM(IA,IB)+SHP2(1,IB)*SHP2(1,IA)*DJAC
  124. 22 CONTINUE
  125. 20 CONTINUE
  126. 40 CONTINUE
  127. C
  128. IF (ISDJC.NE.0 .AND. ISDJC.NE.MINTE1.SHPTOT(/3)) THEN
  129. KERRE=195
  130. GOTO 99
  131. ENDIF
  132. C WRITE(6,77883)((BM(I,J),J=1,NBN1),I=1,NBN2)
  133. C77883 FORMAT(' MATRICE BM '/(6(1X,1PE12.5)/))
  134. C WRITE(6,77884)((AM(I,J),J=1,NBN2),I=1,NBN2)
  135. C77884 FORMAT(' MATRICE AM '/(6(1X,1PE12.5)/))
  136. SOM=0.D0
  137. DO 63 IA=1,NBN2
  138. SOM=SOM+AM(IA,IA)
  139. 63 CONTINUE
  140. IF(SOM.EQ.0.D0) THEN
  141. KERRE=358
  142. GO TO 99
  143. ENDIF
  144. PREC=1.D-40
  145. CALL INVALM(AM,NBN2,NBN2,KERRE,PREC)
  146. C WRITE(6,77885)((AM(I,J),J=1,NBN2),I=1,NBN2)
  147. C77885 FORMAT(' MATRICE A-1'/(6(1X,1PE12.5)/))
  148. C
  149. C T{AUTRES} = (inve(A))*B*T{SOMMET}
  150. C
  151. DO 36 IA=1,NBN2
  152. SS=0.
  153. DO 37 IB=1,NBN1
  154. SS=SS+BM(IA,IB)*VAL1(IB)
  155. 37 CONTINUE
  156. VALN(IA)=SS
  157. 36 CONTINUE
  158.  
  159. DO 48 IA=1,NBN2
  160. SS=0.
  161. DO 49 IB=1,NBN2
  162. SS=SS+AM(IA,IB)*VALN(IB)
  163. 49 CONTINUE
  164. VAL2(IA)=SS
  165. 48 CONTINUE
  166. ENDIF
  167.  
  168.  
  169. 99 CONTINUE
  170. SEGSUP AMOI
  171. CC ENDIF
  172. C
  173. RETURN
  174. END
  175.  
  176.  

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