Télécharger rescha.eso

Retour à la liste

Numérotation des lignes :

rescha
  1. C RESCHA SOURCE PV090527 25/01/07 18:18:27 12116
  2.  
  3. *--------------------------------------------------------------------*
  4. * *
  5. * Restauration des pointeurs issus de la pile des CHAMELEMs. *
  6. * *
  7. *--------------------------------------------------------------------*
  8. SUBROUTINE RESCHA (ICOLAC,ITLACC,IMAX1,IDEB)
  9.  
  10. IMPLICIT INTEGER(I-N)
  11. IMPLICIT REAL*8 (A-H,O-Z)
  12.  
  13. -INC PPARAM
  14. -INC CCOPTIO
  15. -INC SMCOORD
  16. -INC SMCHAML
  17. -INC TMCOLAC
  18. segment iseg(0)
  19. CHARACTER*8 MOTIP
  20. CHARACTER*16 NOCOMP
  21. *
  22. * Boucle sur les CHAMELEMs contenus dans la pile:
  23. *
  24. ITLAC1 = KCOLA(1)
  25. ITLAC2 = KCOLA(40)
  26. ITLAC3 = KCOLA(48)
  27. ITLAC5 = KCOLA(33)
  28. DO 10 IEL =IDEB,IMAX1
  29. MCHELM = ITLAC(IEL)
  30. IF (MCHELM.EQ.0) GOTO 10
  31. SEGACT,MCHELM*MOD
  32. iva = mchelm.mclcnf
  33. if (abs(iva).le.itlac5.itlac(/1).and.iva.lt.0 ) then
  34. mchelm.mclcnf= itlac5.itlac(abs(iva))
  35. endif
  36. NSOUEL = ICHAML(/1)
  37. IF (NSOUEL.EQ.0) GOTO 10
  38. N3 = INFCHE(/2)
  39. IF (N3.NE.6) THEN
  40. write(ioimp,*) 'RESCHA : INFCHE(/2) = N3 != 6',mchelm
  41. call erreur(5)
  42. ENDIF
  43. DO 20 ISOU = 1, NSOUEL
  44. MCHAML = mchelm.ICHAML(ISOU)
  45. IF (MCHAML.EQ.0) GO TO 20
  46. SEGACT,MCHAML*MOD
  47.  
  48. IVA = IMACHE(ISOU)
  49. IF (IVA.NE.0) IMACHE(ISOU) = ITLAC1.ITLAC(ABS(IVA))
  50. * IF (IVA.LT.0) IMACHE(ISOU) = ITLAC1.ITLAC(ABS(IVA))
  51.  
  52. IVA = INFCHE(ISOU,4)
  53. IF (IVA.LT.0) INFCHE(ISOU,4) = ITLAC2.ITLAC(ABS(IVA))
  54.  
  55. NCO = TYPCHE(/2)
  56. DO 30 ICO = 1, NCO
  57. NOCOMP = TYPCHE(ICO)
  58. IF (NOCOMP(1:8).EQ.'POINTEUR') THEN
  59. MELVAL = IELVAL(ICO)
  60. IF (MELVAL.EQ.0) GOTO 30
  61. MOTIP(1:8)=NOCOMP(9:16)
  62. CALL TYPFIL(MOTIP,ITYP)
  63. IF (ITYP.LE.0) GO TO 30
  64. ITLAC4 = KCOLA(ITYP)
  65. SEGACT,MELVAL*MOD
  66. N1 = IELCHE(/1)
  67. N2 = IELCHE(/2)
  68. DO I2 = 1, N2
  69. DO I1 = 1, N1
  70. IVA = IELCHE(I1,I2)
  71. IF (IVA.LT.0) IELCHE(I1,I2) = ITLAC4.ITLAC(ABS(IVA))
  72. ENDDO
  73. ENDDO
  74. SEGDES,MELVAL
  75. ELSE
  76. IVA = IELVAL(ICO)
  77. IF (IVA.LT.0) IELVAL(ICO) = ITLAC3.ITLAC(ABS(IVA))
  78. ENDIF
  79. 30 CONTINUE
  80. SEGDES,MCHAML
  81. 20 CONTINUE
  82. SEGDES,MCHELM
  83. 10 CONTINUE
  84.  
  85. RETURN
  86. END
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  

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