cldeta
C CLDETA SOURCE CHAT 05/01/12 22:04:36 5004 . CONTR,DDEFT,DCONPR) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO C DIMENSION RT(*),XLTR(*),XLTT(*),EPTT(*),EPTR(*),EPRS(*),OUVER(*) DIMENSION CONTR(*),DDEFT(*),DCONPR(*) DIMENSION DDR(6,6),ET(3),EPPT(3),EPSPR(3) C C*********************************************************************** C************* CALCUL DE L ETAT DE CHARGE OU DE DECHARGE *************** C*********************************************************************** C C INITIALISATION C RFE=1.D-8 RFS=YUNG*RFE C DO 10 I=1,3 ET(I)=YUNG IF(XLTR(I).LE.0.D0) ET(I)=0.D0 EPPT(I)=EPTT(I)-XLTT(I)/YUNG EPSPR(I)=EPRS(I) IF(XLTR(I).GT.0.D0.AND.RT(I).LE.RFS) EPSPR(I)=EPTR(I) C IF(XLTR(I).GT.0.D0.AND.RT(I).GT.RFS) THEN C IF(XLTT(I).GT.0.D0) THEN IF(RT(I).GE.XLTT(I)) THEN EPSPR(I)=((XLTR(I)-RT(I))/(XLTR(I)-XLTT(I)))*EPPT(I) ELSE EPSPR(I)=EPPT(I)+((1.D0-RT(I)/XLTT(I))*(EPTR(I)-EPPT(I))) ENDIF ELSE EPSPR(I)=(1.D0-RT(I)/XLTR(I))*EPTR(I) ENDIF C EPPMAX=(1.D0-RT(I)/XLTR(I))*EPSPR(I) EPRM=(1.D0-RT(I)/XLTR(I))*EPRS(I) EPRM=MIN(EPPMAX,EPRM) ELSE EPPMAX=EPSPR(I) EPRM=EPRS(I) ENDIF C IF(XLTR(I).GT.0.D0) . ET(I)=(YUNG*XLTR(I))/(XLTR(I)+(YUNG*EPSPR(I))) C IF(ABS(CONTR(I)).LE.RFS) THEN IF(RT(I).LE.RFS) THEN IF((ABS(OUVER(I)-EPRM)).LE.RFE.OR.OUVER(I).LE.EPRM) THEN IF(DDEFT(I).LT.0.D0) THEN ET(I)=YUNG ELSE ET(I)=0.D0 ENDIF ELSE ET(I)=0.D0 ENDIF ELSE IF((ABS(OUVER(I)-EPPMAX)).LE.RFE.OR.OUVER(I).GE.EPPMAX) THEN IF(DDEFT(I).LT.0.D0) ET(I)=0.D0 ELSE IF((ABS(OUVER(I)-EPRM)).LE.RFE.OR.OUVER(I).LE.EPRM) THEN IF(DDEFT(I).LT.0.D0) ET(I)=YUNG ELSE IF(DDEFT(I).LT.0.D0) ET(I)=0.D0 ENDIF ENDIF ENDIF ENDIF C IF((ABS(XLTR(I)-RT(I))).LE.RFS.AND.XLTR(I).GT.0.D0) ET(I)=YUNG C 10 CONTINUE C ET1=ET(1) ET2=ET(2) ET3=ET(3) UPUN=1.D0+XNU UMUN=1.D0-XNU UMDN=1.D0-2.D0*XNU EMET1=YUNG-ET1 EMET2=YUNG-ET2 EMET3=YUNG-ET3 C DENO=(EMET1*EMET2*EMET3)+ . (ET1*EMET2*EMET3)+(EMET1*ET2*EMET3)+(EMET1*EMET2*ET3)+ . (UPUN*UMUN*((EMET1*ET2*ET3)+(ET1*EMET2*ET3)+(ET1*ET2*EMET3)))+ . (UPUN*UPUN*UMDN*(ET1*ET2*ET3)) USDENO=1.D0/DENO C DDR(1,1)=((EMET2*EMET3)+(ET2*EMET3)+(EMET2*ET3)+ . (ET2*ET3*UPUN*UMUN))*YUNG*ET1*USDENO DDR(1,2)=XNU*YUNG*ET1*ET2*(EMET3+(ET3*UPUN))*USDENO DDR(1,3)=XNU*YUNG*ET1*ET3*(EMET2+(ET2*UPUN))*USDENO DDR(2,1)=DDR(1,2) DDR(2,2)=((EMET1*EMET3)+(ET1*EMET3)+(EMET1*ET3)+ . (ET1*ET3*UPUN*UMUN))*YUNG*ET2*USDENO DDR(2,3)=XNU*YUNG*ET2*ET3*(EMET1+(ET1*UPUN))*USDENO DDR(3,1)=DDR(1,3) DDR(3,2)=DDR(2,3) DDR(3,3)=((EMET1*EMET2)+(ET1*EMET2)+(EMET1*ET2)+ . (ET1*ET2*UPUN*UMUN))*YUNG*ET3*USDENO DDR(4,4)=YUNG/(2.D0*UPUN) DDR(5,5)=DDR(4,4) DDR(6,6)=DDR(4,4) C C IF(IIMPI.EQ.9) THEN WRITE(IOIMP,*) 'DDR' WRITE(IOIMP,1000) ((DDR(I,J),J=1,6),I=1,6) WRITE(IOIMP,1001) (DDEFT(I),I=1,6) WRITE(IOIMP,1002) (DCONPR(I),I=1,6) 1000 FORMAT(6(1X,1PE12.5)) 1001 FORMAT(1X,'DDEFT =',6(1X,1PE12.5)) 1002 FORMAT(1X,'DCONPR=',6(1X,1PE12.5)) ENDIF C RETURN C END
© Cast3M 2003 - Tous droits réservés.
Mentions légales