Télécharger tabvec.eso

Retour à la liste

Numérotation des lignes :

tabvec
  1. C TABVEC SOURCE CHAT 05/01/13 03:30:51 5004
  2. SUBROUTINE TABVEC (MTABLE,MLREEL,N)
  3. IMPLICIT INTEGER(I-N)
  4. -INC SMTABLE
  5. -INC SMLREEL
  6.  
  7. -INC PPARAM
  8. -INC CCOPTIO
  9. *
  10. * transformation d'une table vecteur en listreel
  11. *
  12. * on teste d'abord le sous-type de la table puis si N n'est pas
  13. * zero on teste que le nombre d'indice trouve est bien N
  14. *
  15. LOGICAL LOGIN,LOGRE
  16. CHARACTER*8 TYPOBJ,CHARRE
  17. REAL*8 XVALIN,XVALRE
  18. CHARACTER*1 CHARIN
  19. SEGACT MTABLE
  20. TYPOBJ= 'MOT '
  21. CALL ACCTAB(MTABLE,'MOT ',I,XVALIN,'SOUSTYPE',LOGIN,IOBIN,
  22. $ TYPOBJ,IVALRE,XVALRE,CHARRE,LOGRE,IOBRE)
  23. IF(IERR.NE.0) RETURN
  24. IF(CHARRE(1:7).NE.'VECTEUR') THEN
  25. MOTERR(1:8)='VECTEUR '
  26. CALL ERREUR(602)
  27. RETURN
  28. ENDIF
  29. NENTRE=N
  30. SEGACT MTABLE
  31. JG=MLOTAB-1
  32. JD=0
  33. SEGINI MLREEL
  34. DO 10 I=1,MLOTAB
  35. TYPOBJ=' '
  36. CALL ACCTAB(MTABLE,'ENTIER ',I,XVALIN,CHARIN,LOGIN,IOBIN,
  37. $ TYPOBJ,IVALRE,XVALRE,CHARRE,LOGRE,IOBRE)
  38. IF(TYPOBJ.NE.'ENTIER '.AND.TYPOBJ.NE.'FLOTTANT') GO TO 11
  39. JD=JD+1
  40. PROG(JD)=XVALRE
  41. IF(TYPOBJ.EQ.'ENTIER ') PROG(JD)=IVALRE
  42. 10 CONTINUE
  43. 11 CONTINUE
  44. IF(NENTRE.NE.0.AND.JD.NE.NENTRE) THEN
  45. CALL ERREUR(601)
  46. ENDIF
  47. IF(JD.NE.JG) THEN
  48. JG=JD
  49. SEGADJ MLREEL
  50. ENDIF
  51. N=JG
  52. SEGDES MTABLE
  53. RETURN
  54. END
  55.  
  56.  
  57.  

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