Télécharger dync.eso

Retour à la liste

Numérotation des lignes :

dync
  1. C DYNC SOURCE OF166741 26/05/11 21:15:05 12538
  2.  
  3. SUBROUTINE DYNC
  4.  
  5. ************************************************************************
  6. *
  7. * RESOUT LE PB DYNAMIQUE PAR HBM + CONTINUATION :
  8. * .. . .
  9. * M q + C q + K q = f^ext(t) + f^nl(Q,Q,a)
  10. *
  11. * avec q(t) = \sum_j{q_jc cos (jwt) + q_js sin(jwt)}
  12. *
  13. * AUTEUR : ROBERTO ALCORTA, 2020
  14. *
  15. ************************************************************************
  16.  
  17. IMPLICIT INTEGER(I-N)
  18. IMPLICIT REAL*8(A-H,O-Z)
  19.  
  20. -INC PPARAM
  21. -INC CCOPTIO
  22.  
  23. -INC SMCOORD
  24.  
  25. -INC TMDYNC
  26.  
  27. INTEGER NHBM,NFFT,NSPAS
  28. LOGICAL CHECK,RIGIDE,REPRIS
  29.  
  30. ************************************************************************
  31. * LECTURE
  32. ************************************************************************
  33.  
  34. c lecture des arguments
  35. c HBMLIR copie depuis DEVLIR
  36. IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a HBMLIR'
  37. CALL HBMLIR(ITBAS,ITKM,ITA,ITLIA,ITCHAR,ITINIT,ITOPT,NINS,
  38. & ITREDU,IPARNUM,KPREF,KCPR,NHBM,NFFT)
  39. IF (IERR.NE.0) RETURN
  40.  
  41. c allocation memoire (creation des segments)
  42. IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a HBMALO'
  43. CALL HBMALO(ITBAS,ITKM,ITA,ITLIA,ITCHAR,ITINIT,NINS,ITREDU,
  44. & IPARNUM,KPREF,KTQ,KTKAM,KTPHI,KTLIAA,KTEMP,KTLIAB,
  45. & KTFEX,KTPAS,KTRES,KTNUM,IPMAIL,REPRIS,KPARNUM,
  46. & KSORT,ICHAIN,KOCLFA,KOCLB1,NHBM,NFFT)
  47.  
  48. c Remplissage des tableaux des liaisons
  49. IF (ITLIA.NE.0) THEN
  50. IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a DEVLIA'
  51. SEGACT,MCOORD
  52. CALL DEVLIA(ITLIA,KCPR,0.D0,KTLIAA,KTLIAB,0,.FALSE.,2)
  53. SEGDES,MCOORD
  54. IF (IERR.NE.0) RETURN
  55. ENDIF
  56.  
  57. c Transposition des objets CASTEM dans des tableaux
  58. IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a HBMTRA'
  59. CALL HBMTRA(ITBAS,ITKM,ITA,KTKAM,IPMAIL,NHBM,KTRES,KTNUM,KPREF,
  60. & KTPHI,KTLIAB,RIGIDE)
  61.  
  62. ************************************************************************
  63. * CALCUL D'UNE SOLUTION INITIALE
  64. ************************************************************************
  65.  
  66. IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a HBMINI'
  67. CALL HBMINI(KTKAM,KTQ,KTFEX,KTPAS,KTLIAA,KTEMP,KTLIAB,KTPHI,
  68. & KCPR,KOCLFA,KOCLB1,KPARNUM,NHBM,NFFT,CHECK,ITER)
  69.  
  70. IF (CHECK) THEN
  71. c Pas de convergence, arret de %m1:8
  72. MOTERR(1:8)='DYNC '
  73. CALL ERREUR(997)
  74. RETURN
  75. ENDIF
  76. IF(IIMPI.GE.2)
  77. & WRITE(IOIMP,*) 'DYNC : Solution initiale convergee'
  78.  
  79. ************************************************************************
  80. * CONTINUATION EN FONCTION D'UN PARAMETRE
  81. ************************************************************************
  82.  
  83. PARNUM = KPARNUM
  84. IF (parnum.TYPS.EQ.'FORC') THEN
  85. NOTYPS = 0
  86. IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a HBMCON'
  87. CALL HBMCON(KTKAM,KTQ,KTFEX,KTPAS,KTLIAA,KTEMP,KTLIAB,KTPHI,
  88. & KCPR,KOCLFA,KOCLB1,NHBM,NFFT,KPARNUM,KSORT,NSPAS,
  89. & ITER)
  90. ELSEIF (parnum.TYPS.EQ.'AUTO') THEN
  91. NOTYPS = 1
  92. IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a HBMCO2'
  93. CALL HBMCO2(KTKAM,KTQ,KTFEX,KTPAS,KTLIAA,KTEMP,KTLIAB,KTPHI,
  94. & KCPR,KOCLFA,KOCLB1,NHBM,NFFT,KPARNUM,KSORT,NSPAS,
  95. & ITER)
  96. ELSEIF (parnum.TYPS.EQ.'NNM') THEN
  97. NOTYPS = 0
  98. IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a HBMCO3'
  99. CALL HBMCO3(KTKAM,KTQ,KTFEX,KTPAS,KTLIAA,KTEMP,KTLIAB,KTPHI,
  100. & KCPR,KOCLFA,KOCLB1,NHBM,NFFT,KPARNUM,KSORT,NSPAS,
  101. & ITER)
  102. ENDIF
  103.  
  104. ************************************************************************
  105. * ECRITURE DES RESULTATS ET SORTIE DU PROGRAMME
  106. ************************************************************************
  107.  
  108. IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a HBMSOR'
  109. CALL HBMSOR(KSORT,KPREF,NOTYPS,NHBM)
  110.  
  111. RETURN
  112. END
  113.  
  114.  
  115.  

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