Télécharger kres9.eso

Retour à la liste

Numérotation des lignes :

kres9
  1. C KRES9 SOURCE MB234859 26/07/31 21:15:02 12613
  2. SUBROUTINE KRES9(MRIGID,INORMU)
  3. IMPLICIT REAL*8 (A-H,O-Z)
  4. IMPLICIT INTEGER (I-N)
  5. C***********************************************************************
  6. C NOM : KRES9
  7. C DESCRIPTION : - Assemblage comme par RESOU
  8. C
  9. C
  10. C LANGAGE : ESOPE
  11. C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  12. C mél : gounand@semt2.smts.cea.fr
  13. C***********************************************************************
  14. C VERSION : v1, 04/08/2011, version initiale
  15. C HISTORIQUE : v1, 04/08/2011, création
  16. C HISTORIQUE : JCARDO 16/07/2013, ajout de INORMU (cf LDMT2)
  17. C HISTORIQUE :
  18. C***********************************************************************
  19. REAL*8 XKT,PREC
  20. -INC SMRIGID
  21. -INC SMMATRI
  22.  
  23. -INC PPARAM
  24. -INC CCOPTIO
  25. C ... Ces variables ont pour but, de diriger le comportement de LDMT2 ...
  26. C TRSUP - TRiangle SUPérieur
  27. C MENAGE - évident
  28. C LDIAG - initialisation et remplissage de MDIAG et MDNOR demandés
  29. C
  30. LOGICAL TRSUP,MENAGE,LDIAG
  31. *
  32. * Executable statements
  33. *
  34. * WRITE(IOIMP,*) 'Entrée dans kres8.eso'
  35. *
  36. INSYM=1
  37. *
  38. SEGACT MRIGID
  39. ICHOLX=ICHOLE
  40. SEGDES MRIGID
  41. IF (ICHOLX.NE.0) RETURN
  42. * Ici l'assemblage proprement dit recopié de LDMT1
  43. IF (IIMPI.EQ.1)THEN
  44. CALL GIBTEM(XKT)
  45. INTERR(1)=INT(XKT)
  46. CALL ERREUR(-259)
  47. WRITE(IOIMP,10)
  48. 10 FORMAT(' L''IMPRESSION PRECEDENTE EST AVANT ASSEM1')
  49. ENDIF
  50.  
  51. C ... MMATRI est initialisé dans ASSEM1 et renvoyé en tant que résultat
  52. C dans la variable MMATRX, il est désactivé à la sortie ...
  53. CALL ASSEM1(MRIGID,INSYM,MMATRX,INUINX,
  54. & ITOPOX,IPOX,IITOPX,INCTRX,
  55. & ITOPOZ,IPOZ,IITOPZ,INCTRZ)
  56. IF(IERR.NE.0) RETURN
  57.  
  58. IF (IIMPI.EQ.1) THEN
  59. CALL GIBTEM(XKT)
  60. INTERR(1)=INT(XKT)
  61. CALL ERREUR(-259)
  62. WRITE(IOIMP,11)
  63. 11 FORMAT(' L''IMPRESSION PRECEDENTE EST AVANT LDMT2')
  64. ENDIF
  65. C ... On initialise IJMAX ici et non dans LDMT2, car celui-ci est
  66. C appelé deux fois ...
  67. MMATRI=MMATRX
  68. SEGACT,MMATRI*MOD
  69. IJMAX=0
  70. SEGDES,MMATRI
  71. C
  72. TRSUP =.FALSE.
  73. MENAGE=.FALSE.
  74. LDIAG =.TRUE.
  75. njtot=0
  76. * write(6,*) ' premier appel'
  77. CALL LDMT2(MRIGID,ITOPOX,INUINX,IMINIX,MMATRX,IPOX,INCTRX,INCTRZ,
  78. & IITOPX,TRSUP,MENAGE,LDIAG,IITOPZ,ITOPOZ,IPOZ,njtot,INORMU)
  79. IF(IERR.NE.0) RETURN
  80. TRSUP =.TRUE.
  81. MENAGE=.TRUE.
  82. LDIAG =.FALSE.
  83. * write(6,*) ' deucxieme appel'
  84. CALL LDMT2(MRIGID,ITOPOX,INUINX,IMINIX,MMATRX,IPOX,INCTRX,INCTRZ,
  85. & IITOPX,TRSUP,MENAGE,LDIAG,IITOPZ,ITOPOZ,IPOZ,njtot,INORMU)
  86. IF(IERR.NE.0) RETURN
  87.  
  88. IF (IIMPI.EQ.1)THEN
  89. CALL GIBTEM(XKT)
  90. INTERR(1)=INT(XKT)
  91. CALL ERREUR(-259)
  92. WRITE(IOIMP,12)
  93. 12 FORMAT(' L''IMPRESSION PRECEDENTE EST AVANT LA FIN DE KRES9')
  94. ENDIF
  95. IF(IERR.NE.0) RETURN
  96. *
  97. * Analyse de la structure
  98. *
  99. C MMATRI=MMATRX
  100. C SEGACT MMATRI
  101. C WRITE(IOIMP,*) 'IJMAX=',IJMAX
  102. C WRITE(IOIMP,*) 'IDIAG=',IDIAG
  103. C WRITE(IOIMP,*) 'IGEOMA=',IGEOMA
  104. C WRITE(IOIMP,*) 'IINCPO=',IINCPO
  105. C WRITE(IOIMP,*) 'IIDUA=',IIDUA
  106. C WRITE(IOIMP,*) 'IIMIK=',IIMIK
  107. C WRITE(IOIMP,*) 'INEG=',INEG
  108. C WRITE(IOIMP,*) 'IDNORM=',IDNORM
  109. C WRITE(IOIMP,*) 'IILIGN=',IILIGN
  110. C WRITE(IOIMP,*) 'IILIGS=',IILIGS
  111. C WRITE(IOIMP,*) 'NENS=',NENS
  112. C WRITE(IOIMP,*) 'IHARK=',IHARK
  113. C WRITE(IOIMP,*) 'IASLIG=',IASLIG
  114. C WRITE(IOIMP,*) 'IASDIA=',IASDIA
  115. C WRITE(IOIMP,*) 'IDUAPO=',IDUAPO
  116. C WRITE(IOIMP,*) 'IHARDU=',IHARDU
  117. C WRITE(IOIMP,*) 'IDNORD=',IDNORD
  118. C WRITE(IOIMP,*) 'PRCHLV=',PRCHLV
  119. C* SEGPRT,MMATRI
  120. C IF (IGEOMA.NE.0) THEN
  121. C MELEME=IGEOMA
  122. C WRITE(IOIMP,*) 'IGEOMA'
  123. C CALL ECMAIL(MELEME,0)
  124. C ENDIF
  125. C IF (IIMIK.NE.0) THEN
  126. C MIMIK=IIMIK
  127. C SEGACT MIMIK
  128. C N=IMIK(/2)
  129. C WRITE(IOIMP,*) 'IIMIK N=',N
  130. C WRITE(IOIMP,2019) (IMIK(I),I=1,N)
  131. C ENDIF
  132. C IF (IIDUA.NE.0) THEN
  133. C MIDUA=IIDUA
  134. C SEGACT MIDUA
  135. C N=IDUA(/2)
  136. C WRITE(IOIMP,*) 'IIDUA N=',N
  137. C WRITE(IOIMP,2019) (IDUA(I),I=1,N)
  138. C ENDIF
  139. C IF (IINCPO.NE.0) THEN
  140. C MINCPO=IINCPO
  141. C SEGACT MINCPO
  142. C MAXI=INCPO(/1)
  143. C NNOE=INCPO(/2)
  144. C WRITE(IOIMP,*) 'IINCPO MAXI=',MAXI,' NNOE=',NNOE
  145. C WRITE(IOIMP,*) 'Tableau de correspondance Inconnue-Point'
  146. C $ ,'-> DDL'
  147. C DO 146 L=1,MAXI,10
  148. C WRITE(IOIMP,'(8X,A)') 'Inconnue'
  149. C LH = MIN(L+9,MAXI)
  150. C WRITE(IOIMP,*) 'LH=',LH
  151. C WRITE (IOIMP,147) 'Point',(M,M=L,LH)
  152. C 147 FORMAT (A8,10I8)
  153. C DO 148 J=1,NNOE
  154. C WRITE(IOIMP,149) J,(INCPO(K,J),K=L,LH)
  155. C 149 FORMAT (11I8)
  156. C 148 CONTINUE
  157. C 146 CONTINUE
  158. C ENDIF
  159. C IF (IDUAPO.NE.0) THEN
  160. C MINCPO=IDUAPO
  161. C SEGACT MINCPO
  162. C MAXI=INCPO(/1)
  163. C NNOE=INCPO(/2)
  164. C WRITE(IOIMP,*) 'IDUAPO MAXI=',MAXI,' NNOE=',NNOE
  165. C WRITE(IOIMP,*) 'Tableau de correspondance Inconnue-Point'
  166. C $ ,'-> DDL'
  167. C DO 246 L=1,MAXI,10
  168. C WRITE(IOIMP,'(8X,A)') 'Inconnue'
  169. C LH = MIN(L+9,MAXI)
  170. C WRITE (IOIMP,247) 'Point',(M,M=L,LH)
  171. C 247 FORMAT (A8,10I8)
  172. C DO 248 J=1,NNOE
  173. C WRITE(IOIMP,249) J,(INCPO(K,J),K=L,LH)
  174. C 249 FORMAT (11I8)
  175. C 248 CONTINUE
  176. C 246 CONTINUE
  177. C ENDIF
  178. C IF (IDIAG.NE.0) THEN
  179. C MDIAG=IDIAG
  180. C SEGACT MDIAG
  181. C WRITE(IOIMP,*) 'IDIAG INC=',DIAG(/1)
  182. C WRITE(IOIMP,2022) (DIAG(II),II=1,DIAG(/1))
  183. C ENDIF
  184. C IF (IDNORM.NE.0) THEN
  185. C MDNOR=IDNORM
  186. C SEGACT MDNOR
  187. C WRITE(IOIMP,*) 'IDNORM INC=',DNOR(/1)
  188. C WRITE(IOIMP,2022) (DNOR(II),II=1,DNOR(/1))
  189. C ENDIF
  190. C IF (IDNORD.NE.0) THEN
  191. C MDNOR=IDNORD
  192. C SEGACT MDNOR
  193. C WRITE(IOIMP,*) 'IDNORD INC=',DNOR(/1)
  194. C WRITE(IOIMP,2022) (DNOR(II),II=1,DNOR(/1))
  195. C ENDIF
  196. C IF (IILIGN.NE.0) THEN
  197. C MILIGN=IILIGN
  198. C SEGACT MILIGN
  199. C WRITE(IOIMP,*) 'IILIGN INC=',IPNO(/1),' NNOE=',ILIGN(/1)
  200. C WRITE(IOIMP,*) ' IPNO'
  201. C WRITE(IOIMP,2020) (IPNO(II),II=1,IPNO(/1))
  202. C WRITE(IOIMP,*) ' ITTR'
  203. C WRITE(IOIMP,2020) (ITTR(II),II=1,ITTR(/1))
  204. C DO INOE=1,ILIGN(/1)
  205. C WRITE(IOIMP,*) ' Point ', INOE
  206. C LLIGN=ILIGN(INOE)
  207. C SEGACT LLIGN
  208. C WRITE(IOIMP,*) ' LLIGN NA=',IMMMM(/1),' LLVVA=',XXVA(/1)
  209. C WRITE(IOIMP,*) ' NJMAX=',NJMAX
  210. C WRITE(IOIMP,*) ' IMMMM'
  211. C WRITE(IOIMP,2020) (IMMMM(II),II=1,IMMMM(/1))
  212. C WRITE(IOIMP,*) ' LDEB'
  213. C WRITE(IOIMP,2020) (LDEB(II),II=1,LDEB(/1))
  214. C WRITE(IOIMP,*) ' IPPO'
  215. C WRITE(IOIMP,2020) (IPPO(II),II=1,IPPO(/1))
  216. C WRITE(IOIMP,*) ' LINC'
  217. C WRITE(IOIMP,2020) (LINC(II),II=1,LINC(/1))
  218. C WRITE(IOIMP,*) ' XXVA'
  219. C WRITE(IOIMP,2022) (XXVA(II),II=1,XXVA(/1))
  220. C ENDDO
  221. C ENDIF
  222. C IF (IILIGS.NE.0) THEN
  223. C MILIGN=IILIGS
  224. C SEGACT MILIGN
  225. C WRITE(IOIMP,*) 'IILIGS INC=',IPNO(/1),' NNOE=',ILIGN(/1)
  226. C WRITE(IOIMP,*) ' IPNO'
  227. C WRITE(IOIMP,2020) (IPNO(II),II=1,IPNO(/1))
  228. C WRITE(IOIMP,*) ' ITTR'
  229. C WRITE(IOIMP,2020) (ITTR(II),II=1,ITTR(/1))
  230. C DO INOE=1,ILIGN(/1)
  231. C WRITE(IOIMP,*) ' Point ', INOE
  232. C LLIGN=ILIGN(INOE)
  233. C SEGACT LLIGN
  234. C WRITE(IOIMP,*) ' LLIGN NA=',IMMMM(/1),' LLVVA=',XXVA(/1)
  235. C WRITE(IOIMP,*) ' NJMAX=',NJMAX
  236. C WRITE(IOIMP,*) ' IMMMM'
  237. C WRITE(IOIMP,2020) (IMMMM(II),II=1,IMMMM(/1))
  238. C WRITE(IOIMP,*) ' LDEB'
  239. C WRITE(IOIMP,2020) (LDEB(II),II=1,LDEB(/1))
  240. C WRITE(IOIMP,*) ' IPPO'
  241. C WRITE(IOIMP,2020) (IPPO(II),II=1,IPPO(/1))
  242. C WRITE(IOIMP,*) ' LINC'
  243. C WRITE(IOIMP,2020) (LINC(II),II=1,LINC(/1))
  244. C WRITE(IOIMP,*) ' XXVA'
  245. C WRITE(IOIMP,2022) (XXVA(II),II=1,XXVA(/1))
  246. C ENDDO
  247. C ENDIF
  248. C 2019 FORMAT (20(2X,A4) )
  249. C 2020 FORMAT (20(2X,I4) )
  250. C 2021 FORMAT (20(2X,L4) )
  251. C 2022 FORMAT(10(1X,1PG12.5))
  252. SEGACT MRIGID*MOD
  253. ICHOLE=MMATRX
  254. SEGDES MRIGID
  255. RETURN
  256. *
  257. * End of subroutine KRES9
  258. *
  259. END
  260.  
  261.  

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