C ELFTEM SOURCE CHAT 05/01/12 23:32:44 5004 SUBROUTINE ELFTEM C C ===================================================================== C C C SOLUT1 = ELFE C C / 'TEMPS'POUTRE C STRUC1 ATTAC1 TEMPS DT1 CHARG1 ( M1 C GREEN ( NFOIS NN ) ; C C SOLUT1 : OBJET DE TYPE SOLUTION DYNAMIQUE C STRUC1 : OBJET DE TYPE STRUCTURE, ENSEMBLE DES ELEMENTS DE POUTRE C ATTAC1 : OBJET DE TYPE ATTACHE, LIAISONS ENTRE LES ELEMENTS C TEMPS : FLOTTANT, VALEUR DU TEMPS DE CALCUL C DT1 : FLOTTANT, VALEUR DU PAS DE TEMPS C CHARG1 : OBJET DE TYPE CHARGEMENT C GREEN : OBJET EVOLUTION CONTENANT LES FONCTIONS DE GREEN C FACULTATIVEMENT C M1 : ENTIER, INDICE DE TRONCATURE , SI 0 PAS DE TRONCATURE C NFOI : MOT CLE C NN : CHPOINT RESULTAT DANS L'OBJET SOLUTION TOUT LES NN PAS C C VERSION : JUIN 86 C PROGRAMMEUR : GUILBAUD C MODIFIE PAR P.MANIGOT EN MARS 1988 C MODIFIE PAR X.VACELET EN JUIN 1989 C C ===================================================================== C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMCOORD CHARACTER*4 MFOIS(1) CHARACTER*40 CHA1 DATA MFOIS/'NFOI'/ C TAILLE DES BLOCS (NOMBRE DE REELS) DATA LBLO/50000/ C PRECISION DATA EPS/1.D-11/ M=0 LFOIS=1 C C 1 - LECTURE DES DONNES C CALL LIROBJ('STRUCTUR',MSTRUC,1,IRETOU) IF (IERR.NE.0) RETURN CALL LIROBJ ('ATTACHE ',MATTAC,1,IRETOU) IF (IERR.NE.0) RETURN C CALL LIRREE (TEMPS,1,IRETOU) IF (IERR.NE.0) RETURN IF (TEMPS.LE.0) THEN C *** VALEUR DE TEMPS NEGATIVE OU NULLE CALL ERREUR(406) ENDIF CALL LIRREE (DELTAT,1,IRETOU) IF (IERR.NE.0) RETURN IF (DELTAT.LE.0.D0) THEN C *** VALEUR DE PAS DE TEMPS NEGATIVE OU NULLE CALL ERREUR(406) ENDIF IF (TEMPS.LT.DELTAT) THEN TAMP=TEMPS TEMPS=DELTAT DELTAT=TAMP END IF N=NINT(TEMPS/DELTAT) C CALL LIRENT (M,0,IRETOU) IF (IRETOU.NE.0 .AND. M.LE.0) THEN C *** INDICE DE TRONCATURE NEGATIF OU NUL CALL ERREUR(407) ENDIF C CALL LIROBJ ('CHARGEME',MCHARG,1,IRETOU) C CALL LIROBJ ('EVOLUTIO',KGREEN,1,IRETOU) IF (IERR .NE. 0) RETURN C NFOIS=1 CALL LIRMOT(MFOIS,LFOIS,IMOT,0) IF (IMOT.NE.0) THEN CALL LIRENT (NFOIS,1,IRETOU) END IF SEGACT MCOORD C C C 2 - TRAITEMENT DE L'OBJET STRUCTURE C CALL ELFELE(MSTRUC,KNREFE) IF (IERR.NE.0) RETURN C C C 3 - TRAITEMENT DE L'OBJET SOLUTION GREEN, CALCUL DES MATRICES ANBN C CALL ELFGR0 (KGREEN,DELTAT,N, KGREE2) IF (IERR.NE.0) RETURN MAXBLO=LBLO CALL ELFGR2(KGREE2,DELTAT,M,N,MAXBLO,KNREFE,KANBN,KDNCN) IF (IERR.NE.0) RETURN C C C 4 - TRAITEMENT DE L'OBJET ATTACHE, CALCUL DES MATRICES DE LIAISON C CALL ELFTRI(MATTAC,KNREFE,MATTA1) IF (IERR.NE.0) RETURN CALL ELFTR2(MATTA1,KNREFE) IF (IERR.NE.0) RETURN CALL ELFLIA(MATTA1,KANBN,KNREFE,KOMALI,EPS) IF (IERR.NE.0) RETURN C C C 5 - TRAITEMENT DU CHARGEMENT, CALCUL DES SECONDS-MEMBRES C CALL ELFCHA(MCHARG,KOMALI,KNREFE,KACHAR) IF (IERR.NE.0) RETURN C C C 6 - RESOLUTION ET CREATION DE L'OBJET SOLUTION C CALL ELFRES(KANBN,KDNCN,KNREFE,KOMALI,KACHAR,DELTAT,M,N,NFOIS, *KSOLUT) C IF (KGREEN .NE. KGREE2) CALL DTEVOL (KGREE2,1) C CALL ECROBJ('SOLUTION',KSOLUT) RETURN C END