Télécharger proba2.eso

Retour à la liste

Numérotation des lignes :

proba2
  1. C PROBA2 SOURCE BP208322 17/04/21 21:15:06 9404
  2. SUBROUTINE PROBA2(itmod,IRIOUT)
  3. **************
  4. * cree une liaison entre 2 points de liaison correspondant
  5. * au même ddl initial
  6. **************
  7. IMPLICIT REAL*8(a-h,o-z)
  8. IMPLICIT INTEGER(I-N)
  9. CHARACTER*4 motinc,motddl
  10. CHARACTER*8 TYPRET
  11. -INC SMCOORD
  12.  
  13. -INC PPARAM
  14. -INC CCOPTIO
  15. -INC SMTABLE
  16. -INC SMRIGID
  17. -INC SMELEME
  18. PARAMETER(ZERO=0.D0)
  19.  
  20. segment icta
  21. integer icpt(ima),icre(ima)
  22. character*4 iccomp(ima)
  23. endsegment
  24.  
  25. iriout = 0
  26. mtable = itmod
  27. segact mtable
  28. im1 = mlotab - 1
  29. ima = im1
  30. * pointe les entrees de la table
  31. segini icta
  32. do im = 1,im1
  33. TYPRET = ' '
  34. ITAB2 = 0
  35. CALL ACCTAB(ITMOD,'ENTIER',IM,X0,' ',.true.,IP0,
  36. & TYPRET,I1,X1,' ',.true.,ITAB2)
  37. IF(TYPRET.NE.'TABLE ' .OR.ITAB2.LE.0) THEN
  38. ima = im - 1
  39. GOTO 1
  40. ENDIF
  41. CALL ACCTAB(ITAB2,'MOT',I0,X0,'POINT_LIAISON',.true.,IP0,
  42. & 'POINT',I1,X1,' ',.true.,IPL1)
  43. CALL ACCTAB(ITAB2,'MOT',I0,X0,'DDL_LIAISON',.true.,IP0,
  44. & 'MOT',I1,X1,motddl,.true.,I1)
  45. CALL ACCTAB(ITAB2,'MOT',I0,X0,'POINT_REPERE',.true.,IP0,
  46. & 'POINT',I1,X1,' ',.true.,IPTS)
  47. IF(IERR.NE.0) RETURN
  48. icpt(im) = ipl1
  49. iccomp(im) = motddl
  50. icre(im) = ipts
  51. enddo
  52. 1 CONTINUE
  53. *
  54. nbnn = 3
  55. nbsous = 0
  56. nbref = 0
  57. nbelem = ima
  58. segini meleme
  59. itypel = 22
  60. kele = 0
  61. do im = 1, ima
  62. if (icpt(im).eq.0) goto 99
  63. iplc = icpt(im)
  64. motddl= iccomp(im)
  65. do jn = im+1,ima
  66. if (icpt(jn).eq.0) goto 89
  67. if (icpt(jn).ne.iplc) goto 89
  68. if (iccomp(jn).ne.motddl) goto 89
  69. *
  70. CALL CREPO1 (ZERO, ZERO, ZERO, IPTS)
  71. kele = kele + 1
  72. num(1,kele) = ipts
  73. num(2,kele) = icre(im)
  74. num(3,kele) = icre(jn)
  75.  
  76. icpt(jn) = 0
  77. 89 continue
  78. enddo
  79.  
  80. 99 continue
  81. enddo
  82.  
  83. if (kele.eq.0) then
  84. segsup meleme
  85. goto 101
  86. endif
  87.  
  88. nbelem = kele
  89. segadj meleme
  90. *
  91.  
  92. nrigel = 1
  93. nrige = 6
  94. segini mrigid
  95. nligrp = 3
  96. nligrd = 3
  97. segini descr
  98. lisinc(1) = 'LX'
  99. lisdua(1) = 'FLX'
  100. noelep(1) = 1
  101. noeled(1) = 1
  102. do ig = 2,3
  103. lisinc(ig) = 'BETA'
  104. lisdua(ig) = 'FBET'
  105. noelep(ig) = ig
  106. noeled(ig) = ig
  107. enddo
  108.  
  109. nelrig = nbelem
  110. * segini imatri
  111. segini xmatri
  112. * do i = 1,nelrig
  113. * imattt(i) = xmatri
  114. * enddo
  115. do iel=1,nbelem
  116. re(1,1,iel) = 0.D0
  117. re(1,2,iel) = 1.d0
  118. re(1,3,iel) = -1.d0
  119. re(2,1,iel) = 1.d0
  120. re(2,2,iel) = 0.D0
  121. re(2,3,iel) = 0.D0
  122. re(3,1,iel) = -1.d0
  123. re(3,2,iel) = 0.D0
  124. re(3,3,iel) = 0.D0
  125. enddo
  126. IRIGEL(1,1) = meleme
  127. IRIGEL(3,1) = DESCR
  128. IRIGEL(4,1) = xmatri
  129. IRIGEL(2,1) = 0
  130. IRIGEL(5,1) = NIFOUR
  131. IRIGEL(6,1) = 0
  132. coerig(1) = 1.d0
  133.  
  134. iriout = mrigid
  135. segdes meleme, mrigid , descr, xmatri
  136. if (iriout.eq.0) call erreur(-5)
  137. 101 segsup icta
  138. return
  139. end
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  

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