sort5
C SORT5 SOURCE CB215821 20/11/25 13:40:13 10792 C======================================================================= C RESTAURATION DE LA NUMEROTATION DANS LES PILES C C PROGRAMME PAR FARVACQUE C APPELE PAR REST RESTFO C N'APPELLE RIEN C======================================================================= C TABLEAU KCOLA : C 1 MELEME 2 CHPOIN 3 MRIGID 4 5 6 MCLSTR C 7 MELSTR 8 MSOLUT 9 MSTRUC 10 11 12 MSOSTU C 13 IMATRI 14 MJONCT 15 MATTAC 16 MMATRI 17 MDEFOR 18 MLREEL C 19 MLENTI 20 MCHARG 21 22 MEVOLL C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMELEME -INC SMCHPOI -INC SMRIGID -INC SMMATRI -INC SMSOLUT -INC SMLENTI -INC SMLREEL -INC SMDEFOR -INC SMCHARG -INC SMEVOLL -INC TMCOLAC -INC TMVECRIG C SEGMENT ILIST(ILL) SEGMENT ISORTA(0) CHARACTER*(8) ITYPE C SEGACT ICOLAC NITLAC=ICOLA(/1) C C **** BOUCLE SUR LES FILES DE SORTIE IFILE=1,NITLAC C DO 1099 IFILE=1,NITLAC ITLACC=KCOLA(IFILE) IMAX1=ITLAC(/1) IF(IMAX1.EQ.0) GO TO 1099 IP1=ICOLA(IFILE) GO TO (6001,6002,6003,1099,1099,1099,1099,6008,1099,1099, & 1099,1099,6013,1099,1099,6016,6017,6018,6019,6020, & 1099,6022),IFILE C Au cas où un ICOLAC plus grand serait passé en argument ... GOTO 1099 C ****************************** MELEME **************************** 6001 CONTINUE DO 20 I=1,IMAX1 MELEME=ITLAC(I) SEGACT MELEME IF (LISOUS(/1).EQ.0) GOTO 21 DO 1003 J=1,LISOUS(/1) LISOUS(J)=ITLAC(LISOUS(J)) 1003 CONTINUE 21 CONTINUE IF (LISREF(/1).EQ.0) GOTO 25 DO 1004 J=1,LISREF(/1) LISREF(J)=ITLAC(LISREF(J)) 1004 CONTINUE 25 CONTINUE SEGDES MELEME 20 CONTINUE GOTO 1098 C **************************CHPOINT********************************* 6002 CONTINUE ITLAC1=KCOLA(1) DO 1101 IEL=1,IMAX1 MCHPOI=ITLAC(IEL) SEGACT MCHPOI NSOUPO=IPCHP(/1) DO 1103 ISOU=1,NSOUPO MSOUPO=IPCHP(ISOU) SEGACT MSOUPO IVA=IGEOC IGEOC=ITLAC1.ITLAC(IVA) SEGDES MSOUPO 1103 CONTINUE SEGDES MCHPOI 1101 CONTINUE GOTO 1098 C ***********************MRIGID************************************* 6003 CONTINUE ITLAC1=KCOLA(1) ITLAC2=KCOLA(13) ITLAC3=KCOLA(16) * ITLAC4=KCOLA(11) ON REMPLACE PAR UN MELEME AM 12/2/90 DO 1202 IEL=1,IMAX1 MRIGID=ITLAC(IEL) SEGACT MRIGID NRIGEL=IRIGEL(/2) IF(IMGEO1.EQ.0) GOTO 1204 IMGEOD=IMGEO1 SEGACT IMGEOD DO 1205 I=1,IMGEOR(/1) IVA=IMGEOR(I) IMGEOR(I)=ITLAC1.ITLAC(IVA) 1205 CONTINUE SEGDES IMGEOD 1204 CONTINUE IF(IMGEO1.EQ.0) GOTO 1208 MVECRI=IVECRI SEGACT MVECRI*mod DO 1209 I=1,MELZON(/1) IVA=MELZON(I) MELZON(I)=ITLAC1.ITLAC(IVA) 1209 CONTINUE SEGDES MVECRI 1208 CONTINUE IVA=ICHOLE IF(IVA .NE.0) ICHOLE=ITLAC3.ITLAC(IVA) DO 1203 IR=1,NRIGEL IVA=IRIGEL(1,IR) IRIGEL(1,IR)=ITLAC1.ITLAC(IVA) IVA=IRIGEL(2,IR) IF(IVA.NE.0) IRIGEL(2,IR)=ITLAC1.ITLAC(IVA) * IVA=IRIGEL(4,IR) * IRIGEL(4,IR)=ITLAC2.ITLAC(IVA) 1203 CONTINUE SEGDES MRIGID 1202 CONTINUE GOTO 1098 C *************************** ******************************* 6004 CONTINUE GOTO 1098 C *************************** ******************************* 6005 CONTINUE GOTO 1098 C ****************************MSOLUT******************************** 6008 CONTINUE DO 1800 IEL=1,IMAX1 MSOLUT=ITLAC(IEL) SEGACT MSOLUT IF(MSOLIS(3).LE.0) GOTO 1802 ITLAC1=KCOLA(1) IVA=MSOLIS(3) MSOLIS(3)=ITLAC1.ITLAC(IVA) GOTO 1803 1802 CONTINUE MSOLIS(3)=-MSOLIS(3) 1803 CONTINUE SEGDES MSOLUT 1800 CONTINUE GOTO 1098 C ***************************** ***************************** 6011 CONTINUE GOTO 1098 C ***************************** IMATRI ***************************** 6013 CONTINUE GOTO 1098 C ***************************** MMATRI ***************************** 6016 CONTINUE ITLAC1=KCOLA(1) DO 2600 IEL=1,IMAX1 MMATRI=ITLAC(IEL) SEGACT MMATRI IVA=IGEOMA IGEOMA=ITLAC1.ITLAC(IVA) SEGDES MMATRI 2600 CONTINUE GOTO 1098 C ************************* MDEFOR******************************* 6017 CONTINUE ITLAC1=KCOLA(1) ITLAC2=KCOLA(2) ITLAC3=KCOLA(30) ITLAC4=KCOLA(38) ITLAC5=KCOLA(39) DO 2700 IEL=1,IMAX1 MDEFOR=ITLAC(IEL) SEGACT MDEFOR NDEF=IELDEF(/1) DO 2701 I=1,NDEF IVA=IELDEF(I) IELDEF(I)=ITLAC1.ITLAC(IVA) IVA=ICHDEF(I) ICHDEF(I)=ITLAC2.ITLAC(IVA) IVA=MTVECT(I) MTVECT(I)=ITLAC3.ITLAC(IVA) IVA=MDCHP(I) MDCHP(I)=ITLAC2.ITLAC(IVA) IVA=MDCHEL(I) MDCHEL(I)=ITLAC5.ITLAC(IVA) IVA=MDMODE(I) MDMODE(I)=ITLAC4.ITLAC(IVA) 2701 CONTINUE SEGDES MDEFOR 2700 CONTINUE GOTO 1098 C ***************************MLREEL****************************** 6018 CONTINUE GOTO 1098 C *****************************MLENTI*************************** 6019 CONTINUE GOTO 1098 C ****************************MCHARG***************************** 6020 CONTINUE ITLAC1=KCOLA(2) ITLAC2=KCOLA(18) ITLAC3=KCOLA(39) ITLAC4=KCOLA(10) ITLAC5=KCOLA(32) ITLAC6=KCOLA(1) DO 3000 IEL=1,IMAX1 MCHARG=ITLAC(IEL) SEGACT MCHARG N=KCHARG(/1) DO 3001 I=1,N ICHARG=KCHARG(I) SEGACT ICHARG IF(CHATYP.EQ.'CHPOINT ') THEN IVA=ICHPO1 ICHPO1=ITLAC1.ITLAC(IVA) IVA=ICHPO2 ICHPO2=ITLAC2.ITLAC(IVA) IVA=ICHPO3 ICHPO3=ITLAC2.ITLAC(IVA) ELSE IF (CHATYP.EQ.'MCHAML ') THEN IVA=ICHPO1 IICHPO1=ITLAC3.ITLAC(IVA) IVA=ICHPO2 ICHPO2=ITLAC2.ITLAC(IVA) IVA=ICHPO3 ICHPO3=ITLAC2.ITLAC(IVA) ELSE IF (CHATYP.EQ.'TABLE ') THEN IVA=ICHPO1 ICHPO1=ITLAC4.ITLAC(IVA) IVA=ICHPO2 ICHPO2=ITLAC4.ITLAC(IVA) ENDIF IF(CHAMOB(I).EQ.'TRAN') THEN IVA=ICHPO4 ICHPO4=ITLAC5.ITLAC(IVA) IVA=ICHPO6 ICHPO6=ITLAC2.ITLAC(IVA) IVA=ICHPO7 ICHPO7=ITLAC2.ITLAC(IVA) ELSEIF(CHAMOB(I).EQ.'ROTA') THEN IVA=ICHPO4 ICHPO4=ITLAC5.ITLAC(IVA) IVA=ICHPO5 IF(IDIM.GT.2) ICHPO5=ITLAC5.ITLAC(IVA) IVA=ICHPO6 ICHPO6=ITLAC2.ITLAC(IVA) IVA=ICHPO7 ICHPO7=ITLAC2.ITLAC(IVA) ELSEIF(CHAMOB(I).EQ.'TRAJ') THEN IVA=ICHPO4 ICHPO4=ITLAC1.ITLAC(IVA) IVA=ICHPO5 ICHPO5=ITLAC6.ITLAC(IVA) IVA=ICHPO6 ICHPO6=ITLAC2.ITLAC(IVA) ENDIF SEGDES ICHARG 3001 CONTINUE SEGDES MCHARG 3000 CONTINUE GOTO 1098 C ************************ ***************************** 6021 CONTINUE GOTO 1098 C *********************MEVOLL************************************ 6022 CONTINUE ITLAC1=KCOLA(1) ITLAC2=KCOLA(18) DO 3200 IEL=1,IMAX1 MEVOLL=ITLAC(IEL) SEGACT MEVOLL N=IEVOLL(/1) DO 3201 I=1,N KEVOLL=IEVOLL(I) SEGACT KEVOLL IVA=IPROGX IPROGX=ITLAC2.ITLAC(IVA) IVA=IPROGY IPROGY=ITLAC2.ITLAC(IVA) SEGDES KEVOLL 3201 CONTINUE SEGDES MEVOLL 3200 CONTINUE GOTO 1098 C ****************************************************************** 1098 CONTINUE C 1099 CONTINUE SEGDES ICOLAC C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales