Repository: python-control/Slycot (language: python)

Issue:
Numpy 1.24 breaks compiling Slycot
Numpy 1.24.0 came out a few hours ago and broke compiling the Fortran wrappers.

<details>

```
ben@skylab:~/src/Slycot]% pip wheel .                                                                                                                             [0]
Processing /home/ben/src/Slycot
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting numpy
  Using cached numpy-1.24.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)
Saved ./numpy-1.24.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Building wheels for collected packages: slycot
  Building wheel for slycot (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for slycot (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [594 lines of output]
      
      
      --------------------------------------------------------------------------------
      -- Trying "Ninja" generator
      --------------------------------
      ---------------------------
      ----------------------
      -----------------
      ------------
      -------
      --
      Not searching for unused variables given on the command line.
      CMake Error: CMake was unable to find a build program corresponding to "Ninja".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
      -- Configuring incomplete, errors occurred!
      See also "/home/ben/src/Slycot/_cmake_test_compile/build/CMakeFiles/CMakeOutput.log".
      --
      -------
      ------------
      -----------------
      ----------------------
      ---------------------------
      --------------------------------
      -- Trying "Ninja" generator - failure
      --------------------------------------------------------------------------------
      
      
      
      --------------------------------------------------------------------------------
      -- Trying "Unix Makefiles" generator
      --------------------------------
      ---------------------------
      ----------------------
      -----------------
      ------------
      -------
      --
      Not searching for unused variables given on the command line.
      -- The C compiler identification is GNU 12.2.1
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /usr/bin/cc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- The Fortran compiler identification is GNU 12.2.1
      -- Detecting Fortran compiler ABI info
      -- Detecting Fortran compiler ABI info - done
      -- Check for working Fortran compiler: /usr/bin/gfortran - skipped
      -- Configuring done
      -- Generating done
      -- Build files have been written to: /home/ben/src/Slycot/_cmake_test_compile/build
      --
      -------
      ------------
      -----------------
      ----------------------
      ---------------------------
      --------------------------------
      -- Trying "Unix Makefiles" generator - success
      --------------------------------------------------------------------------------
      
      Configuring Project
        Working directory:
          /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build
        Command:
          cmake /home/ben/src/Slycot -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX:PATH=/home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-install -DPYTHON_VERSION_STRING:STRING=3.10.9 -DSKBUILD:INTERNAL=TRUE -DCMAKE_MODULE_PATH:PATH=/tmp/pip-build-env-_7jfm_0f/overlay/lib/python3.10/site-packages/skbuild/resources/cmake -DPYTHON_EXECUTABLE:PATH=/usr/bin/python3.10 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.10 -DPYTHON_LIBRARY:PATH=/usr/lib64/libpython3.10.so -DPython_EXECUTABLE:PATH=/usr/bin/python3.10 -DPython_ROOT_DIR:PATH=/usr -DPython_INCLUDE_DIR:PATH=/usr/include/python3.10 -DPython_FIND_REGISTRY:STRING=NEVER -DPython_NumPy_INCLUDE_DIRS:PATH=/tmp/pip-build-env-_7jfm_0f/overlay/lib64/python3.10/site-packages/numpy/core/include -DPython3_EXECUTABLE:PATH=/usr/bin/python3.10 -DPython3_ROOT_DIR:PATH=/usr -DPython3_INCLUDE_DIR:PATH=/usr/include/python3.10 -DPython3_FIND_REGISTRY:STRING=NEVER -DPython3_NumPy_INCLUDE_DIRS:PATH=/tmp/pip-build-env-_7jfm_0f/overlay/lib64/python3.10/site-packages/numpy/core/include -DCMAKE_BUILD_TYPE:STRING=Release
      
      -- The C compiler identification is GNU 12.2.1
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /usr/bin/cc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- The Fortran compiler identification is GNU 12.2.1
      -- Detecting Fortran compiler ABI info
      -- Detecting Fortran compiler ABI info - done
      -- Check for working Fortran compiler: /usr/bin/gfortran - skipped
      -- Found Python: /usr/bin/python3.10 (found version "3.10.9") found components: Interpreter Development NumPy Development.Module Development.Embed
      -- Found PythonInterp: /usr/bin/python3.10 (found version "3.10.9")
      -- Found PythonLibs: /usr/lib64/libpython3.10.so (found version "3.10.9")
      -- Found NumPy: /tmp/pip-build-env-_7jfm_0f/overlay/lib64/python3.10/site-packages/numpy/core/include (found version "1.24.0")
      -- Found F2PY: /tmp/pip-build-env-_7jfm_0f/overlay/bin/f2py3 (found version "1.24.0")
      -- Looking for Fortran sgemm
      -- Looking for Fortran sgemm - not found
      -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
      -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
      -- Found Threads: TRUE
      -- Looking for Fortran sgemm
      -- Looking for Fortran sgemm - found
      -- Found BLAS: /usr/lib64/libblas.so
      -- Looking for Fortran cheev
      -- Looking for Fortran cheev - not found
      -- Looking for Fortran cheev
      -- Looking for Fortran cheev - found
      -- Found LAPACK: /usr/lib64/liblapack.so;/usr/lib64/libblas.so
      -- Python headers included from: /usr/include/python3.10
      -- NumPy headers included from: /tmp/pip-build-env-_7jfm_0f/overlay/lib64/python3.10/site-packages/numpy/core/include
      -- F2PY headers included from: /tmp/pip-build-env-_7jfm_0f/overlay/lib64/python3.10/site-packages/numpy/f2py/src;/tmp/pip-build-env-_7jfm_0f/overlay/lib64/python3.10/site-packages/numpy/core/include
      -- LAPACK: /usr/lib64/liblapack.so;/usr/lib64/libblas.so
      -- BLAS: /usr/lib64/libblas.so
      -- Performing Test Weak Link MODULE -> SHARED (gnu_ld_ignore) - Success
      _modinit_prefix:PyInit_
      -- Configuring done
      -- Generating done
      CMake Warning:
        Manually-specified variables were not used by the project:
      
          Python3_EXECUTABLE
          Python3_FIND_REGISTRY
          Python3_INCLUDE_DIR
          Python3_NumPy_INCLUDE_DIRS
          Python3_ROOT_DIR
          SKBUILD
      
      
      -- Build files have been written to: /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build
      [  0%] Building C object CMakeFiles/_f2py_runtime_library.dir/tmp/pip-build-env-_7jfm_0f/overlay/lib64/python3.10/site-packages/numpy/f2py/src/fortranobject.c.o
      [  0%] Linking C static library lib_f2py_runtime_library.a
      [  0%] Built target _f2py_runtime_library
      [  0%] Built target wrapper
      [  0%] Generating _wrappermodule.c, _wrapper-f2pywrappers.f
      Reading fortran codes...
          Reading file '/home/ben/src/Slycot/slycot/src/_wrapper.pyf' (format:free)
          Reading file '/home/ben/src/Slycot/slycot/src/analysis.pyf' (format:free)
          Reading file '/home/ben/src/Slycot/slycot/src/math.pyf' (format:free)
          Reading file '/home/ben/src/Slycot/slycot/src/synthesis.pyf' (format:free)
          Reading file '/home/ben/src/Slycot/slycot/src/transform.pyf' (format:free)
          Reading file '/home/ben/src/Slycot/slycot/src/_helper.pyf' (format:free)
      Post-processing...
          Block: SLYCOT
                          Block: _wrapper
                                          Block: ab01nd
                                          Block: ab05md
                                          Block: ab05nd
                                          Block: ab07nd
                                          Block: ab08nd
                                          Block: ab08nz
                                          Block: ab09ad
                                          Block: ab09ax
                                          Block: ab09bd
                                          Block: ab09md
                                          Block: ab09nd
                                          Block: ab13bd
                                          Block: ab13dd
                                          Block: ab13md
                                          Block: ab13ed
                                          Block: ab13fd
                                          Block: ag08bd
                                          Block: mc01td
                                          Block: mb03rd
                                          Block: mb03vd
                                          Block: mb03vy
                                          Block: mb03wd
                                          Block: mb05md
                                          Block: mb05nd
                                          Block: sb01bd
                                          Block: sb02md
                                          Block: sb02od_n
                                          Block: sb02od_c
                                          Block: sb02od_d
                                          Block: sb02od_b
                                          Block: sb02mt_n
                                          Block: sb02mt_c
                                          Block: sb02mt_nl
                                          Block: sb02mt_cl
                                          Block: sb03md
                                          Block: sb03od
                                          Block: sb04md
                                          Block: sb04qd
                                          Block: sb10ad
                                          Block: sb10dd
                                          Block: sb10fd
                                          Block: sb10hd
                                          Block: sb10jd
                                          Block: sg03ad
                                          Block: sg02ad_g
                                          Block: sg02ad_bn
                                          Block: sg02ad_bc
                                          Block: sg02ad_bd
                                          Block: sg02ad_bb
                                          Block: sg03bd
                                          Block: tb01id
                                          Block: tb03ad_l
                                          Block: tb03ad_r
                                          Block: tb04ad_r
                                          Block: tb04ad_c
                                          Block: tb05ad_ag
                                          Block: tb05ad_ng
                                          Block: tb05ad_nh
                                          Block: tc01od_l
                                          Block: tc01od_r
                                          Block: tc04ad_l
                                          Block: tc04ad_r
                                          Block: td04ad_r
                                          Block: td04ad_c
                                          Block: tf01md
                                          Block: tf01rd
                                          Block: tb01pd
                                          Block: tg01ad
                                          Block: tg01fd_nn
                                          Block: tg01fd_ii
                                          Block: tg01fd_uu
                                          Block: ftruefalse
                                          Block: xerbla
      Applying post-processing hooks...
        character_backward_compatibility_hook
      Post-processing (stage 2)...
      Building modules...
          Building module "_wrapper"...
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab01nd"...
                a,b,ncont,indcon,nblk,z,tau,info = ab01nd(jobz,n,m,a,b,[tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab05md"...
                n,a,b,c,d,info = ab05md(n1,m1,p1,n2,p2,a1,b1,c1,d1,a2,b2,c2,d2,[uplo,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab05nd"...
                n,a,b,c,d,info = ab05nd(n1,m1,p1,n2,alpha,a1,b1,c1,d1,a2,b2,c2,d2,[ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab07nd"...
                a,b,c,d,rcond,info = ab07nd(n,m,a,b,c,d,[ldwork,overwrite_a,overwrite_b,overwrite_c,overwrite_d])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab08nd"...
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
                nu,rank_bn,dinfz,nkror,nkrol,infz,kronr,kronl,af,bf,info = ab08nd(n,m,p,a,b,c,d,[equil,tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab08nz"...
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
                nu,rank_bn,dinfz,nkror,nkrol,infz,kronr,kronl,af,bf,zwork,info = ab08nz(n,m,p,a,b,c,d,[equil,tol,lzwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab09ad"...
                nr,a,b,c,hsv,iwarn,info = ab09ad(dico,job,equil,ordsel,n,m,p,nr,a,b,c,[tol,ldwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab09ax"...
                nr,a,b,c,hsv,t,ti,iwarn,info = ab09ax(dico,job,ordsel,n,m,p,nr,a,b,c,[tol,ldwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab09bd"...
                nr,a,b,c,d,hsv,iwarn,info = ab09bd(dico,job,equil,ordsel,n,m,p,nr,a,b,c,d,[tol1,tol2,ldwork,overwrite_a,overwrite_b,overwrite_c,overwrite_d])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab09md"...
                nr,a,b,c,ns,hsv,iwarn,info = ab09md(dico,job,equil,ordsel,n,m,p,nr,alpha,a,b,c,[tol,ldwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab09nd"...
                nr,a,b,c,d,ns,hsv,iwarn,info = ab09nd(dico,job,equil,ordsel,n,m,p,nr,alpha,a,b,c,d,[tol1,tol2,ldwork,overwrite_a,overwrite_b,overwrite_c,overwrite_d])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
                  Creating wrapper for Fortran function "ab13bd"("ab13bd")...
              Constructing wrapper function "ab13bd"...
                ab13bd,nq,iwarn,info = ab13bd(dico,jobn,n,m,p,a,b,c,d,tol)
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab13dd"...
                fpeak,gpeak,info = ab13dd(dico,jobe,equil,jobd,n,m,p,fpeak,a,e,b,c,d,[tol])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab13md"...
                x,bound,d,g,info = ab13md(fact,z,nblock,itype,x)
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab13ed"...
                low,high,info = ab13ed(n,a,[tol])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab13fd"...
                beta,omega,info = ab13fd(n,a,[tol])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ag08bd"...
                a,e,nfz,nrank,niz,dinfz,nkror,ninfe,nkrol,infz,kronr,infe,kronl,info = ag08bd(equil,l,n,m,p,a,e,b,c,d,tol,ldwork,[overwrite_a,overwrite_e,overwrite_b,overwrite_c,overwrite_d])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "mc01td"...
                dp,stable,nz,iwarn,info = mc01td(dico,dp,p)
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "mb03rd"...
                a,x,nblcks,blsize,wr,wi,info = mb03rd(jobx,sort,n,pmax,a,x,tol,[overwrite_a,overwrite_x])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "mb03vd"...
                a,tau,info = mb03vd(n,ilo,ihi,a,[overwrite_a])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "mb03vy"...
                a,info = mb03vy(n,ilo,ihi,a,tau,[ldwork,overwrite_a])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "mb03wd"...
                h,z,wr,wi,info = mb03wd(job,compz,n,ilo,ihi,iloz,ihiz,h,z,[ldwork,overwrite_h,overwrite_z])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "mb05md"...
      getarrdims:warning: assumed shape array, using 0 instead of '*'
                a,v,y,valr,vali,info = mb05md(balanc,n,delta,a,[overwrite_a])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "mb05nd"...
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
                ex,exint,info = mb05nd(n,delta,a,tol,[overwrite_ex,overwrite_exint])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb01bd"...
                a,wr,wi,nfp,nap,nup,f,z,iwarn,info = sb01bd(dico,n,m,np,alpha,a,b,wr,wi,[tol,ldwork,overwrite_a,overwrite_wr,overwrite_wi])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02md"...
                a,q,rcond,wr,wi,s,u,info = sb02md(dico,n,a,g,q,[hinv,uplo,scal,sort,ldwork,overwrite_a])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02od_n"...
                rcond,x,alfar,alfai,beta,s,t,info = sb02od_n(dico,n,m,a,b,q,r,l,[uplo,jobl,sort,tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02od_c"...
                rcond,x,alfar,alfai,beta,s,t,info = sb02od_c(dico,n,m,p,a,b,q,r,l,[uplo,jobl,sort,tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02od_d"...
                rcond,x,alfar,alfai,beta,s,t,info = sb02od_d(dico,n,m,p,a,b,q,r,l,[uplo,jobl,sort,tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02od_b"...
                rcond,x,alfar,alfai,beta,s,t,info = sb02od_b(dico,n,m,p,a,b,q,r,l,[uplo,jobl,sort,tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02mt_n"...
                a,b,q,r,l,ipiv,oufact,g,info = sb02mt_n(n,m,b,r,[uplo,ldwork,overwrite_b,overwrite_r])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02mt_c"...
                a,b,q,r,l,ipiv,oufact,g,info = sb02mt_c(n,m,b,r,[uplo,overwrite_b,overwrite_r])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02mt_nl"...
                a,b,q,r,l,ipiv,oufact,g,info = sb02mt_nl(n,m,a,b,q,r,l,[uplo,ldwork,overwrite_a,overwrite_b,overwrite_q,overwrite_r,overwrite_l])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02mt_cl"...
                a,b,q,r,l,ipiv,oufact,g,info = sb02mt_cl(n,m,a,b,q,r,l,[uplo,overwrite_a,overwrite_b,overwrite_q,overwrite_r,overwrite_l])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb03md"...
                a,u,c,scale,sep,ferr,wr,wi,info = sb03md(dico,n,a,u,c,[job,fact,trana,ldwork,overwrite_a,overwrite_u,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb03od"...
                b,scale,wr,wi,info = sb03od(dico,n,m,a,q,b,[fact,trans,ldwork,overwrite_b])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb04md"...
                a,b,c,z,info = sb04md(n,m,a,b,c,[ldwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb04qd"...
                a,b,c,z,info = sb04qd(n,m,a,b,c,[ldwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb10ad"...
                gamma,ak,bk,ck,dk,ac,bc,cc,dc,rcond,info = sb10ad(job,n,m,np,ncon,nmeas,gamma,a,b,c,d,[gtol,actol,liwork,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb10dd"...
                gamma,ak,bk,ck,dk,x,z,rcond,info = sb10dd(n,m,np,ncon,nmeas,gamma,a,b,c,d,[tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb10fd"...
                ak,bk,ck,dk,rcond,info = sb10fd(n,m,np,ncon,nmeas,gamma,a,b,c,d,tol,ldwork)
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb10hd"...
                ak,bk,ck,dk,rcond,info = sb10hd(n,m,np,ncon,nmeas,a,b,c,d,[tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb10jd"...
                a,b,c,d,nsys,info = sb10jd(n,m,np,a,b,c,d,e,ldwork,[overwrite_a,overwrite_b,overwrite_c,overwrite_d,overwrite_e])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sg03ad"...
                a,e,q,z,x,scale,sep,ferr,alphar,alphai,beta,info = sg03ad(dico,job,fact,trans,uplo,n,a,e,q,z,x,[ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sg02ad_g"...
                rcondu,x,alfar,alfai,beta,s,t,u,iwarn,info = sg02ad_g(dico,uplo,sort,acc,n,a,e,b,q,[ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sg02ad_bn"...
                rcondu,x,alfar,alfai,beta,s,t,u,iwarn,info = sg02ad_bn(dico,uplo,jobl,scal,sort,acc,n,m,a,e,b,q,r,l,[tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sg02ad_bc"...
                rcondu,x,alfar,alfai,beta,s,t,u,iwarn,info = sg02ad_bc(dico,jobl,scal,sort,acc,n,m,p,a,e,b,q,r,l,[tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sg02ad_bd"...
                rcondu,x,alfar,alfai,beta,s,t,u,iwarn,info = sg02ad_bd(dico,jobl,scal,sort,acc,n,m,p,a,e,b,q,r,l,[tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sg02ad_bb"...
                rcondu,x,alfar,alfai,beta,s,t,u,iwarn,info = sg02ad_bb(dico,jobl,scal,sort,acc,n,m,p,a,e,b,q,r,l,[tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sg03bd"...
                b,scale,alphar,alphai,beta,info = sg03bd(dico,n,m,a,e,q,z,b,[fact,trans,ldwork,overwrite_b])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb01id"...
                maxred,a,b,c,scale,info = tb01id(n,m,p,maxred,a,b,c,[job,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb03ad_l"...
                a,b,c,nr,index_bn,pcoeff,qcoeff,vcoeff,info = tb03ad_l(n,m,p,a,b,c,d,[equil,tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb03ad_r"...
                a,b,c,nr,index_bn,pcoeff,qcoeff,vcoeff,info = tb03ad_r(n,m,p,a,b,c,d,[equil,tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb04ad_r"...
                a,b,c,nr,index_bn,dcoeff,ucoeff,info = tb04ad_r(n,m,p,a,b,c,d,[tol1,tol2,ldwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb04ad_c"...
                a,b,c,nr,index_bn,dcoeff,ucoeff,info = tb04ad_c(n,m,p,a,b,c,d,[tol1,tol2,ldwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb05ad_ag"...
                a,b,c,rcond,g,evre,evim,hinvb,info = tb05ad_ag(n,m,p,freq,a,b,c,[ldwork,lzwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb05ad_ng"...
                a,b,c,g,hinvb,info = tb05ad_ng(n,m,p,freq,a,b,c,[ldwork,lzwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb05ad_nh"...
                g,hinvb,info = tb05ad_nh(n,m,p,freq,a,b,c,[ldwork,lzwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tc01od_l"...
                pcoeff,qcoeff,info = tc01od_l(m,p,indlim,pcoeff,qcoeff)
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tc01od_r"...
                info = tc01od_r(p,indlim,pcoeff,qcoeff,[m])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tc04ad_l"...
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
                n,rcond,a,b,c,d,info = tc04ad_l(m,p,index_bn,pcoeff,qcoeff,n,[ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tc04ad_r"...
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
                n,rcond,a,b,c,d,info = tc04ad_r(m,p,index_bn,pcoeff,qcoeff,n,[ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "td04ad_r"...
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
                nr,a,b,c,d,info = td04ad_r(m,p,index_bn,dcoeff,ucoeff,nr,[tol,ldwork,overwrite_dcoeff,overwrite_ucoeff])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "td04ad_c"...
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
                nr,a,b,c,d,info = td04ad_c(m,p,index_bn,dcoeff,ucoeff,nr,[tol,ldwork,overwrite_dcoeff,overwrite_ucoeff])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tf01md"...
                x,y,info = tf01md(n,m,p,ny,a,b,c,d,u,x,[overwrite_x])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tf01rd"...
                h,info = tf01rd(na,nb,nc,n,a,b,c,[ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb01pd"...
                a,b,c,nr,info = tb01pd(n,m,p,a,b,c,[job,equil,tol,ldwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tg01ad"...
                a,e,b,c,lscale,rscale,info = tg01ad(job,l,n,m,p,thresh,a,e,b,c,[overwrite_a,overwrite_e,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tg01fd_nn"...
                a,e,b,c,ranke,rnka22,info = tg01fd_nn(joba,l,n,m,p,a,e,b,c,tol,ldwork,[overwrite_a,overwrite_e,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tg01fd_ii"...
                a,e,b,c,q,z,ranke,rnka22,info = tg01fd_ii(joba,l,n,m,p,a,e,b,c,tol,ldwork,[overwrite_a,overwrite_e,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tg01fd_uu"...
                a,e,b,c,q,z,ranke,rnka22,info = tg01fd_uu(joba,l,n,m,p,a,e,b,c,q,z,tol,ldwork,[overwrite_a,overwrite_e,overwrite_b,overwrite_c,overwrite_q,overwrite_z])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ftruefalse"...
                ftrue,ffalse = ftruefalse()
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "xerbla"...
                xerbla(srname,info)
          Wrote C/API module "_wrapper" to file "./_wrappermodule.c"
          Fortran 77 wrappers are saved to "./_wrapper-f2pywrappers.f"
          Building module "SLYCOT"...
          Wrote C/API module "SLYCOT" to file "./SLYCOTmodule.c"
      [  0%] Building C object slycot/CMakeFiles/_wrapper.dir/_wrappermodule.c.o
      /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/_wrappermodule.c: In Funktion »f2py_rout__wrapper_ab01nd«:
      /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/_wrappermodule.c:772:12: Fehler: ungültiger Typ »int« für unäres »*«
        772 |     ldz = (*jobz=='N' ? 1 : n);
            |            ^~~~~
      /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/_wrappermodule.c: In Funktion »f2py_rout__wrapper_mb03rd«:
      /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/_wrappermodule.c:6864:18: Fehler: ungültiger Typ »int« für unäres »*«
       6864 |     CHECKSCALAR((*jobx == 'N' && ldx>=1) || (*jobx == 'U' && ldx >= max(1,n)),"(*jobx == 'N' && ldx>=1) || (*jobx == 'U' && ldx >= max(1,n))","hidden ldx","mb03rd:ldx=%d",ldx) {
            |                  ^~~~~
      /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/_wrappermodule.c:100:11: Anmerkung: in Definition des Makros »CHECKSCALAR«
        100 |     if (!(check)) {\
            |           ^~~~~
      /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/_wrappermodule.c:6864:46: Fehler: ungültiger Typ »int« für unäres »*«
       6864 |     CHECKSCALAR((*jobx == 'N' && ldx>=1) || (*jobx == 'U' && ldx >= max(1,n)),"(*jobx == 'N' && ldx>=1) || (*jobx == 'U' && ldx >= max(1,n))","hidden ldx","mb03rd:ldx=%d",ldx) {
            |                                              ^~~~~
      /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/_wrappermodule.c:100:11: Anmerkung: in Definition des Makros »CHECKSCALAR«
        100 |     if (!(check)) {\
            |           ^~~~~
      gmake[2]: *** [slycot/CMakeFiles/_wrapper.dir/build.make:88: slycot/CMakeFiles/_wrapper.dir/_wrappermodule.c.o] Fehler 1
      gmake[1]: *** [CMakeFiles/Makefile2:171: slycot/CMakeFiles/_wrapper.dir/all] Fehler 2
      gmake: *** [Makefile:136: all] Fehler 2
      Traceback (most recent call last):
        File "/tmp/pip-build-env-_7jfm_0f/overlay/lib/python3.10/site-packages/skbuild/setuptools_wrap.py", line 640, in setup
          cmkr.make(make_args, install_target=cmake_install_target, env=env)
        File "/tmp/pip-build-env-_7jfm_0f/overlay/lib/python3.10/site-packages/skbuild/cmaker.py", line 684, in make
          self.make_impl(clargs=clargs, config=config, source_dir=source_dir, install_target=install_target, env=env)
        File "/tmp/pip-build-env-_7jfm_0f/overlay/lib/python3.10/site-packages/skbuild/cmaker.py", line 715, in make_impl
          raise SKBuildError(
      
      An error occurred while building with CMake.
        Command:
          cmake --build . --target install --config Release --
        Install target:
          install
        Source directory:
          /home/ben/src/Slycot
        Working directory:
          /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build
      Please check the install target is valid and see CMake's output for more information.
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for slycot
Failed to build slycot
ERROR: Failed to build one or more wheels
[ben@skylab:~/src/Slycot]% pip list                                                                                                                                [1]

```

</details>


Discussion / hints:
FWIW, with numpy 1.23.5, `ab01nd` builds, and its tests pass, with this diff, inspired by `https://github.com/scipy/scipy/blob/main/scipy/linalg/flapack_gen.pyf.src#L534` which was noted as (eventually) working in the numpy PR for this.

```diff
diff --git a/slycot/src/analysis.pyf b/slycot/src/analysis.pyf
index 633ff6e..9945ca0 100644
--- a/slycot/src/analysis.pyf
+++ b/slycot/src/analysis.pyf
@@ -11,7 +11,7 @@ subroutine ab01nd(jobz,n,m,a,lda,b,ldb,ncont,indcon,nblk,z,ldz,tau,tol,iwork,dwo
     integer intent(out) :: indcon
     integer intent(out),dimension(n),depend(n) :: nblk
     double precision intent(out),dimension(ldz,n),depend(n,ldz) :: z
-    integer intent(hide),depend(n, jobz) :: ldz = (*jobz == 'N' ? 1 : n)
+    integer intent(hide),depend(n, jobz) :: ldz = (jobz == 'N' ? 1 : n)
     double precision intent(out),dimension(n),depend(n) :: tau
     double precision :: tol = 0
     integer intent(hide,cache),dimension(m),depend(m) :: iwork
```

There is something wrong with my setup, though, since with or without the above, `test_xerbla_override` fails.

I presume numpy 1.24 must be installed from PyPI, I haven't tried that yet.
hm, I was too hasty; maybe the tests are incomplete?

```
/home/rory/src/slycot/_skbuild/linux-x86_64-3.11/cmake-build/slycot/_wrappermodule.c:738:16: warning: comparison between pointer and integer
  738 |     ldz = (jobz=='N' ? 1 : n);
```
with *this* diff, both tests in test_mb03rd fail.

```
iff --git a/slycot/src/analysis.pyf b/slycot/src/analysis.pyf
index 633ff6e..9945ca0 100644
--- a/slycot/src/analysis.pyf
+++ b/slycot/src/analysis.pyf
@@ -11,7 +11,7 @@ subroutine ab01nd(jobz,n,m,a,lda,b,ldb,ncont,indcon,nblk,z,ldz,tau,tol,iwork,dwo
     integer intent(out) :: indcon
     integer intent(out),dimension(n),depend(n) :: nblk
     double precision intent(out),dimension(ldz,n),depend(n,ldz) :: z
-    integer intent(hide),depend(n, jobz) :: ldz = (*jobz == 'N' ? 1 : n)
+    integer intent(hide),depend(n, jobz) :: ldz = (jobz == 'N' ? 1 : n)
     double precision intent(out),dimension(n),depend(n) :: tau
     double precision :: tol = 0
     integer intent(hide,cache),dimension(m),depend(m) :: iwork
diff --git a/slycot/src/math.pyf b/slycot/src/math.pyf
index 7dc53ff..9ed94ed 100644
--- a/slycot/src/math.pyf
+++ b/slycot/src/math.pyf
@@ -20,7 +20,7 @@ subroutine mb03rd(jobx,sort,n,pmax,a,lda,x,ldx,nblcks,blsize,wr,wi,tol,dwork,inf
   double precision intent(in,out,copy),dimension(lda,n),depend(n) :: a
   integer intent(hide),check(lda>=max(1,n)),depend(a,n) :: lda=shape(a,0)
   double precision intent(in,out,copy),dimension(ldx,n),depend(n) :: x
-  integer intent(hide),check((*jobx == 'N' && ldx>=1) || (*jobx == 'U' && ldx >= max(1,n))),depend(x,n,jobx) :: ldx=shape(x,0)
+  integer intent(hide),check((jobx == 'N' && ldx>=1) || (jobx == 'U' && ldx >= max(1,n))),depend(x,n,jobx) :: ldx=shape(x,0)
   integer intent(out) :: nblcks
   integer intent(out),dimension(n) :: blsize
   double precision intent(out),dimension(n) :: wr
```

Fix patch:
diff --git a/.github/conda-env/build-env.yml b/.github/conda-env/build-env.yml
index d932718f..f7597364 100644
--- a/.github/conda-env/build-env.yml
+++ b/.github/conda-env/build-env.yml
@@ -1,4 +1,4 @@
 name: build-env
 dependencies:
   - boa
-  - numpy <1.24
+  - numpy !=1.23.0
diff --git a/conda-recipe/meta.yaml b/conda-recipe/meta.yaml
index 8ee41ce3..1f3314db 100644
--- a/conda-recipe/meta.yaml
+++ b/conda-recipe/meta.yaml
@@ -27,7 +27,7 @@ requirements:
     - libcblas * *netlib
     - liblapack * *netlib
     - python
-    - numpy <1.24
+    - numpy !=1.23.0
     - pip
     - scikit-build >=0.15
     - setuptools >=45
diff --git a/pyproject.toml b/pyproject.toml
index cb13a95e..94af52dd 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -5,8 +5,7 @@ requires = [
     "wheel",
     "scikit-build>=0.15",
     "cmake>=3.14",
-    # python-control/Slycot/issues/187
-    "numpy<1.24"]
+    "numpy!=1.23.0"]
 build-backend = "setuptools.build_meta"
 
 [project]
diff --git a/slycot/CMakeLists.txt b/slycot/CMakeLists.txt
index 46980725..eb49edd1 100644
--- a/slycot/CMakeLists.txt
+++ b/slycot/CMakeLists.txt
@@ -647,8 +647,7 @@ set(CMAKE_Fortran_FLAGS )
 add_custom_target(wrapper ALL DEPENDS ${SLICOT_FSOURCE} ${SLYCOT_FSOURCE})
 add_custom_command(
   OUTPUT _wrappermodule.c _wrapper-f2pywrappers.f
-  COMMAND ${F2PY_EXECUTABLE} -m SLYCOT
-  ${CMAKE_CURRENT_SOURCE_DIR}/${F2PYSOURCE}
+  COMMAND ${F2PY_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${F2PYSOURCE}
   DEPENDS ${F2PYSOURCE_DEPS} ${F2PYSOURCE}
 )
 


Test patch:
diff --git a/.github/conda-env/test-env.yml b/.github/conda-env/test-env.yml
index ac47f1ed..7d69d330 100644
--- a/.github/conda-env/test-env.yml
+++ b/.github/conda-env/test-env.yml
@@ -8,4 +8,4 @@ dependencies:
   - pytest-cov
   - pytest-timeout
   - coverage
-  - coveralls
+  - coveralls >= 3.3