green3
C GREEN3 SOURCE FANDEUR 10/12/14 21:16:56 6812 & ,KGREEN) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) ************************************************************************ * * G R E E N 3 * ----------- * * FONCTION: * --------- * * CALCULE LES FONCTIONS DE GREEN ADIMENSIONNELLES * * K2 K2 * D / / D * LES DERIVEES SONT CALCULEES PAR --( /....DK) = / --(....)DK * DX / / DX * K1 K1 * * 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 DEMANDE. * 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 : * ----------- * * * 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. * GNULLE = .TRUE. SI "G" EST NULLE A L'INSTANT CONSIDERE (FILTRE * CAUSAL). * INSTAN = POINTEUR DES INSTANTS DE DEFINITION DES FONCTIONS DE * GREEN ET DERIVEES (LISTREEL). * IGREEN = POINTEURS DES FONCTIONS DE GREEN ET DERIVEES (LISTREEL). * TEMP0 = TEMPS INITIAL POUR LEQUEL LES FONCTIONS DE GREEN SONT * DEFINIES. * INTEGER INSTAN,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 LOGICAL GNULLE POINTEUR G0.MLREEL,GL.MLREEL,DG0.MLREEL,DGL.MLREEL * * AUTEUR, DATE DE CREATION: * ------------------------- * * PASCAL MANIGOT 11 AVRIL 1988 * * 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' & //' VERSION3' * * 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. * ---------------------------------------------------------- * * ON COMMENCE A L'INSTANT "-PAS" POUR BIEN METTRE EN EVIDENCE * QUE LES FONCTIONS SONT INITIALEMENT NULLES. * NBTEMP=NINT(TEMPS/PAS) + 1 JG=NBTEMP SEGINI MLREEL INSTAN = MLREEL TEMP0 = 0.D0 TEMP = TEMP0 DO 100 NP=1,NBTEMP TEMP=TEMP+PAS 100 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 JG = NBTEMP 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 = CSTE / (2.D0 * PAS) ELSE XK2 = CSTE * FH END IF TETA0 = TEMP0 * CT/RT DTETA = PAS * CT/RT DTET2 = DTETA / 2.D0 * * EXTREMITE X=0 : * G0 = IGREEN(1) DG0 = IGREEN(2) TETA = TETA0 GNULLE = .TRUE. DO 120 NP=1,NBTEMP ELSE DELTK = XGRAND ELSE END IF IF (GNULLE) THEN GNULLE = .FALSE. END IF END IF 120 CONTINUE * END DO * *+* APPLICATION ARTIFICIELLE D'UN RETARD A DG/DX : * DO 130 IB=NBTEMP,2,-1 130 CONTINUE * END DO * * EXTREMITE X=L : * GL = IGREEN(3) DGL = IGREEN(4) DO 122 NP=1,NPAS 122 CONTINUE * END DO DO 124 NP=(NPAS+1),NBTEMP 124 CONTINUE * END DO * 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=NBTEMP+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' TYPX='LISTREEL' TYPY='LISTREEL' NUMEVX=4 NUMEVY='REEL' 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' TYPX='LISTREEL' TYPY='LISTREEL' NUMEVX=4 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 * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales