Télécharger synthe.eso

Retour à la liste

Numérotation des lignes :

synthe
  1. C SYNTHE SOURCE CB215821 20/11/25 13:40:38 10792
  2. SUBROUTINE SYNTHE
  3. C********************************************************************
  4. C
  5. C OPERATEUR SYNTHESE MODALE
  6. C
  7. C TRANSFORME UN OBJET SOLUTION CONTENANT DES COMPOSANTES SUR LES
  8. C MODES DES SOUS-STRUCTURES EN UN OBJET SOLUTION CONTENANT DES
  9. C COMPOSANTES SUR LA BASE ELEMENTS FINIS PAR RECOMBINAISON MODALE
  10. C
  11. C SYNTAXE : SOLEF = SYNT BASET SOLMO ;
  12. C
  13. C BASET : OBJET DE TYPE BASE MODALE CONTENANT LES MODES
  14. C DES SOUS-STRUCTURES, LES SOLUTIONS STATIQUES
  15. C DEDUITES DES LIAISONS ET L OBJET ATTACHE
  16. C DECRIVANT CES LIAISONS
  17. C
  18. C SOLMO : OBJET DE TYPE SOLUTION CONTENANT LES CHAMPS
  19. C DECOMPOSES SUR LA BASE DES MODES
  20. C
  21. C SOLRE : OBJET DE TYPE SOLUTION CONTENANT LES CHAMPS
  22. C DECOMPOSES SUR LA BASE ELEMENTS FINIS
  23. C
  24. C M. PETIT SEPTEMBRE 88
  25. C
  26. C********************************************************************
  27. IMPLICIT INTEGER(I-N)
  28. IMPLICIT REAL*8 (A-H,O-Z)
  29.  
  30. -INC PPARAM
  31. -INC CCOPTIO
  32. -INC SMSOLUT
  33. -INC SMCHPOI
  34. -INC SMLMOTS
  35.  
  36. CHARACTER*(LOCOMP) MOT(3),MOTCLE
  37. DATA MOT /'ALFA','BETA','FBET'/
  38. DATA NMOT/3/
  39. C
  40. CALL LIROBJ ('BASEMODA',IPBASE,1,IRETOU)
  41. IF (IRETOU.EQ.0) GO TO 999
  42. CALL LIROBJ ('SOLUTION',IPSOLU,1,IRETOU)
  43. IF (IRETOU.EQ.0) GO TO 999
  44. C
  45. C ON VERIFIE QU ON A DES MODES
  46. C
  47. MSOLUT=IPSOLU
  48. SEGACT MSOLUT
  49. IF (ITYSOL.NE.'MODE') THEN
  50. MOTERR(1:8) ='SOLUTION'
  51. MOTERR(9:16)='MODE'
  52. CALL ERREUR(79)
  53. GO TO 999
  54. ENDIF
  55. C
  56. C LISTMOTS POUR LA NORMALISATION
  57. C
  58. CALL MOTS1(IPLMOT,MOTCLE)
  59. C
  60. C BOUCLE 100 SUR LES MODES
  61. C
  62. MSOLEN=MSOLIS(5)
  63. MSOLE1=MSOLIS(4)
  64. SEGDES MSOLUT
  65. SEGACT MSOLEN,MSOLE1
  66. NMOD=ISOLEN(/1)
  67. DO 100 IMOD=1,NMOD
  68. MCHPOI=ISOLEN(IMOD)
  69. SEGACT MCHPOI
  70. C
  71. C ON VERIFIE QUE LE CHPOINT CONTIENT LES CONTRIBUTIONS MODALES
  72. C
  73. NSOUPO=IPCHP(/1)
  74. DO 1 ISOU=1,NSOUPO
  75. MSOUPO=IPCHP(ISOU)
  76. SEGACT MSOUPO
  77. IF(NOCOMP(/2).NE.1) THEN
  78. CALL ERREUR(188)
  79. GO TO 999
  80. ENDIF
  81. DO 3 I=1,NMOT
  82. IF(NOCOMP(1).EQ.MOT(I)) GO TO 4
  83. 3 CONTINUE
  84. CALL ERREUR(188)
  85. GO TO 999
  86. 4 SEGDES MSOUPO
  87. 1 CONTINUE
  88. ICHPOI=MCHPOI
  89. C
  90. C RECOMBINAISON DES DEPLACEMENTS . CHPOINT RESULTAT DANS IRET
  91. C
  92. CALL RECDEP(IPBASE,ICHPOI,IRET)
  93. IF(IERR.NE.0) GO TO 999
  94. C
  95. C ON NORMALISE LES CHAMPS DE DEPLACEMENT
  96. C ET ON MET A JOUR LA MASSE GENERALISEE
  97. C
  98. VALMAX=1.D0
  99. CALL MAXIM1(IRET,IPLMOT,MOTCLE,0,VALMAX)
  100. CALL NORMA1(IRET,IPLMOT,MOTCLE,ICHPO1)
  101. CALL DTCHPO(IRET)
  102. C
  103. C CREATION DU MODE ET RANGEMENT DANS L OBJET SOLUTION
  104. C
  105. MMODE=MSOLE1.ISOLEN(IMOD)
  106. SEGACT MMODE
  107. XMAS=FMMODD(2)/VALMAX/VALMAX
  108. IMMO1=IMMODD(1)
  109. FMMO1=FMMODD(1)
  110. FMMO3=FMMODD(3)
  111. FMMO4=FMMODD(4)
  112. FMMO5=FMMODD(5)
  113. CALL MANUSO('MODE ',IMMO1,FMMO1,XMAS,FMMO3,
  114. &FMMO4,FMMO5,ICHPO1,0,0,IPMODE)
  115. SEGDES MMODE
  116. C
  117. IF(IMOD.EQ.1) THEN
  118. IMO1=IPMODE
  119. ISOL=IPMODE
  120. GOTO 100
  121. ENDIF
  122. CALL FUSOLU(IMO1,IPMODE,ISOL)
  123. IF(IERR.NE.0) GOTO 999
  124. CALL DESOLU(IMO1)
  125. CALL DESOLU(IPMODE)
  126. IMO1=ISOL
  127. 100 CONTINUE
  128. SEGDES MSOLEN,MSOLE1
  129. MLMOTS=IPLMOT
  130. SEGSUP MLMOTS
  131. C
  132. CALL ECROBJ ('SOLUTION',ISOL)
  133. C
  134. 999 CONTINUE
  135. RETURN
  136. END
  137.  
  138.  

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