Télécharger dyndev.eso

Retour à la liste

Numérotation des lignes :

  1. C DYNDEV SOURCE BP208322 14/09/15 21:16:22 8151
  2. SUBROUTINE DYNDEV
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8(A-H,O-Z)
  5. *--------------------------------------------------------------------*
  6. * *
  7. * Operateur DYNE : algorithme de Fu - de Vogelaere *
  8. * ________________________________________________ *
  9. * *
  10. * Appel aux sous-programmes de l'option 'DE_VOGELAERE' *
  11. * *
  12. * Remarque : les segments de travail sont laisses actifs durant *
  13. * l'execution de l'algorithme. *
  14. * *
  15. * Auteur, date de creation: *
  16. * *
  17. * Denis ROBERT-MOUGIN, LE 25 mai 1989. *
  18. * *
  19. *--------------------------------------------------------------------*
  20. -INC CCOPTIO
  21. *
  22. LOGICAL REPRIS,RIGIDE,LMODYN
  23. *
  24. ICHAIN = 0
  25. *
  26. * Lecture et coherence des operandes:
  27. *
  28. IF (IIMPI.EQ.333) THEN
  29. WRITE(IOIMP,*)'DYNDEV : appel au sous-programme DEVLIR'
  30. ENDIF
  31. IF (IIMPI.EQ.444) THEN
  32. CALL GIBTEM(XKT)
  33. INTERR(1)=INT(XKT)
  34. CALL ERREUR(-259)
  35. WRITE(IOIMP,*)'DYNDEV : avant l''appel au sous-programme DEVLIR'
  36. ENDIF
  37. CALL DEVLIR(ITBAS,ITKM,ITA,ITLIA,ITCHAR,ITINIT,NP,PDT,NINS,
  38. & ITSORT,ITREDU,KPREF,KCPR,ITCARA,LMODYN,ITDYN)
  39. IF (IERR.NE.0) RETURN
  40. IF (IIMPI.EQ.444) THEN
  41. CALL GIBTEM(XKT)
  42. INTERR(1)=INT(XKT)
  43. CALL ERREUR(-259)
  44. WRITE(IOIMP,*)'DYNDEV : apres l''appel au sous-programme DEVLIR'
  45. ENDIF
  46. ** LMODYN = .TRUE. : donnees table PASAPAS
  47. *
  48. * Allocation de l'espace de travail:
  49. *
  50. IF (IIMPI.EQ.333) THEN
  51. WRITE(IOIMP,*)'DYNDEV : appel au sous-programme DEVALO'
  52. ENDIF
  53. IF (IIMPI.EQ.444) THEN
  54. CALL GIBTEM(XKT)
  55. INTERR(1)=INT(XKT)
  56. CALL ERREUR(-259)
  57. WRITE(IOIMP,*)'DYNDEV : avant l''appel au sous-programme DEVALO'
  58. ENDIF
  59. CALL DEVALO(ITBAS,ITKM,ITA,ITLIA,ITCHAR,ITINIT,NP,PDT,NINS,
  60. & ITSORT,ITREDU,KPREF,KTQ,KTKAM,KTPHI,KTLIAA,KTLIAB,
  61. & KTFEX,KTPAS,KTRES,KTNUM,IPMAIL,REPRIS,ICHAIN,
  62. & KOCLFA,KOCLB1,ITCARA,LMODYN)
  63. IF (IERR.NE.0) RETURN
  64. IF (IIMPI.EQ.444) THEN
  65. CALL GIBTEM(XKT)
  66. INTERR(1)=INT(XKT)
  67. CALL ERREUR(-259)
  68. WRITE(IOIMP,*)'DYNDEV : apres l''appel au sous-programme DEVALO'
  69. ENDIF
  70. *
  71. * Remplissage des tableaux des liaisons:
  72. *
  73. IF (ITLIA.NE.0) THEN
  74. IF (IIMPI.EQ.333) THEN
  75. WRITE(IOIMP,*)'DYNDEV : appel au sous-programme DEVLIA'
  76. ENDIF
  77. IF (IIMPI.EQ.444) THEN
  78. CALL GIBTEM(XKT)
  79. INTERR(1)=INT(XKT)
  80. CALL ERREUR(-259)
  81. WRITE(IOIMP,*)'DYNDEV : avant l''appel au sous-programme DEVLIA'
  82. ENDIF
  83. CALL DEVLIA(ITLIA,KCPR,PDT,KTLIAA,KTLIAB,ITCARA,LMODYN)
  84. IF (IERR.NE.0) RETURN
  85. IF (IIMPI.EQ.444) THEN
  86. CALL GIBTEM(XKT)
  87. INTERR(1)=INT(XKT)
  88. CALL ERREUR(-259)
  89. WRITE(IOIMP,*)'DYNDEV : apres l''appel au sous-programme DEVLIA'
  90. ENDIF
  91. ENDIF
  92. *
  93. * Transposition du contenu d'objets CASTEM2000 dans des tableaux:
  94. *
  95. IF (IIMPI.EQ.333) THEN
  96. WRITE(IOIMP,*)'DYNDEV : appel au sous-programme DEVTRA'
  97. ENDIF
  98. IF (IIMPI.EQ.444) THEN
  99. CALL GIBTEM(XKT)
  100. INTERR(1)=INT(XKT)
  101. CALL ERREUR(-259)
  102. WRITE(IOIMP,*)'DYNDEV : avant l''appel au sous-programme DEVTRA'
  103. ENDIF
  104. CALL DEVTRA(ITBAS,ITKM,ITA,KTKAM,IPMAIL,KTRES,KTNUM,KPREF,KTPHI,
  105. & KTLIAB,RIGIDE,ITCARA,LMODYN)
  106.  
  107. IF (IERR.NE.0) RETURN
  108. IF (IIMPI.EQ.444) THEN
  109. CALL GIBTEM(XKT)
  110. INTERR(1)=INT(XKT)
  111. CALL ERREUR(-259)
  112. WRITE(IOIMP,*)'DYNDEV : apres l''appel au sous-programme DEVTRA'
  113. ENDIF
  114. *
  115. * Remplissage du tableau des chargements exterieurs:
  116. *
  117. IF (ITCHAR.NE.0) THEN
  118. IF (IIMPI.EQ.333) THEN
  119. WRITE(IOIMP,*)'DYNDEV : appel au sous-programme DEVFX0'
  120. ENDIF
  121. IF (IIMPI.EQ.444) THEN
  122. CALL GIBTEM(XKT)
  123. INTERR(1)=INT(XKT)
  124. CALL ERREUR(-259)
  125. WRITE(IOIMP,*)'DYNDEV : avant l''appel au sous-programme DEVFX0'
  126. ENDIF
  127. CALL DEVFX0(ITCHAR,KTNUM,KPREF,KTFEX,REPRIS,RIGIDE,
  128. &LMODYN,ITBAS)
  129. IF (IERR.NE.0) RETURN
  130. IF (IIMPI.EQ.444) THEN
  131. CALL GIBTEM(XKT)
  132. INTERR(1)=INT(XKT)
  133. CALL ERREUR(-259)
  134. WRITE(IOIMP,*)'DYNDEV : apres l''appel au sous-programme DEVFX0'
  135. ENDIF
  136. IF (IIMPI.EQ.333) THEN
  137. WRITE(IOIMP,*)'DYNDEV : appel au sous-programme DEVSPM'
  138. ENDIF
  139. IF (IIMPI.EQ.444) THEN
  140. CALL GIBTEM(XKT)
  141. INTERR(1)=INT(XKT)
  142. CALL ERREUR(-259)
  143. WRITE(IOIMP,*)'DYNDEV : avant l''appel au sous-programme DEVPSM'
  144. ENDIF
  145. CALL DEVPSM(ITCHAR,ITBAS,KTLIAB,KTNUM,KTPHI,KTFEX,REPRIS)
  146. IF (IERR.NE.0) RETURN
  147. IF (IIMPI.EQ.444) THEN
  148. CALL GIBTEM(XKT)
  149. INTERR(1)=INT(XKT)
  150. CALL ERREUR(-259)
  151. WRITE(IOIMP,*)'DYNDEV : apres l''appel au sous-programme DEVPSM'
  152. ENDIF
  153. ENDIF
  154. *
  155. * Lecture des chargements en Base B, pour les corps rigides
  156. *
  157. IF (RIGIDE) THEN
  158. IF (IIMPI.EQ.333) THEN
  159. WRITE(IOIMP,*)'DYNDEV : appel au sous-programme DEVRIG'
  160. ENDIF
  161. IF (IIMPI.EQ.444) THEN
  162. CALL GIBTEM(XKT)
  163. INTERR(1)=INT(XKT)
  164. CALL ERREUR(-259)
  165. WRITE(IOIMP,*)'DYNDEV :avant l''appel au sous-programme
  166. & DEVRIG'
  167. ENDIF
  168. CALL DEVRIG(ITCHAR,KTNUM,KTPHI,KTFEX,KTLIAB,REPRIS)
  169. IF (IERR.NE.0) RETURN
  170. IF (IIMPI.EQ.444) THEN
  171. CALL GIBTEM(XKT)
  172. INTERR(1)=INT(XKT)
  173. CALL ERREUR(-259)
  174. WRITE(IOIMP,*)'DYNDEV :apres l''appel au sous-programme
  175. & DEVRIG'
  176. ENDIF
  177. ENDIF
  178. *
  179. * Initialisation de l'algorithme, ou reprise de calcul:
  180. *
  181. IF (IIMPI.EQ.333) THEN
  182. WRITE(IOIMP,*)'DYNDEV : appel au sous-programme DEVINI'
  183. ENDIF
  184. IF (IIMPI.EQ.444) THEN
  185. CALL GIBTEM(XKT)
  186. INTERR(1)=INT(XKT)
  187. CALL ERREUR(-259)
  188. WRITE(IOIMP,*)'DYNDEV : avant l''appel au sous-programme DEVINI'
  189. ENDIF
  190. CALL DEVINI(ITINIT,KTKAM,KTQ,KTFEX,KTPAS,KTNUM,KTLIAA,KTLIAB,
  191. & KTPHI,KCPR,KOCLFA,KOCLB1,REPRIS,RIGIDE,lmodyn)
  192. IF (IERR.NE.0) RETURN
  193. IF (IIMPI.EQ.444) THEN
  194. CALL GIBTEM(XKT)
  195. INTERR(1)=INT(XKT)
  196. CALL ERREUR(-259)
  197. WRITE(IOIMP,*)'DYNDEV : apres l''appel au sous-programme DEVINI'
  198. ENDIF
  199. *
  200. * Mise en oeuvre de l'algorithme:
  201. *
  202. IF (IIMPI.EQ.333) THEN
  203. WRITE(IOIMP,*)'DYNDEV : appel au sous-programme DEVALG'
  204. ENDIF
  205. IF (IIMPI.EQ.444) THEN
  206. CALL GIBTEM(XKT)
  207. INTERR(1)=INT(XKT)
  208. CALL ERREUR(-259)
  209. WRITE(IOIMP,*)'DYNDEV : avant l''appel au sous-programme DEVALG'
  210. ENDIF
  211. CALL DEVALG(KTQ,KTKAM,KTPHI,KTLIAA,KTLIAB,KTFEX,KTPAS,KTRES,
  212. & KTNUM,KPREF,NINS,KOCLFA,KOCLB1,REPRIS,RIGIDE)
  213. IF (IERR.NE.0) RETURN
  214. IF (IIMPI.EQ.444) THEN
  215. CALL GIBTEM(XKT)
  216. INTERR(1)=INT(XKT)
  217. CALL ERREUR(-259)
  218. WRITE(IOIMP,*)'DYNDEV : apres l''appel au sous-programme DEVALG'
  219. ENDIF
  220. *
  221. * Creation de la table resultat et nettoyage memoire:
  222. *
  223. IF (IIMPI.EQ.333) THEN
  224. WRITE(IOIMP,*)'DYNDEV : appel au sous-programme DEVSOR'
  225. ENDIF
  226. IF (IIMPI.EQ.444) THEN
  227. CALL GIBTEM(XKT)
  228. INTERR(1)=INT(XKT)
  229. CALL ERREUR(-259)
  230. WRITE(IOIMP,*)'DYNDEV : avant l''appel au sous-programme DEVSOR'
  231. ENDIF
  232. CALL DEVSOR(KPREF,KTQ,KTKAM,KTPHI,KTLIAA,KTLIAB,KTFEX,KTPAS,
  233. & KTRES,KTNUM,NINS,IPMAIL,REPRIS,ICHAIN,
  234. & KOCLFA,KOCLB1,LMODYN,ITDYN)
  235. IF (IERR.NE.0) RETURN
  236. IF (IIMPI.EQ.444) THEN
  237. CALL GIBTEM(XKT)
  238. INTERR(1)=INT(XKT)
  239. CALL ERREUR(-259)
  240. WRITE(IOIMP,*)'DYNDEV : apres l''appel au sous-programme DEVSOR'
  241. ENDIF
  242. IF (IIMPI.EQ.333) THEN
  243. WRITE(IOIMP,*)'DYNDEV : fin presumee normale de ce calcul'
  244. ENDIF
  245. *
  246. RETURN
  247. END
  248.  
  249.  
  250.  
  251.  

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