C CFICMO SOURCE KICH 09/09/11 21:15:52 6505 SUBROUTINE CFICMO(TPS1,TPS2,NBR,WR12,wrk52,wrk53,NWA,EFIC,TR, & E1,E2) * *============================================================== * calcul du module fictif du modele maxott *============================================================== * * * entrees * * XMAT(NCOMAT) = CARACTERISTIQUES MECANIQUES DU MATERIAU * * WRK12 * EMi(2,NWA(i+1)) i=0 a 8 * = EVOLUTION DU MODUE D'YOUNG DE LA BRANCHE i * SMi(NSTRS) i=1 a 8 * = VARIABLES INTERNES AU DEBUT DU PAS D'INTEGRATION * * TPS1 = TEMPS AU DEBUT DU PAS D'INTEGRATION * TPS2 = TEMPS A LA FIN DU PAS D'INTEGRATION * NBR = INDICE DE LA CHAINE DE MAXWELL CONCERNEE * NWA = TABLEAU DES DIMENSIONS DES EVOLUTIONS DES MODULES DE CHAQUE CHAINE * * * sortie * * EFIC = MODULE FICTIF DE LA CHAINE DE MAXWELL * TR = TEMPS DE RELAXATION DE LA CHAINE DE MAXWELL * E1 = MODULE DE LA CHAINE DE MAXWELL AU DEBUT DU PAS * E2 = MODULE DE LA CHAINE DE MAXWELL A LA FIN DU PAS * KERRE = INDICATEUR D'ERREUR * * * *============================================================== * IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC CCOPTIO -INC DECHE * SEGMENT WR12 REAL*8 EM0(2,NWA(1)),EM1(2,NWA(2)),EM2(2,NWA(3)) REAL*8 EM3(2,NWA(4)),EM4(2,NWA(5)),EM5(2,NWA(6)) REAL*8 EM6(2,NWA(7)),EM7(2,NWA(8)),EM8(2,NWA(9)) REAL*8 SM0(NSTRS),SM1(NSTRS),SM2(NSTRS),SM3(NSTRS) REAL*8 SM4(NSTRS),SM5(NSTRS),SM6(NSTRS),SM7(NSTRS) REAL*8 SM8(NSTRS) ENDSEGMENT * DIMENSION NWA(9) * * offsets pour caracteristiques temps de relaxation * * deformations planes / axisymetrique * IF ((IFOMOD.EQ.-1.AND.IFOUR.NE.-2).OR. & (IFOMOD.EQ.0.OR.IFOMOD.EQ.1)) THEN IPREMO = 10 IPREMF = 51 * * contraintes planes / 3D coques minces * ELSE IF((IFOMOD.EQ.-1.AND.IFOUR.EQ.-2).OR. & (IFOMOD.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9))) THEN IPREMO = 10 IPREMF = 46 * * tridimensionnelle massive * ELSE IPREMO = 15 IPREMF = 57 ENDIF * * test sur la branche * IF (NBR.EQ.0) THEN CALL MAXINT(EM0,NWA(1),TPS1,FTPS1,IRET1) CALL MAXINT(EM0,NWA(1),TPS2,FTPS2,IRET2) EFIC=FTPS2 TR=0. E1=FTPS1 E2=FTPS2 GOTO 10 ELSE IF (NBR.EQ.1) THEN CALL MAXINT(EM1,NWA(2),TPS1,FTPS1,IRET1) CALL MAXINT(EM1,NWA(2),TPS2,FTPS2,IRET2) TR=XMAT(IPREMO+2) ELSE IF (NBR.EQ.2) THEN CALL MAXINT(EM2,NWA(3),TPS1,FTPS1,IRET1) CALL MAXINT(EM2,NWA(3),TPS2,FTPS2,IRET2) TR=XMAT(IPREMO+4) ELSE IF (NBR.EQ.3) THEN CALL MAXINT(EM3,NWA(4),TPS1,FTPS1,IRET1) CALL MAXINT(EM3,NWA(4),TPS2,FTPS2,IRET2) TR=XMAT(IPREMO+6) ELSE IF (NBR.EQ.4) THEN CALL MAXINT(EM4,NWA(5),TPS1,FTPS1,IRET1) CALL MAXINT(EM4,NWA(5),TPS2,FTPS2,IRET2) TR=XMAT(IPREMO+8) * * 5 et plus * ELSE IF (NBR.EQ.5) THEN CALL MAXINT(EM5,NWA(6),TPS1,FTPS1,IRET1) CALL MAXINT(EM5,NWA(6),TPS2,FTPS2,IRET2) TR=XMAT(IPREMF+1) ELSE IF (NBR.EQ.6) THEN CALL MAXINT(EM6,NWA(7),TPS1,FTPS1,IRET1) CALL MAXINT(EM6,NWA(7),TPS2,FTPS2,IRET2) TR=XMAT(IPREMF+3) ELSE IF (NBR.EQ.7) THEN CALL MAXINT(EM7,NWA(8),TPS1,FTPS1,IRET1) CALL MAXINT(EM7,NWA(8),TPS2,FTPS2,IRET2) TR=XMAT(IPREMF+5) ELSE IF (NBR.EQ.8) THEN CALL MAXINT(EM8,NWA(9),TPS1,FTPS1,IRET1) CALL MAXINT(EM8,NWA(9),TPS2,FTPS2,IRET2) TR=XMAT(IPREMF+7) ENDIF * * E1=FTPS1 E2=FTPS2 IF(TPS2-TPS1.EQ.0.D0) THEN EFIC = FTPS2 ELSE EFIC = FTPS2*(1.D0-EXP(-TR*(TPS2-TPS1)))/(TR*(TPS2-TPS1)) ENDIF * * 10 IF (IRET1.EQ.0) THEN CALL ERREUR(854) RETURN ELSE IF (IRET2.EQ.0) THEN CALL ERREUR(854) RETURN ENDIF END