Télécharger rlexf2.eso

Retour à la liste

Numérotation des lignes :

rlexf2
  1. C RLEXF2 SOURCE CB215821 20/11/25 13:39:28 10792
  2. SUBROUTINE RLEXF2(MCHCEN,MCHLIM,MCHELM,MCHFAC)
  3. C
  4. C**** Variables de COOPTIO
  5. C
  6. C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  7. C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ
  8. C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES
  9. C & ,IECHO, IIMPI, IOSPI
  10. C & ,IDIM
  11. C & ,MCOORD
  12. C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
  13. C & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
  14. C & ,NORINC,NORVAL,NORIND,NORVAD
  15. C & ,NUCROU, IPSAUV
  16. C
  17. IMPLICIT INTEGER(I-N)
  18.  
  19. -INC PPARAM
  20. -INC CCOPTIO
  21. INTEGER NBNN, NBELEM
  22. -INC SMELEME
  23. -INC SMCHAML
  24. C
  25. -INC SMCHPOI
  26. POINTEUR MCHCEN.MCHPOI, MCHLIM.MCHPOI, MCHFAC.MCHPOI
  27. POINTEUR MPOCEN.MPOVAL, MPOLIM.MPOVAL, MPOFAC.MPOVAL
  28. C
  29. -INC SMLENTI
  30. POINTEUR MLECEN.MLENTI, MLELIM.MLENTI, MLEFAC.MLENTI
  31. C
  32. INTEGER IGEOM, NCOM, NBSOUS, ISOUS, IELEM, NGF, NLF, NGV, NLV
  33. & ,IVOI, ICOM, I2
  34. REAL*8 VAL
  35. CHARACTER*(LOCOMP) NOM1
  36. C
  37. LOGICAL LOGCEN
  38. CALL LICHT(MCHCEN,MPOCEN,NOM1,IGEOM)
  39. IF(IERR.NE.0)GOTO 9999
  40. NCOM=MPOCEN.VPOCHA(/2)
  41. C En LICHT SEGACT*MOD MPOCEN
  42. CALL KRIPAD(IGEOM,MLECEN)
  43. IF(IERR.NE.0)GOTO 9999
  44. C
  45. C**** En KRIPAD
  46. C SEGACT IGEOM
  47. C SEGINI MLECEN
  48. C
  49. MELEME=IGEOM
  50. SEGDES MELEME
  51. C
  52. IF(MCHLIM.GT.0)THEN
  53. CALL LICHT(MCHLIM,MPOLIM,NOM1,IGEOM)
  54. IF(IERR.NE.0)GOTO 9999
  55. C En LICHT SEGACT*MOD MPOLIM
  56. CALL KRIPAD(IGEOM,MLELIM)
  57. IF(IERR.NE.0)GOTO 9999
  58. C
  59. C**** En KRIPAD
  60. C SEGACT IGEOM
  61. C SEGINI MLELIM
  62. C
  63. MELEME=IGEOM
  64. SEGDES MELEME
  65. ELSE
  66. MPOLIM=0
  67. MLELIM=0
  68. ENDIF
  69. C
  70. CALL LICHT(MCHFAC,MPOFAC,NOM1,IGEOM)
  71. IF(IERR.NE.0)GOTO 9999
  72. C En LICHT SEGACT*MOD MPOFAC
  73. CALL KRIPAD(IGEOM,MLEFAC)
  74. IF(IERR.NE.0)GOTO 9999
  75. C
  76. C**** En KRIPAD
  77. C SEGACT IGEOM
  78. C SEGINI MLEFAC
  79. C
  80. MELEME=IGEOM
  81. SEGDES MELEME
  82. C
  83. SEGACT MCHELM
  84. NBSOUS=MCHELM.IMACHE(/1)
  85. C
  86. DO ISOUS=1,NBSOUS,1
  87. MELEME=MCHELM.IMACHE(ISOUS)
  88. MCHAM1=MCHELM.ICHAML(ISOUS)
  89. SEGACT MELEME
  90. SEGACT MCHAM1
  91. MELVA1=MCHAM1.IELVAL(1)
  92. MELVA2=MCHAM1.IELVAL(2)
  93. SEGACT MELVA1
  94. SEGACT MELVA2
  95. NOM1=MCHAM1.NOMCHE(1)
  96. IF(NOM1 .NE. 'alphax')THEN
  97. WRITE(IOIMP,*) NOM1, '!=', 'alphax '
  98. C 21 2
  99. C Données incompatibles
  100. CALL ERREUR(21)
  101. GOTO 9999
  102. ENDIF
  103. NOM1=MCHAM1.NOMCHE(2)
  104. IF(NOM1 .NE. 'alphay')THEN
  105. WRITE(IOIMP,*) NOM1, '!=', 'alphay '
  106. C 21 2
  107. C Données incompatibles
  108. CALL ERREUR(21)
  109. GOTO 9999
  110. ENDIF
  111. IF(IDIM.EQ.3)THEN
  112. MELVA3=MCHAM1.IELVAL(3)
  113. SEGACT MELVA3
  114. NOM1=MCHAM1.NOMCHE(3)
  115. IF(NOM1 .NE. 'alphaz')THEN
  116. WRITE(IOIMP,*) NOM1, '!=', 'alphaz '
  117. C 21 2
  118. C Données incompatibles
  119. CALL ERREUR(21)
  120. GOTO 9999
  121. ENDIF
  122. ENDIF
  123. C
  124. NBNN=MELEME.NUM(/1)
  125. NBELEM=MELEME.NUM(/2)
  126. C
  127. DO IELEM=1,NBELEM,1
  128. NGF=MELEME.NUM(1,IELEM)
  129. NLF=MLEFAC.LECT(NGF)
  130. IF(NLF.EQ.0)THEN
  131. WRITE (IOIMP,*) 'subroutine rlexf2.eso'
  132. CALL ERREUR(5)
  133. GOTO 9999
  134. ENDIF
  135. DO IVOI=2,NBNN,1
  136. NGV=MELEME.NUM(IVOI,IELEM)
  137. NLV=MLECEN.LECT(NGV)
  138. IF(NLV.NE.0)THEN
  139. LOGCEN=.TRUE.
  140. ELSE
  141. LOGCEN=.FALSE.
  142. NLV=MLELIM.LECT(NGV)
  143. IF(NLV.EQ.0)THEN
  144. WRITE(IOIMP,*) 'subroutine rlexf2.eso'
  145. CALL ERREUR(5)
  146. GOTO 9999
  147. ENDIF
  148. ENDIF
  149. DO ICOM = 1, NCOM, 1
  150. IF(LOGCEN)THEN
  151. VAL=MPOCEN.VPOCHA(NLV,ICOM)
  152. ELSE
  153. VAL=MPOLIM.VPOCHA(NLV,ICOM)
  154. ENDIF
  155. I2=(ICOM-1)*IDIM+1
  156. MPOFAC.VPOCHA(NLF,I2)=MPOFAC.VPOCHA(NLF,I2)+
  157. & (MELVA1.VELCHE(IVOI,IELEM)*VAL)
  158. MPOFAC.VPOCHA(NLF,I2+1)=MPOFAC.VPOCHA(NLF,I2+1)+
  159. & (MELVA2.VELCHE(IVOI,IELEM)*VAL)
  160. IF(IDIM.EQ.3)
  161. & MPOFAC.VPOCHA(NLF,I2+2)=MPOFAC.VPOCHA(NLF,I2+2)+
  162. & (MELVA3.VELCHE(IVOI,IELEM)*VAL)
  163. ENDDO
  164. ENDDO
  165. ENDDO
  166. SEGDES MELEME
  167. SEGDES MCHAM1
  168. SEGDES MELVA1
  169. SEGDES MELVA2
  170. IF(IDIM.EQ.3) SEGDES MELVA3
  171. ENDDO
  172. C
  173. SEGDES MCHELM
  174. IF(MPOLIM .NE. 0) THEN
  175. SEGDES MPOLIM
  176. SEGSUP MLELIM
  177. ENDIF
  178. SEGDES MPOFAC
  179. SEGDES MPOCEN
  180. SEGSUP MLECEN
  181. SEGSUP MLEFAC
  182. C
  183. 9999 RETURN
  184. END
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  

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