C LTL SOURCE CHAT 05/01/13 01:25:53 5004 SUBROUTINE LTL IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C====================================================================== C = CALCUL DU PRODUIT SCALAIRE DE DEUX LISTREEL = C = = C = SYNTAXE : = C = = C = FLOT = LTL LIST1 (LIST2 FLOT1 FLOT2) ; = C = = C = LIST1, LIST2 : LISTREEL = C = = C = FLOT, FLOT1, FLOT2 : FLOTTANT = C = = C = FLOT = (FLOT1*LIST1) SCALAIRE (FLOT2*LIST2) = C = = C = SI LIST2 N'EST PAS DONNE, LIST2=LIST1 = C = SI FLOT2 N'EST PAS DONNE, FLOT2=1. = C = ST FLOT1 ET FLOT2 NE SONT PAS DONNE ,FLOT1=FLOT2=1. = C = = C = CREATION : 24/09/90 = C = PROGRAMMEUR : P.P. = C====================================================================== C -INC PPARAM -INC CCOPTIO -INC SMLREEL C FLOT1=1.D0 C CALL LIROBJ('LISTREEL',MLREE1,1,IRET) IF(IRET.EQ.0) GOTO 666 C CALL LIROBJ('LISTREEL',MLREE2,0,IRET) IF(IRET.EQ.0) MLREE2=0 IF(MLREE1.EQ.MLREE2) MLREE2=0 C CALL LIRREE(FLOT,0,IRET) IF(IRET.NE.0)THEN FLOT1=FLOT CALL LIRREE(FLOT,0,IRET) IF(IRET.NE.0)FLOT1=FLOT*FLOT1 ENDIF C SEGACT, MLREE1 NPT=MLREE1.PROG(/1) IF (MLREE2.NE.0)THEN SEGACT, MLREE2 NPTT=MLREE2.PROG(/1) IF(NPT.NE.NPTT)THEN CALL ERREUR(577) SEGDES, MLREE1, MLREE2 GOTO 666 ENDIF ENDIF C FLOT=0.D0 IF (MLREE2.EQ.0)THEN DO 10 IE1=1,NPT FLOT=FLOT+FLOT1*MLREE1.PROG(IE1)**2 10 CONTINUE SEGDES, MLREE1 ELSE DO 11 IE1=1,NPT FLOT=FLOT+FLOT1*MLREE1.PROG(IE1)*MLREE2.PROG(IE1) 11 CONTINUE SEGDES, MLREE1, MLREE2 ENDIF C CALL ECRREE(FLOT) C 666 RETURN END