Télécharger reclch.eso

Retour à la liste

Numérotation des lignes :

reclch
  1. C RECLCH SOURCE CB215821 20/11/25 13:38:43 10792
  2. SUBROUTINE RECLCH(ILCHP1,ITBAS1,NBMOD1,ILCHP2)
  3. ************************************************************************
  4. * NOM : RECLCH
  5. * DESCRIPTION : Recombine les coefficients de projection d'un signal
  6. * instationnaires avec les modes correspondants
  7. ************************************************************************
  8. * APPELE PAR : recomb.eso
  9. ************************************************************************
  10. * ENTREES : ILCHP1 = pointeur vers le LISTCHPO des coefficients de
  11. * projection (voir l'operateur PJBA)
  12. * ITBAS1 = pointeur vers la TABLE de sous-type BASE_MODALE
  13. * NBMOD1 = nombre de modes concernes (0 => tous)
  14. * SORTIES : ILCHP2 = pointeur vers l'objet LISTCHPO contenant le
  15. * signal instationnaire projete sur les NBMOD1
  16. * premiers modes
  17. ************************************************************************
  18. * SYNTAXE (GIBIANE) :
  19. *
  20. * LCHPO2 = RECO LCHPO1 TBAS1 (NMOD1) ;
  21. *
  22. ************************************************************************
  23. IMPLICIT INTEGER(I-N)
  24. IMPLICIT REAL*8 (A-H,O-Z)
  25.  
  26. -INC PPARAM
  27. -INC CCOPTIO
  28. -INC SMLCHPO
  29. -INC SMCHPOI
  30. -INC SMELEME
  31. -INC SMTABLE
  32. *
  33. SEGMENT,ICHMOD(NMO)
  34. SEGMENT,IPOMOD(NMO)
  35. SEGMENT,COEMOD(NMO)*D
  36. *
  37. CHARACTER*8 CHA8
  38. CHARACTER*12 CH12
  39. *
  40. LOGICAL ZLOGI
  41. *
  42. *
  43. * NOMBRE DE MODES CONTENUS DANS LA TABLE
  44. * ======================================
  45. CALL ACCTAB(ITBAS1,'MOT',0,0.D0,'MODES',.TRUE.,0,
  46. & 'TABLE',IVAL,XVAL,CHA8,ZLOGI,MTAB1)
  47. SEGACT,MTAB1
  48. MLOTA=MTAB1.MLOTAB
  49. NBMOD2=0
  50. DO I=1,MLOTA
  51. IF (MTAB1.MTABTI(I).EQ.'ENTIER') NBMOD2=NBMOD2+1
  52. ENDDO
  53. SEGDES,MTAB1
  54. IF (NBMOD2.EQ.0) THEN
  55. MOTERR(1:8)='TABLE'
  56. CALL ERREUR(1027)
  57. RETURN
  58. ENDIF
  59. *
  60. *
  61. * NOMBRE DE MODES SUR LESQUELS CALCULER LA PROJECTION
  62. * ===================================================
  63. IF (NBMOD1.GT.0) THEN
  64. IF (NBMOD1.GT.NBMOD2) THEN
  65. INTERR(1)=NBMOD1
  66. CALL ERREUR(36)
  67. RETURN
  68. ENDIF
  69. NMO=NBMOD1
  70. ELSE
  71. NMO=NBMOD2
  72. ENDIF
  73. *
  74. *
  75. * MEMORISATION DU POINTEUR DU CHPOINT ET DU NOEUD DE CHAQUE MODE
  76. * ==============================================================
  77. SEGINI,ICHMOD,IPOMOD
  78. DO IMO=1,NMO
  79. CALL ACCTAB(MTAB1,'ENTIER',IMO,0.D0,'MOT',.TRUE.,0,
  80. & 'TABLE',IVAL,XVAL,CHA8,ZLOGI,ITAB2)
  81. IF (IERR.NE.0) RETURN
  82. *
  83. CALL ACCTAB(ITAB2,'MOT',0,0.D0,'DEFORMEE_MODALE',.TRUE.,0,
  84. & 'CHPOINT',IVAL,XVAL,CHA8,ZLOGI,ICHP3)
  85. IF (IERR.NE.0) RETURN
  86. ICHMOD(IMO)=ICHP3
  87. *
  88. CALL ACCTAB(ITAB2,'MOT',0,0.D0,'POINT_REPERE',.TRUE.,0,
  89. & 'POINT',IVAL,XVAL,CHA8,ZLOGI,IPOI3)
  90. IF (IERR.NE.0) RETURN
  91. IPOMOD(IMO)=IPOI3
  92. *
  93. ENDDO
  94. *
  95. *
  96. *
  97. * CALCUL DE LA RECOMBINAISON MODALE, POUR CHAQUE PAS DE TEMPS
  98. * ===========================================================
  99. *
  100. MLCHP1=ILCHP1
  101. SEGACT,MLCHP1
  102. N1=MLCHP1.ICHPOI(/1)
  103. *
  104. SEGINI,MLCHP2
  105. ILCHP2=MLCHP2
  106. *
  107. WRITE(CHA8,FMT='(I8)') NMO
  108. CALL LIMCHA(CHA8,I1,I2)
  109. *
  110. * BOUCLE SUR LES PAS DE TEMPS
  111. DO IT=1,N1
  112. ICHPO1=MLCHP1.ICHPOI(IT)
  113. MCHPO1=ICHPO1
  114. SEGACT,MCHPO1
  115. MSOUP1=MCHPO1.IPCHP(1)
  116. SEGACT,MSOUP1
  117. IPT1=MSOUP1.IGEOC
  118. SEGACT,IPT1
  119. NPO1=IPT1.NUM(/2)
  120. MPOVA1=MSOUP1.IPOVAL
  121. SEGACT,MPOVA1
  122.  
  123. SEGINI,COEMOD
  124. *
  125. * BOUCLE SUR LES MODES
  126. DO IMO=1,NMO
  127. IPO1=IPOMOD(IMO)
  128. DO K=1,NPO1
  129. IF (IPT1.NUM(1,K).EQ.IPO1) GOTO 10
  130. ENDDO
  131. INTERR(1)=IMO
  132. WRITE(CHA8,FMT='(I8)') IT
  133. CALL LIMCHA(CHA8,I1,I2)
  134. MOTERR(1:8)=CHA8(I1:I2)
  135. CALL ERREUR(1054)
  136. RETURN
  137. 10 COEMOD(IMO)=MPOVA1.VPOCHA(K,1)
  138. ENDDO
  139. *
  140. CALL COMBIL(ICHMOD,COEMOD,NMO,ICHPO2)
  141. IF (IERR.NE.0) RETURN
  142. MCHPO2=ICHPO2
  143. SEGACT,MCHPO2*MOD
  144. WRITE(CH12,FMT='(I12)') IT
  145. CALL LIMCHA(CH12,I3,I4)
  146. WRITE(MCHPO2.MOCHDE,FMT='(5A)') " PROJECTION SUR ",CHA8(I1:I2),
  147. & " MODES A L'INSTANT #",CH12(I3:I4)
  148. MLCHP2.ICHPOI(IT)=ICHPO2
  149. *
  150. SEGDES,MPOVA1,IPT1,MSOUP1,MCHPO1,MCHPO2
  151. SEGSUP,COEMOD
  152. *
  153. ENDDO
  154. *
  155. SEGDES,MLCHP1,MLCHP2
  156. SEGSUP,ICHMOD,IPOMOD
  157. *
  158. RETURN
  159. *
  160. END
  161. *
  162. *
  163.  
  164.  

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