Télécharger actich.eso

Retour à la liste

Numérotation des lignes :

actich
  1. C ACTICH SOURCE OF166741 25/02/21 21:15:02 12166
  2.  
  3. C--------------------------------------------------------------------
  4. C ACCELERATION SUR UNE COMPOSANTE D'UN CHAMELEM
  5. C--------------------------------------------------------------------
  6. SUBROUTINE ACTICH(FLOT,IPCH1,IPCH2,IPCH3,MACOMP,IPCH4)
  7.  
  8. IMPLICIT INTEGER(I-N)
  9. IMPLICIT REAL*8(A-H,O-Z)
  10.  
  11. -INC PPARAM
  12. -INC CCOPTIO
  13.  
  14. -INC SMCHAML
  15. -INC TMPTVAL
  16.  
  17. SEGMENT NOMID
  18. CHARACTER*8 LESOBL(NBROBL),LESFAC(NBRFAC)
  19. ENDSEGMENT
  20.  
  21. SEGMENT NOTYPE
  22. CHARACTER*16 TYPE(NBTYPE)
  23. ENDSEGMENT
  24.  
  25. CHARACTER*(LOCOMP) MACOMP
  26.  
  27. PARAMETER ( NINF=3 )
  28. INTEGER INFOS(NINF)
  29. CHARACTER*16 MOT1,MOT2,MOT3
  30. CHARACTER*(nconch) CONM
  31.  
  32. MCHEL1 = IPCH1
  33. MCHEL2 = IPCH2
  34. MCHEL3 = IPCH3
  35. SEGACT,MCHEL1,MCHEL2,MCHEL3
  36.  
  37. MOT1 = MCHEL1.TITCHE
  38. MOT2 = MCHEL2.TITCHE
  39. MOT3 = MCHEL3.TITCHE
  40. IF (MOT1.NE.MOT2.OR.MOT1.NE.MOT3) THEN
  41. CALL ERREUR(253)
  42. GOTO 666
  43. ENDIF
  44. *
  45. * Verification du lieu support des MCHAMLs
  46. *
  47. CALL QUESUP(0,IPCH1,0,0,ISUP1,IRET1)
  48. IF (IERR.NE.0) GOTO 666
  49. CALL QUESUP(0,IPCH2,0,0,ISUP2,IRET2)
  50. IF(IERR.NE.0) GOTO 666
  51. CALL QUESUP(0,IPCH3,0,0,ISUP3,IRET3)
  52. IF(IERR.NE.0) GOTO 666
  53. IF((ISUP1.EQ.ISUP2.AND.ISUP1.EQ.ISUP3)
  54. 1 .OR.
  55. 1 ((ISUP1.EQ.0.AND.ISUP2.EQ.0).OR.
  56. 1 (ISUP2.EQ.0.AND.ISUP3.EQ.0).OR.
  57. 1 (ISUP3.EQ.0.AND.ISUP1.EQ.0))
  58. 1 .OR.
  59. 1 ((ISUP1.EQ.0.AND.ISUP2.EQ.ISUP3).OR.
  60. 1 (ISUP2.EQ.0.AND.ISUP3.EQ.ISUP1).OR.
  61. 1 (ISUP3.EQ.0.AND.ISUP1.EQ.ISUP2)))THEN
  62. IOK=1
  63. ELSE
  64. IOK=0
  65. MOTERR(1:8)=MOT1
  66. CALL ERREUR(124)
  67. GOTO 666
  68. ENDIF
  69. C
  70. C ON COPIE LE TROISIEME MCHAML
  71. C
  72. CALL COPIE8(IPCH3,IPCH4)
  73. MCHEL4=IPCH4
  74. SEGACT,MCHEL4
  75. NSOU4=MCHEL4.IMACHE(/1)
  76. C
  77. C BOUCLE SUR LES ZONES
  78. C
  79. DO 500 ISOUS=1,NSOU4
  80. C
  81. IPMAIL=MCHEL4.IMACHE(ISOUS)
  82. CONM=MCHEL4.CONCHE(ISOUS)
  83. C
  84. C CREATION DU TABLEAU INFOS
  85. C
  86. CALL IDENT(IPMAIL,CONM,IPCH1,IPCH2,INFOS,IRTD)
  87. IF (IRTD.EQ.0) THEN
  88. SEGDES MCHEL4
  89. CALL DTCHAM(IPCH4)
  90. GOTO 666
  91. ENDIF
  92. C
  93. MCHAML=MCHEL4.ICHAML(ISOUS)
  94. SEGACT MCHAML
  95. NCOMP=IELVAL(/1)
  96. NBROBL=NCOMP
  97. NBRFAC=0
  98. SEGINI NOMID
  99. MONOM=NOMID
  100. NBTYPE=NCOMP
  101. SEGINI NOTYPE
  102. MOTYPE=NOTYPE
  103. DO IC=1,NCOMP
  104. LESOBL(IC)=NOMCHE(IC)
  105. TYPE(IC)=TYPCHE(IC)
  106. ENDDO
  107. C
  108. IF (NCOMP.EQ.1) THEN
  109. NUMCO=1
  110. ELSE
  111. NUMCO=0
  112. DO IC=1,NCOMP
  113. IF (MACOMP.EQ.NOMCHE(IC)) THEN
  114. NUMCO=IC
  115. GOTO 30
  116. ENDIF
  117. ENDDO
  118. 30 CONTINUE
  119. ENDIF
  120. IF(NUMCO.EQ.0)THEN
  121. MOTERR(1:4)=MACOMP
  122. CALL ERREUR(243)
  123. CALL DTCHAM(IPCH4)
  124. GO TO 666
  125. ENDIF
  126. C
  127. C ON VERIFIE SI ON A LES MEMES COMPOSANTES SUR LES AUTRES
  128. C CHAMPS ET ON LES EXTRAIT
  129. C
  130. CALL KOMCHA(IPCH1,IPMAIL,CONM,MONOM,MOTYPE,1,INFOS,3,IVACH1)
  131. IF(IERR.NE.0)THEN
  132. SEGSUP NOMID,NOTYPE
  133. CALL DTMVAL(IVACH1,1)
  134. CALL DTCHAM(IPCH4)
  135. GO TO 666
  136. ENDIF
  137. CALL KOMCHA(IPCH2,IPMAIL,CONM,MONOM,MOTYPE,1,INFOS,3,IVACH2)
  138. IF(IERR.NE.0)THEN
  139. SEGSUP NOMID,NOTYPE
  140. CALL DTMVAL(IVACH1,1)
  141. CALL DTMVAL(IVACH2,1)
  142. CALL DTCHAM(IPCH4)
  143. GO TO 666
  144. ENDIF
  145. CALL KOMCHA(IPCH3,IPMAIL,CONM,MONOM,MOTYPE,1,INFOS,3,IVACH3)
  146. SEGSUP NOMID,NOTYPE
  147. C
  148. MELVAL=IELVAL(NUMCO)
  149. SEGACT,MELVAL
  150. NBPTE4=VELCHE(/1)
  151. NEL4 =VELCHE(/2)
  152. MPTVAL=IVACH1
  153. MELVAL=IVAL(NUMCO)
  154. NBPTE1=VELCHE(/1)
  155. NEL1 =VELCHE(/2)
  156. MPTVAL=IVACH2
  157. MELVAL=IVAL(NUMCO)
  158. NBPTE2=VELCHE(/1)
  159. NEL2 =VELCHE(/2)
  160. NBPTEL=MAX(MAX(NBPTE1,NBPTE2),NBPTE4)
  161. NBELEM=MAX(MAX(NEL1,NEL2),NEL4)
  162. N1PTEL=NBPTEL
  163. N1EL=NBELEM
  164. N2PTEL=0
  165. N2EL=0
  166. MELVAL=IELVAL(NUMCO)
  167. IF(N1PTEL.GT.NBPTE4.OR.N1EL.GT.NEL4)SEGADJ MELVAL
  168. C
  169. DO 100 IB=1,NBELEM
  170. DO 100 IGAU=1,NBPTEL
  171. C
  172. MPTVAL=IVACH1
  173. MELVAL=IVAL(NUMCO)
  174. IGMN=MIN(IGAU,VELCHE(/1))
  175. IBMN=MIN(IB,VELCHE(/2))
  176. V1=VELCHE(IGMN,IBMN)
  177. C
  178. MPTVAL=IVACH2
  179. MELVAL=IVAL(NUMCO)
  180. IGMN=MIN(IGAU,VELCHE(/1))
  181. IBMN=MIN(IB,VELCHE(/2))
  182. V2=VELCHE(IGMN,IBMN)
  183. C
  184. MPTVAL=IVACH3
  185. MELVAL=IVAL(NUMCO)
  186. IGMN=MIN(IGAU,VELCHE(/1))
  187. IBMN=MIN(IB,VELCHE(/2))
  188. V3=VELCHE(IGMN,IBMN)
  189. C
  190. RR=V3
  191. RD=V2-V1
  192. IF(RD.EQ.0.D0) GO TO 50
  193. RAI=(V3-V2)/RD
  194. IF(ABS(RAI).GT.FLOT) GO TO 50
  195. IF(RAI.EQ.1.D0) GO TO 50
  196. RR=V3+(V3-V2)*RAI/(1.D0-RAI)
  197. 50 CONTINUE
  198. MELVAL=IELVAL(NUMCO)
  199. VELCHE(IGAU,IB)=RR
  200. 100 CONTINUE
  201. C
  202. C DESACTIVATION DES SEGMENTS
  203. C
  204. C
  205. CALL DTMVAL(IVACH1,1)
  206. C
  207. CALL DTMVAL(IVACH2,1)
  208. C
  209. CALL DTMVAL(IVACH3,1)
  210. C
  211. MELVAL=IELVAL(NUMCO)
  212. SEGDES MELVAL
  213. SEGDES MCHAML
  214. C
  215. 500 CONTINUE
  216. SEGDES MCHEL4
  217.  
  218. 666 CONTINUE
  219. SEGDES MCHEL1,MCHEL2,MCHEL3
  220.  
  221. RETURN
  222. END
  223.  
  224.  
  225.  

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