sols1
C SOLS1 SOURCE FANDEUR 22/03/01 21:15:08 11301 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C C======================================================================= C SOUS-PROGRAMME APPELE PAR L'OPERATEUR SOLS C IL FABRIQUE LES SOLUTIONS STATIQUES POUR LES LIAISONS L C DE LA STRUCTURE S C C KSOLUT : OBJET SOLUTION (SOUS TYPE SOLU-STAT) C KSOSTU : STRUCTURE ELEMENTAIRE, SEGMENT MSOSTU C KSOLE1 : LISTE DES LIAISONS ELEMENTAIRES (MJONCT), SEGMENT MSOLEN C C ECRIT PAR FARVACQUE C APPELLE ECCHPO RESOU1 ECSOLU ERREUR(108) C INTRODUCTION DES RESOLUTIONS SIMULTANEES : M.PETIT 10/3/88 C======================================================================= C -INC PPARAM -INC CCOPTIO -INC SMSTRUC -INC SMATTAC -INC SMSOLUT -INC CCHAMP -INC SMCHPOI -INC SMELEME SEGMENT IDEMEN(0) C KSOLUT=0 MSOSTU=KSOSTU MSOLE1=KSOLE1 SEGACT MSOSTU,MSOLE1 KRIGI=ISRAID C NJONC=MSOLE1.ISOLEN(/1) N=NJONC SEGINI MSOLEN NBELEM=NJONC NBNN=1 NBSOUS=0 NBREF=0 SEGINI MELEME ITYPEL=1 C C **** BOUCLE SUR LES MJONCT PRIS DANS MSOLE1 C DO 72 IB=1,NJONC MJONCT=MSOLE1.ISOLEN(IB) SEGACT MJONCT IPT1=MJOPOI SEGACT IPT1 NUM(1,IB)=IPT1.NUM(1,1) C WRITE(6,4444) NUM(1,IB) C4444 FORMAT(' POINT DU MJONCT ',I5) IF(MJOTYP.EQ.'DEPI') THEN ISOLEN(IB)=IPCHJO(1) ELSE NCCC=ISTRJO(/1) DO 73 IC=1,NCCC IF(ISTRJO(IC).EQ.MSOSTU) GOTO 74 73 CONTINUE GOTO 71 74 CONTINUE MCHPOI=IPCHJO(IC) SEGACT MCHPOI*MOD NSOUPO=IPCHP(/1) NAT=1 C **** ON VA CALCULER LA REPONSE A MCHPO1 QU ON VA METTRE DANS ISOLEN(I SEGINI MCHPO1 C dans les objets solutions il n'y a que des champs diffus JATTRI(1) = 1 c MCHPO1.JATTRI(1) = 1 MCHPO1.MOCHDE=MOCHDE MCHPO1.MTYPOI=MTYPOI MCHPO1.IFOPOI=IFOPOI DO 80 IS=1,NSOUPO MSOUPO=IPCHP(IS) SEGACT MSOUPO NC=NOCOMP(/2) SEGINI MSOUP1 MSOUP1.IGEOC=IGEOC IF(MJODDL.NE.'LX ') GO TO 87 C C **** SI LIAISON LIBRE(MJODDL=LX) REPONSE A -Pt C MPOVAL=IPOVAL SEGACT MPOVAL N=VPOCHA(/1) SEGINI MPOVA1 DO ICOMP=1,NC DO I1=1,N MPOVA1.VPOCHA(I1,ICOMP)=-VPOCHA(I1,ICOMP) ENDDO ENDDO MSOUP1.IPOVAL=MPOVA1 GO TO 88 87 CONTINUE MSOUP1.IPOVAL=IPOVAL 88 CONTINUE DO 81 ICOMP=1,NC DO 82 ICOMP1=1,LNOMDD IF(NOMDD(ICOMP1).NE.NOCOMP(ICOMP)) GO TO 82 MSOUP1.NOCOMP(ICOMP)=NOMDU(ICOMP1) MSOUP1.NOHARM(ICOMP)=NOHARM(ICOMP) GO TO 81 82 CONTINUE MOTERR=NOCOMP(ICOMP) GO TO 5000 81 CONTINUE MCHPO1.IPCHP(IS)=MSOUP1 80 CONTINUE C ISOLEN(IB)=MCHPO1 IF(MJODDL.EQ.'LX ') ISOLEN(IB)=-ISOLEN(IB) 71 CONTINUE ENDIF 72 CONTINUE C C N=NJONC SEGINI MSOLE2 NIPO=10 SEGINI MSOLUT ITYSOL='SOLUSTAT' DO 56 I=1,NIPO MSOLIS(I)=0 MSOLIT(I)=0 56 CONTINUE MSOLIS(3)=MELEME MSOLIS(4)=MSOLE2 MSOLIS(5)=MSOLEN MSOLIT(5)=2 MSOLIT(10)=14 MSOLIS(10)=MSOLE1 C SEGINI IDEMEN KDEMEN=IDEMEN DO 50 IB=1,NJONC ISEC=ABS(ISOLEN(IB)) IF(IIMPI.EQ.0) GOTO 52 IF(ISOLEN(IB).GT.0)WRITE(IOIMP,4441)IB IF(ISOLEN(IB).LT.0)WRITE(IOIMP,4442)IB 4441 FORMAT(' SOLUTION STATIQUE NUMERO :',I4,' BLOQUEE.') 4442 FORMAT(' SOLUTION STATIQUE NUMERO :',I4,' LIBRE .') WRITE(IOIMP,4446) 4446 FORMAT(' ***** CHPOINT D''EXCITATION ') 52 CONTINUE IDEMEN(**)=ISEC 50 CONTINUE C C ON RESOUD SIMULTANEMENT POUR LES NJONC LIAISONS C NOID=0 NOEN=1 CALL RESOU IF(IERR.NE.0) GO TO 5000 C C IDEMEN=KDEMEN SEGACT IDEMEN*mod do 541 ib=njonc,1,-1 idemen(ib)=iprem 541 continue DO 54 IB=1,NJONC LVALM=5 NIMOD=3 SEGINI MMODE IMODE=MMODE FMMODD(1)=0.D0 FMMODD(2)=0.D0 FMMODD(2)=0.D0 FMMODD(4)=0.D0 FMMODD(5)=0.D0 IMMODD(1)=IB MCHPOI=IDEMEN(IB) SEGACT MCHPOI IRT=MCHPOI IF(IFOPOI.NE.1) GOTO 57 IF(IFO.NE.1) THEN IMMODD(2)=0 IMMODD(3)=0 ELSE IMMODD(2)=IHARM IF(IHARM.LT.0) IMMODD(3)=1 IF(IHARM.GE.0) IMMODD(3)=2 ENDIF 57 CONTINUE MCHPOI=IRT IF(IIMPI.EQ.0)GOTO 53 WRITE(IOIMP,4447) 4447 FORMAT(' ***** CHPOINT REPONSE SOLUTION STATIQUE ') 53 CONTINUE IF(IRT.EQ.0) GO TO 5000 MJONCT=MSOLE1.ISOLEN(IB) SEGACT MJONCT IF(MJOTYP.NE.'DEPI') THEN MCHPOI=ABS(ISOLEN(IB)) SEGACT MCHPOI NSOUP=IPCHP(/1) DO 51 I=1,NSOUP MSOUPO=IPCHP(I) IF(ISOLEN(IB).GT.0) GO TO 55 SEGACT MSOUPO MPOVAL=IPOVAL SEGSUP MPOVAL 55 CONTINUE SEGSUP MSOUPO 51 CONTINUE SEGSUP MCHPOI ENDIF ISOLEN(IB)=IRT MSOLE2.ISOLEN(IB)=IMODE 54 CONTINUE SEGSUP IDEMEN C KSOLUT=MSOLUT 5000 CONTINUE END
© Cast3M 2003 - Tous droits réservés.
Mentions légales