--- a/LibDBlasL1F77.def.m2pp
+++ b/LibDBlasL1F77.def.m2pp
@@ -60,7 +60,7 @@
   (* Licence        : GNU Lesser General Public License (LGPL)              *)
   (*------------------------------------------------------------------------*)
 
-  (* $Id: LibDBlasL1F77.def.m2pp,v 1.3 2018/01/16 09:19:51 mriedl Exp mriedl $ *)
+  (* $Id: LibDBlasL1F77.def.m2pp,v 1.5 2018/09/12 13:20:49 mriedl Exp mriedl $ *)
 
 <* IF (__XDS__) THEN *>
 CONST Version         = "LibDBlasL1F77 for XDS Modula-2";
@@ -198,4 +198,80 @@
           (* Calculated the sum of absolute values stored in field X        *)
           (*----------------------------------------------------------------*)
 
+(*=========================== Complex valued procedures ====================*)
+
+PROCEDURE zswap_(VAR N    : INTEGER4;
+                 VAR X    : (* ARRAY OF *) DOUBLECOMPLEX;
+                 VAR IncX : INTEGER4;
+                 VAR Y    : (* ARRAY OF *) DOUBLECOMPLEX;
+                 VAR IncY : INTEGER4);
+
+          (*----------------------------------------------------------------*)
+          (* Swap complex vectors X and Y                                   *)
+          (*----------------------------------------------------------------*)
+
+PROCEDURE zcopy_(VAR N    : INTEGER4;
+                 VAR X    : (* ARRAY OF *) DOUBLECOMPLEX;
+                 VAR IncX : INTEGER4;
+                 VAR Y    : (* ARRAY OF *) DOUBLECOMPLEX;
+                 VAR IncY : INTEGER4);
+
+          (*----------------------------------------------------------------*)
+          (* copies a vector, x, to a vector, y.                            *)
+          (* uses unrolled loops for increments equal to one.               *)
+          (* jack dongarra, linpack, 3/11/78.                               *)
+          (* MRi, Modula-2 10.04.16 | 09.09.18 (complex version)            *)
+          (*----------------------------------------------------------------*)
+
+PROCEDURE zdotc_(VAR N    : INTEGER4;
+                 VAR X    : (* ARRAY OF *) DOUBLECOMPLEX;
+                 VAR IncX : INTEGER4;
+                 VAR Y    : (* ARRAY OF *) DOUBLECOMPLEX;
+                 VAR IncY : INTEGER4) : DOUBLECOMPLEX;
+
+          (*----------------------------------------------------------------*)
+          (* Forms the dot product of two vectors. Uses unrolled loops for  *)
+          (* increments equal to one.                                       *)
+          (*----------------------------------------------------------------*)
+
+PROCEDURE dznrm2_(VAR N    : INTEGER4;
+                  VAR X    : (* ARRAY OF *) DOUBLECOMPLEX;
+                  VAR IncX : INTEGER4) : DOUBLEPRECISION;
+
+          (*----------------------------------------------------------------*)
+          (* dznrm2 returns the euclidean norm of a vector so that          *)
+          (* dznrm2 := sqrt( X**H*X )                                       *)
+          (*----------------------------------------------------------------*)
+
+PROCEDURE zscal_(VAR n    : INTEGER4;
+                 VAR da   : DOUBLECOMPLEX;
+                 VAR dx   : (* ARRAY OF *) DOUBLECOMPLEX;
+                 VAR IncX : INTEGER4);
+
+          (*----------------------------------------------------------------*)
+          (* Scales a vector by a constant (UNROLLED version)               *)
+          (*----------------------------------------------------------------*)
+
+PROCEDURE zaxpy_(VAR n    : INTEGER4;
+                 VAR da   : DOUBLECOMPLEX;
+                 VAR X    : (* ARRAY OF *) DOUBLECOMPLEX;
+                 VAR IncX : INTEGER4;
+                 VAR Y    : (* ARRAY OF *) DOUBLECOMPLEX;
+                 VAR IncY : INTEGER4);
+
+          (*----------------------------------------------------------------*)
+          (* constant times a vector plus a vector                          *)
+          (*----------------------------------------------------------------*)
+
+PROCEDURE zdrot_(VAR N    : INTEGER4;
+                 VAR X    : (* ARRAY OF *) DOUBLECOMPLEX;
+                 VAR IncX : INTEGER4;
+                 VAR Y    : (* ARRAY OF *) DOUBLECOMPLEX;
+                 VAR IncY : INTEGER4;
+                 VAR c,s  : REAL4);
+
+          (*----------------------------------------------------------------*)
+          (* Applies a plane rotation.                                      *)
+          (*----------------------------------------------------------------*)
+
 END LibDBlasL1F77.