~maddevelopers/mg5amcnlo/color_ordering

« back to all changes in this revision

Viewing changes to tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/polynomial.f

  • Committer: olivier-mattelaer
  • Date: 2021-02-21 11:03:42 UTC
  • mfrom: (50.85.73 madgraph5)
  • Revision ID: olivier-mattelaer-20210221110342-wn2nvdefctey5e0k
merge up to 2.8.0 --not python3 compatible

Show diffs side-by-side

added added

removed removed

Lines of Context:
419
419
      ENDDO
420
420
      END
421
421
 
422
 
      SUBROUTINE ML5_0_UPDATE_WL_2_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
423
 
     $ ,OUT)
424
 
      USE ML5_0_POLYNOMIAL_CONSTANTS
425
 
      INTEGER I,J,K
426
 
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
427
 
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
428
 
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
429
 
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
430
 
 
431
 
      DO I=1,LCUT_SIZE
432
 
        DO J=1,OUT_SIZE
433
 
          DO K=0,14
434
 
            OUT(J,K,I)=(0.0D0,0.0D0)
435
 
          ENDDO
436
 
          DO K=1,IN_SIZE
437
 
            OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
438
 
            OUT(J,1,I)=OUT(J,1,I)+A(K,1,I)*B(J,0,K)
439
 
            OUT(J,2,I)=OUT(J,2,I)+A(K,2,I)*B(J,0,K)
440
 
            OUT(J,3,I)=OUT(J,3,I)+A(K,3,I)*B(J,0,K)
441
 
            OUT(J,4,I)=OUT(J,4,I)+A(K,4,I)*B(J,0,K)
442
 
            OUT(J,5,I)=OUT(J,5,I)+A(K,5,I)*B(J,0,K)
443
 
            OUT(J,6,I)=OUT(J,6,I)+A(K,6,I)*B(J,0,K)
444
 
            OUT(J,7,I)=OUT(J,7,I)+A(K,7,I)*B(J,0,K)
445
 
            OUT(J,8,I)=OUT(J,8,I)+A(K,8,I)*B(J,0,K)
446
 
            OUT(J,9,I)=OUT(J,9,I)+A(K,9,I)*B(J,0,K)
447
 
            OUT(J,10,I)=OUT(J,10,I)+A(K,10,I)*B(J,0,K)
448
 
            OUT(J,11,I)=OUT(J,11,I)+A(K,11,I)*B(J,0,K)
449
 
            OUT(J,12,I)=OUT(J,12,I)+A(K,12,I)*B(J,0,K)
450
 
            OUT(J,13,I)=OUT(J,13,I)+A(K,13,I)*B(J,0,K)
451
 
            OUT(J,14,I)=OUT(J,14,I)+A(K,14,I)*B(J,0,K)
452
 
          ENDDO
453
 
        ENDDO
454
 
      ENDDO
455
 
      END
456
 
 
457
 
      SUBROUTINE MP_ML5_0_UPDATE_WL_2_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
458
 
     $ ,OUT)
459
 
      USE ML5_0_POLYNOMIAL_CONSTANTS
460
 
      INTEGER I,J,K
461
 
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
462
 
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
463
 
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
464
 
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
465
 
 
466
 
      DO I=1,LCUT_SIZE
467
 
        DO J=1,OUT_SIZE
468
 
          DO K=0,14
469
 
            OUT(J,K,I)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
470
 
          ENDDO
471
 
          DO K=1,IN_SIZE
472
 
            OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
473
 
            OUT(J,1,I)=OUT(J,1,I)+A(K,1,I)*B(J,0,K)
474
 
            OUT(J,2,I)=OUT(J,2,I)+A(K,2,I)*B(J,0,K)
475
 
            OUT(J,3,I)=OUT(J,3,I)+A(K,3,I)*B(J,0,K)
476
 
            OUT(J,4,I)=OUT(J,4,I)+A(K,4,I)*B(J,0,K)
477
 
            OUT(J,5,I)=OUT(J,5,I)+A(K,5,I)*B(J,0,K)
478
 
            OUT(J,6,I)=OUT(J,6,I)+A(K,6,I)*B(J,0,K)
479
 
            OUT(J,7,I)=OUT(J,7,I)+A(K,7,I)*B(J,0,K)
480
 
            OUT(J,8,I)=OUT(J,8,I)+A(K,8,I)*B(J,0,K)
481
 
            OUT(J,9,I)=OUT(J,9,I)+A(K,9,I)*B(J,0,K)
482
 
            OUT(J,10,I)=OUT(J,10,I)+A(K,10,I)*B(J,0,K)
483
 
            OUT(J,11,I)=OUT(J,11,I)+A(K,11,I)*B(J,0,K)
484
 
            OUT(J,12,I)=OUT(J,12,I)+A(K,12,I)*B(J,0,K)
485
 
            OUT(J,13,I)=OUT(J,13,I)+A(K,13,I)*B(J,0,K)
486
 
            OUT(J,14,I)=OUT(J,14,I)+A(K,14,I)*B(J,0,K)
487
 
          ENDDO
488
 
        ENDDO
489
 
      ENDDO
490
 
      END
491
 
 
492
422
      SUBROUTINE ML5_0_UPDATE_WL_0_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
493
423
     $ ,OUT)
494
424
      USE ML5_0_POLYNOMIAL_CONSTANTS
531
461
      ENDDO
532
462
      END
533
463
 
534
 
      SUBROUTINE ML5_0_UPDATE_WL_1_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
535
 
     $ ,OUT)
536
 
      USE ML5_0_POLYNOMIAL_CONSTANTS
537
 
      INTEGER I,J,K
538
 
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
539
 
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
540
 
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
541
 
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
542
 
 
543
 
      DO I=1,LCUT_SIZE
544
 
        DO J=1,OUT_SIZE
545
 
          DO K=0,14
546
 
            OUT(J,K,I)=(0.0D0,0.0D0)
547
 
          ENDDO
548
 
          DO K=1,IN_SIZE
549
 
            OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
550
 
            OUT(J,1,I)=OUT(J,1,I)+A(K,0,I)*B(J,1,K)+A(K,1,I)*B(J,0,K)
551
 
            OUT(J,2,I)=OUT(J,2,I)+A(K,0,I)*B(J,2,K)+A(K,2,I)*B(J,0,K)
552
 
            OUT(J,3,I)=OUT(J,3,I)+A(K,0,I)*B(J,3,K)+A(K,3,I)*B(J,0,K)
553
 
            OUT(J,4,I)=OUT(J,4,I)+A(K,0,I)*B(J,4,K)+A(K,4,I)*B(J,0,K)
554
 
            OUT(J,5,I)=OUT(J,5,I)+A(K,1,I)*B(J,1,K)
555
 
            OUT(J,6,I)=OUT(J,6,I)+A(K,1,I)*B(J,2,K)+A(K,2,I)*B(J,1,K)
556
 
            OUT(J,7,I)=OUT(J,7,I)+A(K,2,I)*B(J,2,K)
557
 
            OUT(J,8,I)=OUT(J,8,I)+A(K,1,I)*B(J,3,K)+A(K,3,I)*B(J,1,K)
558
 
            OUT(J,9,I)=OUT(J,9,I)+A(K,2,I)*B(J,3,K)+A(K,3,I)*B(J,2,K)
559
 
            OUT(J,10,I)=OUT(J,10,I)+A(K,3,I)*B(J,3,K)
560
 
            OUT(J,11,I)=OUT(J,11,I)+A(K,1,I)*B(J,4,K)+A(K,4,I)*B(J,1,K)
561
 
            OUT(J,12,I)=OUT(J,12,I)+A(K,2,I)*B(J,4,K)+A(K,4,I)*B(J,2,K)
562
 
            OUT(J,13,I)=OUT(J,13,I)+A(K,3,I)*B(J,4,K)+A(K,4,I)*B(J,3,K)
563
 
            OUT(J,14,I)=OUT(J,14,I)+A(K,4,I)*B(J,4,K)
564
 
          ENDDO
565
 
        ENDDO
566
 
      ENDDO
567
 
      END
568
 
 
569
 
      SUBROUTINE MP_ML5_0_UPDATE_WL_1_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
570
 
     $ ,OUT)
571
 
      USE ML5_0_POLYNOMIAL_CONSTANTS
572
 
      INTEGER I,J,K
573
 
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
574
 
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
575
 
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
576
 
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
577
 
 
578
 
      DO I=1,LCUT_SIZE
