Télécharger calkeq.eso

Retour à la liste

Numérotation des lignes :

  1. C CALKEQ SOURCE CHAT 09/10/09 21:16:09 6519
  2. SUBROUTINE CALKEQ(KRIGI,NOINC,SNOMIN,ICPR,XMATR1,DES1,ICROUT)
  3. c=======================================================================
  4. c assemble les petites matrices rigidite et calcule la matrice de
  5. c rigidite equivalente du super element
  6. c
  7. c entrée
  8. c---------
  9. c KRIGI : matrice de rigidté initiale moins les relations
  10. c portant uniquement sur les ddl maitres
  11. c NOINC : (i,j) si la ieme inconnue de snomin existe pour le j ieme
  12. c noeud maitre
  13. c SNOMIN: tableau des composantes primales de KRIGI
  14. c ICPR : numerotation locale des noeuds maitres
  15. c
  16. c sortie
  17. c---------
  18. c XMATR1 : contient la matrice de rigidité condensée
  19. c DES1 : contient le descripteur (DESCR SMRIGID) de
  20. c cette matrice
  21. c ICROUT : contient le segment MMATRI de la matrice
  22. c partiellement triangulée
  23. c
  24. c appelé par SUPRI
  25. c=======================================================================
  26. c
  27. IMPLICIT INTEGER(I-N)
  28. IMPLICIT REAL*8(A-H,O-Z)
  29. -INC SMRIGID
  30. -INC CCOPTIO
  31. -INC SMCOORD
  32. c
  33. SEGMENT SNTO
  34. INTEGER NTOTMA(NN)
  35. ENDSEGMENT
  36. c
  37. SEGMENT SNTT
  38. INTEGER NTTMAI(NN)
  39. ENDSEGMENT
  40. c
  41. SEGMENT SNOMIN
  42. CHARACTER*4 NOMIN(M)
  43. ENDSEGMENT
  44. c
  45. NN = 0
  46. SEGINI,SNTO
  47. SEGINI,SNTT
  48. c
  49. NUMDEB=XCOOR(/1)/(IDIM+1)
  50. IF(IIMPI.GE.1)THEN
  51. CALL GIBTEM(XKT)
  52. INTERR(1)=XKT
  53. CALL ERREUR(-259)
  54. WRITE(IOIMP,10)
  55. ENDIF
  56. 10 FORMAT('Préparation de l assemblage avec ASSEM4')
  57. c
  58. CALL ASSEM4(KRIGI,NOINC,SNOMIN,ICPR,MMATRX,
  59. #INUINX,ITOPOX,INCTRX,IITOPX,NBNNMA,NLIGRA,SNTT,SNTO,DES1)
  60. c
  61. IF(IERR.NE.0) RETURN
  62. IF(IIMPI.GE.1)THEN
  63. CALL GIBTEM(XKT)
  64. INTERR(1)=XKT
  65. CALL ERREUR(-259)
  66. WRITE(IOIMP,11)
  67. ENDIF
  68. NEWKEQ=1
  69. 11 FORMAT('Assemblage avec ASSEM5')
  70. c
  71. CALL ASSEM5(KRIGI,ITOPOX,INUINX,MMATRX,INCTRX
  72. #,IITOPX,NBNNMA,SNTT)
  73. c
  74. IF(IERR.NE.0) RETURN
  75. IF(IIMPI.GE.1)THEN
  76. CALL GIBTEM(XKT)
  77. INTERR(1)=XKT
  78. CALL ERREUR(-259)
  79. WRITE(IOIMP,12)
  80. ENDIF
  81. 12 FORMAT('Début de la triangulation incomplete avec CHOMOD ')
  82. IF(IERR.NE.0) GO TO 5000
  83. c
  84. CALL CHOMOD(MMATRX,NBNNMA,SNTT,SNTO,XMATR1,NLIGRA)
  85. c
  86. IF(IERR.NE.0) RETURN
  87. IF(IIMPI.GE.1)THEN
  88. CALL GIBTEM(XKT)
  89. INTERR(1)=XKT
  90. CALL ERREUR(-259)
  91. WRITE(IOIMP,13)
  92. ENDIF
  93. IF(IERR.NE.0) GO TO 5000
  94. 13 FORMAT('Fin de la triangulation')
  95. 5000 CONTINUE
  96. ICROUT=MMATRX
  97. NBPTS=NUMDEB
  98. RETURN
  99. END
  100. c
  101. c
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  

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