Télécharger chame3.eso

Retour à la liste

Numérotation des lignes :

chame3
  1. C CHAME3 SOURCE CB215821 20/11/04 21:15:33 10766
  2.  
  3. SUBROUTINE CHAME3(IPMELV,IPMINT,IPRES,IPORE,LENAME,MELE)
  4.  
  5. *_______________________________________________________________________
  6. *
  7. * CALCUL DES MELVALS AU SUPPORT DE IPMINT
  8. * IDENTIQUE A VALMEL AVEC EN SUPPLEMENT IPORE
  9. *
  10. * IPMELV POINTEUR SUR UN SEGMENT MELVAL A RECALCULER
  11. * (SUPPOSE ACTIF)
  12. *
  13. * IPMINT POINTEUR SUR LE SEGMENT D'INTEGRATION DU SUPPORT OU L'ON
  14. * SOUHAITE PROJETER LE MELVAL
  15. * LE POINTEUR IPMINT DOIT ETRE ACTIF EN ENTREE DE CHAME3
  16. * ET SON ETAT N'EST PAS MODIFIE DANS CHAME3.
  17. *
  18. * IPRES POINTEUR SUR LE MELVAL RESULTAT
  19. * (ACTIF EN SORTIE)
  20. *
  21. * IPORE 0 SAUF POUR MILIEU POREUX ( NBRE DE NOEUDS )
  22. *
  23. * CAMPENON JM LE 02/91
  24. *
  25. *_______________________________________________________________________
  26. *
  27. IMPLICIT INTEGER(I-N)
  28. IMPLICIT REAL*8(A-H,O-Z)
  29. *
  30.  
  31. -INC PPARAM
  32. -INC CCOPTIO
  33. -INC CCGEOME
  34. -INC SMCHAML
  35. -INC SMINTE
  36. *
  37. CHARACTER*(LOCOMP) LENAME
  38. *
  39. MELVAL=IPMELV
  40. N1PTEL=VELCHE(/1)
  41. N2PTEL=IELCHE(/1)
  42. IF(N2PTEL.NE.0)THEN
  43. IF(N2PTEL.EQ.1)THEN
  44. SEGINI,MELVA1=MELVAL
  45. IPRES=MELVA1
  46. RETURN
  47. ELSE
  48. MOTERR(1:8)=' '
  49. CALL ERREUR(124)
  50. IPRES=IPMELV
  51. RETURN
  52. ENDIF
  53. ELSE
  54. *
  55. IF (N1PTEL.EQ.1) THEN
  56. SEGINI,MELVA1=MELVAL
  57. IPRES=MELVA1
  58. RETURN
  59. ELSE
  60. *
  61. * ON RECUPERE LE NOMBRE DE POINTS SUPPORT
  62. *
  63. MINTE=IPMINT
  64. C** SEGACT MINTE <- Actif en ENTREE
  65. NBPGAU=SHPTOT(/3)
  66. IF(IPORE.EQ.0) THEN
  67. NBNO =SHPTOT(/2)
  68. ELSE
  69. NBNO =IPORE
  70. ENDIF
  71. *
  72. N1PTEL=NBPGAU
  73. IVEL=VELCHE(/1)
  74. N1EL=VELCHE(/2)
  75. N2PTEL=0
  76. N2EL =0
  77. SEGINI MELVA1
  78. IPRES= MELVA1
  79. *
  80. * AM 14/4/16 CAS DES JOINTS
  81. *
  82. MELGEO=NUMGEO(MELE)
  83. IF( MELGEO.EQ.12.OR.MELGEO.EQ.13.OR.MELGEO.EQ.29
  84. & .OR.MELGEO.EQ.30.OR.MELGEO.EQ.31) THEN
  85. *
  86. IDECA=0
  87. IF(MELGEO.EQ.29) IDECA=2
  88. IF(MELGEO.EQ.30) IDECA=3
  89. IF(MELGEO.EQ.31) IDECA=4
  90. NBNOU=NBNNE(MELGEO)-IDECA
  91. NBNOV=NBNO - IDECA
  92. *
  93. IF(LENAME.EQ.'P '.OR.LENAME.EQ.'PQ '
  94. & .OR.LENAME.EQ.'TP ') THEN
  95.  
  96. NBNOV=NBNO - IDECA
  97. DO 7 IB=1,N1EL
  98. DO 8 IGAU=1,NBPGAU
  99. XVAL1=0.D0
  100. * DO 9 INBNO=NBNO-IDECA+1,NBNO
  101. DO 9 INBNO=1,IDECA
  102. INBNO1 = NBNOU + INBNO
  103. INBNO2 = NBNOV + INBNO
  104. IGMN = MIN(IVEL,INBNO1)
  105. XVAL1=XVAL1+VELCHE(IGMN,IB)*SHPTOT(1,INBNO2,IGAU)
  106. 9 CONTINUE
  107. MELVA1.VELCHE(IGAU,IB)=XVAL1
  108. 8 CONTINUE
  109. 7 CONTINUE
  110.  
  111. ELSE
  112. FAC=2.D0
  113. IF((MELGEO.EQ.12.OR.MELGEO.EQ.13).AND.NBNOU.GT.NBNO) THEN
  114. NBNOU=NBNO
  115. FAC=1.D0
  116. ENDIF
  117.  
  118. DO 4 IB=1,N1EL
  119. DO 5 IGAU=1,NBPGAU
  120. XVAL1=0.D0
  121. DO 6 INBNO=1,NBNOU
  122. IGMN=MIN(IVEL,INBNO)
  123. XVAL1=XVAL1+ VELCHE(IGMN,IB)*SHPTOT(1,INBNO,IGAU)
  124. 6 CONTINUE
  125. MELVA1.VELCHE(IGAU,IB)=XVAL1/FAC
  126. 5 CONTINUE
  127. 4 CONTINUE
  128. ENDIF
  129. *
  130. * LES AUTRES CAS
  131. *
  132. ELSE
  133. DO 1 IB=1,N1EL
  134. DO 2 IGAU=1,NBPGAU
  135. XVAL1=0.D0
  136. DO 3 INBNO=1,NBNO
  137. IGMN=MIN(IVEL,INBNO)
  138. XVAL1=XVAL1+VELCHE(IGMN,IB)*SHPTOT(1,INBNO,IGAU)
  139. 3 CONTINUE
  140. MELVA1.VELCHE(IGAU,IB)=XVAL1
  141. 2 CONTINUE
  142. 1 CONTINUE
  143. ENDIF
  144. ENDIF
  145. ENDIF
  146. *
  147. C** SEGDES MELVAL <- Actif en SORTIE
  148. C** SEGDES MINTE <- Actif en SORTIE
  149. *
  150. RETURN
  151. END
  152.  
  153.  
  154.  
  155.  
  156.  

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