actipo
C ACTIPO SOURCE CB215821 20/11/25 13:18:10 10792 C-------------------------------------------------------------------- C ACCELERATION POUR DES CHAMPOINTS C-------------------------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMCHPOI -INC SMELEME -INC SMCOORD -INC CCREEL CHARACTER*(LOCOMP) NAMEU(9),NAMEF(9) SEGMENT SNOMIN CHARACTER*(LOCOMP) NOMIN(0) ENDSEGMENT SEGMENT ICPR(nbpts) SEGMENT/MTRAV/(VA(NIN,KPOI)*D,VB(NIN,KPOI)*D,VC(NIN,KPOI)*D . ,VD(NIN,KPOI)*D,IBIN(NIN,KPOI),IPASS(NIN)) SEGMENT/MTRBV/(VF(NIN,KPOI)*D) DATA NAMEU(1),NAMEU(2),NAMEU(3)/'UX ','UY ','UZ '/ DATA NAMEU(4),NAMEU(5),NAMEU(6)/'RX ','RY ','RZ '/ DATA NAMEU(7),NAMEU(8),NAMEU(9)/'UR ','UT ','RT '/ DATA NAMEF(1),NAMEF(2),NAMEF(3)/'FX ','FY ','FZ '/ DATA NAMEF(4),NAMEF(5),NAMEF(6)/'MX ','MY ','MZ '/ DATA NAMEF(7),NAMEF(8),NAMEF(9)/'FR ','FT ','MT '/ DATA BINF,BSUP/1.D-2,1.D2/ xp100=xpetit * 100. C C ** ON FABRIQUE UN ICPR SUR LE 3 EME CHPOINT C SEGINI ICPR SEGINI SNOMIN MCHPOI=MCHPO3 SEGACT MCHPOI KPOI=0 DO 1 I = 1,IPCHP(/1) MSOUPO=IPCHP(I) SEGACT MSOUPO MELEME=IGEOC SEGACT MELEME DO 2 K=1,NUM(/2) IP=NUM(1,K) IF(ICPR(IP).NE.0) GOTO 2 KPOI=KPOI+1 ICPR(IP)=KPOI 2 CONTINUE C C ** RECHERCHE DE TOUTES LES INCONNUES DE CE CHPOINT C IF(I.NE.1) GOTO 3 DO 4 K=1,NOCOMP(/2) NOMIN(**)=NOCOMP(K) 4 CONTINUE GOTO 7 3 CONTINUE NN=NOMIN(/2) DO 5 K=1,NOCOMP(/2) DO 6 KK=1,NN IF(NOMIN(KK).EQ.NOCOMP(K)) GOTO 5 6 CONTINUE NOMIN(**)=NOCOMP(K) 5 CONTINUE 7 CONTINUE 1 CONTINUE NIN=NOMIN(/2) SEGINI MTRAV C C ON RECUPERE LE 3-EME CHAMP MIS DANS VA C DO 10 I=1,IPCHP(/1) MSOUPO=IPCHP(I) SEGACT MSOUPO MELEME=IGEOC SEGACT MELEME MPOVAL=IPOVAL SEGACT MPOVAL DO 11 K=1,NOCOMP(/2) DO 12 KK=1,NIN IF(NOMIN(KK).EQ.NOCOMP(K)) GOTO 13 12 CONTINUE 13 CONTINUE IPASS(K)=KK 11 CONTINUE DO 14 K=1,NUM(/2) K2= ICPR(NUM(1,K)) DO 15 KK=1,NOCOMP(/2) K1= IPASS(KK) IBIN(K1,K2)=1 VA(K1,K2)=VPOCHA(K,KK) VD(K1,K2)=VPOCHA(K,KK) 15 CONTINUE 14 CONTINUE 10 CONTINUE C C ON RECUPERE LE 2-EME CHAMP MIS DANS VB C MCHPOI=MCHPO2 SEGACT MCHPOI DO 20 I=1,IPCHP(/1) MSOUPO=IPCHP(I) SEGACT MSOUPO MELEME=IGEOC SEGACT MELEME MPOVAL=IPOVAL SEGACT MPOVAL DO 29 K=1,NIN IPASS(K)=0 29 CONTINUE DO 21 K=1,NOCOMP(/2) DO 22 KK=1,NIN IF(NOMIN(KK).EQ.NOCOMP(K)) GOTO 23 22 CONTINUE GOTO 21 23 CONTINUE IPASS(K)=KK 21 CONTINUE DO 28 K=1,NUM(/2) K2= ICPR(NUM(1,K)) IF(K2.EQ.0) GOTO 28 DO 24 KK=1,NOCOMP(/2) K1=IPASS(KK) IF(K1.EQ.0) GOTO 24 VB(K1,K2)=VPOCHA(K,KK) 24 CONTINUE 28 CONTINUE 20 CONTINUE C C ON RECUPERE LE 1-ER CHAMP MIS DANS VC C MCHPOI=MCHPO1 SEGACT MCHPOI DO 30 I=1,IPCHP(/1) MSOUPO=IPCHP(I) SEGACT MSOUPO MELEME=IGEOC SEGACT MELEME MPOVAL=IPOVAL SEGACT MPOVAL DO 39 K=1,NIN IPASS(K)=0 39 CONTINUE DO 31 K=1,NOCOMP(/2) DO 32 KK=1,NIN IF(NOMIN(KK).EQ.NOCOMP(K)) GOTO 33 32 CONTINUE GOTO 31 33 CONTINUE IPASS(K)=KK 31 CONTINUE DO 38 K=1,NUM(/2) K2= ICPR(NUM(1,K)) IF(K2.EQ.0) GOTO 38 DO 34 KK=1,NOCOMP(/2) K1=IPASS(KK) IF(K1.EQ.0) GOTO 34 VC(K1,K2)=VPOCHA(K,KK) 34 CONTINUE 38 CONTINUE 30 CONTINUE C GOTO (2001,2002),IDET C C ACCELERATION GEOMETRIQUE C 2001 CONTINUE DO 41 K=1,KPOI DO 42 I=1,NIN RR=VA(I,K) IF(IBIN(I,K).EQ.0) GOTO 42 RD=VB(I,K)-VC(I,K) IF(abs(rd).lt.xp100) GOTO 43 RAI=(VA(I,K)-VB(I,K))/RD IF(abs(1.D0-RAI).LE.xp100) GOTO 43 RR=VA(I,K)+(VA(I,K)-VB(I,K))*RAI/(1.D0-RAI) 43 CONTINUE VD(I,K)=RR 42 CONTINUE 41 CONTINUE GOTO 3000 C C ACCELERATION SECANTE C 2002 CONTINUE C C ON RECUPERE LE DERNIER CHAMP DANS VF C SEGINI MTRBV MCHPOI=MCHPO4 SEGACT MCHPOI DO 70 I=1,IPCHP(/1) MSOUPO=IPCHP(I) SEGACT MSOUPO MELEME=IGEOC SEGACT MELEME MPOVAL=IPOVAL SEGACT MPOVAL DO 79 K=1,NIN IPASS(K)=0 79 CONTINUE DO 71 K=1,NOCOMP(/2) DO 710 KN=1,9 IF(NAMEF(KN).EQ.NOCOMP(K)) GOTO 720 710 CONTINUE GOTO 71 720 CONTINUE DO 72 KK=1,NIN IF(NOMIN(KK).EQ.NAMEU(KN)) GOTO 73 72 CONTINUE GOTO 71 73 CONTINUE IPASS(K)=KK 71 CONTINUE DO 78 K=1,NUM(/2) K2= ICPR(NUM(1,K)) IF(K2.EQ.0) GOTO 78 DO 74 KK=1,NOCOMP(/2) K1=IPASS(KK) IF(K1.EQ.0) GOTO 74 VF(K1,K2)=VPOCHA(K,KK) 74 CONTINUE 78 CONTINUE 70 CONTINUE C ZNUM=0.D0 ZDENOM=0.D0 DO 761 K=1,KPOI DO 762 I=1,NIN IF(IBIN(I,K).EQ.0) GOTO 762 ZNUM=ZNUM+VF(I,K)*VC(I,K) ZDENOM=ZDENOM+VF(I,K)*(VC(I,K)+VB(I,K)-VA(I,K)) 762 CONTINUE 761 CONTINUE IF(ZDENOM.EQ.0.D0) XMU=1.D0 IF(ZDENOM.NE.0.D0) XMU=ZNUM/ZDENOM IF(ABS(XMU).LT.BINF.OR.ABS(XMU).GT.BSUP) XMU=1.D0 IF(XMU.EQ.0.D0) XMU=1.D0 XMUN=1.D0-XMU DO 771 K=1,KPOI DO 772 I=1,NIN IF(IBIN(I,K).EQ.0) GOTO 772 VD(I,K)=XMU*VA(I,K)+XMUN*VC(I,K) 772 CONTINUE 771 CONTINUE C 3000 CONTINUE SEGACT MCHPO3 SEGINI,MCHPOI=MCHPO3 DO 50 I=1,IPCHP(/1) MSOUP1=MCHPO3.IPCHP(I) SEGACT MSOUP1 SEGINI,MSOUPO=MSOUP1 IPCHP(I)=MSOUPO MPOVA1=MSOUP1.IPOVAL SEGINI,MPOVAL=MPOVA1 IPOVAL=MPOVAL MELEME=IGEOC SEGACT MELEME DO 51 KK=1,NOCOMP(/2) DO 52 K=1,NOMIN(/2) IF(NOMIN(K).EQ.NOCOMP(KK)) GOTO 53 52 CONTINUE RETURN 53 CONTINUE KPA=K DO 54 K=1,NUM(/2) IP=ICPR(NUM(1,K)) VPOCHA(K,KK)=VD(KPA,IP) 54 CONTINUE 51 CONTINUE 50 CONTINUE SEGSUP SNOMIN,ICPR,MTRAV IF(IDET.EQ.2) SEGSUP MTRBV END
© Cast3M 2003 - Tous droits réservés.
Mentions légales