diff --git a/control/morse_zf90.F90 b/control/morse_zf90.F90
index d5c0219ed0e4611e55073b0a20aa75ae1c589ba4..827c91e74653ca215f874e6f369dc4b8ebc4b059 100644
--- a/control/morse_zf90.F90
+++ b/control/morse_zf90.F90
@@ -407,6 +407,19 @@ module morse_z
           end function MORSE_zgetrf_incpiv_c
       end interface
 
+      interface
+         function MORSE_zgetrf_nopiv_c(M,N,A,LDA) &
+          & bind(c, name='MORSE_zgetrf_nopiv')
+            use iso_c_binding
+            implicit none
+            integer(kind=c_int) :: MORSE_zgetrf_nopiv_c
+            integer(kind=c_int), value :: M
+            integer(kind=c_int), value :: N
+            type(c_ptr), value :: A
+            integer(kind=c_int), value :: LDA
+          end function MORSE_zgetrf_nopiv_c
+      end interface
+
       interface
          function MORSE_zgetri_c(N,A,LDA,IPIV) &
           & bind(c, name='MORSE_zgetri')
@@ -1285,6 +1298,16 @@ module morse_z
           end function MORSE_zgetrf_incpiv_Tile_c
       end interface
 
+      interface
+         function MORSE_zgetrf_nopiv_Tile_c(A) &
+          & bind(c, name='MORSE_zgetrf_nopiv_Tile')
+            use iso_c_binding
+            implicit none
+            integer(kind=c_int) :: MORSE_zgetrf_nopiv_Tile_c
+            type(c_ptr), value :: A
+          end function MORSE_zgetrf_nopiv_Tile_c
+      end interface
+
       interface
          function MORSE_zgetri_Tile_c(A,IPIV) &
           & bind(c, name='MORSE_zgetri_Tile')
@@ -2044,6 +2067,18 @@ module morse_z
           end function MORSE_zgetrf_incpiv_Tile_Async_c
       end interface
 
+      interface
+         function MORSE_zgetrf_nopiv_Tile_Async_c(A,sequence,request) &
+          & bind(c, name='MORSE_zgetrf_nopiv_Tile_Async')
+            use iso_c_binding
+            implicit none
+            integer(kind=c_int) :: MORSE_zgetrf_nopiv_Tile_Async_c
+            type(c_ptr), value :: A
+            type(c_ptr), value :: sequence
+            type(c_ptr), value :: request
+          end function MORSE_zgetrf_nopiv_Tile_Async_c
+      end interface
+
       interface
          function MORSE_zgetri_Tile_Async_c(A,IPIV,W,sequence,request) &
           & bind(c, name='MORSE_zgetri_Tile_Async')
@@ -3132,6 +3167,17 @@ module morse_z
          info = MORSE_zgetrf_incpiv_c(M,N,c_loc(A),LDA,L,IPIV)
       end subroutine MORSE_zgetrf_incpiv
 
+      subroutine MORSE_zgetrf_nopiv(M,N,A,LDA,info)
+         use iso_c_binding
+         implicit none
+         integer(kind=c_int), intent(out) :: info
+         integer(kind=c_int), intent(in) :: LDA
+         integer(kind=c_int), intent(in) :: M
+         integer(kind=c_int), intent(in) :: N
+         complex(kind=c_double_complex), intent(inout), target :: A(LDA,*)
+         info = MORSE_zgetrf_nopiv_c(M,N,c_loc(A),LDA)
+      end subroutine MORSE_zgetrf_nopiv
+
       subroutine MORSE_zgetrs(trans,N,NRHS,A,LDA,IPIV,B,LDB,info)
          use iso_c_binding
          implicit none
@@ -3910,6 +3956,14 @@ module morse_z
          info = MORSE_zgetrf_incpiv_Tile_c(A,L,IPIV)
       end subroutine MORSE_zgetrf_incpiv_Tile
 
+      subroutine MORSE_zgetrf_nopiv_Tile(A,info)
+         use iso_c_binding
+         implicit none
+         integer(kind=c_int), intent(out) :: info
+         type(c_ptr), value :: A ! Arg managed by MORSE: opaque to Fortran
+         info = MORSE_zgetrf_nopiv_Tile_c(A)
+      end subroutine MORSE_zgetrf_nopiv_Tile
+
       subroutine MORSE_zgetrs_Tile(trans,A,IPIV,B,info)
          use iso_c_binding
          implicit none
@@ -4616,6 +4670,16 @@ module morse_z
          info = MORSE_zgetrf_incpiv_Tile_Async_c(A,L,IPIV,sequence,request)
       end subroutine MORSE_zgetrf_incpiv_Tile_Async
 
+      subroutine MORSE_zgetrf_nopiv_Tile_Async(A,sequence,request,info)
+         use iso_c_binding
+         implicit none
+         integer(kind=c_int), intent(out) :: info
+         type(c_ptr), value :: A ! Arg managed by MORSE: opaque to Fortran
+         type(c_ptr), value :: sequence ! Arg managed by MORSE: opaque to Fortran
+         type(c_ptr), value :: request ! Arg managed by MORSE: opaque to Fortran
+         info = MORSE_zgetrf_nopiv_Tile_Async_c(A,sequence,request)
+      end subroutine MORSE_zgetrf_nopiv_Tile_Async
+
       subroutine MORSE_zgetrs_Tile_Async(trans,A,IPIV,B,sequence,request,info)
          use iso_c_binding
          implicit none