Télécharger rcosig.eso

Retour à la liste

Numérotation des lignes :

rcosig
  1. C RCOSIG SOURCE CB215821 26/08/24 21:18:09 12622
  2. SUBROUTINE RCOSIG(ICHP1,KCON,KMEL1,IRET)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8 (A-H,O-Z)
  5. *_______________________________________________________________________
  6. *
  7. * APPELE PAR L OPERATEUR RECO:
  8. * RECOMBINE LES CONTRAINTES RANGEES DANS LE MSOLEN KCON
  9. * LE RESULTAT EST MIS DANS IRET ------------
  10. *
  11. * PROGRAMME PAR BROCHARD
  12. * APPELE PAR RECOMB
  13. * APPELLE :PRCHEL ERREUR(169-170)
  14. *
  15. * PASSAGE AUX NOUVEAUX CHAMELEM PAR JM CAMPENON LE 01/91
  16. *_______________________________________________________________________
  17. *
  18.  
  19. -INC PPARAM
  20. -INC CCOPTIO
  21. -INC SMSOLUT
  22. -INC SMCHPOI
  23. -INC SMELEME
  24. -INC SMCOORD
  25. -INC SMCHAML
  26. SEGMENT ICPR(nbpts)
  27. SEGMENT ITRA1(NSOUS,4)
  28. SEGMENT TRAV(NPOIN)*D
  29. IRET=0
  30. MSOLEN=KCON
  31. *
  32. * ON MET LES CONTRIBUTIONS MODALES ICHP1 DANS ICPR ET TRAV
  33. *
  34. MCHPOI=ICHP1
  35. IF(MCHPOI.NE.0) GO TO 11
  36. *
  37. * LE CHPOINT DES CONTRIBUTIONS MODALES EST NUL
  38. *
  39. MOTERR(1:8)='RCODP1'
  40. CALL ERREUR(170)
  41. GO TO 5000
  42. *
  43. 11 CONTINUE
  44. SEGINI ICPR
  45. SEGACT MCHPOI
  46. NSOU=IPCHP(/1)
  47. IKI=0
  48. DO 1 ISOU=1,NSOU
  49. MSOUPO=IPCHP(ISOU)
  50. SEGACT MSOUPO
  51. MELEME=IGEOC
  52. SEGACT MELEME
  53. N2=NUM(/2)
  54. DO 2 I=1,N2
  55. IKI=IKI+1
  56. ICPR(NUM(1,I))=IKI
  57. 2 CONTINUE
  58. SEGDES MELEME,MSOUPO
  59. 1 CONTINUE
  60. *
  61. NPOIN=IKI
  62. SEGINI TRAV
  63. IKI=0
  64. DO 3 ISOU=1,NSOU
  65. MSOUPO=IPCHP(ISOU)
  66. SEGACT MSOUPO
  67. MPOVAL=IPOVAL
  68. SEGACT MPOVAL
  69. N2=VPOCHA(/1)
  70. DO 4 I=1,N2
  71. IKI=IKI+1
  72. TRAV(IKI)=VPOCHA(I,1)
  73. 4 CONTINUE
  74. SEGDES MPOVAL,MSOUPO
  75. 3 CONTINUE
  76. SEGDES MCHPOI
  77. *
  78. * INITIALISATION DU CHAMELEM
  79. *
  80. SEGACT MSOLEN
  81. NBCHAM=ISOLEN(/1)
  82. IPCHE1=ISOLEN(1)
  83. *
  84. MCHEL1=IPCHE1
  85. SEGINI,MCHELM=MCHEL1
  86. NSOUS=ICHAML(/1)
  87. SEGINI ITRA1
  88. DO 120 ISOUS=1,NSOUS
  89. ITRA1(ISOUS,1)=IMACHE(ISOUS)
  90. MCHAM1=ICHAML(ISOUS)
  91. SEGINI,MCHAML=MCHAM1
  92. ICHAML(ISOUS)=MCHAML
  93. ITRA1(ISOUS,2)=MCHAML
  94. 120 CONTINUE
  95. *
  96. DO 200 ICHAM=1,NBCHAM
  97. IPCHE1=ISOLEN(ICHAM)
  98. *
  99. MCHEL1=IPCHE1
  100. SEGACT MCHEL1
  101. DO 210 ISOUS=1,NSOUS
  102. IPMAIL=ITRA1(ISOUS,1)
  103. IF ( IPMAIL.NE.MCHEL1.IMACHE(ISOUS) ) THEN
  104. SEGDES MCHEL1
  105. CALL ERREUR(21)
  106. GOTO 9990
  107. ENDIF
  108. MCHAM1=MCHEL1.ICHAML(ISOUS)
  109. SEGACT MCHAM1
  110. MCHAML=ITRA1(ISOUS,2)
  111. NCOMP=IELVAL(/1)
  112. NCCHE=MCHAM1.NOMCHE(/2)
  113. DO 199 ICOMP=1,NCOMP
  114. CALL PLACE(MCHAM1.NOMCHE,NCCHE,IPLAC,
  115. & NOMCHE(ICOMP))
  116. IF (IPLAC.EQ.0) THEN
  117. SEGDES MCHAM1
  118. SEGDES MCHEL1
  119. CALL ERREUR(21)
  120. GOTO 9990
  121. ENDIF
  122. MELVA1=MCHAM1.IELVAL(IPLAC)
  123. SEGACT MELVA1
  124. N1PTEL=MELVA1.VELCHE(/1)
  125. N1EL =MELVA1.VELCHE(/2)
  126. ITRA1(ISOUS,3)=MAX(ITRA1(ISOUS,3),N1PTEL)
  127. ITRA1(ISOUS,4)=MAX(ITRA1(ISOUS,4),N1EL )
  128. SEGDES MELVA1
  129. 199 CONTINUE
  130. SEGDES MCHAM1
  131. 210 CONTINUE
  132. SEGDES MCHEL1
  133. 200 CONTINUE
  134. C
  135. DO 220 ISOUS=1,NSOUS
  136. MCHAML=ITRA1(ISOUS,2)
  137. NCOMP=IELVAL(/1)
  138. N1PTEL=ITRA1(ISOUS,3)
  139. N1EL =ITRA1(ISOUS,4)
  140. N2PTEL=0
  141. N2EL=0
  142. DO 221 ICOMP=1,NCOMP
  143. SEGINI MELVAL
  144. IELVAL(ICOMP)=MELVAL
  145. 221 CONTINUE
  146. 220 CONTINUE
  147. *
  148. IRET=MCHELM
  149. *
  150. * BOUCLES SUR LES CONTRAINTES MODALES
  151. *
  152. MELEME=KMEL1
  153. SEGACT MELEME
  154. LCON=ISOLEN(/1)
  155. DO 300 I=1,LCON
  156. IJ=NUM(1,I)
  157. J=ICPR(IJ)
  158. IF(J.NE.0) GOTO 310
  159. *
  160. * ON NE TROUVE PAS LA CONTRIBUTION MODALE
  161. *
  162. MOTERR(1:8)='RCODP1'
  163. INTERR(1)=IJ
  164. CALL ERREUR(169)
  165. CALL DTCHAM(IRET)
  166. GOTO 5000
  167. *
  168. 310 CONTINUE
  169. XVAL=TRAV(J)
  170. IPCHE1=ISOLEN(I)
  171. *
  172. MCHEL1=IPCHE1
  173. SEGACT MCHEL1
  174. DO 320 ISOUS=1,NSOUS
  175. MCHAML=ITRA1(ISOUS,2)
  176. MCHAM1=MCHEL1.ICHAML(ISOUS)
  177. SEGACT MCHAM1
  178. NCOMP=IELVAL(/1)
  179. NCCHE=MCHAM1.NOMCHE(/2)
  180. DO 301 ICOMP=1,NCOMP
  181. CALL PLACE(MCHAM1.NOMCHE,NCCHE,IPLAC,
  182. & NOMCHE(ICOMP))
  183. MELVAL=IELVAL(ICOMP)
  184. MELVA1=MCHAM1.IELVAL(IPLAC)
  185. SEGACT MELVA1
  186. DO 9991 IGAU=1,VELCHE(/1)
  187. IGMN=MIN(IGAU,MELVA1.VELCHE(/1))
  188. DO 400 IB=1,VELCHE(/2)
  189. IBMN=MIN(IB,MELVA1.VELCHE(/2))
  190. VELCHE(IGAU,IB)=VELCHE(IGAU,IB)+
  191. & XVAL*MELVA1.VELCHE(IGMN,IBMN)
  192. 400 CONTINUE
  193. 9991 CONTINUE
  194. SEGDES MELVA1
  195. 301 CONTINUE
  196. SEGDES MCHAM1
  197. 320 CONTINUE
  198. SEGDES MCHEL1
  199. 300 CONTINUE
  200. SEGDES MELEME,MSOLEN
  201. SEGSUP TRAV,ICPR
  202. DO 500 ISOUS=1,NSOUS
  203. MCHAML=ITRA1(ISOUS,2)
  204. NCOMP=IELVAL(/1)
  205. DO 501 ICOMP=1,NCOMP
  206. MELVAL=IELVAL(ICOMP)
  207. SEGDES MELVAL
  208. 501 CONTINUE
  209. SEGDES MCHAML
  210. 500 CONTINUE
  211. SEGSUP ITRA1
  212. SEGDES MCHELM
  213. IRET=MCHELM
  214. *
  215. IF(IIMPI.EQ.3) CALL ZPCHEL(IRET,0)
  216. *
  217. 5000 CONTINUE
  218. RETURN
  219. *
  220. 9990 CONTINUE
  221. DO 600 ISOUS=1,NSOUS
  222. MCHAML=ITRA1(ISOUS,2)
  223. SEGSUP MCHAML
  224. 600 CONTINUE
  225. SEGSUP MCHELM
  226. SEGSUP ITRA1
  227. RETURN
  228.  
  229. END
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  

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