Télécharger fantom.eso

Retour à la liste

Numérotation des lignes :

fantom
  1. C FANTOM SOURCE PV 17/12/05 21:16:18 9646
  2. subroutine fantom
  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 TMCOLAC
  10. logical ibool,ilogi
  11. character*8 icha,ichare,mcha2
  12. character*72 mcha
  13. if(ipsauv.eq.0) then
  14. call erreur(967)
  15. return
  16. endif
  17. C itout=0
  18. call quetyp ( icha,1,iretou)
  19. if(icha.ne.'TABLE' ) then
  20. moterr(1:8)='TABLE'
  21. call erreur (37)
  22. return
  23. endif
  24. ichare=' '
  25. call lirobj(ichare,mtable,1,iretou)
  26. if ( ierr.ne.0) return
  27. 1 call quetyp ( icha,1,iretou)
  28. if(ierr.ne.0) return
  29. ** if( itout.eq.1.and.icha.ne.'ENTIER') then
  30. ** call erreur (8)
  31. ** return
  32. ** endif
  33. if( icha.eq.'ENTIER' ) then
  34. call lirent (iva,1,iretou)
  35. elseif(icha.eq.'FLOTTANT' ) then
  36. call lirree(xva,1,iretou)
  37. elseif(icha.eq.'MOT' ) then
  38. call lircha(mcha,1,iretou)
  39. C if( mcha.eq.'TOUTSAUF') then
  40. C itout=1
  41. C goto 1
  42. C endif
  43. elseif(icha.eq.'LOGIQUE') then
  44. call lirlog(ilogi,1,iretou)
  45. else
  46. call lirobj(icha,iva,1,iretou)
  47. endif
  48. if(ierr.ne.0) return
  49. C if ( itout.eq.1) then
  50. CC recherche du max
  51. C ideb=0
  52. C do 2 ii=1,100000
  53. C ichare=' '
  54. C call acctab ( mtable,icha,ii,xva,mcha,ilogi,iva,
  55. C $ ichare, ivb,xvb,mcha2,ibool,iobj)
  56. C if(ichare.eq.' ') then
  57. C ifin = ii - iva -1
  58. C go to 3
  59. C endif
  60. C 2 continue
  61. C ifin=ii-2
  62. C 3 continue
  63. C else
  64. ideb=iva
  65. ifin=iva
  66. C endif
  67. do 4 iiva=ideb,ifin
  68. ichare=' '
  69. iobj=0
  70. call acctab ( mtable,icha,iiva,xva,mcha,ilogi,iiva,
  71. $ ichare, ivb,xvb,mcha2,ibool,iobj)
  72. if( ichare.eq.' ') then
  73. moterr(1:8) = icha
  74. interr(1)=iiva
  75. call erreur (171)
  76. return
  77. endif
  78. if(ichare.eq.'FANTOME ') return
  79. *
  80. * ici on test que l'objet a deja ete sauvé.
  81. *
  82.  
  83. if(iobj.eq.0) return
  84. * write(6,*) ' meffac ',meffac
  85. if(meffac.eq.0) then
  86. neff =300
  87. segini meffac
  88. call savseg (meffac)
  89. else
  90. segact meffac*mod
  91. endif
  92. if( neffec.ge.neffac(/1)) then
  93. neff = neffac(/1) + 300
  94. segadj meffac
  95. endif
  96. call typfil(ichare,jj)
  97. * write(6,*) ' ichare jj ', ichare , jj
  98. icolac=ipsauv
  99. segact icolac
  100. itlacc = kcola(jj)
  101. segact itlacc
  102. naz = itlac(/1)
  103. do 10 i=1,naz
  104. if( itlac(i).eq.iobj) go to 20
  105. 10 continue
  106.  
  107. moterr(1:8)=ichare
  108. interr(1)=iobj
  109. call erreur(968)
  110. segdes itlacc,icolac,meffac
  111. return
  112. 20 continue
  113. neffec=neffec+1
  114. tyeffa(neffec)=ichare
  115. neffac(neffec)=i
  116. neff=neffec
  117. * write(6,*) ' icha iiva neff ', icha, iiva,neff
  118. segdes meffac,itlacc,icolac
  119. call ecctab (mtable,icha,iiva,xva,mcha,ilogi,iiva,
  120. $ 'FANTOME',iiva,xvb,mcha2,ibool,neff)
  121. 4 continue
  122. return
  123. end
  124.  
  125.  
  126.  
  127.  
  128.  

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