Télécharger normb5.eso

Retour à la liste

Numérotation des lignes :

normb5
  1. C NORMB5 SOURCE CB215821 18/04/04 21:15:09 9798
  2. SUBROUTINE NORMB5(ITAB,IRIG,VNOR)
  3. ************************************************************************
  4. * NOM : NORMB5
  5. * DESCRIPTION : Sous-programme de NNOR associe a la normalisation L2
  6. * d'un objet TABLE de sous-type 'BASE_DE_MODES' (indice
  7. * 'MODES' de la table de sous-type 'BASE_MODALE')
  8. ************************************************************************
  9. * APPELE PAR : nnor.eso
  10. ************************************************************************
  11. * ENTREES : ITAB = pointeur vers la TABLE contenant les modes a normer
  12. * (ATTENTION : NNOR EST UNE DIRECTIVE)
  13. * IRIG = pointeur vers la RIGIDITE associee a la norme L2
  14. * (0 si aucune)
  15. * SORTIES : VNOR = coefficient de normalisation
  16. ************************************************************************
  17. IMPLICIT INTEGER(I-N)
  18. IMPLICIT REAL*8(A-H,O-Z)
  19.  
  20.  
  21. -INC PPARAM
  22. -INC CCOPTIO
  23.  
  24. CHARACTER*8 TYPRET,CHARRE
  25. LOGICAL L0,L1
  26.  
  27. IM = 0
  28. 10 CONTINUE
  29. IM = IM + 1
  30. TYPRET = ' '
  31. CALL ACCTAB(ITAB,'ENTIER',IM,X0,' ',L0,IP0,
  32. & TYPRET,I1,X1,CHARRE,L1,ITMOD)
  33.  
  34. IF (ITMOD.NE.0 .AND. TYPRET.EQ.'TABLE ') THEN
  35.  
  36. CALL ACCTAB(ITMOD,'MOT',I0,X0,'DEFORMEE_MODALE',L0,IP0,
  37. & 'CHPOINT',I1,X1,' ',L1,ICHPOI)
  38. CALL NORMB3(ICHPOI,IRIG,VNOR)
  39. IF (IERR.NE.0) RETURN
  40. CALL ECCTAB(ITMOD,'MOT',I0,X0,'DEFORMEE_MODALE',L0,IP0,
  41. & 'CHPOINT',I1,X1,' ',L1,ICHPOI)
  42. *
  43. CALL ACCTAB(ITMOD,'MOT',I0,X0,'MASSE_GENERALISEE',L0,IP0,
  44. & 'FLOTTANT',I1,XMGEN,' ',L1,IP1)
  45. XMGEN = XMGEN / ( VNOR * VNOR )
  46. CALL ECCTAB(ITMOD,'MOT',I0,X0,'MASSE_GENERALISEE',L0,IP0,
  47. & 'FLOTTANT',I1,XMGEN,' ',L1,IP1)
  48. *
  49. CALL ACCTAB(ITMOD,'MOT',I0,X0,'DEPLACEMENTS_GENERALISES',L0,
  50. & IP0,'TABLE',I1,X1,' ',L1,ITDG)
  51. DO IN = 1,3
  52. CALL ACCTAB(ITDG,'ENTIER',IN,X0,' ',L0,IP0,
  53. & 'FLOTTANT',I1,XQ,' ',L1,IP1)
  54. XQ = XQ / VNOR
  55. CALL ECCTAB(ITDG,'ENTIER',IN,X0,' ',L0,IP0,
  56. & 'FLOTTANT',I1,XQ,' ',L1,IP1)
  57. ENDDO
  58.  
  59. TYPRET = ' '
  60. CALL ACCTAB(ITMOD,'MOT',I0,X0,'CONTRAINTE_MODALE',L0,IP0,
  61. & TYPRET,I1,X1,CHARRE,L1,ICHML)
  62. IF (ICHML.NE.0 .AND. TYPRET.EQ.'MCHAML ') THEN
  63. C Division du MCHAML par le FLOTTANT PGRAND
  64. IOPERA=5
  65. IARGU =2
  66. I1 =0
  67. CALL OPCHE1(ICHML,IOPERA,IARGU,I1,PGRAND,ICHML2,IRET)
  68. IF (IRET.EQ.0) CALL ERREUR(5)
  69. CALL ECCTAB(ITMOD,'MOT',I0,X0,'CONTRAINTE_MODALE',L0,IP0,
  70. & 'MCHAML',I1,X1,' ',L1,ICHML2)
  71. ENDIF
  72.  
  73. GOTO 10
  74. ENDIF
  75.  
  76. RETURN
  77. END
  78.  
  79.  
  80.  

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