diff --git a/src/MNH/compute_spectre.f90 b/src/MNH/compute_spectre.f90
index 294453d7868b757c5bfd1dcbafcf8549dd9b493a..c900a114d2a99362b45b62ccd50850e523dc86bf 100644
--- a/src/MNH/compute_spectre.f90
+++ b/src/MNH/compute_spectre.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2022 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2023 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -94,11 +94,6 @@ INTEGER :: IKU          ! size of the arrays along z
 !
 INTEGER :: JI,JJ,JK     ! loop indexes along x, y, z respectively
 !
-INTEGER :: ILOTX,ILOTY  ! number of data vectors along x, y resp. computed 
-                        ! in parallel during the FFT process 
-INTEGER :: INC2X,INC2Y  ! increment between the start of one data vector and 
-                        ! the next for the FFT along x,y resp.
-!
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZWORKX ! work array used by
 ! the FFT. It has been enlarged in order to be sufficient for 2D and 3D cases
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZWORKY ! work array used by
@@ -244,24 +239,6 @@ ENDIF
 !
 !-------------------------------------------------------------------------------
 !
-!*       3.    COMPUTE THE ARRAY INCREMENTS FOR THE FFT
-!              ----------------------------------------
-!
-IF(.NOT. L2D) THEN
-!
-  ILOTX = IJX*IKU
-  INC2X = IIX
-!
-  ILOTY = IIY*IKU
-  INC2Y = IJY
-!
-ELSE
-!
-  ILOTX = IKU
-  INC2X = IIX*IJX
-ENDIF
-!-------------------------------------------------------------------------------
-!
 !*      4.    FORM HOMOGENEOUS BOUNDARY CONDITIONS FOR A NONCYCLIC CASE
 !             ---------------------------------------------------------
 !
@@ -281,7 +258,7 @@ CALL REMAP_2WAY_X_ll(ZY,ZBAND_X,IINFO_ll)
 !             ---------------------------
 !
 !
-CALL FFT55( ZBAND_X(1:,1:,IKB-1:), ZWORKX, ZTRIGSX, IIFAXX, INC2X, IIMAX, ILOTX, -1 )
+CALL FFT55( ZBAND_X(1:,1:,IKB-1:), ZWORKX, ZTRIGSX, IIFAXX, -1 )
 !
 !
 ZBAND_Y=0.
@@ -293,7 +270,7 @@ IF (.NOT. L2D) THEN
 !
 CALL FAST_TRANSPOSE(ZBAND_Y,ZBAND_YT,IIY,IJY,IKU)
 !
-CALL FFT55( ZBAND_YT(1:,1:,IKB-1:), ZWORKY, ZTRIGSY, IIFAXY, INC2Y, IJMAX, ILOTY, -1 )
+CALL FFT55( ZBAND_YT(1:,1:,IKB-1:), ZWORKY, ZTRIGSY, IIFAXY, -1 )
 !
 END IF    
 !
@@ -412,7 +389,7 @@ IF(LSTAT) THEN
   !*	7.1 Second statistics
   !APPLY A COMPLEX TO REAL FFT
   IF (.NOT. L2D) THEN
-    CALL FFT55( ZBAND_YT(1:,1:,IKB-1:), ZWORKY, ZTRIGSY, IIFAXY, INC2Y, IJMAX, ILOTY, +1 )
+    CALL FFT55( ZBAND_YT(1:,1:,IKB-1:), ZWORKY, ZTRIGSY, IIFAXY, +1 )
     ! array transposition J --> I
     CALL FAST_TRANSPOSE(ZBAND_YT,ZBAND_Y,IJY,IIY,IKU)
   ENDIF
@@ -423,7 +400,7 @@ IF(LSTAT) THEN
   CALL REMAP_Y_X_ll(ZBAND_Y,ZBAND_X,IINFO_ll)
   !
   !
-  CALL FFT55( ZBAND_X(1:,1:,IKB-1:), ZWORKX, ZTRIGSX, IIFAXX, INC2X, IIMAX, ILOTX, +1 )
+  CALL FFT55( ZBAND_X(1:,1:,IKB-1:), ZWORKX, ZTRIGSX, IIFAXX, +1 )
   !
   !RETURN TO A NON HOMOGENEOUS NEUMAN CONDITION FOR NON-CYCLIC CASES
   ! Transposition + shift X -> 2way
diff --git a/src/MNH/fft55.f90 b/src/MNH/fft55.f90
index 5e677ef09ca6a9d18f173d922f5dc6d211eb2ed2..b6908c37ff970e7815f84ff77590e10f42ccbbb8 100644
--- a/src/MNH/fft55.f90
+++ b/src/MNH/fft55.f90
@@ -15,9 +15,9 @@ PUBLIC :: FFT55
 
 CONTAINS
 
-!     ######spl
-      SUBROUTINE FFT55(PA,PWORK,PTRIGS,KIFAX,KJUMP,KN,KLOT,KISIGN)
-!     #################################################################
+!     ####################################################
+      SUBROUTINE FFT55( PA, PWORK, PTRIGS, KIFAX, KISIGN )
+!     ####################################################
 !
 !!****  *FFT55 * - multiple fast real staggered (shifted) cosine transform
 !!
@@ -83,6 +83,9 @@ CONTAINS
 !              ------------
 !
 !
+USE MODD_CONF,       ONLY: L2D
+USE MODD_PARAMETERS, ONLY: JPHEXT
+
 USE MODE_FFT, ONLY: FFT991
 USE MODE_MPPDB
 
@@ -97,13 +100,6 @@ REAL, DIMENSION(:), INTENT(IN) :: PTRIGS         ! previously prepared list of
 INTEGER, DIMENSION(19), INTENT(IN) :: KIFAX       ! previously prepared list of
                                                  ! factors of N
 !
-INTEGER, INTENT(IN) :: KJUMP             ! increment between the start of each
-                                         ! data vector
-!
-INTEGER, INTENT(IN) :: KN                ! length of each data vector
-!
-INTEGER, INTENT(IN) :: KLOT              ! number of data vectors
-!
 INTEGER, INTENT(IN) :: KISIGN  ! +1 for transform from spectral to gridpoint
                                ! -1 for transform from gridpoint to spectral
 !
@@ -114,6 +110,9 @@ REAL, DIMENSION(:,:,:), CONTIGUOUS, TARGET, INTENT(INOUT) :: PA ! input and outp
 !*       0.2   declarations of local variables
 !
 !
+INTEGER :: IJUMP ! increment between the start of each data vector
+INTEGER :: ILOT  ! number of data vectors
+INTEGER :: IN    ! length of each data vector
 INTEGER :: INH, INN, INBLOX, INVEX, ISTART, IJA, IJB, IIA,IIB, IIS
 INTEGER :: IJA0, IJB0, IIA0, IIB0    ! cvj to promote vectorization
 INTEGER :: IEVEN ! evenness flag
@@ -134,20 +133,28 @@ IF (MPPDB_INITIALIZED) THEN
   CALL MPPDB_CHECK( KIFAX, "FFT55 beg:KIFAX" )
   !Check all INOUT arrays
   CALL MPPDB_CHECK( PA, "FFT55 beg:PA" )
+IF ( .NOT. L2D ) THEN
+  IJUMP = SIZE( PA, 1 )
+  ILOT  = SIZE( PA, 2 ) * SIZE( PA, 3 )
+ELSE
+  IJUMP = SIZE( PA, 1 ) * SIZE( PA, 2 )
+  ILOT  = SIZE( PA, 3 )
 END IF
 
-ZA(1:KJUMP*KLOT) => PA(:,:,:)
-ZWORK(1:KJUMP*KLOT) => PWORK(:,:,:)
+IN = SIZE( PA, 1 ) - 2 * JPHEXT
+
+ZA(1:IJUMP*ILOT) => PA(:,:,:)
+ZWORK(1:IJUMP*ILOT) => PWORK(:,:,:)
 
 !$acc data present( ZA, ZWORK, PTRIGS )
 !
 !*       1.    COMPUTE LOOP BOUNDS
 !              -------------------
-IEVEN=MOD(KN,2)
-INH=KN/2
-INN=2*KN
-INBLOX=1+(KLOT-1)/NVECLEN
-INVEX=KLOT-(INBLOX-1)*NVECLEN
+IEVEN=MOD(IN,2)
+INH=IN/2
+INN=2*IN
+INBLOX=1+(ILOT-1)/NVECLEN
+INVEX=ILOT-(INBLOX-1)*NVECLEN
 IF (KISIGN.EQ.1) THEN
 !
 !-------------------------------------------------------------------------------
@@ -161,25 +168,25 @@ IF (KISIGN.EQ.1) THEN
 !              -------------
 !
 !$acc kernels
-    ZSCALE=0.5*REAL(KN)
+    ZSCALE=0.5*REAL(IN)
 ! this loop works for odd and even case
 !$acc loop gang independent private( IJA, IJB, IIA0, IIB0, ZRI, ZCO )
-    DO JK=1,(KN-1)/2
+    DO JK=1,(IN-1)/2
       IJA=JK+1
-      IJB=KN+1-JK
+      IJB=IN+1-JK
 !cvj  IIA=ISTART+(IJA-1)
 !cvj  IIB=ISTART+(IJB-1)
       IIA0=ISTART+(IJA-1)
       IIB0=ISTART+(IJB-1)
       ZRI=ZSCALE*PTRIGS(INN+JK)
-      ZCO=ZSCALE*PTRIGS(INN+KN-JK)
+      ZCO=ZSCALE*PTRIGS(INN+IN-JK)
 !
 !ocl novrec
 !CDIR NODEP
 !$acc loop vector independent private( IIA, IIB, ZT1, ZT2 )
       DO JJ=1,INVEX
-        IIA=IIA0+(JJ-1)*KJUMP
-        IIB=IIB0+(JJ-1)*KJUMP
+        IIA=IIA0+(JJ-1)*IJUMP
+        IIB=IIB0+(JJ-1)*IJUMP
         ZT1 = ZRI*(ZA(IIA)+ZA(IIB)) - ZCO*(ZA(IIB)-ZA(IIA))
         ZT2 = ZRI*(ZA(IIB)-ZA(IIA)) + ZCO*(ZA(IIA)+ZA(IIB))
         ZA(IIA) = ZT1
@@ -200,8 +207,8 @@ IF (KISIGN.EQ.1) THEN
 !CDIR NODEP
 !$acc loop independent private( IIA, IIB )
     DO JJ=1,INVEX
-      IIA=IIA0+(JJ-1)*KJUMP
-      IIB=IIB0+(JJ-1)*KJUMP
+      IIA=IIA0+(JJ-1)*IJUMP
+      IIB=IIB0+(JJ-1)*IJUMP
       IF(IEVEN == 0) ZA(IIA)=ZSCALE2*ZA(IIA)
       ZA(IIB)=ZSCALE1*ZA(IIB)
 !cvj  IIA=IIA+KJUMP
@@ -214,13 +221,13 @@ IF (KISIGN.EQ.1) THEN
 !
     IIS=-1
     IIA=ISTART
-    CALL FFT991( ZA(IIA:), ZWORK(:), PTRIGS, KIFAX, KJUMP, KN, INVEX, IIS )
+    CALL FFT991( ZA(IIA:), ZWORK(:), PTRIGS, KIFAX, IJUMP, IN, INVEX, IIS )
 !
 !      2.3     postprocessing
 !              --------------
 !$acc parallel ! kernels
 !$acc loop seq
-    DO JK=2,KN,2
+    DO JK=2,IN,2
 !cvj  IJA=ISTART+(JK-1)
       IJA0=ISTART+(JK-1)
 !
@@ -228,7 +235,7 @@ IF (KISIGN.EQ.1) THEN
 !CDIR NODEP
 !$acc loop independent private( IJA )
       DO JJ=1,INVEX
-        IJA=IJA0+(JJ-1)*KJUMP
+        IJA=IJA0+(JJ-1)*IJUMP
         ZA(IJA)=ZA(IJA+1)-ZA(IJA+2)
         ZA(IJA+1)=ZA(IJA+1)+ZA(IJA+2)
 !cvj    IJA=IJA+KJUMP
@@ -236,7 +243,7 @@ IF (KISIGN.EQ.1) THEN
     ENDDO
 !$acc end parallel ! kernels
 !
-    ISTART=ISTART+INVEX*KJUMP
+    ISTART=ISTART+INVEX*IJUMP
     INVEX=NVECLEN
   ENDDO
 !
@@ -256,14 +263,14 @@ ELSE
 !cvjIIA=ISTART
 !cvjIIB=IIA+(KN-1)
     IIA0=ISTART
-    IIB0=IIA0+(KN-1)
+    IIB0=IIA0+(IN-1)
 !
 !ocl novrec
 !CDIR NODEP
 !$acc loop independent private( IIA, IIB )
     DO JJ=1,INVEX
-      IIA=IIA0+(JJ-1)*KJUMP
-      IIB=IIB0+(JJ-1)*KJUMP
+      IIA=IIA0+(JJ-1)*IJUMP
+      IIB=IIB0+(JJ-1)*IJUMP
       ZA(IIA)=2.0*ZA(IIA)
       IF(IEVEN == 0) ZA(IIB+1)=2.0*ZA(IIB)
 !cvj  IIA=IIA+KJUMP
@@ -272,7 +279,7 @@ ELSE
 !
 ! this loop works for odd and even case
 !$acc loop seq
-    DO JK=KN-2+IEVEN,2,-2
+    DO JK=IN-2+IEVEN,2,-2
 !cvj  IIA=ISTART+(JK-1)
       IIA0=ISTART+(JK-1)
 !
@@ -280,7 +287,7 @@ ELSE
 !CDIR NODEP
 !$acc loop independent private( IIA )
       DO JJ=1,INVEX
-        IIA=IIA0+(JJ-1)*KJUMP
+        IIA=IIA0+(JJ-1)*IJUMP
         ZA(IIA+2)=ZA(IIA+1)-ZA(IIA)
         ZA(IIA+1)=ZA(IIA+1)+ZA(IIA)
 !cvj    IIA=IIA+KJUMP
@@ -293,31 +300,31 @@ ELSE
 !
     IIA=ISTART
     IIS=1
-    CALL FFT991( ZA(IIA:), ZWORK(:), PTRIGS, KIFAX, KJUMP, KN, INVEX, IIS )
+    CALL FFT991( ZA(IIA:), ZWORK(:), PTRIGS, KIFAX, IJUMP, IN, INVEX, IIS )
 !
 !      3.3     postprocessing
 !              --------------
 !
-    ZSCALE=0.5/REAL(KN)
+    ZSCALE=0.5/REAL(IN)
 ! this loop works for odd and even case
 !$acc kernels present( ZA )
 !$acc loop gang independent private( IIA, IIB, IJA0, IJB0, ZRI, ZCO )
-    DO JK=1,(KN-1)/2
+    DO JK=1,(IN-1)/2
       IIA=JK+1
-      IIB=KN-JK+1
+      IIB=IN-JK+1
 !cvj  IJA=ISTART+(IIA-1)
 !cvj  IJB=ISTART+(IIB-1)
       IJA0=ISTART+(IIA-1)
       IJB0=ISTART+(IIB-1)
       ZRI=ZSCALE*PTRIGS(INN+JK)
-      ZCO=ZSCALE*PTRIGS(INN+KN-JK)
+      ZCO=ZSCALE*PTRIGS(INN+IN-JK)
 !
 !ocl novrec
 !CDIR NODEP
 !$acc loop vector independent private( IJA, IJB, ZT1, ZT2 )
       DO JJ=1,INVEX
-        IJA=IJA0+(JJ-1)*KJUMP
-        IJB=IJB0+(JJ-1)*KJUMP
+        IJA=IJA0+(JJ-1)*IJUMP
+        IJB=IJB0+(JJ-1)*IJUMP
         ZT1 = ZRI*(ZA(IJA)-ZA(IJB)) + ZCO*(ZA(IJA)+ZA(IJB))
         ZT2 = ZRI*(ZA(IJA)+ZA(IJB)) - ZCO*(ZA(IJA)-ZA(IJB))
         ZA(IJA) = ZT1
@@ -337,8 +344,8 @@ ELSE
 !CDIR NODEP
 !$acc loop independent private( IJA, IJB )
     DO JJ=1,INVEX
-      IJA=IJA0+(JJ-1)*KJUMP
-      IJB=IJB0+(JJ-1)*KJUMP
+      IJA=IJA0+(JJ-1)*IJUMP
+      IJB=IJB0+(JJ-1)*IJUMP
       IF(IEVEN == 0) ZA(IJA)=ZSCALE1*ZA(IJA)
       ZA(IJB)=ZSCALE*ZA(IJB)
 !cvj  IJA=IJA+KJUMP
@@ -346,7 +353,7 @@ ELSE
     ENDDO
 !$acc end kernels
 !
-    ISTART=ISTART+INVEX*KJUMP
+    ISTART=ISTART+INVEX*IJUMP
     INVEX=NVECLEN
   ENDDO
 !
diff --git a/src/MNH/flat_inv.f90 b/src/MNH/flat_inv.f90
index fc54320f518c934050b60be6c5ac2677e7de9612..89637dd96815bec15f114fbbd025fc1687c4593d 100644
--- a/src/MNH/flat_inv.f90
+++ b/src/MNH/flat_inv.f90
@@ -420,7 +420,7 @@ IF (HLBCX(1) == 'CYCL') THEN
     ZWORK1D( 1 : SIZE(ZWORKX) ) => ZWORKX(:,:,:)
     CALL FFT991( ZBAND1D, ZWORK1D, PTRIGSX, KIFAXX, INC2X, IIMAX, ILOTX, -1 )
 ELSE
-    CALL FFT55( ZBAND_X(1:,1:,IKB-1:), ZWORKX, PTRIGSX, KIFAXX, INC2X, IIMAX, ILOTX, -1 )
+    CALL FFT55( ZBAND_X(1:,1:,IKB-1:), ZWORKX, PTRIGSX, KIFAXX, -1 )
 END IF
 !
 !
@@ -440,7 +440,7 @@ IF (.NOT. L2D) THEN
        ZWORK1D( 1 : SIZE(ZWORKY) ) => ZWORKY(:,:,:)
        CALL FFT991( ZBAND1D, ZWORK1D, PTRIGSY, KIFAXY, INC2Y, IJMAX, ILOTY, -1 )
   ELSE
-       CALL FFT55( ZBAND_YT(1:,1:,IKB-1:), ZWORKY, PTRIGSY, KIFAXY, INC2Y, IJMAX, ILOTY, -1 )
+       CALL FFT55( ZBAND_YT(1:,1:,IKB-1:), ZWORKY, PTRIGSY, KIFAXY, -1 )
   END IF
 !
 END IF                                        
@@ -496,7 +496,7 @@ IF (.NOT. L2D) THEN
     ZWORK1D( 1 : SIZE(ZWORKY) ) => ZWORKY(:,:,:)
     CALL FFT991( ZBAND1D, ZWORK1D, PTRIGSY, KIFAXY, INC2Y, IJMAX, ILOTY, +1 )
   ELSE
-    CALL FFT55( ZBAND_YRT(1:,1:,IKB-1:), ZWORKY, PTRIGSY, KIFAXY, INC2Y, IJMAX, ILOTY, +1 )
+    CALL FFT55( ZBAND_YRT(1:,1:,IKB-1:), ZWORKY, PTRIGSY, KIFAXY, +1 )
   END IF
   ! array transposition J --> I
   CALL FAST_TRANSPOSE(ZBAND_YRT,ZBAND_YR,IJY,IIY,IKU)
@@ -515,7 +515,7 @@ IF (HLBCX(1) == 'CYCL') THEN
   ZWORK1D( 1 : SIZE(ZWORKX) ) => ZWORKX(:,:,:)
   CALL FFT991( ZBAND1D, ZWORK1D, PTRIGSX, KIFAXX, INC2X, IIMAX, ILOTX, +1 )
 ELSE
