green2
C GREEN2 SOURCE FANDEUR 10/12/14 21:16:53 6812 & ,KGREEN) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) ************************************************************************ * * G R E E N 2 * ----------- * * FONCTION: * --------- * * CALCULE LES FONCTIONS DE GREEN ADIMENSIONNELLES * * G(X+DX) - G(X) * LES DERIVEES SONT CALCULEES PAR -------------- * DX * * MODULES UTILISES: * ----------------- * -INC PPARAM -INC CCOPTIO -INC CCREEL -INC SMCHAML -INC SMLREEL -INC SMEVOLL * * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) * ----------- * * KMATER (E) POINTEUR SUR LE CHAMP "MATERIAU" * KCARAC (E) POINTEUR SUR LE CHAMP "CARACTERISTIQUE" * DLL (E) LONGUEUR DE L'ELEMENT * TEMP1 (E) TEMPS DE CALCUL * DELTAT (E) PAS DE TEMPS * FB, FH (E) FREQUENCES DE FILTRAGE, BORNES DE L'INTERVALLE * D'INTEGRATION. * NIN (E) METHODE D'INTEGRATION: * 1 FCT ESCALIER "INFERIEUR" * 2 FCT ESCALIER "MEDIAN" * 3 FCT ESCALIER "SUPERIEUR" * 4 TRAPEZES * KGREEN (S) POINTEUR DE L'OBJET "EVOLUTION" CONTENANT LES * FONCTIONS DE GREEN. * IL MANQUE LE FACTEUR C/ES (OU ANALOGUE) POUR AVOIR * LES VRAIES FONCTIONS DE GREEN EN TRACTION (OU * TORSION). * * FONCTIONS : * ----------- * EXTERNAL GRET * * CONSTANTES: * ----------- * PARAMETER (EPS = 1.D-3) PARAMETER (EPS9 = 1.D0 - EPS) * * VARIABLES: * ---------- * * ....TC = RELATIF A TRACTION. * ....TO = RELATIF A TORSION. * PAS... = PAS DE TEMPS SPECIFIQUE POUR LA TRACTION OU LA TORSION * OU LA FLEXION. * NPAS.. = NOMBRE DE PAS POUR LA PROPAGATION D'UNE IMPULSION DE X=0 * A X=L, SELON QUE TRACTION OU TORSION. * TPRO.. = TEMPS DE PROPAGATION D'UNE IMPULSION DE X=0 A X=L, * SELON QUE TRACTION OU TORSION. * INSTAN = POINTEURS DES INSTANTS DE DEFINITION DES FONCTIONS DE * GREEN ET DERIVEES (LISTREEL). * IGREEN = POINTEURS DES FONCTIONS DE GREEN ET DERIVEES (LISTREEL). * NINS.. = NOMBRE D'INSTANTS. * TEMP0 = TEMPS INITIAL POUR LEQUEL LES FONCTIONS DE GREEN SONT * DEFINIES. * INTEGER INSTAN(4),IGREEN(4) *+* SEGMENT A VIRER QUAND LA FLEXION SERA INTEGREE NUMERIQUEMENT. SEGMENT MAB REAL*8 AB(10,LAB) ENDSEGMENT *+* CHARACTER*12 NOMFCT(10) CHARACTER*12 INDICE CHARACTER*57 ITEX CHARACTER*72 JTEX POINTEUR G0.MLREEL,GL.MLREEL,DG0.MLREEL,DGL.MLREEL * * AUTEUR, DATE DE CREATION: * ------------------------- * * LIONEL VIVAN 11 FEVRIER 1988 * REPRISE P. MANIGOT 04/03/88 * * LANGAGE: * -------- * * ESOPE + FORTRAN77 * ************************************************************************ * DATA NOMFCT/'G(X=0) ','DG/DX(X=0) ','D2G/DX2(X=0)', & 'D3G/DX3(X=0)','D4G/DX4(X=0)', & 'G(X=L) ','DG/DX(X=L) ','D2G/DX2(X=L)', & 'D3G/DX3(X=L)','D4G/DX4(X=L)'/ * ITEX=' L = C = RF = ' JTEX='FCTS DE GREEN FILTREES DE HZ A HZ' & //' VERSION2' * * 1) RECUPERATION DES CARACTERISTIQUES * --------------------------------- * MCHAML=KMATER SEGACT,MCHAML MELVAL=IELVAL(1) SEGACT,MELVAL E =VELCHE(1,1) SEGDES,MELVAL MELVAL=IELVAL(2) SEGACT,MELVAL ANU=VELCHE(1,1) SEGDES,MELVAL MELVAL=IELVAL(3) SEGACT,MELVAL RHO=VELCHE(1,1) SEGDES,MELVAL SEGDES,MCHAML IF (E.LT.XPETIT) THEN RETURN END IF IF (RHO.LT.XPETIT) THEN RETURN END IF MCHAML=KCARAC SEGACT,MCHAML MELVAL=IELVAL(1) SEGACT,MELVAL TORS=VELCHE(1,1) SEGDES,MELVAL MELVAL=IELVAL(2) SEGACT,MELVAL AINRY=VELCHE(1,1) SEGDES,MELVAL MELVAL=IELVAL(3) SEGACT,MELVAL AINRZ=VELCHE(1,1) SEGDES,MELVAL MELVAL=IELVAL(4) SEGACT,MELVAL SECT=VELCHE(1,1) SEGDES,MELVAL SEGDES,MCHAML IF (SECT.LT.XPETIT) THEN RETURN END IF * ES=E*SECT AIP=AINRY+AINRZ AMU=E/(2.D0*(1.D0+ANU)) CTC=SQRT(E/RHO) CTO=SQRT(AMU/RHO) RTC=SQRT(AIP/SECT) RTO=SQRT(TORS*2.D0*(1.D0+ANU)/SECT) RFY=SQRT(AINRY/SECT) RFZ=SQRT(AINRZ/SECT) * TPROTC = DLL / CTC NPASTC = INT(TPROTC*EPS9/DELTAT) + 1 PASTC = TPROTC / DBLE(NPASTC) TPROTO = DLL / CTO NPASTO = INT(TPROTO*EPS9/DELTAT) + 1 PASTO = TPROTC / DBLE(NPASTO) IF (IIMPI .EQ. 1806) THEN WRITE (IOIMP,*) WRITE (IOIMP,*) 'DELTAT = ',DELTAT WRITE (IOIMP,*) 'TPROTC,PASTC,NPASTC,TPROTO,PASTO,NPASTO' WRITE (IOIMP,*) TPROTC,PASTC,NPASTC,TPROTO,PASTO,NPASTO WRITE (IOIMP,*) END IF * TEMPS = MAX(TEMP1,TPROTC,TPROTO) * N=28 SEGINI MEVOLL WRITE (JTEX(27:38),FMT='(1PE12.5)') FB WRITE (JTEX(45:56),FMT='(1PE12.5)') FH IEVTEX=JTEX ITYEVO='REEL' * * 1 - TRACTION COMPRESSION * 2 - TORSION * DO 150 ITRACT=1,2 * IF (ITRACT.EQ.1) THEN K0=0 CT=CTC RT=RTC PAS = PASTC NPAS = NPASTC INDICE='TRACTION' ELSE K0=2 CT=CTO RT=RTO PAS = PASTO NPAS = NPASTO INDICE='TORSION ' END IF * * * 2) INSTANTS DE DEFINITION DES FONCTIONS DE GREEN ET DERIVEES. * ---------------------------------------------------------- * NINS0 = NINT(TEMPS/PAS) + 1 * * INSTANTS DE DEFINITION DES FONCTIONS DE GREEN JG=NINS0 SEGINI MLREEL INSTAN(1) = MLREEL INSTAN(3) = MLREEL TEMP0 = 0.D0 TEMP = TEMP0 DO 100 NP=1,NINS0 TEMP=TEMP+PAS 100 CONTINUE * END DO SEGDES MLREEL * * INSTANTS DE DEFINITION DES DERIVEES PREMIERES DES FONCTIONS DE * GREEN DE TRACTION ET TORSION. NINS1T = 2 * (NINS0 - 1) JG = NINS1T SEGINI MLREEL INSTAN(2) = MLREEL INSTAN(4) = MLREEL TEMP = TEMP0 PAS1 = PAS * EPS DO 110 NP=1,NINS1T,2 TEMP = TEMP + PAS 110 CONTINUE * END DO SEGDES MLREEL * * 3) VALEURS DES FONCTIONS DE GREEN ET DERIVEES. * ------------------------------------------- * *+* AVEC LA FLEXION INTEGREE NUMERIQUEMENT, IL FAUDRA METTRE *+* CETTE BOUCLE 140 EN TETE. * DO 140 I=1,4 * IF (I.EQ.3) K0 = K0+12 K = K0 + I SEGINI KEVOLL IEVOLL(K)=KEVOLL * WRITE (ITEX(6:17),FMT='(1PE12.5)') DLL WRITE (ITEX(24:35),FMT='(1PE12.5)') CT WRITE (ITEX(43:54),FMT='(1PE12.5)') RT KEVTEX=ITEX // ' ' // INDICE TYPX='LISTREEL' TYPY='LISTREEL' NUMEVX = 4 NUMEVY='REEL' IPROGX = INSTAN(I) IF ( (I/2)*2 .EQ. I) THEN JG = NINS1T ELSE JG = NINS0 END IF SEGINI MLREEL IGREEN(I) = MLREEL IPROGY=MLREEL NOMEVX='TEMPS (S)' IF (I .LT. 3) THEN NOMEVY=NOMFCT(I) ELSE NOMEVY=NOMFCT(I+3) END IF * SEGDES KEVOLL * LE "LISTREEL" DE FONCTION DE GREEN EST LAISSE ACTIF. 140 CONTINUE * END DO * CSTE = 2.D0*XPI*RT/CT XK1 = CSTE * FB IF (FH .LT. XPETIT) THEN XK2 = 1.3D0 * CSTE / DELTAT ELSE XK2 = CSTE * FH END IF TETA0 = TEMP0 * CT/RT DTETA = PAS * CT/RT DTET2 = DTETA / 2.D0 * * EXTREMITE X=0 : * G0 = IGREEN(1) TETA = TETA0 DO 120 NP=1,NINS0 ELSE DELTK = XGRAND ELSE END IF END IF 120 CONTINUE * END DO DG0 = IGREEN(2) * (LA DERIVEE EN KHI EST OPPOSEE A LA DERIVEE EN TETA) DO 122 NP=1,(NINS0-1) NP2 = NP * 2 122 CONTINUE * END DO * *+* LISSAGE ARTIFICIEL DE DG/DX: * VALMAX = ABS(VALMAX) * 1.D-2 SEGACT,DG0 DO 130 IB=1,NINS1T END IF 130 CONTINUE * END DO * * EXTREMITE X=L : * GL = IGREEN(3) DGL = IGREEN(4) DO 132 NP=1,NPAS NP2 = NP * 2 132 CONTINUE * END DO DO 134 NP=(NPAS+1),(NINS0-1) NP1 = NP - NPAS NP2 = NP * 2 NP3 = NP1 * 2 134 CONTINUE * END DO IF (NPAS .LT. NINS0) THEN END IF * SEGDES,G0,GL,DG0,DGL * 150 CONTINUE * END DO * * C-------------------------------------------------------------- JG=NINT(TEMPS/DELTAT) SEGINI MLREE1 TEMP=0.D0 DO 10 NP=1,JG TEMP=TEMP+DELTAT 10 CONTINUE SEGDES MLREE1 LAB=JG + 1 SEGINI MAB C C 3 - FLEXION DANS LE PLAN X Y ( AUTOUR DE Z ) C K=4 DO 80 I=1,10 SEGINI KEVOLL WRITE (ITEX(6:17),FMT='(1PE12.5)') DLL WRITE (ITEX(24:35),FMT='(1PE12.5)') CTC WRITE (ITEX(43:54),FMT='(1PE12.5)') RFZ KEVTEX=ITEX // ' FLEXION XOY' NUMEVX=4 NUMEVY='REEL' TYPX='LISTREEL' TYPY='LISTREEL' IPROGX=MLREE1 SEGINI MLREEL IPROGY=MLREEL NOMEVX='TEMPS (S)' NOMEVY=NOMFCT(I) DO 70 NP=1,JG 70 CONTINUE K=K+1 IF (I.EQ.6) K=19 IEVOLL(K)=KEVOLL SEGDES KEVOLL,MLREEL 80 CONTINUE C C 4 - FLEXION DANS LE PLAN X Z ( AUTOUR DE Y ) C DIF=ABS(1.D0-RFY/RFZ) IF (DIF.GT.EPS) THEN END IF K=9 DO 200 I=1,10 SEGINI KEVOLL WRITE (ITEX(6:17),FMT='(1PE12.5)') DLL WRITE (ITEX(24:35),FMT='(1PE12.5)') CTC WRITE (ITEX(43:54),FMT='(1PE12.5)') RFY KEVTEX=ITEX // ' FLEXION XOZ' NUMEVX=4 TYPX='LISTREEL' TYPY='LISTREEL' NUMEVY='REEL' IPROGX=MLREE1 NOMEVX='TEMPS (S)' NOMEVY=NOMFCT(I) SEGINI MLREEL IPROGY=MLREEL DO 90 NP=1,JG 90 CONTINUE K=K+1 IF (I.EQ.6) K=24 IEVOLL(K)=KEVOLL SEGDES KEVOLL,MLREEL 200 CONTINUE SEGSUP,MAB * SEGDES MEVOLL KGREEN = MEVOLL * RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales