Télécharger calkeq.eso

Retour à la liste

Numérotation des lignes :

  1. C CALKEQ SOURCE PV 20/03/24 21:15:37 10554
  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.  
  31. -INC PPARAM
  32. -INC CCOPTIO
  33. -INC SMCOORD
  34. c
  35. SEGMENT SNTO
  36. INTEGER NTOTMA(NN)
  37. ENDSEGMENT
  38. c
  39. SEGMENT SNTT
  40. INTEGER NTTMAI(NN)
  41. ENDSEGMENT
  42. c
  43. SEGMENT SNOMIN
  44. CHARACTER*4 NOMIN(M)
  45. ENDSEGMENT
  46. c
  47. NN = 0
  48. SEGINI,SNTO
  49. SEGINI,SNTT
  50. c
  51. NUMDEB=NBPTS
  52. IF(IIMPI.GE.1)THEN
  53. CALL GIBTEM(XKT)
  54. INTERR(1)=XKT
  55. CALL ERREUR(-259)
  56. WRITE(IOIMP,10)
  57. ENDIF
  58. 10 FORMAT('Préparation de l assemblage avec ASSEM4')
  59. c
  60. CALL ASSEM4(KRIGI,NOINC,SNOMIN,ICPR,MMATRX,
  61. #INUINX,ITOPOX,INCTRX,IITOPX,NBNNMA,NLIGRA,SNTT,SNTO,DES1)
  62. c
  63. IF(IERR.NE.0) RETURN
  64. IF(IIMPI.GE.1)THEN
  65. CALL GIBTEM(XKT)
  66. INTERR(1)=XKT
  67. CALL ERREUR(-259)
  68. WRITE(IOIMP,11)
  69. ENDIF
  70. NEWKEQ=1
  71. 11 FORMAT('Assemblage avec ASSEM5')
  72. c
  73. CALL ASSEM5(KRIGI,ITOPOX,INUINX,MMATRX,INCTRX
  74. #,IITOPX,NBNNMA,SNTT)
  75. c
  76. IF(IERR.NE.0) RETURN
  77. IF(IIMPI.GE.1)THEN
  78. CALL GIBTEM(XKT)
  79. INTERR(1)=XKT
  80. CALL ERREUR(-259)
  81. WRITE(IOIMP,12)
  82. ENDIF
  83. 12 FORMAT('Début de la triangulation incomplete avec CHOMOD ')
  84. IF(IERR.NE.0) GO TO 5000
  85. c
  86. CALL CHOMOD(MMATRX,NBNNMA,SNTT,SNTO,XMATR1,NLIGRA)
  87. c
  88. IF(IERR.NE.0) RETURN
  89. IF(IIMPI.GE.1)THEN
  90. CALL GIBTEM(XKT)
  91. INTERR(1)=XKT
  92. CALL ERREUR(-259)
  93. WRITE(IOIMP,13)
  94. ENDIF
  95. IF(IERR.NE.0) GO TO 5000
  96. 13 FORMAT('Fin de la triangulation')
  97. 5000 CONTINUE
  98. ICROUT=MMATRX
  99. RETURN
  100. END
  101. c
  102. c
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  

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