C MAMUPW    SOURCE    MB234859  26/01/26    21:15:10     12460          
      SUBROUTINE MAMUPW(IDEB,IFIN,VAL2,IPOSR2,LPL2,NA2,
     &                            VAL1,IPOSR1,LPL1,NA1,PT,NBO)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
-INC CCHOLE
      DIMENSION VAL1(*),VAL2(*)
      REAL*8 PT(36)
C
      DO I=1,MIN(6,NA1)*MIN(6,NA2)
        PT(I)=0.D0
      ENDDO
C
      LON=IFIN-IDEB+1
      IF (LON.LE.0) GOTO 999
C
      NBO=NBO+LON*(NA1*NA2)
C
      IPOS1=IDEB+IPOSR1
      IPOS2=IDEB+IPOSR2
      IF (NA2.GE.6) THEN
        IF (NA1.GE.6) THEN
          call mamu66(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.5) THEN
          call mamu65(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.4) THEN
          call mamu64(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.3) THEN
          call mamu63(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.2) THEN
          call mamu62(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.1) THEN
          call mamu61(LON,VAL1(IPOS1),     VAL2(IPOS2),LPL2,pt)
        ENDIF
      ELSEIF (NA2.GE.5) THEN
        IF (NA1.GE.6) THEN
          call mamu56(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.5) THEN
          call mamu55(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.4) THEN
          call mamu54(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.3) THEN
          call mamu53(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.2) THEN
          call mamu52(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.1) THEN
          call mamu51(LON,VAL1(IPOS1),     VAL2(IPOS2),LPL2,pt)
        ENDIF
      ELSEIF (NA2.GE.4) THEN
        IF (NA1.GE.6) THEN
          call mamu46(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.5) THEN
          call mamu45(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.4) THEN
          call mamu44(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.3) THEN
          call mamu43(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.2) THEN
          call mamu42(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.1) THEN
          call mamu41(LON,VAL1(IPOS1),     VAL2(IPOS2),LPL2,pt)
        ENDIF
      ELSEIF (NA2.GE.3) THEN
        IF (NA1.GE.6) THEN
          call mamu36(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.5) THEN
          call mamu35(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.4) THEN
          call mamu34(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.3) THEN
          call mamu33(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.2) THEN
          call mamu32(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.1) THEN
          call mamu31(LON,VAL1(IPOS1),     VAL2(IPOS2),LPL2,pt)
        ENDIF
      ELSEIF (NA2.GE.2) THEN
        IF (NA1.GE.6) THEN
          call mamu26(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.5) THEN
          call mamu25(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.4) THEN
          call mamu24(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.3) THEN
          call mamu23(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.2) THEN
          call mamu22(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),LPL2,pt)
        ELSEIF (NA1.GE.1) THEN
          call mamu21(LON,VAL1(IPOS1),     VAL2(IPOS2),LPL2,pt)
        ENDIF
      ELSEIF (NA2.GE.1) THEN
        IF (NA1.GE.6) THEN
          call mamu16(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),    pt)
        ELSEIF (NA1.GE.5) THEN
          call mamu15(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),    pt)
        ELSEIF (NA1.GE.4) THEN
          call mamu14(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),    pt)
        ELSEIF (NA1.GE.3) THEN
          call mamu13(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),    pt)
        ELSEIF (NA1.GE.2) THEN
          call mamu12(LON,VAL1(IPOS1),lpl1,VAL2(IPOS2),    pt)
        ELSEIF (NA1.GE.1) THEN
          pt(1)=pt(1)+ddotpv((LON),VAL1(IPOS1),VAL2(IPOS2))
        ENDIF
      ENDIF
 999  CONTINUE
      END
 
