gflex1
C GFLEX1 SOURCE CHAT 05/01/13 00:18:02 5004 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C C ===================================================================== C SOUS-PROGRAMME FORTRAN APPELE PAR GREEN1 POUR CALCULER LES FCTS DE C GREEN EN FLEXION C CREATION : 21/09/87 C PROGRAMMEUR : GUILBAUD C ===================================================================== -INC PPARAM -INC CCOPTIO -INC CCREEL DIMENSION AB(10,*) WRITE(IOIMP,*) ' DEBUT DE GFLEX1 ' PIS4=XPI*0.25D0 RPI=1.D0/SQRT(XPI) XP=1.D0 XG=20.D0 XTG=200.D0 C C--------BOUCLE SUR LES PAS DE TEMPS ------------------------- C GP4=0.D0 GP3=0.D0 GP2=0.D0 GP1=0.D0 GP0=0.D0 GPL0=0.D0 G4P=0.D0 G3P=0.D0 G2P=0.D0 G1P=0.D0 G0P=0.D0 DTM=DLL*DLL/(3.D0*CTC*RF*XPI) LANBN1=LANBN+1 DO 40 L=1,LANBN1 T=L*DELTAT C C--------BOUCLE SUR LES EXTREMITES---------------------------- C DO 20 NE=1,2 DL=0.D0 IF(NE.EQ.2) DL=DLL DKSI=DL/RF CSRF=CTC/RF STK=0.5D0/RTETA SDK=RPI*SIN(U2-PIS4) CDK=RPI*COS(U2-PIS4) IF(NE.EQ.1) THEN C C PREMIERE EXTREMITE C G4=-STK*CDK G3=0.5D0 G2=RTETA*SDK G1=0.D0 AB4=G4-GP4 GP4=G4 AB3=G3-GP3 GP3=G3 AB2=G2-GP2 GP2=G2 AB1=G1-GP1 GP1=G1 AB0=G0-GP0 GP0=G0 AB(1,L)=AB0 AB(2,L)=AB1 AB(3,L)=AB2 AB(4,L)=AB3 AB(5,L)=AB4 ELSE C C SECONDE EXTREMITE C IF(U2.GT.XTG) THEN TK1=STK*TK TK2=TK1*TK TK3=TK2*TK TK4=TK3*TK TK5=TK4*TK TK6=TK5*TK G3=-TK1*SDK G2=TK2*CDK G1=TK3*SDK G0=-TK4*CDK GG3=-TK3*CDK GG2=-TK4*SDK GG1= TK5*CDK ELSE IF(T.EQ.DELTAT) THEN U2P=XG+1.D0 ELSE U2P=DKSI*DKSI/(4.D0*CSRF*(T-DELTAT)) ENDIF IF(U2.GT.XP.AND.U2P.LT.XG) THEN SS=SS-DSS CC=CC-DCC ELSE ENDIF SC=SS-CC SC1=1.D0-SS-CC U=SQRT(U2) U3=U*U2 U4=U*U3 GG4=-RTETA*(U*SC+CDK) G3=0.5D0*SC1 G2=RTETA*(SDK+U*SC1) G1=RTETA*(0.5D0*RTETA*SC+U*G2) G0=(2.D0/3.D0)*RTETA*(-RTETA*GG4+U*G1) GG1=RTETA*(GG1+U*GG2) ENDIF IF(DELTAT.LE.DTM) THEN AB0=G0-GPL0 GPL0=G0 AB(6,L)=AB0 AB(10,L)=-AB0/DELT2 ELSE G4=-STK*CDK AB(10,L)=G4-G4P G4P=G4 AB(9,L)=G3-G3P G3P=G3 AB(8,L)=G2-G2P G2P=G2 AB(7,L)=G1-G1P G1P=G1 AB(6,L)=G0-G0P G0P=G0 ENDIF ENDIF 20 CONTINUE 40 CONTINUE C IF(DELTAT.GT.DTM) RETURN DO 70 I=7,10 GP=AB(I,2)-2.D0*AB(I,1) DO 50 L=2,LANBN GA=AB(I,L+1)-2.D0*AB(I,L)+AB(I,L-1) AB(I,L-1)=GP GP=GA 50 CONTINUE AB(I,LANBN)=GP GP=0.D0 DO 60 L=2,LANBN GA=0.5D0*(AB(I,L-1)+AB(I,L)) AB(I,L-1)=GP GP=GA 60 CONTINUE AB(I,LANBN)=GP 70 CONTINUE C WRITE(IOIMP,*)' FIN DE GFLEX1 ' RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales