Replace isort, flake8, pycln and pyupgrade by ruff. [Ruff](https://github.com/charliermarsh/ruff) is getting popular lately, and I really like the idea of having a single tool for Python lining instead of N which currently exist. Also written in Rust which is a good use case for this.

 It's supposed to have equivalent functionality, to the ones we are using. The fact that major projects are adopting it is a good sign (see list in their readme).  There are also a few extra options in their readme that look interesting and that we could enable (without having to install yet another plugin)

We won't gain much speed-wise: previously isort, flake8 (which itself is an abstraction over pycodestyle and pyflakes), pycln and pyupgrade  on all files was around 1s, and now it's 20ms. But with mypy taking 10s, it makes mostly no difference.
Still it makes the overall linting configuration easier to maintain.


If we go forward with this, I imagine a changelog is not needed? 

From 03121dd29a0973ef05f9921ddf2c99cf14f3299a Mon Sep 17 00:00:00 2001
From: Hood Chatham <roberthoodchatham@gmail.com>
Date: Wed, 6 Apr 2022 21:21:53 -0700
Subject: [PATCH 05/13] fix fotran files minpack

---
 scipy/optimize/minpack/chkder.f | 3 +--
 scipy/optimize/minpack/dogleg.f | 3 +--
 scipy/optimize/minpack/dpmpar.f | 3 +--
 scipy/optimize/minpack/enorm.f  | 3 +--
 scipy/optimize/minpack/fdjac1.f | 3 +--
 scipy/optimize/minpack/fdjac2.f | 3 +--
 scipy/optimize/minpack/hybrd.f  | 3 +--
 scipy/optimize/minpack/hybrd1.f | 3 +--
 scipy/optimize/minpack/hybrj.f  | 3 +--
 scipy/optimize/minpack/hybrj1.f | 3 +--
 scipy/optimize/minpack/lmder.f  | 3 +--
 scipy/optimize/minpack/lmder1.f | 3 +--
 scipy/optimize/minpack/lmdif.f  | 3 +--
 scipy/optimize/minpack/lmdif1.f | 3 +--
 scipy/optimize/minpack/lmpar.f  | 3 +--
 scipy/optimize/minpack/lmstr.f  | 3 +--
 scipy/optimize/minpack/lmstr1.f | 3 +--
 scipy/optimize/minpack/qform.f  | 3 +--
 scipy/optimize/minpack/qrfac.f  | 3 +--
 scipy/optimize/minpack/qrsolv.f | 3 +--
 scipy/optimize/minpack/r1mpyq.f | 3 +--
 scipy/optimize/minpack/r1updt.f | 3 +--
 scipy/optimize/minpack/rwupdt.f | 3 +--
 23 files changed, 23 insertions(+), 46 deletions(-)

diff --git a/scipy/optimize/minpack/chkder.f b/scipy/optimize/minpack/chkder.f
index 0657ab56a..29578fc41 100644
--- a/scipy/optimize/minpack/chkder.f
+++ b/scipy/optimize/minpack/chkder.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine chkder(m,n,x,fvec,fjac,ldfjac,xp,fvecp,mode,err)
+      subroutine chkder(m,n,x,fvec,fjac,ldfjac,xp,fvecp,mode,err)
       integer m,n,ldfjac,mode
       double precision x(n),fvec(m),fjac(ldfjac,n),xp(n),fvecp(m),
      *                 err(m)
diff --git a/scipy/optimize/minpack/dogleg.f b/scipy/optimize/minpack/dogleg.f
index d9626c911..b812f1966 100644
--- a/scipy/optimize/minpack/dogleg.f
+++ b/scipy/optimize/minpack/dogleg.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine dogleg(n,r,lr,diag,qtb,delta,x,wa1,wa2)
+      subroutine dogleg(n,r,lr,diag,qtb,delta,x,wa1,wa2)
       integer n,lr
       double precision delta
       double precision r(lr),diag(n),qtb(n),x(n),wa1(n),wa2(n)
diff --git a/scipy/optimize/minpack/dpmpar.f b/scipy/optimize/minpack/dpmpar.f
index 3fd3b4ef8..cb6545a92 100644
--- a/scipy/optimize/minpack/dpmpar.f
+++ b/scipy/optimize/minpack/dpmpar.f
@@ -1,5 +1,4 @@
-      recursive
-     *double precision function dpmpar(i)
+      double precision function dpmpar(i)
       integer i
 c     **********
 c
diff --git a/scipy/optimize/minpack/enorm.f b/scipy/optimize/minpack/enorm.f
index 21557c147..2cb5b607e 100644
--- a/scipy/optimize/minpack/enorm.f
+++ b/scipy/optimize/minpack/enorm.f
@@ -1,5 +1,4 @@
-      recursive
-     *double precision function enorm(n,x)
+      double precision function enorm(n,x)
       integer n
       double precision x(n)
 c     **********
diff --git a/scipy/optimize/minpack/fdjac1.f b/scipy/optimize/minpack/fdjac1.f
index 2a7d84cc1..031ed4652 100644
--- a/scipy/optimize/minpack/fdjac1.f
+++ b/scipy/optimize/minpack/fdjac1.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine fdjac1(fcn,n,x,fvec,fjac,ldfjac,iflag,ml,mu,epsfcn,
+      subroutine fdjac1(fcn,n,x,fvec,fjac,ldfjac,iflag,ml,mu,epsfcn,
      *                  wa1,wa2)
       integer n,ldfjac,iflag,ml,mu
       double precision epsfcn
diff --git a/scipy/optimize/minpack/fdjac2.f b/scipy/optimize/minpack/fdjac2.f
index 5f4c1338f..218ab94c1 100644
--- a/scipy/optimize/minpack/fdjac2.f
+++ b/scipy/optimize/minpack/fdjac2.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine fdjac2(fcn,m,n,x,fvec,fjac,ldfjac,iflag,epsfcn,wa)
+      subroutine fdjac2(fcn,m,n,x,fvec,fjac,ldfjac,iflag,epsfcn,wa)
       integer m,n,ldfjac,iflag
       double precision epsfcn
       double precision x(n),fvec(m),fjac(ldfjac,n),wa(m)
diff --git a/scipy/optimize/minpack/hybrd.f b/scipy/optimize/minpack/hybrd.f
index 75f450c9c..fc0b4c26a 100644
--- a/scipy/optimize/minpack/hybrd.f
+++ b/scipy/optimize/minpack/hybrd.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine hybrd(fcn,n,x,fvec,xtol,maxfev,ml,mu,epsfcn,diag,
+      subroutine hybrd(fcn,n,x,fvec,xtol,maxfev,ml,mu,epsfcn,diag,
      *                 mode,factor,nprint,info,nfev,fjac,ldfjac,r,lr,
      *                 qtf,wa1,wa2,wa3,wa4)
       integer n,maxfev,ml,mu,mode,nprint,info,nfev,ldfjac,lr
diff --git a/scipy/optimize/minpack/hybrd1.f b/scipy/optimize/minpack/hybrd1.f
index 87660fe18..c0a859275 100644
--- a/scipy/optimize/minpack/hybrd1.f
+++ b/scipy/optimize/minpack/hybrd1.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine hybrd1(fcn,n,x,fvec,tol,info,wa,lwa)
+      subroutine hybrd1(fcn,n,x,fvec,tol,info,wa,lwa)
       integer n,info,lwa
       double precision tol
       double precision x(n),fvec(n),wa(lwa)
diff --git a/scipy/optimize/minpack/hybrj.f b/scipy/optimize/minpack/hybrj.f
index 4f676832e..3070dad3f 100644
--- a/scipy/optimize/minpack/hybrj.f
+++ b/scipy/optimize/minpack/hybrj.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine hybrj(fcn,n,x,fvec,fjac,ldfjac,xtol,maxfev,diag,mode,
+      subroutine hybrj(fcn,n,x,fvec,fjac,ldfjac,xtol,maxfev,diag,mode,
      *                 factor,nprint,info,nfev,njev,r,lr,qtf,wa1,wa2,
      *                 wa3,wa4)
       integer n,ldfjac,maxfev,mode,nprint,info,nfev,njev,lr
diff --git a/scipy/optimize/minpack/hybrj1.f b/scipy/optimize/minpack/hybrj1.f
index afa9d80f1..9f51c4965 100644
--- a/scipy/optimize/minpack/hybrj1.f
+++ b/scipy/optimize/minpack/hybrj1.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine hybrj1(fcn,n,x,fvec,fjac,ldfjac,tol,info,wa,lwa)
+      subroutine hybrj1(fcn,n,x,fvec,fjac,ldfjac,tol,info,wa,lwa)
       integer n,ldfjac,info,lwa
       double precision tol
       double precision x(n),fvec(n),fjac(ldfjac,n),wa(lwa)
diff --git a/scipy/optimize/minpack/lmder.f b/scipy/optimize/minpack/lmder.f
index 684925592..8797d8bed 100644
--- a/scipy/optimize/minpack/lmder.f
+++ b/scipy/optimize/minpack/lmder.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine lmder(fcn,m,n,x,fvec,fjac,ldfjac,ftol,xtol,gtol,
+      subroutine lmder(fcn,m,n,x,fvec,fjac,ldfjac,ftol,xtol,gtol,
      *                 maxfev,diag,mode,factor,nprint,info,nfev,njev,
      *                 ipvt,qtf,wa1,wa2,wa3,wa4)
       integer m,n,ldfjac,maxfev,mode,nprint,info,nfev,njev
diff --git a/scipy/optimize/minpack/lmder1.f b/scipy/optimize/minpack/lmder1.f
index 6be29477d..d691940fd 100644
--- a/scipy/optimize/minpack/lmder1.f
+++ b/scipy/optimize/minpack/lmder1.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine lmder1(fcn,m,n,x,fvec,fjac,ldfjac,tol,info,ipvt,wa,
+      subroutine lmder1(fcn,m,n,x,fvec,fjac,ldfjac,tol,info,ipvt,wa,
      *                  lwa)
       integer m,n,ldfjac,info,lwa
       integer ipvt(n)
diff --git a/scipy/optimize/minpack/lmdif.f b/scipy/optimize/minpack/lmdif.f
index fcb61d138..dd3d4ee25 100644
--- a/scipy/optimize/minpack/lmdif.f
+++ b/scipy/optimize/minpack/lmdif.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine lmdif(fcn,m,n,x,fvec,ftol,xtol,gtol,maxfev,epsfcn,
+      subroutine lmdif(fcn,m,n,x,fvec,ftol,xtol,gtol,maxfev,epsfcn,
      *                 diag,mode,factor,nprint,info,nfev,fjac,ldfjac,
      *                 ipvt,qtf,wa1,wa2,wa3,wa4)
       integer m,n,maxfev,mode,nprint,info,nfev,ldfjac
diff --git a/scipy/optimize/minpack/lmdif1.f b/scipy/optimize/minpack/lmdif1.f
index 6f28ed2f7..70f8aae05 100644
--- a/scipy/optimize/minpack/lmdif1.f
+++ b/scipy/optimize/minpack/lmdif1.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine lmdif1(fcn,m,n,x,fvec,tol,info,iwa,wa,lwa)
+      subroutine lmdif1(fcn,m,n,x,fvec,tol,info,iwa,wa,lwa)
       integer m,n,info,lwa
       integer iwa(n)
       double precision tol
diff --git a/scipy/optimize/minpack/lmpar.f b/scipy/optimize/minpack/lmpar.f
index e25eb0d3e..26c422a79 100644
--- a/scipy/optimize/minpack/lmpar.f
+++ b/scipy/optimize/minpack/lmpar.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine lmpar(n,r,ldr,ipvt,diag,qtb,delta,par,x,sdiag,wa1,
+      subroutine lmpar(n,r,ldr,ipvt,diag,qtb,delta,par,x,sdiag,wa1,
      *                 wa2)
       integer n,ldr
       integer ipvt(n)
diff --git a/scipy/optimize/minpack/lmstr.f b/scipy/optimize/minpack/lmstr.f
index 2b6bbbfc2..d9a7893f8 100644
--- a/scipy/optimize/minpack/lmstr.f
+++ b/scipy/optimize/minpack/lmstr.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine lmstr(fcn,m,n,x,fvec,fjac,ldfjac,ftol,xtol,gtol,
+      subroutine lmstr(fcn,m,n,x,fvec,fjac,ldfjac,ftol,xtol,gtol,
      *                 maxfev,diag,mode,factor,nprint,info,nfev,njev,
      *                 ipvt,qtf,wa1,wa2,wa3,wa4)
       integer m,n,ldfjac,maxfev,mode,nprint,info,nfev,njev
diff --git a/scipy/optimize/minpack/lmstr1.f b/scipy/optimize/minpack/lmstr1.f
index 225e8736f..2fa8ee1c5 100644
--- a/scipy/optimize/minpack/lmstr1.f
+++ b/scipy/optimize/minpack/lmstr1.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine lmstr1(fcn,m,n,x,fvec,fjac,ldfjac,tol,info,ipvt,wa,
+      subroutine lmstr1(fcn,m,n,x,fvec,fjac,ldfjac,tol,info,ipvt,wa,
      *                  lwa)
       integer m,n,ldfjac,info,lwa
       integer ipvt(n)
diff --git a/scipy/optimize/minpack/qform.f b/scipy/optimize/minpack/qform.f
index 1f368587e..087b2478b 100644
--- a/scipy/optimize/minpack/qform.f
+++ b/scipy/optimize/minpack/qform.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine qform(m,n,q,ldq,wa)
+      subroutine qform(m,n,q,ldq,wa)
       integer m,n,ldq
       double precision q(ldq,m),wa(m)
 c     **********
diff --git a/scipy/optimize/minpack/qrfac.f b/scipy/optimize/minpack/qrfac.f
index fa6789086..cb686086c 100644
--- a/scipy/optimize/minpack/qrfac.f
+++ b/scipy/optimize/minpack/qrfac.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine qrfac(m,n,a,lda,pivot,ipvt,lipvt,rdiag,acnorm,wa)
+      subroutine qrfac(m,n,a,lda,pivot,ipvt,lipvt,rdiag,acnorm,wa)
       integer m,n,lda,lipvt
       integer ipvt(lipvt)
       logical pivot
diff --git a/scipy/optimize/minpack/qrsolv.f b/scipy/optimize/minpack/qrsolv.f
index 3dc009721..5580087ca 100644
--- a/scipy/optimize/minpack/qrsolv.f
+++ b/scipy/optimize/minpack/qrsolv.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine qrsolv(n,r,ldr,ipvt,diag,qtb,x,sdiag,wa)
+      subroutine qrsolv(n,r,ldr,ipvt,diag,qtb,x,sdiag,wa)
       integer n,ldr
       integer ipvt(n)
       double precision r(ldr,n),diag(n),qtb(n),x(n),sdiag(n),wa(n)
diff --git a/scipy/optimize/minpack/r1mpyq.f b/scipy/optimize/minpack/r1mpyq.f
index 1410b9ad6..ec99b96ce 100644
--- a/scipy/optimize/minpack/r1mpyq.f
+++ b/scipy/optimize/minpack/r1mpyq.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine r1mpyq(m,n,a,lda,v,w)
+      subroutine r1mpyq(m,n,a,lda,v,w)
       integer m,n,lda
       double precision a(lda,n),v(n),w(n)
 c     **********
diff --git a/scipy/optimize/minpack/r1updt.f b/scipy/optimize/minpack/r1updt.f
index e809d8402..e034973d9 100644
--- a/scipy/optimize/minpack/r1updt.f
+++ b/scipy/optimize/minpack/r1updt.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine r1updt(m,n,s,ls,u,v,w,sing)
+      subroutine r1updt(m,n,s,ls,u,v,w,sing)
       integer m,n,ls
       logical sing
       double precision s(ls),u(m),v(n),w(m)
diff --git a/scipy/optimize/minpack/rwupdt.f b/scipy/optimize/minpack/rwupdt.f
index 61a7928bb..05282b556 100644
--- a/scipy/optimize/minpack/rwupdt.f
+++ b/scipy/optimize/minpack/rwupdt.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine rwupdt(n,r,ldr,w,b,alpha,cos,sin)
+      subroutine rwupdt(n,r,ldr,w,b,alpha,cos,sin)
       integer n,ldr
       double precision alpha
       double precision r(ldr,n),w(n),b(n),cos(n),sin(n)
-- 
2.25.1


From 03121dd29a0973ef05f9921ddf2c99cf14f3299a Mon Sep 17 00:00:00 2001
From: Hood Chatham <roberthoodchatham@gmail.com>
Date: Wed, 6 Apr 2022 21:21:53 -0700
Subject: [PATCH 05/13] fix fotran files minpack

---
 scipy/optimize/minpack/chkder.f | 3 +--
 scipy/optimize/minpack/dogleg.f | 3 +--
 scipy/optimize/minpack/dpmpar.f | 3 +--
 scipy/optimize/minpack/enorm.f  | 3 +--
 scipy/optimize/minpack/fdjac1.f | 3 +--
 scipy/optimize/minpack/fdjac2.f | 3 +--
 scipy/optimize/minpack/hybrd.f  | 3 +--
 scipy/optimize/minpack/hybrd1.f | 3 +--
 scipy/optimize/minpack/hybrj.f  | 3 +--
 scipy/optimize/minpack/hybrj1.f | 3 +--
 scipy/optimize/minpack/lmder.f  | 3 +--
 scipy/optimize/minpack/lmder1.f | 3 +--
 scipy/optimize/minpack/lmdif.f  | 3 +--
 scipy/optimize/minpack/lmdif1.f | 3 +--
 scipy/optimize/minpack/lmpar.f  | 3 +--
 scipy/optimize/minpack/lmstr.f  | 3 +--
 scipy/optimize/minpack/lmstr1.f | 3 +--
 scipy/optimize/minpack/qform.f  | 3 +--
 scipy/optimize/minpack/qrfac.f  | 3 +--
 scipy/optimize/minpack/qrsolv.f | 3 +--
 scipy/optimize/minpack/r1mpyq.f | 3 +--
 scipy/optimize/minpack/r1updt.f | 3 +--
 scipy/optimize/minpack/rwupdt.f | 3 +--
 23 files changed, 23 insertions(+), 46 deletions(-)

diff --git a/scipy/optimize/minpack/chkder.f b/scipy/optimize/minpack/chkder.f
index 0657ab56a..29578fc41 100644
--- a/scipy/optimize/minpack/chkder.f
+++ b/scipy/optimize/minpack/chkder.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine chkder(m,n,x,fvec,fjac,ldfjac,xp,fvecp,mode,err)
+      subroutine chkder(m,n,x,fvec,fjac,ldfjac,xp,fvecp,mode,err)
       integer m,n,ldfjac,mode
       double precision x(n),fvec(m),fjac(ldfjac,n),xp(n),fvecp(m),
      *                 err(m)
diff --git a/scipy/optimize/minpack/dogleg.f b/scipy/optimize/minpack/dogleg.f
index d9626c911..b812f1966 100644
--- a/scipy/optimize/minpack/dogleg.f
+++ b/scipy/optimize/minpack/dogleg.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine dogleg(n,r,lr,diag,qtb,delta,x,wa1,wa2)
+      subroutine dogleg(n,r,lr,diag,qtb,delta,x,wa1,wa2)
       integer n,lr
       double precision delta
       double precision r(lr),diag(n),qtb(n),x(n),wa1(n),wa2(n)
diff --git a/scipy/optimize/minpack/dpmpar.f b/scipy/optimize/minpack/dpmpar.f
index 3fd3b4ef8..cb6545a92 100644
--- a/scipy/optimize/minpack/dpmpar.f
+++ b/scipy/optimize/minpack/dpmpar.f
@@ -1,5 +1,4 @@
-      recursive
-     *double precision function dpmpar(i)
+      double precision function dpmpar(i)
       integer i
 c     **********
 c
diff --git a/scipy/optimize/minpack/enorm.f b/scipy/optimize/minpack/enorm.f
index 21557c147..2cb5b607e 100644
--- a/scipy/optimize/minpack/enorm.f
+++ b/scipy/optimize/minpack/enorm.f
@@ -1,5 +1,4 @@
-      recursive
-     *double precision function enorm(n,x)
+      double precision function enorm(n,x)
       integer n
       double precision x(n)
 c     **********
diff --git a/scipy/optimize/minpack/fdjac1.f b/scipy/optimize/minpack/fdjac1.f
index 2a7d84cc1..031ed4652 100644
--- a/scipy/optimize/minpack/fdjac1.f
+++ b/scipy/optimize/minpack/fdjac1.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine fdjac1(fcn,n,x,fvec,fjac,ldfjac,iflag,ml,mu,epsfcn,
+      subroutine fdjac1(fcn,n,x,fvec,fjac,ldfjac,iflag,ml,mu,epsfcn,
      *                  wa1,wa2)
       integer n,ldfjac,iflag,ml,mu
       double precision epsfcn
diff --git a/scipy/optimize/minpack/fdjac2.f b/scipy/optimize/minpack/fdjac2.f
index 5f4c1338f..218ab94c1 100644
--- a/scipy/optimize/minpack/fdjac2.f
+++ b/scipy/optimize/minpack/fdjac2.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine fdjac2(fcn,m,n,x,fvec,fjac,ldfjac,iflag,epsfcn,wa)
+      subroutine fdjac2(fcn,m,n,x,fvec,fjac,ldfjac,iflag,epsfcn,wa)
       integer m,n,ldfjac,iflag
       double precision epsfcn
       double precision x(n),fvec(m),fjac(ldfjac,n),wa(m)
diff --git a/scipy/optimize/minpack/hybrd.f b/scipy/optimize/minpack/hybrd.f
index 75f450c9c..fc0b4c26a 100644
--- a/scipy/optimize/minpack/hybrd.f
+++ b/scipy/optimize/minpack/hybrd.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine hybrd(fcn,n,x,fvec,xtol,maxfev,ml,mu,epsfcn,diag,
+      subroutine hybrd(fcn,n,x,fvec,xtol,maxfev,ml,mu,epsfcn,diag,
      *                 mode,factor,nprint,info,nfev,fjac,ldfjac,r,lr,
      *                 qtf,wa1,wa2,wa3,wa4)
       integer n,maxfev,ml,mu,mode,nprint,info,nfev,ldfjac,lr
diff --git a/scipy/optimize/minpack/hybrd1.f b/scipy/optimize/minpack/hybrd1.f
index 87660fe18..c0a859275 100644
--- a/scipy/optimize/minpack/hybrd1.f
+++ b/scipy/optimize/minpack/hybrd1.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine hybrd1(fcn,n,x,fvec,tol,info,wa,lwa)
+      subroutine hybrd1(fcn,n,x,fvec,tol,info,wa,lwa)
       integer n,info,lwa
       double precision tol
       double precision x(n),fvec(n),wa(lwa)
diff --git a/scipy/optimize/minpack/hybrj.f b/scipy/optimize/minpack/hybrj.f
index 4f676832e..3070dad3f 100644
--- a/scipy/optimize/minpack/hybrj.f
+++ b/scipy/optimize/minpack/hybrj.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine hybrj(fcn,n,x,fvec,fjac,ldfjac,xtol,maxfev,diag,mode,
+      subroutine hybrj(fcn,n,x,fvec,fjac,ldfjac,xtol,maxfev,diag,mode,
      *                 factor,nprint,info,nfev,njev,r,lr,qtf,wa1,wa2,
      *                 wa3,wa4)
       integer n,ldfjac,maxfev,mode,nprint,info,nfev,njev,lr
diff --git a/scipy/optimize/minpack/hybrj1.f b/scipy/optimize/minpack/hybrj1.f
index afa9d80f1..9f51c4965 100644
--- a/scipy/optimize/minpack/hybrj1.f
+++ b/scipy/optimize/minpack/hybrj1.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine hybrj1(fcn,n,x,fvec,fjac,ldfjac,tol,info,wa,lwa)
+      subroutine hybrj1(fcn,n,x,fvec,fjac,ldfjac,tol,info,wa,lwa)
       integer n,ldfjac,info,lwa
       double precision tol
       double precision x(n),fvec(n),fjac(ldfjac,n),wa(lwa)
diff --git a/scipy/optimize/minpack/lmder.f b/scipy/optimize/minpack/lmder.f
index 684925592..8797d8bed 100644
--- a/scipy/optimize/minpack/lmder.f
+++ b/scipy/optimize/minpack/lmder.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine lmder(fcn,m,n,x,fvec,fjac,ldfjac,ftol,xtol,gtol,
+      subroutine lmder(fcn,m,n,x,fvec,fjac,ldfjac,ftol,xtol,gtol,
      *                 maxfev,diag,mode,factor,nprint,info,nfev,njev,
      *                 ipvt,qtf,wa1,wa2,wa3,wa4)
       integer m,n,ldfjac,maxfev,mode,nprint,info,nfev,njev
diff --git a/scipy/optimize/minpack/lmder1.f b/scipy/optimize/minpack/lmder1.f
index 6be29477d..d691940fd 100644
--- a/scipy/optimize/minpack/lmder1.f
+++ b/scipy/optimize/minpack/lmder1.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine lmder1(fcn,m,n,x,fvec,fjac,ldfjac,tol,info,ipvt,wa,
+      subroutine lmder1(fcn,m,n,x,fvec,fjac,ldfjac,tol,info,ipvt,wa,
      *                  lwa)
       integer m,n,ldfjac,info,lwa
       integer ipvt(n)
diff --git a/scipy/optimize/minpack/lmdif.f b/scipy/optimize/minpack/lmdif.f
index fcb61d138..dd3d4ee25 100644
--- a/scipy/optimize/minpack/lmdif.f
+++ b/scipy/optimize/minpack/lmdif.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine lmdif(fcn,m,n,x,fvec,ftol,xtol,gtol,maxfev,epsfcn,
+      subroutine lmdif(fcn,m,n,x,fvec,ftol,xtol,gtol,maxfev,epsfcn,
      *                 diag,mode,factor,nprint,info,nfev,fjac,ldfjac,
      *                 ipvt,qtf,wa1,wa2,wa3,wa4)
       integer m,n,maxfev,mode,nprint,info,nfev,ldfjac
diff --git a/scipy/optimize/minpack/lmdif1.f b/scipy/optimize/minpack/lmdif1.f
index 6f28ed2f7..70f8aae05 100644
--- a/scipy/optimize/minpack/lmdif1.f
+++ b/scipy/optimize/minpack/lmdif1.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine lmdif1(fcn,m,n,x,fvec,tol,info,iwa,wa,lwa)
+      subroutine lmdif1(fcn,m,n,x,fvec,tol,info,iwa,wa,lwa)
       integer m,n,info,lwa
       integer iwa(n)
       double precision tol
diff --git a/scipy/optimize/minpack/lmpar.f b/scipy/optimize/minpack/lmpar.f
index e25eb0d3e..26c422a79 100644
--- a/scipy/optimize/minpack/lmpar.f
+++ b/scipy/optimize/minpack/lmpar.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine lmpar(n,r,ldr,ipvt,diag,qtb,delta,par,x,sdiag,wa1,
+      subroutine lmpar(n,r,ldr,ipvt,diag,qtb,delta,par,x,sdiag,wa1,
      *                 wa2)
       integer n,ldr
       integer ipvt(n)
diff --git a/scipy/optimize/minpack/lmstr.f b/scipy/optimize/minpack/lmstr.f
index 2b6bbbfc2..d9a7893f8 100644
--- a/scipy/optimize/minpack/lmstr.f
+++ b/scipy/optimize/minpack/lmstr.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine lmstr(fcn,m,n,x,fvec,fjac,ldfjac,ftol,xtol,gtol,
+      subroutine lmstr(fcn,m,n,x,fvec,fjac,ldfjac,ftol,xtol,gtol,
      *                 maxfev,diag,mode,factor,nprint,info,nfev,njev,
      *                 ipvt,qtf,wa1,wa2,wa3,wa4)
       integer m,n,ldfjac,maxfev,mode,nprint,info,nfev,njev
diff --git a/scipy/optimize/minpack/lmstr1.f b/scipy/optimize/minpack/lmstr1.f
index 225e8736f..2fa8ee1c5 100644
--- a/scipy/optimize/minpack/lmstr1.f
+++ b/scipy/optimize/minpack/lmstr1.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine lmstr1(fcn,m,n,x,fvec,fjac,ldfjac,tol,info,ipvt,wa,
+      subroutine lmstr1(fcn,m,n,x,fvec,fjac,ldfjac,tol,info,ipvt,wa,
      *                  lwa)
       integer m,n,ldfjac,info,lwa
       integer ipvt(n)
diff --git a/scipy/optimize/minpack/qform.f b/scipy/optimize/minpack/qform.f
index 1f368587e..087b2478b 100644
--- a/scipy/optimize/minpack/qform.f
+++ b/scipy/optimize/minpack/qform.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine qform(m,n,q,ldq,wa)
+      subroutine qform(m,n,q,ldq,wa)
       integer m,n,ldq
       double precision q(ldq,m),wa(m)
 c     **********
diff --git a/scipy/optimize/minpack/qrfac.f b/scipy/optimize/minpack/qrfac.f
index fa6789086..cb686086c 100644
--- a/scipy/optimize/minpack/qrfac.f
+++ b/scipy/optimize/minpack/qrfac.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine qrfac(m,n,a,lda,pivot,ipvt,lipvt,rdiag,acnorm,wa)
+      subroutine qrfac(m,n,a,lda,pivot,ipvt,lipvt,rdiag,acnorm,wa)
       integer m,n,lda,lipvt
       integer ipvt(lipvt)
       logical pivot
diff --git a/scipy/optimize/minpack/qrsolv.f b/scipy/optimize/minpack/qrsolv.f
index 3dc009721..5580087ca 100644
--- a/scipy/optimize/minpack/qrsolv.f
+++ b/scipy/optimize/minpack/qrsolv.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine qrsolv(n,r,ldr,ipvt,diag,qtb,x,sdiag,wa)
+      subroutine qrsolv(n,r,ldr,ipvt,diag,qtb,x,sdiag,wa)
       integer n,ldr
       integer ipvt(n)
       double precision r(ldr,n),diag(n),qtb(n),x(n),sdiag(n),wa(n)
diff --git a/scipy/optimize/minpack/r1mpyq.f b/scipy/optimize/minpack/r1mpyq.f
index 1410b9ad6..ec99b96ce 100644
--- a/scipy/optimize/minpack/r1mpyq.f
+++ b/scipy/optimize/minpack/r1mpyq.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine r1mpyq(m,n,a,lda,v,w)
+      subroutine r1mpyq(m,n,a,lda,v,w)
       integer m,n,lda
       double precision a(lda,n),v(n),w(n)
 c     **********
diff --git a/scipy/optimize/minpack/r1updt.f b/scipy/optimize/minpack/r1updt.f
index e809d8402..e034973d9 100644
--- a/scipy/optimize/minpack/r1updt.f
+++ b/scipy/optimize/minpack/r1updt.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine r1updt(m,n,s,ls,u,v,w,sing)
+      subroutine r1updt(m,n,s,ls,u,v,w,sing)
       integer m,n,ls
       logical sing
       double precision s(ls),u(m),v(n),w(m)
diff --git a/scipy/optimize/minpack/rwupdt.f b/scipy/optimize/minpack/rwupdt.f
index 61a7928bb..05282b556 100644
--- a/scipy/optimize/minpack/rwupdt.f
+++ b/scipy/optimize/minpack/rwupdt.f
@@ -1,5 +1,4 @@
-      recursive
-     *subroutine rwupdt(n,r,ldr,w,b,alpha,cos,sin)
+      subroutine rwupdt(n,r,ldr,w,b,alpha,cos,sin)
       integer n,ldr
       double precision alpha
       double precision r(ldr,n),w(n),b(n),cos(n),sin(n)
-- 
2.25.1