579
 
        DO J=1,OUT_SIZE
580
 
          DO K=0,14
581
 
            OUT(J,K,I)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
582
 
          ENDDO
583
 
          DO K=1,IN_SIZE
584
 
            OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
585
 
            OUT(J,1,I)=OUT(J,1,I)+A(K,0,I)*B(J,1,K)+A(K,1,I)*B(J,0,K)
586
 
            OUT(J,2,I)=OUT(J,2,I)+A(K,0,I)*B(J,2,K)+A(K,2,I)*B(J,0,K)
587
 
            OUT(J,3,I)=OUT(J,3,I)+A(K,0,I)*B(J,3,K)+A(K,3,I)*B(J,0,K)
588
 
            OUT(J,4,I)=OUT(J,4,I)+A(K,0,I)*B(J,4,K)+A(K,4,I)*B(J,0,K)
589
 
            OUT(J,5,I)=OUT(J,5,I)+A(K,1,I)*B(J,1,K)
590
 
            OUT(J,6,I)=OUT(J,6,I)+A(K,1,I)*B(J,2,K)+A(K,2,I)*B(J,1,K)
591
 
            OUT(J,7,I)=OUT(J,7,I)+A(K,2,I)*B(J,2,K)
592
 
            OUT(J,8,I)=OUT(J,8,I)+A(K,1,I)*B(J,3,K)+A(K,3,I)*B(J,1,K)
593
 
            OUT(J,9,I)=OUT(J,9,I)+A(K,2,I)*B(J,3,K)+A(K,3,I)*B(J,2,K)
594
 
            OUT(J,10,I)=OUT(J,10,I)+A(K,3,I)*B(J,3,K)
595
 
            OUT(J,11,I)=OUT(J,11,I)+A(K,1,I)*B(J,4,K)+A(K,4,I)*B(J,1,K)
596
 
            OUT(J,12,I)=OUT(J,12,I)+A(K,2,I)*B(J,4,K)+A(K,4,I)*B(J,2,K)
597
 
            OUT(J,13,I)=OUT(J,13,I)+A(K,3,I)*B(J,4,K)+A(K,4,I)*B(J,3,K)
598
 
            OUT(J,14,I)=OUT(J,14,I)+A(K,4,I)*B(J,4,K)
599
 
          ENDDO
600
 
        ENDDO
601
 
      ENDDO
602
 
      END
603
 
 
604
464
      SUBROUTINE ML5_0_UPDATE_WL_2_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
605
465
     $ ,OUT)
606
466
      USE ML5_0_POLYNOMIAL_CONSTANTS
664
524
      ENDDO
665
525
 
666
526
      END
 
527
 
 
528
      SUBROUTINE ML5_0_UPDATE_WL_2_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
 
529
     $ ,OUT)
 
530
      USE ML5_0_POLYNOMIAL_CONSTANTS
 
531
      INTEGER I,J,K
 
532
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
533
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
 
534
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
535
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
 
536
 
 
537
      DO I=1,LCUT_SIZE
 
538
        DO J=1,OUT_SIZE
 
539
          DO K=0,14
 
540
            OUT(J,K,I)=(0.0D0,0.0D0)
 
541
          ENDDO
 
542
          DO K=1,IN_SIZE
 
543
            OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
 
544
            OUT(J,1,I)=OUT(J,1,I)+A(K,1,I)*B(J,0,K)
 
545
            OUT(J,2,I)=OUT(J,2,I)+A(K,2,I)*B(J,0,K)
 
546
            OUT(J,3,I)=OUT(J,3,I)+A(K,3,I)*B(J,0,K)
 
547
            OUT(J,4,I)=OUT(J,4,I)+A(K,4,I)*B(J,0,K)
 
548
            OUT(J,5,I)=OUT(J,5,I)+A(K,5,I)*B(J,0,K)
 
549
            OUT(J,6,I)=OUT(J,6,I)+A(K,6,I)*B(J,0,K)
 
550
            OUT(J,7,I)=OUT(J,7,I)+A(K,7,I)*B(J,0,K)
 
551
            OUT(J,8,I)=OUT(J,8,I)+A(K,8,I)*B(J,0,K)
 
552
            OUT(J,9,I)=OUT(J,9,I)+A(K,9,I)*B(J,0,K)
 
553
            OUT(J,10,I)=OUT(J,10,I)+A(K,10,I)*B(J,0,K)
 
554
            OUT(J,11,I)=OUT(J,11,I)+A(K,11,I)*B(J,0,K)
 
555
            OUT(J,12,I)=OUT(J,12,I)+A(K,12,I)*B(J,0,K)
 
556
            OUT(J,13,I)=OUT(J,13,I)+A(K,13,I)*B(J,0,K)
 
557
            OUT(J,14,I)=OUT(J,14,I)+A(K,14,I)*B(J,0,K)
 
558
          ENDDO
 
559
        ENDDO
 
560
      ENDDO
 
561
      END
 
562
 
 
563
      SUBROUTINE MP_ML5_0_UPDATE_WL_2_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
 
564
     $ ,OUT)
 
565
      USE ML5_0_POLYNOMIAL_CONSTANTS
 
566
      INTEGER I,J,K
 
567
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
568
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
 
569
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
570
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
 
571
 
 
572
      DO I=1,LCUT_SIZE
 
573
        DO J=1,OUT_SIZE
 
574
          DO K=0,14
 
575
            OUT(J,K,I)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
 
576
          ENDDO
 
577
          DO K=1,IN_SIZE
 
578
            OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
 
579
            OUT(J,1,I)=OUT(J,1,I)+A(K,1,I)*B(J,0,K)
 
580
            OUT(J,2,I)=OUT(J,2,I)+A(K,2,I)*B(J,0,K)
 
581
            OUT(J,3,I)=OUT(J,3,I)+A(K,3,I)*B(J,0,K)
 
582
            OUT(J,4,I)=OUT(J,4,I)+A(K,4,I)*B(J,0,K)
 
583
            OUT(J,5,I)=OUT(J,5,I)+A(K,5,I)*B(J,0,K)
 
584
            OUT(J,6,I)=OUT(J,6,I)+A(K,6,I)*B(J,0,K)
 
585
            OUT(J,7,I)=OUT(J,7,I)+A(K,7,I)*B(J,0,K)
 
586
            OUT(J,8,I)=OUT(J,8,I)+A(K,8,I)*B(J,0,K)
 
587
            OUT(J,9,I)=OUT(J,9,I)+A(K,9,I)*B(J,0,K)
 
588
            OUT(J,10,I)=OUT(J,10,I)+A(K,10,I)*B(J,0,K)
 
589
            OUT(J,11,I)=OUT(J,11,I)+A(K,11,I)*B(J,0,K)
 
590
            OUT(J,12,I)=OUT(J,12,I)+A(K,12,I)*B(J,0,K)
 
591
            OUT(J,13,I)=OUT(J,13,I)+A(K,13,I)*B(J,0,K)
 
592
            OUT(J,14,I)=OUT(J,14,I)+A(K,14,I)*B(J,0,K)
 
593
          ENDDO
 
594
        ENDDO
 
595
      ENDDO
 
596
      END
 
597
 
 
598
      SUBROUTINE ML5_0_UPDATE_WL_1_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
 
599
     $ ,OUT)
 
600
      USE ML5_0_POLYNOMIAL_CONSTANTS
 
601
      INTEGER I,J,K
 
602
      COMPLEX*16 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
603
      COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
 
604
      COMPLEX*16 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
605
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
 
606
 
 
607
      DO I=1,LCUT_SIZE
 
608
        DO J=1,OUT_SIZE
 
609
          DO K=0,14
 
610
            OUT(J,K,I)=(0.0D0,0.0D0)
 
611
          ENDDO
 
612
          DO K=1,IN_SIZE
 
613
            OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
 
614
            OUT(J,1,I)=OUT(J,1,I)+A(K,0,I)*B(J,1,K)+A(K,1,I)*B(J,0,K)
 
615
            OUT(J,2,I)=OUT(J,2,I)+A(K,0,I)*B(J,2,K)+A(K,2,I)*B(J,0,K)
 
616
            OUT(J,3,I)=OUT(J,3,I)+A(K,0,I)*B(J,3,K)+A(K,3,I)*B(J,0,K)
 
617
            OUT(J,4,I)=OUT(J,4,I)+A(K,0,I)*B(J,4,K)+A(K,4,I)*B(J,0,K)
 
