Télécharger zpmode.eso

Retour à la liste

Numérotation des lignes :

zpmode
  1. C ZPMODE SOURCE JK148537 24/10/29 21:15:10 12056
  2.  
  3. *---------------------------------------
  4. * ECRITURE D'UN OBJET MODELE
  5. *---------------------------------------
  6.  
  7. SUBROUTINE ZPMODE (MMODEL)
  8.  
  9. IMPLICIT INTEGER(I-N)
  10. IMPLICIT REAL*8 (A-H,O-Z)
  11.  
  12. -INC PPARAM
  13. -INC CCOPTIO
  14. -INC CCHAMP
  15. C==DEB= FORMULATION HHO == Include specifique ==========================
  16. -INC CCHHOPA
  17. C==FIN= FORMULATION HHO ================================================
  18.  
  19. -INC SMMODEL
  20. -INC SMLMOTS
  21.  
  22. EXTERNAL LONG
  23.  
  24. character*16 mderiv(6)
  25. character*6 cha6Fa,cha6Fb
  26. character*8 nomtyp(19),MOT8
  27. character*(LOCHAI) motlib,fmt1
  28. character*12 MNLOCA(3)
  29. logical b_z,losta
  30.  
  31. DATA MDERIV/'Lineaire ','Quadratique ',
  32. $ 'TRUSDELL ','JAUMANN ','Utilisateur ',
  33. $ 'FEFP '/
  34. data nomtyp/
  35. 1 'INCOPRIM', 'INCODUAL', 'GRADIENT', 'CONTRAIN',
  36. 1 'DEFORMAT', 'MATERIAU', 'CARACTER', 'TEMPERAT',
  37. 1 'PRINCIPA', 'VARINTER', 'GRAFLEXI', 'PHASES ',
  38. 1 'DEFINELA', 'PARAMEXT', ' ', 'SCAL ',
  39. 1 'TEMP ', 'MAHO ', 'MAHT '/
  40. DATA MNLOCA /'Moyenne ','Stress based','HELMHOLTZ '/
  41. SEGACT,MMODEL
  42. N1=KMODEL(/1)
  43.  
  44. WRITE(IOIMP,190)
  45. WRITE(IOIMP,200)
  46. WRITE(IOIMP,201)
  47. WRITE(IOIMP,210) N1,MMODEL
  48. WRITE(IOIMP,201)
  49. WRITE(IOIMP,200)
  50.  
  51. DO N=1,N1
  52. IMODEL=KMODEL(N)
  53. SEGACT,IMODEL
  54. WRITE(IOIMP,2) N,IMODEL
  55. WRITE(IOIMP,3) IMAMOD,NOMTP(NEFMOD)
  56. IF (CONMOD(1:16).NE.' ')
  57. & WRITE(IOIMP,4) CONMOD(1:16)
  58. IF (CONMOD(17:24).NE.' ')
  59. & WRITE(IOIMP,8) CONMOD(17:24)
  60.  
  61. nfor = formod(/2)
  62. NMAT = MATMOD(/2)
  63. nobmod = tymode(/2)
  64. mn3 = infmod(/1)
  65. if(mn3.ge.13) then
  66. inloc = -1*infmod(13)
  67. lulvia= infmod(14)
  68. else
  69. inloc = 0
  70. lulvia= 0
  71. endif
  72. losta = .false.
  73.  
  74. WRITE(IOIMP,5) (FORMOD(i),i=1,NFOR)
  75. IIPDPG = imodel.IPDPGE
  76. IF (IIPDPG.NE.0) WRITE(IOIMP,7) IPTPOI(IIPDPG),IIPDPG
  77. IF (NMAT.NE.0) WRITE(IOIMP,6) (MATMOD(i),i=1,NMAT)
  78. if (matmod(nmat).eq.'STATIONNAIRE') losta = .true.
  79. mecfor=0
  80. mdifor = 0
  81. do i=1,nfor
  82. if(formod(i).eq.'MECANIQUE'.or.formod(i).eq.'POREUX'.or.
  83. & formod(i).eq.'NAVIER_STOKES') mecfor=1
  84. if(formod(i).eq.'DIFFUSION') mdifor=1
  85. enddo
  86. if (losta) goto 302
  87.  
  88. if(mecfor.eq.1) then
  89. c write(ioimp,27) mderiv(ideriv)
  90. cbp,2020-12-10 : abandon de IDERIV (MMODEL)
  91. if(inloc.ne.0) then
  92. write(ioimp,28) mnloca(inloc)
  93. if(lulvia.ne.0) then
  94. mlmots=lulvia
  95. segact,mlmots
  96. write(ioimp,29) (mots(iu),iu=1,mots(/2))
  97. endif
  98. endif
  99.  
  100. endif
  101. do io=1,19
  102. nomid = lnomid(io)
  103. if(nomid.gt.0) then
  104. C write(6,*) 'nomid',io,nomid
  105. segact nomid
  106. if(lesobl(/2).ne.0) then
  107. write(ioimp,20) nomtyp(io),nomid
  108. if(lesobl(/2).NE.0)write(ioimp,21)(lesobl(iu),iu=1,lesobl(/2))
  109. if(lesfac(/2).NE.0)write(ioimp,21)(lesfac(iu),iu=1,lesfac(/2))
  110. endif
  111. endif
  112. enddo
  113.  
  114. write(ioimp,23)(infele(iu),iu=1,6),infele(13),infele(14)
  115.  
  116. c* if (inatuu.ne.0 .or. imatee.ne.0) then
  117. if (imatee.ne.0) then
  118. write(ioimp,22) cmatee, imatee, inatuu
  119. if (inatuu.eq.-1) then
  120. write(ioimp,221) matmod(nmat)
  121. endif
  122. if (inatuu.eq.-2) then
  123. iviex = 0
  124. CALL PLACE(tymode,nobmod,iviex,'IVIEX ')
  125. write(ioimp,222) ivamod(iviex)
  126. endif
  127. endif
  128.  
  129. 302 continue
  130. * Impression du contenu de TYMODE et IVAMOD
  131. cha6Fa(1:4)='(I )'
  132. cha6Fb(1:2)='(A'
  133. DO i=1,nobmod
  134. IF (i.EQ.1)WRITE(IOIMP,12)
  135. MOT8=TYMODE(i)
  136. IVA =IVAMOD(I)
  137. IF (MOT8 .EQ. 'MOT ')THEN
  138. CALL QUEVAL(IVA,'MOT ',ier,lgmot,r_z, motlib,b_z,i_z)
  139. IF(IER .NE. 0)CALL ERREUR(5)
  140.  
  141. C Determination du FORMAT automatique
  142. IFORMA = INT(LOG10(REAL(lgmot))) + 1
  143. IF (IFORMA.GE.1 .AND. IFORMA.LT.9 )THEN
  144. WRITE(cha6Fa(3:3), '(I1)') IFORMA
  145. ELSE
  146. CALL ERREUR(5)
  147. ENDIF
  148.  
  149. WRITE(cha6Fb(3:3+IFORMA-1),FMT=cha6Fa) lgmot
  150. cha6Fb(3+IFORMA:3+IFORMA)=')'
  151.  
  152. fmt1='(11X,A8,2X,'//cha6Fb(2:3+IFORMA-1)//')'
  153. WRITE(IOIMP,FMT=fmt1) MOT8,motlib(1:MIN(lgmot,72))
  154. ELSE
  155. WRITE(IOIMP,13) MOT8,IVA
  156. ENDIF
  157. ENDDO
  158.  
  159. * if (infmod(/1).gt.2) write(IOIMP,*)
  160. * $ 'segment d integtration ',(infmod(iu),iu=3,infmod(/1))
  161.  
  162. IF (nobmod.NE.0) THEN
  163. if ((mecfor.eq.1 .and. inatuu.lt.0) .or. mdifor.eq.1) then
  164.  
  165. noblib = 0
  166. if (mdifor.eq.1) then
  167. CALL PLACE(tymode,nobmod,noblib,'LDIEXT ')
  168. else
  169. CALL PLACE(tymode,nobmod,noblib,'LMEEXT ')
  170. endif
  171. if (noblib.gt.0) then
  172. iva=ivamod(noblib+1)
  173. call queval(iva,'MOT ',ier,lgmot,r_z, motlib,b_z,i_z)
  174. lglib = INDEX(motlib,'=')-1
  175. m_libe = LONG(motlib(1:lglib))
  176. if (m_libe.gt.72) then
  177. write(ioimp,223) motlib(1:72)//'...'
  178. else
  179. write(ioimp,223) motlib(1:m_libe)
  180. endif
  181. m_mode = LONG(motlib(lglib+2:lgmot))
  182. write(ioimp,224) motlib(lglib+2:lglib+m_mode+1)
  183. endif
  184. else
  185. C WRITE(IOIMP,12) (TYMODE(i),IVAMOD(i),i=1,nobmod)
  186. endif
  187. ENDIF
  188.  
  189. C=DEB== FORMULATION HHO === Affichages specifiques =====================
  190. mfr = NUMMFR(nefmod)
  191. IF (mfr .EQ. HHO_MFR_ELEMENT) THEN
  192. c-dbg write(ioimp,*)
  193. c-dbg write(ioimp,*) 'HHO : IDIM, IFOUR =', IDIM,IFOUR
  194. c-dbg write(ioimp,*) ' =>'//charHHO(1:LONG(charHHO))//'<='
  195. c-dbg write(ioimp,*) ' FACE ORDER / DOF DIR = ',n_o_face,n_d_face
  196. c-dbg write(ioimp,*) ' CELL ORDER / DOF DIR = ',n_o_cell,n_d_cell
  197. c-dbg write(ioimp,*) ' HYPOTHESIS = ', hyp_z(2:3)
  198. c-dbg write(ioimp,*)
  199. ENDIF
  200. C=FIN== FORMULATION HHO ================================================
  201.  
  202. ENDDO
  203.  
  204. WRITE(IOIMP,190)
  205.  
  206. 190 FORMAT(//)
  207. 200 FORMAT(1X,'+',77('-'),'+')
  208. 201 FORMAT(1X,'|',T80,'|')
  209. 210 FORMAT(' | OBJET MMODEL CONTENANT ',I6,
  210. . ' ZONE(S) ELEMENTAIRE(S)',I10,T80,'|')
  211. 2 FORMAT(//10X,' ZONE ELEMENTAIRE NUMERO ',I6,' : IMO',I10,
  212. . /10X,' -----------------------------------------------')
  213. 3 FORMAT(/1X,' POINTEUR SUR L''OBJET MAILLAGE : ',I10,/,
  214. . 1X,' TYPE D''ELEMENT FINI : ',3X,A4)
  215. 4 FORMAT(1X,' NOM DU CONSTITUANT : ',3X,A16)
  216. 5 FORMAT(1X,' FORMULATION : ',5(3X,A16))
  217. 6 FORMAT(1X,' MODELE DE MATERIAU : ',5(3X,A16))
  218. 7 FORMAT(1X,' POINT SUPPORT DPGE : ',I10,/,
  219. $ 1X,' stocke dans le maillage de pointeur', I10)
  220. 8 FORMAT(1X,' NOM DE LA PHASE : ',3X,A8)
  221. 9 FORMAT(1X,' VARIABLES INTERNES : ',12(1X,A4))
  222. 10 FORMAT(1X,' PARAMETRES MATERIAUX : ',12(1X,A4))
  223. 12 FORMAT(/' Liste des objets associes : type - valeur')
  224. 13 FORMAT(11X,A8,2X,I16)
  225. 14 FORMAT(11X,A8,2X,A72)
  226. 20 FORMAT(1x,' Liste des noms de composantes de ',a8,
  227. & ' - Pointeur nomid:',I10)
  228. 21 format (10x, 10(A8,1X))
  229. 22 format(1x,' MATERIAU cmate imate inatu : ',a8,2I5)
  230. 221 format(9x,' NOM LOI UTILISATEUR : "',a16,'"')
  231. 222 format(9x,' LOI VISCO_EXTERNE : ',I5)
  232. 223 format(9x,' "LIBRAIRIE" EXTERNE : "',A,'"')
  233. 224 format(9x,' "FONCTION" EXTERNE : "',A,'"')
  234.  
  235. 23 format(/1X,' numero de l element fini (nefmod):' , i5,/,
  236. $ 1X,' points integration epaisseur :' , i5,/,
  237. $ 1X,' points de gauss pour masse :' , i5,/,
  238. $ 1X,' points support de contraintes :' , i5,/,
  239. $ 1X,' nombre de caracteristiques :' , i5,/,
  240. $ 1X,' points de gauss pour rigidite :' , i5,/,
  241. $ 1X,' numero de la formulation E.F(mfr):' , i5,/,
  242. $ 1X,' numero de l element geometrique :' , i5)
  243. 27 format(1x,' Hypothese de deformations : ',a16,/)
  244. 28 format(1x,' Formulation non locale : ',a12)
  245. 29 format(1x,' Variables moyennees :',12(1X,A4))
  246.  
  247. c RETURN
  248. END
  249.  
  250.  
  251.  
  252.  
  253.  

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