Télécharger evtem1.eso

Retour à la liste

Numérotation des lignes :

evtem1
  1. C EVTEM1 SOURCE CB215821 20/11/25 13:28:23 10792
  2. subroutine EVTEM1(icoul)
  3. implicit integer(i-n)
  4. implicit real*8(a-h,o-z)
  5.  
  6. -INC PPARAM
  7. -INC CCOPTIO
  8. -INC CCNOYAU
  9. -INC SMCHAML
  10. -INC SMCHPOI
  11. -INC SMTABLE
  12. -INC SMLREEL
  13. -INC SMEVOLL
  14. -INC SMELEME
  15.  
  16. logical login
  17. character*8 typobj
  18. character*18 charin,chalu
  19. character*1 charre
  20. character*(LOCOMP) compo,noco
  21. character*(LONOM) nompoi
  22. call lirobj ('TABLE ',mtable,1,iretou)
  23. if(ierr.ne.0) return
  24. ilo=0
  25. call lircha(chalu,1,ilo)
  26. TYPOBJ='TABLE'
  27. charin='TEMPS'
  28. segact mtable
  29. call acctab(mtable,'MOT',ivalin,xvalin,charin(1:5),login,iobi,
  30. $ TYPOBJ,ivalin,xvalin,charre,login,mtab1)
  31. if( ierr.ne.0) return
  32. segact mtable
  33. call acctab(mtable,'MOT',ivalin,xvalin,chalu(1:ilo),login,iobi,
  34. $ TYPOBJ,ivalin,xvalin,charre,login,mtab2)
  35. if( ierr.ne.0) return
  36. compo=' '
  37. call lircha (compo,0,ilp)
  38. segact mtab1,mtab2
  39. typobj=mtab2.mtabtv(1)
  40.  
  41. C----------------------------------------------------------------------
  42. if(typobj.eq.'CHPOINT ') then
  43. call lirobj('POINT' , IP1,1,iretou)
  44. call quenom(nompoi)
  45. if(ierr.ne.0) then
  46. moterr(1:8)='TABLE'
  47. segdes mtab1,mtab2
  48. return
  49. endif
  50. jg = mtab1.mlotab
  51. if(mtab2.mlotab.ne.jg) then
  52. segdes mtab1,mtab2
  53. call erreur ( 1015 )
  54. return
  55. endif
  56. segini mlree1,mlree2
  57. do 10 ia=1,mtab1.mlotab
  58. mlree1.prog(ia)= mtab1.rmtabv(ia)
  59. mchpoi=mtab2.mtabiv(ia)
  60. call actobj('CHPOINT ',mchpoi,1)
  61.  
  62. if( ipchp(/1).eq.0.and.ia.eq.1) then
  63. mlree2.prog(ia)=0.D0
  64. goto 15
  65. endif
  66. do 11 isou=1,ipchp(/1)
  67. msoupo = ipchp(isou)
  68. meleme =igeoc
  69. noco =nocomp(1)
  70. icomp =1
  71. do 12 iel=1,num(/2)
  72. if(num(1,iel).eq.ip1) then
  73. if(ilp.eq.0.and.nocomp(/2).ne.1) then
  74. MOTERR(1:8)='CHPOINT'
  75. INTERR(1)=NOCOMP(/2)
  76. call erreur(761)
  77. goto 100
  78. endif
  79. do 13 icomp=1,nocomp(/2)
  80. noco=nocomp(icomp)
  81. if(nocomp(icomp).eq.compo) goto 14
  82. 13 continue
  83.  
  84. MOTERR(1:4)=COMPO
  85. moterr(5:12)='CHPOINT'
  86. interr(1)=ip1
  87. call erreur(65)
  88. goto 100
  89. 14 continue
  90. mpoval=ipoval
  91. segact mpoval
  92. noco=nocomp(icomp)
  93. mlree2.prog(ia)=vpocha(iel,icomp)
  94. goto 15
  95. endif
  96. 12 continue
  97. 11 continue
  98. interr(1) = ip1
  99. moterr(1:)='CHPOINT'
  100. call erreur(64)
  101. goto 100
  102.  
  103. 15 continue
  104. C Desactivation car la boucle peut etre tres longue
  105. call actobj('CHPOINT ',mchpoi,0)
  106. 10 continue
  107.  
  108. N=1
  109.  
  110. segini mevoll
  111. ityevo='REEL'
  112. IEVTEX=chalu(1:ilo)//' '//noco//' fonction du temps du point '
  113. $ //nompoi
  114. segini kevoll
  115. ievoll(1)=kevoll
  116. iprogx=mlree1
  117. iprogy=mlree2
  118. numevx=icoul
  119. NUMEVY='REEL'
  120. NOMEVY=chalu(1:6) // ' '//noco
  121. NOMEVX='TEMPS'
  122. TYPX='LISTREEL'
  123. TYPY='LISTREEL'
  124. KEVTEX=chalu(1:ilo)//' fonction du temps du point '//nompoi
  125. 101 format (I6)
  126. call actobj('EVOLUTIO',mevoll,1)
  127. call ecrobj('EVOLUTIO',mevoll)
  128. return
  129.  
  130. C----------------------------------------------------------------------
  131. elseif(typobj.eq.'MCHAML' )then
  132. call lirent ( izo,1,iretou)
  133. if(ierr.ne.0) return
  134. call lirent(iel,1,iretou)
  135. if(ierr.ne.0) return
  136. call lirent(iga,1,iretou)
  137. if(ierr.ne.0) return
  138. jg = mtab1.mlotab
  139. if(mtab2.mlotab.ne.jg) then
  140. segdes mtab1,mtab2
  141. call erreur ( 1015 )
  142. goto 100
  143. endif
  144. segini mlree1,mlree2
  145.  
  146. do 20 ia = 1, mtab2.mlotab
  147. mlree1.prog(ia)= mtab1.rmtabv(ia)
  148. mchelm=mtab2.mtabiv(ia)
  149. call actobj('MCHAML ',mchelm,1)
  150. if( ichaml(/1).lt.izo) then
  151. call erreur(279)
  152. goto 100
  153. endif
  154. mchaml=ichaml(izo)
  155. meleme=imache(izo)
  156. icomp =1
  157. if(ilp.eq.0 .and. nomche(/2).ne.1) then
  158. MOTERR(1:8)='MCHAML'
  159. INTERR(1) = NOMCHE(/2)
  160. call erreur(761)
  161. goto 100
  162. endif
  163. if(num(/2).lt.iel) then
  164. call erreur(262)
  165. goto 100
  166. endif
  167. noco =nomche(1)
  168. icomp=1
  169. do 23 icomp=1,nomche(/2)
  170. noco=nomche(icomp)
  171. if(noco.eq.compo) goto 24
  172. 23 continue
  173. MOTERR(1:4) = COMPO
  174. moterr(5:12)='MCHAML'
  175. interr(1)=ip1
  176. call erreur(65)
  177. goto 100
  178.  
  179. 24 continue
  180. melval=ielval(icomp)
  181. mlree2.prog(ia)=velche(min(velche(/1),iga),
  182. & min(velche(/2),iel) )
  183.  
  184. C Desactivation car la boucle peut etre tres longue
  185. call actobj('MCHAML ',mchelm,0)
  186. 20 continue
  187. endif
  188. C----------------------------------------------------------------------
  189.  
  190. N=1
  191. segini mevoll,kevoll
  192. ityevo='REEL'
  193. if (typobj.eq.'CHPOINT ') then
  194. IEVTEX=chalu(1:ilo)//' '//noco//' fonction du temps du point '
  195. $ //nompoi
  196. elseif(typobj.eq.'MCHAML ') then
  197. IEVTEX=chalu(1:ilo)//' '//noco//' zone '
  198. write(ievtex(ilo+12:ilo+36),102)izo,' elem ',iel,' gauss ',iga
  199. endif
  200. 102 format (I4,A6,i6,a7,i2)
  201.  
  202. KEVTEX = IEVTEX
  203. ievoll(1)= kevoll
  204. iprogx = mlree1
  205. iprogy = mlree2
  206. numevx = icoul
  207. NUMEVY ='REEL'
  208. NOMEVY = chalu(1:6) // ' '//noco
  209. NOMEVX ='TEMPS'
  210. TYPX ='LISTREEL'
  211. TYPY ='LISTREEL'
  212. call actobj('EVOLUTIO',mevoll,1)
  213. call ecrobj('EVOLUTIO',mevoll)
  214. return
  215.  
  216. 100 continue
  217. segsup mlree1,mlree2
  218. return
  219. end
  220.  
  221.  
  222.  

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