618
            OUT(J,5,I)=OUT(J,5,I)+A(K,1,I)*B(J,1,K)
 
619
            OUT(J,6,I)=OUT(J,6,I)+A(K,1,I)*B(J,2,K)+A(K,2,I)*B(J,1,K)
 
620
            OUT(J,8,I)=OUT(J,8,I)+A(K,1,I)*B(J,3,K)+A(K,3,I)*B(J,1,K)
 
621
            OUT(J,11,I)=OUT(J,11,I)+A(K,1,I)*B(J,4,K)+A(K,4,I)*B(J,1,K)
 
622
            OUT(J,7,I)=OUT(J,7,I)+A(K,2,I)*B(J,2,K)
 
623
            OUT(J,9,I)=OUT(J,9,I)+A(K,2,I)*B(J,3,K)+A(K,3,I)*B(J,2,K)
 
624
            OUT(J,12,I)=OUT(J,12,I)+A(K,2,I)*B(J,4,K)+A(K,4,I)*B(J,2,K)
 
625
            OUT(J,10,I)=OUT(J,10,I)+A(K,3,I)*B(J,3,K)
 
626
            OUT(J,13,I)=OUT(J,13,I)+A(K,3,I)*B(J,4,K)+A(K,4,I)*B(J,3,K)
 
627
            OUT(J,14,I)=OUT(J,14,I)+A(K,4,I)*B(J,4,K)
 
628
          ENDDO
 
629
        ENDDO
 
630
      ENDDO
 
631
      END
 
632
 
 
633
      SUBROUTINE MP_ML5_0_UPDATE_WL_1_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE
 
634
     $ ,OUT)
 
635
      USE ML5_0_POLYNOMIAL_CONSTANTS
 
636
      INTEGER I,J,K
 
637
      COMPLEX*32 A(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
638
      COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
 
639
      COMPLEX*32 OUT(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
640
      INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
 
641
 
 
642
      DO I=1,LCUT_SIZE
 
643
        DO J=1,OUT_SIZE
 
644
          DO K=0,14
 
645
            OUT(J,K,I)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
 
646
          ENDDO
 
647
          DO K=1,IN_SIZE
 
648
            OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
 
649
            OUT(J,1,I)=OUT(J,1,I)+A(K,0,I)*B(J,1,K)+A(K,1,I)*B(J,0,K)
 
650
            OUT(J,2,I)=OUT(J,2,I)+A(K,0,I)*B(J,2,K)+A(K,2,I)*B(J,0,K)
 
651
            OUT(J,3,I)=OUT(J,3,I)+A(K,0,I)*B(J,3,K)+A(K,3,I)*B(J,0,K)
 
652
            OUT(J,4,I)=OUT(J,4,I)+A(K,0,I)*B(J,4,K)+A(K,4,I)*B(J,0,K)
 
653
            OUT(J,5,I)=OUT(J,5,I)+A(K,1,I)*B(J,1,K)
 
654
            OUT(J,6,I)=OUT(J,6,I)+A(K,1,I)*B(J,2,K)+A(K,2,I)*B(J,1,K)
 
655
            OUT(J,8,I)=OUT(J,8,I)+A(K,1,I)*B(J,3,K)+A(K,3,I)*B(J,1,K)
 
656
            OUT(J,11,I)=OUT(J,11,I)+A(K,1,I)*B(J,4,K)+A(K,4,I)*B(J,1,K)
 
657
            OUT(J,7,I)=OUT(J,7,I)+A(K,2,I)*B(J,2,K)
 
658
            OUT(J,9,I)=OUT(J,9,I)+A(K,2,I)*B(J,3,K)+A(K,3,I)*B(J,2,K)
 
659
            OUT(J,12,I)=OUT(J,12,I)+A(K,2,I)*B(J,4,K)+A(K,4,I)*B(J,2,K)
 
660
            OUT(J,10,I)=OUT(J,10,I)+A(K,3,I)*B(J,3,K)
 
661
            OUT(J,13,I)=OUT(J,13,I)+A(K,3,I)*B(J,4,K)+A(K,4,I)*B(J,3,K)
 
662
            OUT(J,14,I)=OUT(J,14,I)+A(K,4,I)*B(J,4,K)
 
663
          ENDDO
 
664
        ENDDO
 
665
      ENDDO
 
666
      END