Télécharger creob.eso

Retour à la liste

Numérotation des lignes :

  1. C CREOB SOURCE JC220346 18/12/04 21:15:11 9991
  2. SUBROUTINE CREOB (ITYPE,NOMM1,NOMM2,ITLACC,mianc,mranc,mlanc,
  3. > mmanc)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6. C=======================================================================
  7. C BUT : RECREER LES OBJETS
  8. C APPELE PAR : LIPIL
  9. C :
  10. C ECRIT PAR FARVACQUE -REPRIS PAR LENA
  11. C
  12. C=======================================================================
  13. -INC CCNOYAU
  14.  
  15. -INC PPARAM
  16. -INC CCOPTIO
  17. C=======================================================================
  18.  
  19.  
  20. SEGMENT/ITLACC/(ITLAC(0))
  21. SEGMENT/NOMM1/(NOM1(NOBJN1))
  22. SEGMENT NOMM2
  23. CHARACTER*(LONOM) NOM2(NOBJN1)
  24. ENDSEGMENT
  25. C
  26. CHARACTER*(8) ITYPE
  27.  
  28. CHARACTER*(LONOM) NOMM
  29. CHARACTER*512 CK
  30. REAL*8 XK
  31. LOGICAL BK
  32.  
  33. C--------------------------------------------------------------------
  34. SEGACT NOMM1,NOMM2
  35. IMAX1=ITLAC(/1)
  36. NOBJN=NOM1(/1)
  37. C ------------------------------------------------------------------
  38. C *****FIN DE LECTURE D'UNE PILE : NOM DES OBJETS*******************
  39. C
  40. IF(NOBJN.EQ.0) GOTO 1
  41.  
  42. DO 1094 I=1,NOBJN
  43. IERT=0
  44. J=NOM1(I)
  45. NOMM=NOM2(I)
  46. IF (J.GT.IMAX1) THEN
  47. WRITE(IOIMP,808) ITYPE,NOM2(I),imax1,j
  48. GO TO 1094
  49. ENDIF
  50.  
  51. K=ITLAC(J)
  52. if (itype.eq.'ENTIER' ) K=itlac(j+mianc)
  53. if (itype.eq.'FLOTTANT') K=itlac(j+mranc)
  54. if (itype.eq.'LOGIQUE' ) K=itlac(j+mlanc)
  55. if (itype.eq.'MOT ' ) K=itlac(j+mmanc)
  56.  
  57.  
  58.  
  59.  
  60. IF(IIMPI.NE.0) WRITE(IOIMP,801)ITYPE,NOM2(I),J,K
  61.  
  62. IF(ITYPE.EQ.'ENTIER ') then
  63. ik=k
  64. elseif (ITYPE.EQ.'FLOTTANT'.OR.ITYPE.EQ.
  65. $ 'LOGIQUE '.OR.ITYPE.EQ.'MOT ') then
  66. CALL QUEVAL(K,ITYPE,IERT,IK,XK,CK,BK,IOK)
  67. endif
  68. IF(IERT.EQ.1) THEN
  69. CALL ERREUR(5)
  70. GOTO 1
  71. ENDIF
  72.  
  73. IF(ITYPE.EQ.'ENTIER ') THEN
  74. CALL NOMENT(NOMM,IK)
  75. ELSE IF(ITYPE.EQ.'FLOTTANT') THEN
  76. CALL NOMREE(NOMM,XK)
  77. ELSE IF(ITYPE.EQ.'LOGIQUE ') THEN
  78. CALL NOMLOG(NOMM,BK)
  79. ELSE IF(ITYPE.EQ.'MOT ') THEN
  80. CALL NOMCHA(NOMM,CK(1:IK))
  81. ELSE
  82. CALL NOMOBJ(ITYPE,NOMM,K)
  83. ENDIF
  84. 1094 CONTINUE
  85.  
  86. 1 CONTINUE
  87. SEGDES NOMM1
  88. SEGDES NOMM2
  89. RETURN
  90. C -------------------------------------------------------
  91. 801 FORMAT(2X,A8,2X,A24,2X,2I9)
  92. 808 FORMAT(2X,A8,' * ATTENTION ERREUR SUR L''OBJET ',A24,2i4)
  93. END
  94.  
  95.  
  96.  
  97.  

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