Télécharger enlev7.eso

Retour à la liste

Numérotation des lignes :

  1. C ENLEV7 SOURCE CB215821 20/07/29 21:15:21 10668
  2. ************************************************************************
  3. *
  4. * E N L E V 7
  5. * -----------
  6. *
  7. * FONCTION:
  8. * ---------
  9. *
  10. * ENLEVER UNE FORMULATION OU UN COMPORTEMENT A UN "MMODEL".
  11. *
  12. *
  13. * PARAMETRES: (E)=ENTREE (S)=SORTIE
  14. * -----------
  15. *
  16. * MOD2 = ENLE MOD1 | 'FORM' | MOT1 ;
  17. * | 'COMP' |
  18. *
  19. * MOD2 (S) OBJET RESULTAT DE TYPE MMODEL DE POINTEUR MMODEL
  20. *
  21. * MOD1 (E) OBJET DE TYPE MMODEL FOURNIT EN ENTREE DE
  22. * POINTEUR IPMOD1
  23. *
  24. * 'FORM' | -> MOT CLE SPECIFIE SI LE MOT A RETIRER EST A CHERCHER
  25. * 'COMP' | -> DANS FORMULATION (FORMOD) OU COMPORTEMENT (MATMOD)
  26. *
  27. *
  28. * MOT1 OBJET DE TYPE MOT DONNANT LA PARTIE DU MMODEL MOD1
  29. * QUE L'ON SOUHAITE RETIRER
  30. *
  31. ************************************************************************
  32. SUBROUTINE ENLEV7(IPMOD1,IPMOD2)
  33. C
  34. IMPLICIT REAL*8(A-H,O-Z)
  35. IMPLICIT INTEGER (I-N)
  36. C
  37.  
  38. -INC PPARAM
  39. -INC CCOPTIO
  40. -INC SMMODEL
  41. C
  42. CHARACTER*4 NONOM(2)
  43. CHARACTER*16 MOT16a,MOT16b
  44.  
  45. SEGMENT LIMOTS
  46. CHARACTER*16 MOTEMP(NBFORM)
  47. ENDSEGMENT
  48.  
  49. SEGMENT LIMODE(0)
  50. C
  51. DATA NONOM /'FORM','COMP'/
  52. MACRO, (FORMULATION, COMPORTEMENT)
  53.  
  54. C
  55. C LECTURE D'UN MOT CLE
  56. C
  57. CALL LIRMOT(NONOM,2,INOM,1)
  58. C
  59. C LECTURE DU OU DES MOTS FOURNIS PAR L'UTILISATEUR
  60. C
  61. NBFORM = 15
  62. SEGINI,LIMOTS
  63. ICOND = 1
  64. INFOR = 1
  65. 10 CONTINUE
  66. CALL LIRCHA(MOTEMP(INFOR),ICOND,IRETOU)
  67. IF (IERR.NE.0) RETURN
  68. IF (IRETOU.NE.0) THEN
  69. ICOND = 0
  70. INFOR = INFOR + 1
  71. IF(INFOR .GT. NBFORM)THEN
  72. NBFORM=NBFORM * 2 + 15
  73. SEGADJ,LIMOTS
  74. ENDIF
  75. GOTO 10
  76. ENDIF
  77. NBFORM = INFOR - 1
  78.  
  79. C Extension du MMODEL en cas de modele de MELANGE
  80. CALL MODETE(IPMOD1,MMODE1,IMELAN)
  81.  
  82. MMODE1 = IPMOD1
  83. NSOUS = MMODE1.KMODEL(/1)
  84. C
  85. IF (NSOUS.EQ.0) THEN
  86. IPMOD2 = MMODE1
  87. SEGSUP,LIMOTS
  88. RETURN
  89. ENDIF
  90.  
  91. C BOUCLE SUR LES SOUS-MODELES
  92. SEGINI,LIMODE
  93. DO 20 INDD=1,NBFORM
  94. MOT16a=MOTEMP(INDD)
  95. DO 30 III = 1,NSOUS
  96. IMODE1 = MMODE1.KMODEL(III)
  97.  
  98. CASE, INOM
  99. WHEN,FORMULATION
  100. C ****************
  101. NFOR = IMODE1.FORMOD(/2)
  102. DO IV = 1,NFOR
  103. MOT16b=IMODE1.FORMOD(IV)
  104. IF (MOT16b .EQ. MOT16a) GOTO 30
  105. ENDDO
  106. CALL AJOU(LIMODE,IMODE1)
  107.  
  108. WHEN,COMPORTEMENT
  109. C *****************
  110. NMAT = IMODE1.MATMOD(/2)
  111. DO IV = 1,NMAT
  112. MOT16b=IMODE1.MATMOD(IV)
  113. IF (MOT16b .EQ. MOT16a) GOTO 30
  114. ENDDO
  115. CALL AJOU(LIMODE,IMODE1)
  116. ENDCASE
  117. 30 CONTINUE
  118. 20 CONTINUE
  119.  
  120. C Creation du MMODEL resultat
  121. N1=LIMODE(/1)
  122. SEGINI,MMODEL
  123. IPMOD2=MMODEL
  124. DO III=1,N1
  125. MMODEL.KMODEL(III)=LIMODE(III)
  126. ENDDO
  127.  
  128. C MENAGE AVANT DE QUITTER
  129. SEGSUP LIMODE, LIMOTS
  130.  
  131. END
  132.  
  133.  

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