-  CALL FFT55( ZBAND_X(1:,1:,IKB-1:), ZWORKX, PTRIGSX, KIFAXX, INC2X, IIMAX, ILOTX, +1 )
+  CALL FFT55( ZBAND_X(1:,1:,IKB-1:), ZWORKX, PTRIGSX, KIFAXX, +1 )
 END IF
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/flat_invz.f90 b/src/MNH/flat_invz.f90
index fd02735299cc557efe6315163735cf29a266e39b..334d618949106bf9c36d678c75465dfa9efc373d 100644
--- a/src/MNH/flat_invz.f90
+++ b/src/MNH/flat_invz.f90
@@ -674,7 +674,7 @@ CALL PRINT_MSG( NVERB_WARNING, 'GEN', 'FLAT_INVZ', 'OpenACC: IAND(NZ_SPLITTING,1
       ZWORK1D( 1 : SIZE(ZWORKX) ) => ZWORKX(:,:,:)
       CALL FFT991( ZBAND1D, ZWORK1D, PTRIGSX, KIFAXX, INC2X, IIMAX, ILOTX, -1 )
      ELSE
-        CALL FFT55( ZBAND_X(1:,1:,IKB-1:), ZWORKX, PTRIGSX, KIFAXX, INC2X, IIMAX, ILOTX, -1 )
+        CALL FFT55( ZBAND_X(1:,1:,IKB-1:), ZWORKX, PTRIGSX, KIFAXX, -1 )
      END IF
      !
 !$acc kernels
@@ -697,8 +697,7 @@ CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'FLAT_INVZ', 'OpenACC: HLBCX(1)==CYCL not po
         ZBAND_SX_YP2_ZP1(2,:,:)                 =  ZBAND_SX_YP2_ZP1(INC2_SX_YP2_ZP1-1,:,:)
         !ZBAND_SX_YP2_ZP1(INC2_SX_YP2_ZP1-1,:,:) = 0.0
      ELSE
-        CALL FFT55(ZBAND_SX_YP2_ZP1,ZWORK_SX_YP2_ZP1,PTRIGSX,KIFAXX,INC2_SX_YP2_ZP1,  &
-             IIMAX,ILOT_SX_YP2_ZP1,-1 )
+        CALL FFT55( ZBAND_SX_YP2_ZP1, ZWORK_SX_YP2_ZP1, PTRIGSX, KIFAXX, -1 )
      END IF
 !$acc kernels
      ZBAND_SXP2_Y_ZP1(:,:,:) = 0.
@@ -727,7 +726,7 @@ CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'FLAT_INVZ', 'OpenACC: HLBCX(1)==CYCL not po
           ZWORK1D( 1 : SIZE(ZWORKY) ) => ZWORKY(:,:,:)
           CALL FFT991( ZBAND1D, ZWORK1D, PTRIGSY, KIFAXY, INC2Y, IJMAX, ILOTY, -1 )
         ELSE
-           CALL FFT55( ZBAND_YT(1:,1:,IKB-1:), ZWORKY, PTRIGSY, KIFAXY, INC2Y, IJMAX, ILOTY, -1 )
+           CALL FFT55( ZBAND_YT(1:,1:,IKB-1:), ZWORKY, PTRIGSY, KIFAXY, -1 )
         END IF
         !
      END IF
@@ -751,7 +750,7 @@ CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'FLAT_INVZ', 'OpenACC: HLBCY(1)==CYCL not po
            ZBAND_SXP2_Y_ZP1T(2,:,:)                 = ZBAND_SXP2_Y_ZP1T(INC2_SXP2_Y_ZP1-1,:,:)
            !ZBAND_SXP2_Y_ZP1T(INC2_SXP2_Y_ZP1-1,:,:) = 0.0
         ELSE 
-           CALL FFT55( ZBAND_SXP2_Y_ZP1T, ZWORK_SXP2_Y_ZP1, PTRIGSY, KIFAXY, INC2_SXP2_Y_ZP1, IJMAX, ILOT_SXP2_Y_ZP1, -1 )
+           CALL FFT55( ZBAND_SXP2_Y_ZP1T, ZWORK_SXP2_Y_ZP1, PTRIGSY, KIFAXY, -1 )
         END IF
      END IF
   END IF ! NZ_SPLITTING
@@ -885,7 +884,7 @@ CALL PRINT_MSG( NVERB_WARNING, 'GEN', 'FLAT_INVZ', 'L2D=T not tested' )
           ZWORK1D( 1 : SIZE(ZWORKY) ) => ZWORKY(:,:,:)
           CALL FFT991( ZBAND1D, ZWORK1D, PTRIGSY, KIFAXY, INC2Y, IJMAX, ILOTY, +1 )
         ELSE
-           CALL FFT55( ZBAND_YRT(1:,1:,IKB-1:), ZWORKY, PTRIGSY, KIFAXY, INC2Y, IJMAX, ILOTY, +1 )
+           CALL FFT55( ZBAND_YRT(1:,1:,IKB-1:), ZWORKY, PTRIGSY, KIFAXY, +1 )
         END IF
         ! array transposition J --> I
         CALL FAST_TRANSPOSE(ZBAND_YRT,ZBAND_YR,IJY,IIY,IKU)
@@ -904,7 +903,7 @@ CALL PRINT_MSG( NVERB_WARNING, 'GEN', 'FLAT_INVZ', 'L2D=T not tested' )
         ZWORK1D( 1 : SIZE(ZWORKX) ) => ZWORKX(:,:,:)
         CALL FFT991( ZBAND1D, ZWORK1D, PTRIGSX, KIFAXX, INC2X, IIMAX, ILOTX, +1 )
      ELSE
-        CALL FFT55( ZBAND_X(1:,1:,IKB-1:), ZWORKX, PTRIGSX, KIFAXX, INC2X, IIMAX, ILOTX, +1 )
+        CALL FFT55( ZBAND_X(1:,1:,IKB-1:), ZWORKX, PTRIGSX, KIFAXX, +1 )
      END IF
   END IF ! NZ_SPLITTING
 
@@ -940,7 +939,7 @@ CALL PRINT_MSG( NVERB_WARNING, 'GEN', 'FLAT_INVZ', 'L2D=T not tested' )
           ZWORK1D( 1 : SIZE(ZWORK_SXP2_Y_ZP1) )   => ZWORK_SXP2_Y_ZP1(:,:,:)
           CALL FFT991( ZBAND1D, ZWORK1D, PTRIGSY, KIFAXY, INC2_SXP2_Y_ZP1, IJMAX, ILOT_SXP2_Y_ZP1, +1 )
         ELSE
-           CALL FFT55( ZBAND_SXP2_Y_ZP1RT, ZWORK_SXP2_Y_ZP1, PTRIGSY, KIFAXY, INC2_SXP2_Y_ZP1, IJMAX, ILOT_SXP2_Y_ZP1, +1 )
+           CALL FFT55( ZBAND_SXP2_Y_ZP1RT, ZWORK_SXP2_Y_ZP1, PTRIGSY, KIFAXY, +1 )
         END IF
         ! array transposition J --> I
         CALL FAST_TRANSPOSE(ZBAND_SXP2_Y_ZP1RT,ZBAND_SXP2_Y_ZP1R,IJ_SXP2_Y_ZP1+2,II_SXP2_Y_ZP1,IK_SXP2_Y_ZP1)
@@ -967,7 +966,7 @@ CALL PRINT_MSG( NVERB_WARNING, 'GEN', 'FLAT_INVZ', 'L2D=T not tested' )
         ZWORK1D( 1 : SIZE(ZWORK_SX_YP2_ZP1) ) => ZWORK_SX_YP2_ZP1(:,:,:)
         CALL FFT991( ZBAND1D, ZWORK1D, PTRIGSX, KIFAXX, INC2_SX_YP2_ZP1, IIMAX, ILOT_SX_YP2_ZP1, +1 )
      ELSE
-        CALL FFT55( ZBAND_SX_YP2_ZP1, ZWORK_SX_YP2_ZP1, PTRIGSX, KIFAXX, INC2_SX_YP2_ZP1, IIMAX, ILOT_SX_YP2_ZP1, +1 )
+        CALL FFT55( ZBAND_SX_YP2_ZP1, ZWORK_SX_YP2_ZP1, PTRIGSX, KIFAXX, +1 )
      END IF
 
   END IF ! NZ_SPLITTING