diff -ru src/lapack/dgetv0.c src/lapack/dgetv0.c
--- src/lapack/dgetv0.c	2020-09-07 13:49:53.000000000 +0200
+++ src/lapack/dgetv0.c	2020-09-07 13:55:29.000000000 +0200
@@ -144,7 +144,7 @@
 {
     /* Initialized data */
 
-    static logical inits = TRUE_;
+    IGRAPH_F77_SAVE logical inits = TRUE_;
 
     /* System generated locals */
     integer v_dim1, v_offset, i__1;
@@ -153,34 +153,34 @@
     double sqrt(doublereal);
 
     /* Local variables */
-    real t0, t1, t2, t3;
-    integer jj, nbx;
+    IGRAPH_F77_SAVE real t0, t1, t2, t3;
+    integer jj, nbx = 0;
     extern doublereal igraphddot_(integer *, doublereal *, integer *, doublereal *, 
 	    integer *);
-    static integer iter;
-    static logical orth;
-    integer nopx;
+    IGRAPH_F77_SAVE integer iter;
+    IGRAPH_F77_SAVE logical orth;
+    integer nopx = 0;
     extern doublereal igraphdnrm2_(integer *, doublereal *, integer *);
-    static integer iseed[4];
+    IGRAPH_F77_SAVE integer iseed[4];
     extern /* Subroutine */ int igraphdgemv_(char *, integer *, integer *, 
 	    doublereal *, doublereal *, integer *, doublereal *, integer *, 
 	    doublereal *, doublereal *, integer *);
     integer idist;
     extern /* Subroutine */ int igraphdcopy_(integer *, doublereal *, integer *, 
 	    doublereal *, integer *);
-    static logical first;
-    real tmvbx;
+    IGRAPH_F77_SAVE logical first;
+    real tmvbx = 0;
     extern /* Subroutine */ int igraphdvout_(integer *, integer *, doublereal *, 
 	    integer *, char *, ftnlen);
-    integer mgetv0;
-    real tgetv0;
-    static doublereal rnorm0;
+    integer mgetv0 = 0;
+    real tgetv0 = 0;
+    IGRAPH_F77_SAVE doublereal rnorm0;
     extern /* Subroutine */ int igraphsecond_(real *);
     integer logfil, ndigit;
     extern /* Subroutine */ int igraphdlarnv_(integer *, integer *, integer *, 
 	    doublereal *);
-    static integer msglvl;
-    real tmvopx;
+    IGRAPH_F77_SAVE integer msglvl;
+    real tmvopx = 0;
 
 
 /*     %----------------------------------------------------%   
diff -ru src/lapack/dlaln2.c src/lapack/dlaln2.c
--- src/lapack/dlaln2.c	2020-09-07 13:49:51.000000000 +0200
+++ src/lapack/dlaln2.c	2020-09-07 13:49:16.000000000 +0200
@@ -244,7 +244,7 @@
     /* System generated locals */
     integer a_dim1, a_offset, b_dim1, b_offset, x_dim1, x_offset;
     doublereal d__1, d__2, d__3, d__4, d__5, d__6;
-    static doublereal equiv_0[4], equiv_1[4];
+    IGRAPH_F77_SAVE doublereal equiv_0[4], equiv_1[4];
 
     /* Local variables */
     integer j;
diff -ru src/lapack/dlange.c src/lapack/dlange.c
--- src/lapack/dlange.c	2020-09-07 13:49:51.000000000 +0200
+++ src/lapack/dlange.c	2020-09-07 13:55:54.000000000 +0200
@@ -144,7 +144,7 @@
     integer i__, j;
     doublereal sum, temp, scale;
     extern logical igraphlsame_(char *, char *);
-    doublereal value;
+    doublereal value = 0.;
     extern logical igraphdisnan_(doublereal *);
     extern /* Subroutine */ int igraphdlassq_(integer *, doublereal *, integer *, 
 	    doublereal *, doublereal *);
diff -ru src/lapack/dlanhs.c src/lapack/dlanhs.c
--- src/lapack/dlanhs.c	2020-09-07 13:49:53.000000000 +0200
+++ src/lapack/dlanhs.c	2020-09-07 13:56:02.000000000 +0200
@@ -138,7 +138,7 @@
     integer i__, j;
     doublereal sum, scale;
     extern logical igraphlsame_(char *, char *);
-    doublereal value;
+    doublereal value = 0.;
     extern logical igraphdisnan_(doublereal *);
     extern /* Subroutine */ int igraphdlassq_(integer *, doublereal *, integer *, 
 	    doublereal *, doublereal *);
diff -ru src/lapack/dnaitr.c src/lapack/dnaitr.c
--- src/lapack/dnaitr.c	2020-09-07 13:49:53.000000000 +0200
+++ src/lapack/dnaitr.c	2020-09-07 14:01:20.000000000 +0200
@@ -236,7 +236,7 @@
 {
     /* Initialized data */
 
-    static logical first = TRUE_;
+    IGRAPH_F77_SAVE logical first = TRUE_;
 
     /* System generated locals */
     integer h_dim1, h_offset, v_dim1, v_offset, i__1, i__2;
@@ -247,24 +247,24 @@
 
     /* Local variables */
     integer i__;
-    static integer j;
-    real t0, t1, t2, t3, t4, t5;
+    IGRAPH_F77_SAVE integer j;
+    IGRAPH_F77_SAVE real t0, t1, t2, t3, t4, t5;
     integer jj;
-    static integer ipj, irj;
-    integer nbx;
-    static integer ivj;
-    static doublereal ulp;
+    IGRAPH_F77_SAVE integer ipj, irj;
+    integer nbx = 0;
+    IGRAPH_F77_SAVE integer ivj;
+    IGRAPH_F77_SAVE doublereal ulp;
     doublereal tst1;
     extern doublereal igraphddot_(integer *, doublereal *, integer *, doublereal *, 
 	    integer *);
-    static integer ierr, iter;
-    static doublereal unfl, ovfl;
-    integer nopx;
-    static integer itry;
+    IGRAPH_F77_SAVE integer ierr, iter;
+    IGRAPH_F77_SAVE doublereal unfl, ovfl;
+    integer nopx = 0;
+    IGRAPH_F77_SAVE integer itry;
     extern doublereal igraphdnrm2_(integer *, doublereal *, integer *);
     doublereal temp1;
-    static logical orth1, orth2, step3, step4;
-    static doublereal betaj;
+    IGRAPH_F77_SAVE logical orth1, orth2, step3, step4;
+    IGRAPH_F77_SAVE doublereal betaj;
     extern /* Subroutine */ int igraphdscal_(integer *, doublereal *, doublereal *, 
 	    integer *), igraphdgemv_(char *, integer *, integer *, doublereal *, 
 	    doublereal *, integer *, doublereal *, integer *, doublereal *, 
@@ -276,15 +276,15 @@
 	    *, integer *, integer *, doublereal *, integer *, integer *, char 
 	    *, ftnlen);
     doublereal xtemp[2];
-    real tmvbx;
+    real tmvbx = 0;
     extern /* Subroutine */ int igraphdvout_(integer *, integer *, doublereal *, 
 	    integer *, char *, ftnlen);
-    static doublereal wnorm;
+    IGRAPH_F77_SAVE doublereal wnorm;
     extern /* Subroutine */ int igraphivout_(integer *, integer *, integer *, 
 	    integer *, char *, ftnlen), igraphdgetv0_(integer *, char *, integer *, 
 	    logical *, integer *, integer *, doublereal *, integer *, 
 	    doublereal *, doublereal *, integer *, doublereal *, integer *), igraphdlabad_(doublereal *, doublereal *);
-    static doublereal rnorm1;
+    IGRAPH_F77_SAVE doublereal rnorm1;
     extern doublereal igraphdlamch_(char *);
     extern /* Subroutine */ int igraphdlascl_(char *, integer *, integer *, 
 	    doublereal *, doublereal *, integer *, integer *, doublereal *, 
@@ -292,14 +292,14 @@
     extern doublereal igraphdlanhs_(char *, integer *, doublereal *, integer *, 
 	    doublereal *);
     extern /* Subroutine */ int igraphsecond_(real *);
-    integer logfil, ndigit, nitref, mnaitr;
-    real titref, tnaitr;
-    static integer msglvl;
-    static doublereal smlnum;
-    integer nrorth;
-    static logical rstart;
-    integer nrstrt;
-    real tmvopx;
+    integer logfil = 0, ndigit, nitref = 0, mnaitr = 0;
+    real titref = 0, tnaitr = 0;
+    IGRAPH_F77_SAVE integer msglvl;
+    IGRAPH_F77_SAVE doublereal smlnum;
+    integer nrorth = 0;
+    IGRAPH_F77_SAVE logical rstart;
+    integer nrstrt = 0;
+    real tmvopx = 0;
 
 
 /*     %----------------------------------------------------%   
diff -ru src/lapack/dnapps.c src/lapack/dnapps.c
--- src/lapack/dnapps.c	2020-09-07 13:49:53.000000000 +0200
+++ src/lapack/dnapps.c	2020-09-07 14:02:01.000000000 +0200
@@ -168,7 +168,7 @@
 {
     /* Initialized data */
 
-    static logical first = TRUE_;
+    IGRAPH_F77_SAVE logical first = TRUE_;
 
     /* System generated locals */
     integer h_dim1, h_offset, v_dim1, v_offset, q_dim1, q_offset, i__1, i__2, 
@@ -179,14 +179,14 @@
     doublereal c__, f, g;
     integer i__, j;
     doublereal r__, s, t, u[3];
-    real t0, t1;
+    IGRAPH_F77_SAVE real t0, t1;
     doublereal h11, h12, h21, h22, h32;
     integer jj, ir, nr;
     doublereal tau;
-    static doublereal ulp;
+    IGRAPH_F77_SAVE doublereal ulp;
     doublereal tst1;
     integer iend;
-    static doublereal unfl, ovfl;
+    IGRAPH_F77_SAVE doublereal unfl, ovfl;
     extern /* Subroutine */ int igraphdscal_(integer *, doublereal *, doublereal *, 
 	    integer *), igraphdlarf_(char *, integer *, integer *, doublereal *, 
 	    integer *, doublereal *, doublereal *, integer *, doublereal *);
@@ -215,10 +215,10 @@
 	    doublereal *);
     integer logfil, ndigit;
     doublereal sigmar;
-    integer mnapps, msglvl;
-    real tnapps;
+    integer mnapps = 0, msglvl;
+    real tnapps = 0.;
     integer istart;
-    static doublereal smlnum;
+    IGRAPH_F77_SAVE doublereal smlnum;
     integer kplusp;
 
 
diff -ru src/lapack/dnaup2.c src/lapack/dnaup2.c
--- src/lapack/dnaup2.c	2020-09-07 13:49:53.000000000 +0200
+++ src/lapack/dnaup2.c	2020-09-07 13:49:16.000000000 +0200
@@ -213,44 +213,44 @@
     double sqrt(doublereal);
 
     /* Local variables */
-    static integer j;
-    static real t0, t1, t2, t3;
-    static integer kp[4], np0, nbx, nev0;
+    IGRAPH_F77_SAVE integer j;
+    IGRAPH_F77_SAVE real t0, t1, t2, t3;
+    IGRAPH_F77_SAVE integer kp[4], np0, nbx, nev0;
     extern doublereal igraphddot_(integer *, doublereal *, integer *, doublereal *, 
 	    integer *);
-    static doublereal eps23;
-    static integer ierr, iter;
-    static doublereal temp;
+    IGRAPH_F77_SAVE doublereal eps23;
+    IGRAPH_F77_SAVE integer ierr, iter;
+    IGRAPH_F77_SAVE doublereal temp;
     extern doublereal igraphdnrm2_(integer *, doublereal *, integer *);
-    static logical getv0, cnorm;
+    IGRAPH_F77_SAVE logical getv0, cnorm;
     extern /* Subroutine */ int igraphdcopy_(integer *, doublereal *, integer *, 
 	    doublereal *, integer *);
-    static integer nconv;
+    IGRAPH_F77_SAVE integer nconv;
     extern /* Subroutine */ int igraphdmout_(integer *, integer *, integer *, 
 	    doublereal *, integer *, integer *, char *, ftnlen);
-    static logical initv;
-    static doublereal rnorm;
-    static real tmvbx;
+    IGRAPH_F77_SAVE logical initv;
+    IGRAPH_F77_SAVE doublereal rnorm;
+    IGRAPH_F77_SAVE real tmvbx;
     extern /* Subroutine */ int igraphdvout_(integer *, integer *, doublereal *, 
 	    integer *, char *, ftnlen), igraphivout_(integer *, integer *, integer *
 	    , integer *, char *, ftnlen), igraphdgetv0_(integer *, char *, integer *
 	    , logical *, integer *, integer *, doublereal *, integer *, 
 	    doublereal *, doublereal *, integer *, doublereal *, integer *);
     extern doublereal igraphdlapy2_(doublereal *, doublereal *);
-    static integer mnaup2;
-    static real tnaup2;
+    IGRAPH_F77_SAVE integer mnaup2;
+    IGRAPH_F77_SAVE real tnaup2;
     extern doublereal igraphdlamch_(char *);
     extern /* Subroutine */ int igraphdneigh_(doublereal *, integer *, doublereal *,
 	     integer *, doublereal *, doublereal *, doublereal *, doublereal *
 	    , integer *, doublereal *, integer *);
-    static integer nevbef;
+    IGRAPH_F77_SAVE integer nevbef;
     extern /* Subroutine */ int igraphsecond_(real *);
-    static integer logfil, ndigit;
+    IGRAPH_F77_SAVE integer logfil, ndigit;
     extern /* Subroutine */ int igraphdnaitr_(integer *, char *, integer *, integer 
 	    *, integer *, integer *, doublereal *, doublereal *, doublereal *,
 	     integer *, doublereal *, integer *, integer *, doublereal *, 
 	    integer *);
-    static logical update;
+    IGRAPH_F77_SAVE logical update;
     extern /* Subroutine */ int igraphdngets_(integer *, char *, integer *, integer 
 	    *, doublereal *, doublereal *, doublereal *, doublereal *, 
 	    doublereal *), igraphdnapps_(integer *, integer *, integer *, 
@@ -259,9 +259,9 @@
 	    doublereal *), igraphdnconv_(integer *, doublereal *, doublereal *, 
 	    doublereal *, doublereal *, integer *), igraphdsortc_(char *, logical *,
 	     integer *, doublereal *, doublereal *, doublereal *);
-    static logical ushift;
-    static char wprime[2];
-    static integer msglvl, nptemp, numcnv, kplusp;
+    IGRAPH_F77_SAVE logical ushift;
+    IGRAPH_F77_SAVE char wprime[2];
+    IGRAPH_F77_SAVE integer msglvl, nptemp, numcnv, kplusp;
 
 
 /*     %----------------------------------------------------%   
diff -ru src/lapack/dnaupd.c src/lapack/dnaupd.c
--- src/lapack/dnaupd.c	2020-09-07 13:49:53.000000000 +0200
+++ src/lapack/dnaupd.c	2020-09-07 14:02:44.000000000 +0200
@@ -463,20 +463,20 @@
 
     /* Local variables */
     integer j;
-    real t0, t1;
-    static integer nb, ih, iq, np, iw, ldh, ldq;
-    integer nbx;
-    static integer nev0, mode;
+    IGRAPH_F77_SAVE real t0, t1;
+    IGRAPH_F77_SAVE integer nb, ih, iq, np, iw, ldh, ldq;
+    integer nbx = 0;
+    IGRAPH_F77_SAVE integer nev0, mode;
     integer ierr;
-    static integer iupd, next;
-    integer nopx;
-    static integer levec;
+    IGRAPH_F77_SAVE integer iupd, next;
+    integer nopx = 0;
+    IGRAPH_F77_SAVE integer levec;
     real trvec, tmvbx;
-    static integer ritzi;
+    IGRAPH_F77_SAVE integer ritzi;
     extern /* Subroutine */ int igraphdvout_(integer *, integer *, doublereal *, 
 	    integer *, char *, ftnlen), igraphivout_(integer *, integer *, integer *
 	    , integer *, char *, ftnlen);
-    static integer ritzr;
+    IGRAPH_F77_SAVE integer ritzr;
     extern /* Subroutine */ int igraphdnaup2_(integer *, char *, integer *, char *, 
 	    integer *, integer *, doublereal *, doublereal *, integer *, 
 	    integer *, integer *, integer *, doublereal *, integer *, 
@@ -488,17 +488,17 @@
     extern /* Subroutine */ int igraphsecond_(real *);
     integer logfil, ndigit;
     real tneigh;
-    integer mnaupd;
-    static integer ishift;
+    integer mnaupd = 0;
+    IGRAPH_F77_SAVE integer ishift;
     integer nitref;
-    static integer bounds;
+    IGRAPH_F77_SAVE integer bounds;
     real tnaupd;
     extern /* Subroutine */ int igraphdstatn_(void);
     real titref, tnaitr;
-    static integer msglvl;
+    IGRAPH_F77_SAVE integer msglvl;
     real tngets, tnapps, tnconv;
-    static integer mxiter;
-    integer nrorth, nrstrt;
+    IGRAPH_F77_SAVE integer mxiter;
+    integer nrorth = 0, nrstrt = 0;
     real tmvopx;
 
     /* Fortran I/O blocks */
diff -ru src/lapack/dnconv.c src/lapack/dnconv.c
--- src/lapack/dnconv.c	2020-09-07 13:49:53.000000000 +0200
+++ src/lapack/dnconv.c	2020-09-07 14:02:51.000000000 +0200
@@ -92,11 +92,11 @@
 
     /* Local variables */
     integer i__;
-    real t0, t1;
+    IGRAPH_F77_SAVE real t0, t1;
     doublereal eps23, temp;
     extern doublereal igraphdlapy2_(doublereal *, doublereal *), igraphdlamch_(char *);
     extern /* Subroutine */ int igraphsecond_(real *);
-    real tnconv;
+    real tnconv = 0.;
 
 
 /*     %----------------------------------------------------%   
diff -ru src/lapack/dneigh.c src/lapack/dneigh.c
--- src/lapack/dneigh.c	2020-09-07 13:49:53.000000000 +0200
+++ src/lapack/dneigh.c	2020-09-07 14:03:18.000000000 +0200
@@ -128,7 +128,7 @@
 
     /* Local variables */
     integer i__;
-    real t0, t1;
+    IGRAPH_F77_SAVE real t0, t1;
     doublereal vl[1], temp;
     extern doublereal igraphdnrm2_(integer *, doublereal *, integer *);
     extern /* Subroutine */ int igraphdscal_(integer *, doublereal *, doublereal *, 
@@ -144,12 +144,12 @@
     extern /* Subroutine */ int igraphdlaqrb_(logical *, integer *, integer *, 
 	    integer *, doublereal *, integer *, doublereal *, doublereal *, 
 	    doublereal *, integer *);
-    integer mneigh;
+    integer mneigh = 0;
     extern /* Subroutine */ int igraphsecond_(real *), igraphdlacpy_(char *, integer *, 
 	    integer *, doublereal *, integer *, doublereal *, integer *);
     integer logfil, ndigit;
     logical select[1];
-    real tneigh;
+    real tneigh = 0.;
     extern /* Subroutine */ int igraphdtrevc_(char *, char *, logical *, integer *, 
 	    doublereal *, integer *, doublereal *, integer *, doublereal *, 
 	    integer *, integer *, integer *, doublereal *, integer *);
diff -ru src/lapack/dneupd.c src/lapack/dneupd.c
--- src/lapack/dneupd.c	2020-09-07 13:49:54.000000000 +0200
+++ src/lapack/dneupd.c	2020-09-07 14:03:48.000000000 +0200
@@ -393,7 +393,7 @@
     extern /* Subroutine */ int igraphdtrevc_(char *, char *, logical *, integer *, 
 	    doublereal *, integer *, doublereal *, integer *, doublereal *, 
 	    integer *, integer *, integer *, doublereal *, integer *);
-    integer mneupd, bounds;
+    integer mneupd = 0, bounds;
     extern /* Subroutine */ int igraphdtrsen_(char *, char *, logical *, integer *, 
 	    doublereal *, integer *, doublereal *, integer *, doublereal *, 
 	    doublereal *, integer *, doublereal *, doublereal *, doublereal *,
diff -ru src/lapack/dngets.c src/lapack/dngets.c
--- src/lapack/dngets.c	2020-09-07 13:49:54.000000000 +0200
+++ src/lapack/dngets.c	2020-09-07 14:04:06.000000000 +0200
@@ -122,15 +122,15 @@
     integer s_cmp(char *, char *, ftnlen, ftnlen);
 
     /* Local variables */
-    real t0, t1;
+    IGRAPH_F77_SAVE real t0, t1;
     extern /* Subroutine */ int igraphdvout_(integer *, integer *, doublereal *, 
 	    integer *, char *, ftnlen), igraphivout_(integer *, integer *, integer *
 	    , integer *, char *, ftnlen), igraphsecond_(real *);
-    integer logfil, ndigit, mngets;
+    integer logfil, ndigit, mngets = 0;
     extern /* Subroutine */ int igraphdsortc_(char *, logical *, integer *, 
 	    doublereal *, doublereal *, doublereal *);
     integer msglvl;
-    real tngets;
+    real tngets = 0.;
 
 
 /*     %----------------------------------------------------%   
diff -ru src/lapack/dsaitr.c src/lapack/dsaitr.c
--- src/lapack/dsaitr.c	2020-09-07 13:49:54.000000000 +0200
+++ src/lapack/dsaitr.c	2020-09-07 14:05:22.000000000 +0200
@@ -231,7 +231,7 @@
 {
     /* Initialized data */
 
-    static logical first = TRUE_;
+    IGRAPH_F77_SAVE logical first = TRUE_;
 
     /* System generated locals */
     integer h_dim1, h_offset, v_dim1, v_offset, i__1;
@@ -241,20 +241,20 @@
 
     /* Local variables */
     integer i__;
-    static integer j;
-    real t0, t1, t2, t3, t4, t5;
+    IGRAPH_F77_SAVE integer j;
+    IGRAPH_F77_SAVE real t0, t1, t2, t3, t4, t5;
     integer jj;
-    static integer ipj, irj;
-    integer nbx;
-    static integer ivj;
+    IGRAPH_F77_SAVE integer ipj, irj;
+    integer nbx = 0;
+    IGRAPH_F77_SAVE integer ivj;
     extern doublereal igraphddot_(integer *, doublereal *, integer *, doublereal *, 
 	    integer *);
-    static integer ierr, iter;
-    integer nopx;
-    static integer itry;
+    IGRAPH_F77_SAVE integer ierr, iter;
+    integer nopx = 0;
+    IGRAPH_F77_SAVE integer itry;
     extern doublereal igraphdnrm2_(integer *, doublereal *, integer *);
     doublereal temp1;
-    static logical orth1, orth2, step3, step4;
+    IGRAPH_F77_SAVE logical orth1, orth2, step3, step4;
     extern /* Subroutine */ int igraphdscal_(integer *, doublereal *, doublereal *, 
 	    integer *), igraphdgemv_(char *, integer *, integer *, doublereal *, 
 	    doublereal *, integer *, doublereal *, integer *, doublereal *, 
@@ -263,30 +263,30 @@
     extern /* Subroutine */ int igraphdcopy_(integer *, doublereal *, integer *, 
 	    doublereal *, integer *);
     doublereal xtemp[2];
-    real tmvbx;
+    real tmvbx = 0;
     extern /* Subroutine */ int igraphdvout_(integer *, integer *, doublereal *, 
 	    integer *, char *, ftnlen);
-    static doublereal wnorm;
+    IGRAPH_F77_SAVE doublereal wnorm;
     extern /* Subroutine */ int igraphivout_(integer *, integer *, integer *, 
 	    integer *, char *, ftnlen), igraphdgetv0_(integer *, char *, integer *, 
 	    logical *, integer *, integer *, doublereal *, integer *, 
 	    doublereal *, doublereal *, integer *, doublereal *, integer *);
-    static doublereal rnorm1;
+    IGRAPH_F77_SAVE doublereal rnorm1;
     extern doublereal igraphdlamch_(char *);
     extern /* Subroutine */ int igraphdlascl_(char *, integer *, integer *, 
 	    doublereal *, doublereal *, integer *, integer *, doublereal *, 
 	    integer *, integer *), igraphsecond_(real *);
     integer logfil;
-    static doublereal safmin;
-    integer ndigit, nitref;
-    real titref;
-    integer msaitr;
-    static integer msglvl;
-    real tsaitr;
-    integer nrorth;
-    static logical rstart;
-    integer nrstrt;
-    real tmvopx;
+    IGRAPH_F77_SAVE doublereal safmin;
+    integer ndigit = 0, nitref = 0;
+    real titref = 0;
+    integer msaitr = 0;
+    IGRAPH_F77_SAVE integer msglvl;
+    real tsaitr = 0;
+    integer nrorth = 0;
+    IGRAPH_F77_SAVE logical rstart;
+    integer nrstrt = 0;
+    real tmvopx = 0;
 
 
 /*     %----------------------------------------------------%   
diff -ru src/lapack/dsapps.c src/lapack/dsapps.c
--- src/lapack/dsapps.c	2020-09-07 13:49:54.000000000 +0200
+++ src/lapack/dsapps.c	2020-09-07 14:05:45.000000000 +0200
@@ -156,7 +156,7 @@
 {
     /* Initialized data */
 
-    static logical first = TRUE_;
+    IGRAPH_F77_SAVE logical first = TRUE_;
 
     /* System generated locals */
     integer h_dim1, h_offset, q_dim1, q_offset, v_dim1, v_offset, i__1, i__2, 
@@ -167,7 +167,7 @@
     doublereal c__, f, g;
     integer i__, j;
     doublereal r__, s, a1, a2, a3, a4;
-    real t0, t1;
+    IGRAPH_F77_SAVE real t0, t1;
     integer jj;
     doublereal big;
     integer iend, itop;
@@ -185,9 +185,9 @@
 	    integer *, doublereal *, integer *, doublereal *, integer *), igraphdlartg_(doublereal *, doublereal *, doublereal *, 
 	    doublereal *, doublereal *), igraphdlaset_(char *, integer *, integer *,
 	     doublereal *, doublereal *, doublereal *, integer *);
-    static doublereal epsmch;
-    integer logfil, ndigit, msapps, msglvl, istart;
-    real tsapps;
+    IGRAPH_F77_SAVE doublereal epsmch;
+    integer logfil, ndigit, msapps = 0, msglvl, istart;
+    real tsapps = 0;
     integer kplusp;
 
 
diff -ru src/lapack/dsaup2.c src/lapack/dsaup2.c
--- src/lapack/dsaup2.c	2020-09-07 13:49:54.000000000 +0200
+++ src/lapack/dsaup2.c	2020-09-07 14:06:17.000000000 +0200
@@ -219,43 +219,43 @@
 
     /* Local variables */
     integer j;
-    real t0, t1, t2, t3;
+    IGRAPH_F77_SAVE real t0, t1, t2, t3;
     integer kp[3];
-    static integer np0;
-    integer nbx;
-    static integer nev0;
+    IGRAPH_F77_SAVE integer np0;
+    integer nbx = 0;
+    IGRAPH_F77_SAVE integer nev0;
     extern doublereal igraphddot_(integer *, doublereal *, integer *, doublereal *, 
 	    integer *);
-    static doublereal eps23;
+    IGRAPH_F77_SAVE doublereal eps23;
     integer ierr;
-    static integer iter;
+    IGRAPH_F77_SAVE integer iter;
     doublereal temp;
     integer nevd2;
     extern doublereal igraphdnrm2_(integer *, doublereal *, integer *);
-    static logical getv0;
+    IGRAPH_F77_SAVE logical getv0;
     integer nevm2;
-    static logical cnorm;
+    IGRAPH_F77_SAVE logical cnorm;
     extern /* Subroutine */ int igraphdcopy_(integer *, doublereal *, integer *, 
 	    doublereal *, integer *), igraphdswap_(integer *, doublereal *, integer 
 	    *, doublereal *, integer *);
-    static integer nconv;
-    static logical initv;
-    static doublereal rnorm;
-    real tmvbx;
+    IGRAPH_F77_SAVE integer nconv;
+    IGRAPH_F77_SAVE logical initv;
+    IGRAPH_F77_SAVE doublereal rnorm;
+    real tmvbx = 0.0;
     extern /* Subroutine */ int igraphdvout_(integer *, integer *, doublereal *, 
 	    integer *, char *, ftnlen), igraphivout_(integer *, integer *, integer *
 	    , integer *, char *, ftnlen), igraphdgetv0_(integer *, char *, integer *
 	    , logical *, integer *, integer *, doublereal *, integer *, 
 	    doublereal *, doublereal *, integer *, doublereal *, integer *);
-    integer msaup2;
+    integer msaup2 = 0;
     real tsaup2;
     extern doublereal igraphdlamch_(char *);
     integer nevbef;
     extern /* Subroutine */ int igraphsecond_(real *);
-    integer logfil, ndigit;
+    integer logfil = 0, ndigit;
     extern /* Subroutine */ int igraphdseigt_(doublereal *, integer *, doublereal *,
 	     integer *, doublereal *, doublereal *, doublereal *, integer *);
-    static logical update;
+    IGRAPH_F77_SAVE logical update;
     extern /* Subroutine */ int igraphdsaitr_(integer *, char *, integer *, integer 
 	    *, integer *, integer *, doublereal *, doublereal *, doublereal *,
 	     integer *, doublereal *, integer *, integer *, doublereal *, 
@@ -265,13 +265,13 @@
 	    integer *, doublereal *, integer *, doublereal *, doublereal *, 
 	    integer *, doublereal *), igraphdsconv_(integer *, doublereal *, 
 	    doublereal *, doublereal *, integer *);
-    static logical ushift;
+    IGRAPH_F77_SAVE logical ushift;
     char wprime[2];
-    static integer msglvl;
+    IGRAPH_F77_SAVE integer msglvl;
     integer nptemp;
     extern /* Subroutine */ int igraphdsortr_(char *, logical *, integer *, 
 	    doublereal *, doublereal *);
-    static integer kplusp;
+    IGRAPH_F77_SAVE integer kplusp;
 
 
 /*     %----------------------------------------------------%   
diff -ru src/lapack/dsaupd.c src/lapack/dsaupd.c
--- src/lapack/dsaupd.c	2020-09-07 13:49:54.000000000 +0200
+++ src/lapack/dsaupd.c	2020-09-07 14:06:58.000000000 +0200
@@ -464,12 +464,12 @@
 
     /* Local variables */
     integer j;
-    real t0, t1;
-    static integer nb, ih, iq, np, iw, ldh, ldq;
-    integer nbx;
-    static integer nev0, mode, ierr, iupd, next;
-    integer nopx;
-    static integer ritz;
+    IGRAPH_F77_SAVE real t0, t1;
+    IGRAPH_F77_SAVE integer nb, ih, iq, np, iw, ldh, ldq;
+    integer nbx = 0;
+    IGRAPH_F77_SAVE integer nev0, mode, ierr, iupd, next;
+    integer nopx = 0;
+    IGRAPH_F77_SAVE integer ritz;
     real tmvbx;
     extern /* Subroutine */ int igraphdvout_(integer *, integer *, doublereal *, 
 	    integer *, char *, ftnlen), igraphivout_(integer *, integer *, integer *
@@ -483,19 +483,19 @@
     extern doublereal igraphdlamch_(char *);
     extern /* Subroutine */ int igraphsecond_(real *);
     integer logfil, ndigit;
-    static integer ishift;
-    integer nitref, msaupd;
-    static integer bounds;
+    IGRAPH_F77_SAVE integer ishift;
+    integer nitref, msaupd = 0;
+    IGRAPH_F77_SAVE integer bounds;
     real titref, tseigt, tsaupd;
     extern /* Subroutine */ int igraphdstats_(void);
-    static integer msglvl;
-    real tsaitr;
-    static integer mxiter;
+    IGRAPH_F77_SAVE integer msglvl;
+    real tsaitr = 0.0;
+    IGRAPH_F77_SAVE integer mxiter;
     real tsgets, tsapps;
-    integer nrorth;
-    real tsconv;
-    integer nrstrt;
-    real tmvopx;
+    integer nrorth = 0;
+    real tsconv = 0.0;
+    integer nrstrt = 0;
+    real tmvopx = 0.0;
 
     /* Fortran I/O blocks */
     static cilist io___28 = { 0, 6, 0, fmt_1000, 0 };
diff -ru src/lapack/dsconv.c src/lapack/dsconv.c
--- src/lapack/dsconv.c	2020-09-07 13:49:54.000000000 +0200
+++ src/lapack/dsconv.c	2020-09-07 14:07:16.000000000 +0200
@@ -86,11 +86,11 @@
 
     /* Local variables */
     integer i__;
-    real t0, t1;
+    IGRAPH_F77_SAVE real t0, t1;
     doublereal eps23, temp;
     extern doublereal igraphdlamch_(char *);
     extern /* Subroutine */ int igraphsecond_(real *);
-    real tsconv;
+    real tsconv = 0;
 
 
 /*     %----------------------------------------------------%   
diff -ru src/lapack/dseigt.c src/lapack/dseigt.c
--- src/lapack/dseigt.c	2020-09-07 13:49:54.000000000 +0200
+++ src/lapack/dseigt.c	2020-09-07 14:07:35.000000000 +0200
@@ -112,14 +112,14 @@
 
     /* Local variables */
     integer k;
-    real t0, t1;
+    IGRAPH_F77_SAVE real t0, t1;
     extern /* Subroutine */ int igraphdcopy_(integer *, doublereal *, integer *, 
 	    doublereal *, integer *), igraphdvout_(integer *, integer *, doublereal 
 	    *, integer *, char *, ftnlen), igraphsecond_(real *);
-    integer logfil, ndigit, mseigt;
+    integer logfil, ndigit, mseigt = 0;
     extern /* Subroutine */ int igraphdstqrb_(integer *, doublereal *, doublereal *,
 	     doublereal *, doublereal *, integer *);
-    real tseigt;
+    real tseigt = 0.0;
     integer msglvl;
 
 
diff -ru src/lapack/dseupd.c src/lapack/dseupd.c
--- src/lapack/dseupd.c	2020-09-07 13:49:54.000000000 +0200
+++ src/lapack/dseupd.c	2020-09-07 14:08:02.000000000 +0200
@@ -280,7 +280,7 @@
     extern doublereal igraphdlamch_(char *);
     extern /* Subroutine */ int igraphdlacpy_(char *, integer *, integer *, 
 	    doublereal *, integer *, doublereal *, integer *);
-    integer logfil, ndigit, bounds, mseupd;
+    integer logfil, ndigit, bounds, mseupd = 0;
     extern /* Subroutine */ int igraphdsteqr_(char *, integer *, doublereal *, 
 	    doublereal *, doublereal *, integer *, doublereal *, integer *);
     integer msglvl, ktrord;
diff -ru src/lapack/dsgets.c src/lapack/dsgets.c
--- src/lapack/dsgets.c	2020-09-07 13:49:54.000000000 +0200
+++ src/lapack/dsgets.c	2020-09-07 14:08:28.000000000 +0200
@@ -119,15 +119,15 @@
     integer s_cmp(char *, char *, ftnlen, ftnlen);
 
     /* Local variables */
-    real t0, t1;
+    IGRAPH_F77_SAVE real t0, t1;
     integer kevd2;
     extern /* Subroutine */ int igraphdswap_(integer *, doublereal *, integer *, 
 	    doublereal *, integer *), igraphdcopy_(integer *, doublereal *, integer 
 	    *, doublereal *, integer *), igraphdvout_(integer *, integer *, 
 	    doublereal *, integer *, char *, ftnlen), igraphivout_(integer *, 
 	    integer *, integer *, integer *, char *, ftnlen), igraphsecond_(real *);
-    integer logfil, ndigit, msgets, msglvl;
-    real tsgets;
+    integer logfil, ndigit, msgets = 0, msglvl;
+    real tsgets = 0.0;
     extern /* Subroutine */ int igraphdsortr_(char *, logical *, integer *, 
 	    doublereal *, doublereal *);
 
diff -ru src/lapack/dtrsen.c src/lapack/dtrsen.c
--- src/lapack/dtrsen.c	2020-09-07 13:49:54.000000000 +0200
+++ src/lapack/dtrsen.c	2020-09-07 14:09:07.000000000 +0200
@@ -349,7 +349,7 @@
     logical swap;
     doublereal scale;
     extern logical igraphlsame_(char *, char *);
-    integer isave[3], lwmin;
+    integer isave[3], lwmin = 0;
     logical wantq, wants;
     doublereal rnorm;
     extern /* Subroutine */ int igraphdlacn2_(integer *, doublereal *, doublereal *,
