Télécharger assem2.eso

Retour à la liste

Numérotation des lignes :

  1. C ASSEM2 SOURCE PV 18/07/17 21:15:00 9882
  2. SUBROUTINE ASSEM2(ITRAV1,ITOPO1,INUIN1,IMINI1,MMMTRI,IPO1,INCTR1
  3. $ ,IITOP1)
  4. C
  5. C **** SUBROUTINE POUR FAIRE L'ASSEMBLAGE DE MATRICES SYMETRIQUES
  6. C EN VUE D'UN TRAITEMENT PAR METHODE DE KROUT.
  7. C
  8. C EN ENTREE:
  9. C **** ITRAV1 : POINTEUR OBJET MRIGIDITE
  10. C **** ITOPO1 : POINTEUR SEGMENT DE TRAVAIL ITOPO ( VOIR ASSEM1)
  11. C **** IITOP1 : POINTEUR SEGMENT DE TRAVAIL IITOP ( VOIR ASSEM1)
  12. C **** INUIN1 : POINTEUR SEGMENT DE TRAVAIL INUINV(VOIR ASSEM1)
  13. C **** IMINI1 : POINTEUR SEGMENT DE TRAVAIL IMINI (VOIR ASSEM1)
  14. C **** IPO1 : POINTEUR SEGMENT DE TRAVAIL IPOS (VOIR ASSEM1)
  15. C **** MMMTRI : POINTEUR OBJET MATRICE TRIANGULARISEE (NON MODIFIE)
  16. C (VOIR SMMATRI)
  17. *
  18. * modif janvier 2015 toutes les inconnues d'un noeud commencent à la même colonne
  19. * modif mars 2018 la verification de symetrie des matrices elementaires est externalisee
  20. *
  21. IMPLICIT REAL*8 (A-H,O-Z)
  22. IMPLICIT INTEGER(I-N)
  23. -INC CCOPTIO
  24. -INC SMELEME
  25. -INC SMRIGID
  26. -INC SMMATRI
  27. -INC CCREEL
  28. SEGMENT,INUINV(NNGLOB)
  29. SEGMENT,ITOPO(IENNO)
  30. SEGMENT,IITOP(NNOE+1)
  31. SEGMENT,IMINI(INC)
  32. SEGMENT,IPOS(NNOE1)
  33. SEGMENT,INCTRR(NIRI)
  34. SEGMENT,INCTRA(NLIGRE)
  35. SEGMENT,IPV(NNOE)
  36. SEGMENT,VMAX(INC)
  37.  
  38. C
  39. C **** CES TABLEAUX SERVENT AU REPERAGE DE LA MATRICE POUR L'ASSEMBLAG
  40. C **** IL SERONT TOUS SUPPRIMES EN FIN D'ASSEMBLAGE.
  41. C
  42. **
  43. SEGMENT,IVAL(NNN)
  44. SEGMENT,ITRA(NNN,2)
  45. SEGMENT TRATRA
  46. REAL*8 XTRA(INCRED,INCDIF)
  47. INTEGER LTRA(INC,INCDIF)
  48. INTEGER NTRA(INCRED,INCDIF)
  49. INTEGER MTRA(INCDIF)
  50. ENDSEGMENT
  51. C **** IVAL(I)=J : LA I EME LIGNE D'UNE PETITE MATRICE S'ASSEMBLE
  52. C DANS LA J EME DE LA GRANDE.
  53. C **** ITRAV(I,1)=J : LA IEME INCONNUE DU NOEUD EN COURS D'ASSEMBLAGE
  54. C ET QUI SE TROUVE DANS LA PETITE MATRICE SE TROUVE
  55. C EN J EME POSITION DE LA PETITE MATRICE.
  56. C **** ITRAV(I,2) : LA IEME INCONNUE DU NOEUD EN COURS D'ASSEMBLAGE
  57. C PRESENT DANS LA PETITE MATRICE EST EN JEME
  58. C POSITION DANS LA GRANDE
  59. SEGMENT,RA(N1,N1)*D
  60. SEGMENT JNOMUL
  61. LOGICAL INOMUL(NNR)
  62. ENDSEGMENT
  63. REAL*8 DMAX,COER,DDDD,DMAXY,DMAXGE
  64. LOGICAL NOMUL
  65. *
  66. * PV ON ACTIVE UNE FOIS POUR TOUTES LES MELEME DESCR... DE LA RIGIDITE
  67. * ON EN PROFITE POUR CREER INOMUL
  68. C
  69. C **** RECHERCHE DE LA DIMENSION MAX DE IVAL,ET SEGINI DE IVAL ET ITRA
  70. C
  71. INCTRR=INCTR1
  72. SEGACT,INCTRR
  73. MRIGID=ITRAV1
  74. SEGACT,MRIGID
  75. NNR=IRIGEL(/2)
  76. NNN=0
  77. SEGINI JNOMUL
  78. DO 1 IRI=1,NNR
  79. INCTRA=INCTRR(IRI)
  80. SEGACT INCTRA
  81. DESCR=IRIGEL(3,IRI)
  82. SEGACT, DESCR
  83. IPT1=IRIGEL(1,IRI)
  84. SEGACT IPT1
  85. * XMATRI=IRIGEL(4,IRI)
  86. * SEGACT XMATRI
  87. NA=LISINC(/2)
  88. NNN=MAX(NA,NNN)
  89. INOMUL(IRI)=.TRUE.
  90. IF(IPT1.ITYPEL.EQ.22) INOMUL(IRI)=.FALSE.
  91. 1 CONTINUE
  92. SEGINI,IVAL
  93. SEGINI,ITRA
  94. C
  95. C **** ACTIVATION DES SEGMENTS DE TRAVAILS ET DE MMATRI
  96. C
  97. IMINI=IMINI1
  98. SEGACT,IMINI
  99. N1=IMINI(/1)
  100. ITOPO=ITOPO1
  101. SEGACT,ITOPO
  102. IITOP=IITOP1
  103. SEGACT,IITOP
  104. INUINV=INUIN1
  105. SEGACT,INUINV
  106. IPOS=IPO1
  107. SEGACT,IPOS
  108. NNOE=IPOS(/1)-1
  109. INC=IPOS(NNOE+1)
  110. MMATRI=MMMTRI
  111. SEGACT,MMATRI*MOD
  112. SEGINI,MDIAG
  113. SEGINI,MILIGN
  114. IILIGN=MILIGN
  115. IDIAG=MDIAG
  116. MINCPO=IINCPO
  117. SEGACT,MINCPO
  118. INCDIF=INCPO(/1)
  119. MIMIK=IIMIK
  120. SEGACT,MIMIK
  121. SEGINI IPV
  122. INCRED=0
  123. DO 80 INO =1,NNOE
  124. ICOMPT=0
  125. MAXELE = (IITOP(INO+1)-IITOP(INO))/2
  126. DO 81 IELE=1,MAXELE
  127. IIU=IITOP(INO) + IELE + IELE -2
  128. IEL=ITOPO(IIU)
  129. IRI=ITOPO(IIU+1)
  130. MELEME=IRIGEL(1,IRI)
  131. DO 83 I=1,NUM(/1)
  132. IP=INUINV(NUM(I,IEL))
  133. IF (IP.GT.INO) GOTO 83
  134. IF (IPV(IP).EQ.INO) GOTO 83
  135. IPV(IP)=INO
  136. ICOMPT=ICOMPT+1
  137. 83 CONTINUE
  138. 81 CONTINUE
  139. INCRED=MAX(INCRED,ICOMPT)
  140. 80 CONTINUE
  141. SEGSUP IPV
  142. INCRED=INCRED*INCDIF
  143. SEGINI TRATRA
  144. segini vmax
  145. C
  146. C **** BOUCLE *100* SUR LES NUMEROS DE NOEUDS QUE L'ON ASSEMBLE
  147. C
  148. LLVNUL=0
  149. IJMAX=0
  150. NJTOT=0
  151. NNOE=IPOS(/1)-1
  152. DNORME=0.
  153. SEGINI MDNOR
  154. IDNORM=MDNOR
  155. *
  156. * en cas de normalisation des variables.
  157. *
  158. IF(NORINC.NE.0) THEN
  159. inwuit=0
  160. CALL ASSE10(ITRAV1,1,MDNOR,MIMIK,MINCPO,INUIN1,inwuit)
  161. ELSE
  162. DO 53 IU=1,INC
  163. DNOR(IU)=1.d0
  164. 53 CONTINUE
  165. ENDIF
  166. * verif de la symetrie des matrices elementaires
  167. do jr=1,irigel(/2)
  168. XMATRI=IRIGEL(4,jr)
  169. SEGACT XMATRI*mod
  170. call versym(re,re(/1),re(/2),re(/3))
  171. if (ierr.ne.0) return
  172. symre=0
  173. segdes xmatri
  174. enddo
  175. * On balaye les noeuds dans l'ordre des elements
  176. DO 100 JR=1,IRIGEL(/2)
  177. IPT6=IRIGEL(1,JR)
  178. DO 100 JL=1,IPT6.num(/2)
  179. DO 100 JP=1,IPT6.num(/1)
  180. INO=INUINV(IPT6.NUM(JP,JL))
  181. ** DO 100 INO=1,NNOE
  182. IF (ILIGN(INO).NE.0) GOTO 100
  183. DO 101 IIT=1,INCDIF
  184. MTRA(IIT)=0
  185. 101 CONTINUE
  186. IPRE=IPOS(INO)+1
  187. IDER=IPOS(INO+1)
  188. LLVVA=0
  189. C
  190. C **** BOUCLE *99* SUR LES ELEMENTS TOUCHANT LE NOEUD INO
  191. C POUR LES ELEMNTS MULTIPLICATEUR ON NE FAIT PAS
  192. C L'ASSEMBLAGE
  193. C
  194. MAXELE= (IITOP(INO+1) -IITOP(INO))/2
  195. DO 99 IELE=1,MAXELE
  196. IIU=IITOP(INO) + IELE + IELE - 2
  197. IEL=ITOPO(IIU)
  198. IRI=ITOPO(IIU+1)
  199. MELEME=IRIGEL(1,IRI)
  200. DESCR=IRIGEL(3,IRI)
  201. INCTRA=INCTRR(IRI)
  202. XMATRI=IRIGEL(4,IRI)
  203. SEGACT XMATRI
  204. COER=COERIG(IRI)
  205. C
  206. C **** NOMUL =.FALSE. IL EXISTE UN MULTUIPLICATEUR
  207. C **** INITIALISATION DE IVAL. IVAL(I)=J VEUT DIRE QUE
  208. C **** LA I EME LIGNE DE LA PETITE MATRICE S'ASSEMBLE DANS
  209. C **** LA J EME DE LA GRANDE MATRICE.
  210. C
  211. NIN=LISINC(/2)
  212. NOMUL=INOMUL(IRI)
  213. NA=0
  214. DO 98 ICO=1,NIN
  215. IJA=INUINV(NUM(NOELEP(ICO),IEL))
  216. IJB=INCTRA(ICO)
  217. IVAL(ICO)=INCPO(IJB,IJA)
  218. IF(IJA.NE.INO) GO TO 98
  219. NA=NA+1
  220. ITRA(NA,1)=ICO
  221. ITRA(NA,2)=IVAL(ICO)
  222. 98 CONTINUE
  223. * XMATRI=IMATTT(IEL)
  224. * SEGACT,XMATRI
  225. C
  226. C **** BOUCLE *85* SUR LES INCONNUES DE LA PETITE MATRICE
  227. C
  228. DO 95 IK=1,NIN
  229. IO=IVAL(IK)
  230. IF(IO.GT.IDER) GO TO 95
  231. IPOO=IK*NIN - NIN
  232. DO 90 INCC=1,NA
  233. INCO=ITRA(INCC,2)
  234. IF(IO.GT.INCO) GO TO 90
  235. ILOC=INCO-IPRE+1
  236. JJ=ITRA(INCC,1)
  237. * IF(IK.LE.JJ) THEN
  238. * IPO=(JJ*(JJ-1))/2+IK
  239. * ELSE
  240. * IPO=(IK*(IK-1))/2+JJ
  241. * ENDIF
  242. IPO=IPOO+JJ
  243. ILTT= LTRA(IO,ILOC)
  244. IF(ILTT.EQ.0) THEN
  245. LLVVA=LLVVA+1
  246. IMMTT=MTRA(ILOC)+1
  247. MTRA(ILOC)=IMMTT
  248. XTRA(IMMTT,ILOC)=0.D0
  249. NTRA(IMMTT,ILOC)=IO
  250. LTRA(IO,ILOC)=IMMTT
  251. ILTT=IMMTT
  252. ENDIF
  253. IF(NOMUL) THEN
  254. XTRA(ILTT,ILOC)=XTRA(ILTT,ILOC)+RE(JJ,IK,IEL)*COER
  255. ENDIF
  256. 90 CONTINUE
  257. 95 CONTINUE
  258. SEGDES,XMATRI
  259. 99 CONTINUE
  260. C
  261. C *** COMPACTAGE DES LIGNES, EN MEME TEMPS CALCUL DE IJMAXQUI SERA
  262. C *** LA DIMENSION MAX D'UN SEGMENT LIGN.
  263. C *** LE SEGMENT ASSOCIE A UNE LIGNE (SEGMENT LLIGN)EST DE LA FORME :
  264. C *** IMMMM(NA) PERMET DE SAVOIR SI UN MOUVENENT D'ENSEMBLE SUR LA
  265. C *** LIGNE EXISTE. IPPO(NA+1) DONNE LA POSITION DANS XXVA LA 1ERE
  266. C *** VALEUR DE LA LIGNE .XXVA VALEUR DE LA MATRICE.
  267. C *** LINC(I)DONNE LE NUMERO DE LA COLONNE DU IEME ELEM DE XXVA
  268. C
  269. NA = IDER-IPRE+1
  270. LLVNUL=LLVNUL+LLVVA
  271. SEGINI,LLIGN
  272. ILIGN(INO)=LLIGN
  273. NBA=0
  274. DO 120 JPA=1,NA
  275. IIIN=IPRE+JPA -1
  276. IMMMM(JPA)=IIIN
  277. IPPO(JPA)=NBA
  278. DO 121 IPAK = 1,MTRA(JPA)
  279. IUNPAK=NTRA(IPAK,JPA)
  280. LTRA(IUNPAK,JPA)=0
  281. NBA=NBA+1
  282. LINC(NBA)=IUNPAK
  283. XXVA(NBA)=XTRA(IPAK,JPA)
  284. ** write (6,*) 'assem2 iiin nba xxva(nba)',
  285. ** > iiin,nba,xxva(nba)
  286. vmax(iiin)=max(abs(xxva(nba)),vmax(iiin))
  287. IF(IIIN.EQ.IUNPAK) DIAG(IIIN)=XXVA(NBA)
  288. 121 CONTINUE
  289. 120 CONTINUE
  290. IPPO(NA+1)= NBA
  291. NJMAX= 0
  292. * recherche du mini globale sur toutes les inconnues
  293. LPA=IPRE
  294. DO 126 JPA=IPRE,IDER
  295. IPNO(JPA)=INO
  296. IPDE=IPPO(JPA-IPRE+1)+1
  297. IPDF=IPPO(JPA-IPRE+2)
  298. DO 155 JHT=IPDE,IPDF
  299. LPA=MIN(LPA,LINC(JHT))
  300. 155 CONTINUE
  301. 126 CONTINUE
  302. DO 127 JPA=IPRE,IDER
  303. LDEB(JPA-IPRE+1)=LPA
  304. NNA= JPA- LPA +1
  305. NJMAX=NJMAX+NNA
  306. 127 continue
  307. NJTOT=NJTOT+NJMAX
  308. IF(IJMAX.LT.NJMAX) IJMAX=NJMAX
  309. SEGDES,LLIGN
  310. 100 CONTINUE
  311. SEGSUP TRATRA
  312. C
  313. C **** ON REPREND TOUTE LES MATRICES CONTENANT LES MULTIPLICATEURS
  314. C **** POUR MULTIPLIER TOUS LEURS TERMES PAR UNE NORME ATTACHEE
  315. C **** A CHAQUE MULTIPLICATEUR.PUIS ON LES ASSEMBLE.
  316. C
  317. * d'abord etablir une norme generale pour le cas ou on n'arrive pas
  318. * a calculer la norme particuliere
  319. DMAXGE=xpetit
  320. DO 378 I=1,INC
  321. ** write (6,*) ' assem2 diag vmav ',diag(i),vmax(i)
  322. DMAXGE=MAX(DMAXGE,abs(vmax(i)))
  323. 378 CONTINUE
  324. if (iimpi.ne.0 )
  325. > write (6,*) ' nb inconnues facteur multiplicatif general ',
  326. > INC,DMAXGE
  327. if (dmaxge.lt.xpetit/xzprec*10) dmaxge=1.d0
  328. IENMU=0
  329. 375 IENMU1 = IENMU
  330. IENMU=0
  331. DO 376 I=1,NNR
  332. IF(.NOT.INOMUL(I)) IENMU=IENMU+1
  333. 376 CONTINUE
  334. IF( IENMU.EQ.0) GO TO 3750
  335. MIMIK=IIMIK
  336. SEGACT,MIMIK
  337. DO 11 I=1,NNR
  338. IF(INOMUL(I)) GO TO 11
  339. DESCR=IRIGEL(3,I)
  340. N3=LISINC(/2)
  341. COER=COERIG(I)
  342. MELEME=IRIGEL(1,I)
  343. INCTRA=INCTRR(I)
  344. XMATRI=IRIGEL(4,I)
  345. SEGACT XMATRI
  346. N2=NUM(/2)
  347. IF (RE(/3).EQ.0) THEN
  348. INOMUL(I)=.TRUE.
  349. SEGDES XMATRI
  350. GOTO 11
  351. ENDIF
  352. * XMATRI=IMATTT(1)
  353. * SEGACT,XMATRI
  354. N1=RE(/1)
  355. if (n1.ne.re(/2)) call erreur(1044)
  356. if (ierr.ne.0) return
  357. SEGINI,RA
  358. DO 14 IEL=1,N2
  359. DO 15 ICO=1,N3
  360. IJA=INUINV(NUM(NOELEP(ICO),IEL))
  361. IJB=INCTRA(ICO)
  362. IVAL(ICO)=INCPO(IJB,IJA)
  363. 15 CONTINUE
  364. DMAX=xpetit
  365. if (n3.lt.3) then
  366. do ico=1,n3
  367. DMAX=MAX(DMAX,vmax(IVAL(ICO)))
  368. enddo
  369. endif
  370. DO 19 ICO=3,N3
  371. DMAX=MAX(DMAX,vmax(IVAL(ICO)))
  372. 19 CONTINUE
  373. ** write (6,*) ' assem2 dmax dmaxge ',dmax,dmaxge
  374. C AUX FINS D'EVITER DES PROBLEMES DANS LA DECOMPOSITION
  375. IF( IIMPI. EQ.1524 ) WRITE(IOIMP,7391)DMAX,IENMU,IENMU1
  376. 1,I,IEL
  377. 7391 FORMAT(' DMAX IENMU IENMU1 I IEL',1E12.5,4I3)
  378. ** write (6,*) ' assem2 dmax dmxge',dmax,dmaxge
  379. IF(DMAX.LE.xzprec*dmaxge.AND.IENMU.NE.IENMU1.AND.IEL.EQ.1)GOTO 377
  380. IF(DMAX.LE.xzprec*dmaxge) DMAX = DMAXGE
  381. * facteur de normalisation cf PV pour ne pas avoir de pivot nul
  382. DMAX=DMAX*1.5
  383. * on penalise la matrice en cas de resolution iterative
  384. **pv if (nucrou.eq.1) DMAX=DMAX*1D5
  385. ** write (6,*) ' assem2 i iel dmax ',i,iel,dmax
  386. * XMATRI=IMATTT(IEL)
  387. * SEGACT,XMATRI
  388. DMAXY=SQRT(XPETIT)*1D5
  389. if (norinc.eq.0) dmaxy=1.D0
  390. if (n1.lt.3) then
  391. do ico=1,n1
  392. DMAXY = MAX ( DMAXY, ABS( RE(ICO,1,IEL)))
  393. enddo
  394. endif
  395. DO 821 ICO=3,N1
  396. DMAXY = MAX ( DMAXY, ABS( RE(ICO,1,IEL)))
  397. *82110 CONTINUE
  398. 821 CONTINUE
  399. * if (dmaxy.lt.1d-50) write (6,*) (re(ico,1),ico=1,n1)
  400. ** if (dmaxy.lt.1d+50)write (6,*)' assem2 dmax dmaxy ',
  401. ** > dmax,dmaxy,dmaxge
  402. DMAX = DMAX / DMAXY
  403. IF( IIMPI. EQ.1524 ) WRITE(IOIMP,7398) DMAX
  404. 7398 FORMAT(' facteur multiplicatif de norme ',e12.5)
  405. DO 21 ICO=1,N1
  406. DO 2110 IKO=1,N1
  407. RA(ICO,IKO)=RE(ICO,IKO,IEL)*DMAX*COER
  408. 2110 CONTINUE
  409. 21 CONTINUE
  410. ** write (6,*) ' dmax ',dmax
  411. ** si on ne booste pas l'egalite des mults on a des problemes de precision sur ceux ci
  412. if (norinc.eq.0) dmaxy=dmaxy*2.d0
  413. RA(1,1)=RA(1,1)*DMAXY
  414. RA(2,1)=RA(2,1)*DMAXY
  415. RA(1,2)=RA(1,2)*DMAXY
  416. RA(2,2)=RA(2,2)*DMAXY
  417. DO 22 ICO=1,2
  418. DNOR(IVAL(ICO))=DMAX
  419. 22 CONTINUE
  420. * if (abs(dmax).gt. 1d50) write (6,*) ' assem2 dmax dmaxy ',dmax,
  421. * > dmaxy,dmaxge
  422. DO 24 ICO=1,N3
  423. INO=INUINV(NUM(NOELEP(ICO),IEL))
  424. IO=IVAL(ICO)
  425. if (ico.eq.1) io1=io
  426. if (ico.eq.2) io2=io
  427. LLIGN=ILIGN(INO)
  428. SEGACT,LLIGN*MOD
  429. DIAG(IO)=DIAG(IO)+RA(ICO,ICO)
  430. DO 132 JLIJ=1,IMMMM(/1)
  431. JLIJ1=JLIJ
  432. IF( IMMMM(JLIJ).EQ.IO) GO TO 133
  433. 132 CONTINUE
  434. IF(IIMPI.EQ.1524) WRITE(IOIMP,7354)
  435. 7354 FORMAT( ' PREMIERE ERREUR 5')
  436. CALL ERREUR(5)
  437. RETURN
  438. 133 CONTINUE
  439. * IREE=ICO*N3-ICO
  440. DO 26 IRO=1,N3
  441. IA=IVAL(IRO)
  442. IF(IA.GT.IO) GO TO 26
  443. * IF(IRO.LE.ICO) IRE=(ICO*(ICO-1))/2+IRO
  444. * IF(IRO.GT.ICO) IRE=(IRO*(IRO-1))/2+ICO
  445. JLT=IPPO(JLIJ1+1)
  446. JLD=IPPO(JLIJ1)+1
  447. DO 134 JL=JLD,JLT
  448. JL1=JL
  449. IF(LINC(JL).EQ.IA) GO TO 135
  450. 134 CONTINUE
  451. IF(IIMPI.NE.1524) WRITE(IOIMP,7355)
  452. 7355 FORMAT( ' DEUXIEME ERREUR 5')
  453. CALL ERREUR(5)
  454. RETURN
  455. 135 CONTINUE
  456. XXVA(JL1)=XXVA(JL1)+RA(ICO,IRO)
  457. 26 CONTINUE
  458. SEGDES,LLIGN
  459. 24 CONTINUE
  460. * on stocke dans ittr les couples de LX
  461. ittr(io1)=io2
  462. ittr(io2)=io1
  463. 14 CONTINUE
  464. INOMUL(I)=.TRUE.
  465. 377 CONTINUE
  466. SEGSUP,RA
  467. 11 CONTINUE
  468. GO TO 375
  469. 3750 CONTINUE
  470. DO 18 IK=1,NNR
  471. INCTRA=INCTRR(IK)
  472. SEGSUP,INCTRA
  473. 18 CONTINUE
  474. * PV ON DESACTIVE TOUT
  475. NNR=IRIGEL(/2)
  476. DO 2 IRI=1,NNR
  477. DESCR=IRIGEL(3,IRI)
  478. SEGDES DESCR
  479. IPT1=IRIGEL(1,IRI)
  480. SEGDES IPT1
  481. XMATRI=IRIGEL(4,IRI)
  482. SEGDES XMATRI
  483. 2 CONTINUE
  484.  
  485. INTERR(1)=NJTOT
  486. IF(IIMPI.EQ.1457) WRITE(IOIMP,4821) LLVNUL,NJTOT
  487. 4821 FORMAT(' NB DE VALEURS NON NULLES DANS LA MATRICE ',I9,/
  488. # ' NB DE VALEURS DANS LA MATRICE ',I9)
  489. IF(NORINC.NE.0) THEN
  490. CALL ASSE10(MRIGID,2,MDNOR,MIMIK,MINCPO,INUIN1,inwuit)
  491. SEGDES,MRIGID
  492. ELSE
  493. SEGDES,MRIGID
  494. ENDIF
  495. SEGSUP,INCTRR
  496. SEGDES,MDIAG
  497. SEGDES,MIMIK
  498. SEGDES,MDNOR
  499. SEGSUP,IMINI
  500. SEGSUP,ITOPO
  501. SEGSUP,IITOP
  502. SEGDES,MILIGN
  503. SEGSUP,INUINV
  504. SEGDES,MMATRI
  505. MMMTRI=MMATRI
  506. SEGDES,MINCPO
  507. SEGDES,IPOS
  508. SEGSUP,IVAL,ITRA,JNOMUL,vmax
  509. RETURN
  510. END
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  

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