add dgemm, doku update

Michael Riedl Michael Riedl 2018-06-15

added dgemmCbind.f90
copied LibDBlasF77.def -> LibDBlasF77.def.m2pp
dgemmCbind.f90 Diff Switch to side-by-side view
Loading...
LibDBlasF77.def to LibDBlasF77.def.m2pp
--- a/LibDBlasF77.def
+++ b/LibDBlasF77.def.m2pp
@@ -1,6 +1,20 @@
 DEFINITION MODULE LibDBlasF77;
 
-  (*------------------------------------------------------------------------*)
+  (*========================================================================*)
+  (* HINWEIS : Bitte nur die Datei LibDBlasF77.mod.m2pp editieren           *)
+  (*========================================================================*)
+  (* Es sind 2 Versionen enthalten die mit                                  *)
+  (*                                                                        *)
+  (*   m2pp -D __{Parameter}__ < LibDBlasF77.mod.m2pp > LibDBlasF77.mod     *)
+  (*                                                                        *)
+  (* mit Parameter = {NOOPENMP|OPENMP} erzeugt werden koennen.              *)
+  (*                                                                        *)
+  (*   NOOPENMP : "Standard" BLAS subroutinen werden genutzt                *)
+  (*   OPENMP   : OpenMP parallelisiert Version von dgemm wird genutzt      *)
+  (*                                                                        *)
+  (* With the option OPNENMP you can request using an OpenMP parallisiezed  *)
+  (* version of dgemm, otherwise use NOOPENMP                               *)
+  (*========================================================================*)
   (* Interface to dblas level 1,2 & 3 FORTRAN 77 subroutines.               *)
   (*                                                                        *)
   (* Jack Dongarra, linpack, 3/11/78.                                       *)
@@ -210,15 +224,19 @@
  *                 VAR C     : ARRAY OF ARRAY OF REAL4;
  *                     ldc   : INTEGER4);
  *)
-          (*---------------------------------------------------------------*)
-          (* Aufruf der Fortran Version von BLAS3 subroutine sgemm         *)
-          (* ueber Schnittstelle die fuer eine korrekte umsetzung der      *)
-          (* Parameter sorgt.                                              *)
-          (* Durch die Schnittstelle wird auch erreicht dass die Routine   *)
-          (* "normal" aufgerufen werden kann wie von Modula-2 her gewoehnt *)
-          (*---------------------------------------------------------------*)
-
+          (*----------------------------------------------------------------*)
+          (* Aufruf der Fortran Version von BLAS3 subroutine sgemm          *)
+          (* ueber Schnittstelle die fuer eine korrekte umsetzung der       *)
+          (* Parameter sorgt.                                               *)
+          (* Durch die Schnittstelle wird auch erreicht dass die Routine    *)
+          (* "normal" aufgerufen werden kann wie von Modula-2 her gewoehnt  *)
+          (*----------------------------------------------------------------*)
+
+<* IF (__OPENMP__) THEN *>
+CONST dgemm = LibDBlasL3F77.dgemmOMP;
+<* ELSE *>
 CONST dgemm = LibDBlasL3F77.dgemm;
+<* END *>
 
 (*
  * PROCEDURE dgemm(    TA    : CHAR1;
@@ -233,12 +251,12 @@
  *                 VAR C     : ARRAY OF ARRAY OF DOUBLEPRECISION;
  *                     ldc   : INTEGER4);
  *)
-          (*---------------------------------------------------------------*)
-          (* Aufruf der Fortran Version von BLAS3 subroutine dgemm         *)
-          (* ueber Schnittstelle die fuer eine korrekte umsetzung der      *)
-          (* Parameter sorgt.                                              *)
-          (* Durch die Schnittstelle wird auch erreicht dass die Routine   *)
-          (* "normal" aufgerufen werden kann wie von Modula-2 her gewoehnt *)
-          (*---------------------------------------------------------------*)
+          (*----------------------------------------------------------------*)
+          (* Aufruf der Fortran Version von BLAS3 subroutine dgemm          *)
+          (* ueber Schnittstelle die fuer eine korrekte umsetzung der       *)
+          (* Parameter sorgt.                                               *)
+          (* Durch die Schnittstelle wird auch erreicht dass die Routine    *)
+          (* "normal" aufgerufen werden kann wie von Modula-2 her gewoehnt  *)
+          (*----------------------------------------------------------------*)
 
 END LibDBlasF77.