Télécharger ldmt1.eso

Retour à la liste

Numérotation des lignes :

ldmt1
  1. C LDMT1 SOURCE GOUNAND 24/11/12 21:15:05 12076
  2. SUBROUTINE LDMT1(KRIGI,PREC)
  3. C=======================================================================
  4. C ASSEMBLE LES PETITES MATRICES de RIGIDITE ET LES MET SOUS LA FORME
  5. C t
  6. C L.D.M
  7. C IL LE POINTEUR DE LA MATRICE RESULTANTE DANS ICHOLE (segment MRIGID)
  8. C
  9. C Cette subroutine est équivalente à TRIANG dans le cas de
  10. C l'inversion des matrices symétrique
  11. C
  12. C Appelée par : LDMT
  13. C
  14. C Auteur : Michel BULIK
  15. C
  16. C Date : Printemps '95
  17. C
  18. C Langage : ESOPE + FORTRAN77
  19. C
  20. C=======================================================================
  21. C
  22. IMPLICIT INTEGER(I-N)
  23. IMPLICIT REAL*8 (A-H,O-Z)
  24. -INC SMRIGID
  25. -INC SMELEME
  26. -INC SMMATRI
  27.  
  28. -INC PPARAM
  29. -INC CCOPTIO
  30.  
  31. C ... Ces variables ont pour but, de diriger le comportement de LDMT2 ...
  32. C TRSUP - TRiangle SUPérieur
  33. C MENAGE - évident
  34. C LDIAG - initialisation et remplissage de MDIAG et MDNOR demandés
  35.  
  36. LOGICAL TRSUP,MENAGE,LDIAG
  37.  
  38.  
  39. IF(IIMPI.EQ.1)THEN
  40. CALL GIBTEM(XKT)
  41. INTERR(1)=INT(XKT)
  42. CALL ERREUR(-259)
  43. ENDIF
  44. IF(IIMPI.EQ.1)WRITE(IOIMP,10)
  45. 10 FORMAT(' L''IMPRESSION PRECDENTE EST AVANT ASSEM1 ')
  46. C
  47. C ... MMATRI est initialisé dans ASSEM1 et renvoyé en tant que résultat
  48. C dans la variable MMATRX, il est désactivé à la sortie ...
  49. CALL ASNS1(KRIGI,MMATRX,INUINX,ITOPOX,IMINIX,IPOX,INCTRX,INCTRZ,
  50. & IITOPX,ITOPOD,IITOPD,IPODD)
  51. IF(IERR.NE.0) RETURN
  52.  
  53. IF(IIMPI.EQ.1) THEN
  54. CALL GIBTEM(XKT)
  55. INTERR(1)=INT(XKT)
  56. CALL ERREUR(-259)
  57. ENDIF
  58. IF(IIMPI.EQ.1)WRITE(IOIMP,11)
  59. 11 FORMAT(' L''IMPRESSION PRECEDENTE EST AVANT LDMT2')
  60.  
  61. C ... On initialise IJMAX ici et non dans LDMT2, car celui-ci est
  62. C appelé deux fois ...
  63. MMATRI=MMATRX
  64. SEGACT,MMATRI*MOD
  65. IJMAX=0
  66. SEGDES,MMATRI
  67.  
  68. TRSUP =.FALSE.
  69. MENAGE=.FALSE.
  70. LDIAG =.TRUE.
  71. njtot=0
  72. C write(6,*) ' premier appel'
  73. CALL LDMT2(KRIGI,ITOPOX,INUINX,IMINIX,MMATRX,IPOX,INCTRX,INCTRZ,
  74. & IITOPX,TRSUP,MENAGE,LDIAG,IITOPD,ITOPOD,IPODD,njtot,1)
  75. IF(IERR.NE.0) RETURN
  76. TRSUP =.TRUE.
  77. MENAGE=.TRUE.
  78. LDIAG =.FALSE.
  79. C write(6,*) ' deuxieme appel'
  80. CALL LDMT2(KRIGI,ITOPOX,INUINX,IMINIX,MMATRX,IPOX,INCTRX,INCTRZ,
  81. & IITOPX,TRSUP,MENAGE,LDIAG,IITOPD,ITOPOD,IPODD,njtot,1)
  82. IF(IERR.NE.0) RETURN
  83. *
  84. IF(IIMPI.EQ.1)THEN
  85. CALL GIBTEM(XKT)
  86. INTERR(1)=INT(XKT)
  87. CALL ERREUR(-259)
  88. ENDIF
  89. IF(IIMPI.EQ.1) WRITE(IOIMP,12)
  90. 12 FORMAT(' L''IMPRESSION PRECEDENTE EST AVANT LDMT3')
  91.  
  92. IF(IERR.NE.0) GO TO 5000
  93.  
  94. CALL LDMT3(MMATRX,PREC)
  95. IF(IERR.NE.0) RETURN
  96.  
  97. IF(IIMPI.EQ.1)THEN
  98. CALL GIBTEM(XKT)
  99. INTERR(1)=INT(XKT)
  100. CALL ERREUR(-259)
  101. ENDIF
  102. IF(IERR.NE.0) GO TO 5000
  103.  
  104. IF(IIMPI.EQ.1) WRITE(IOIMP,13)
  105. 13 FORMAT(' L''IMPRESSION PRECEDENTE EST APRES LDMT3')
  106.  
  107. MRIGID=KRIGI
  108. SEGACT MRIGID*MOD
  109. ICHOLE=MMATRX
  110. SEGDES MRIGID
  111.  
  112. 5000 CONTINUE
  113. RETURN
  114. END
  115.  
  116.  

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