diff --git a/src/PHYEX/turb/mode_prandtl.f90 b/src/PHYEX/turb/mode_prandtl.f90
index 02904a59aaf12cab9f0b48fe9afdbc78ac0e64fa..ec204cab3cdd956b7a03786ffdfe737467a83603 100644
--- a/src/PHYEX/turb/mode_prandtl.f90
+++ b/src/PHYEX/turb/mode_prandtl.f90
@@ -534,7 +534,7 @@ DO JSV=1,KSV
       ZWORK1(:,:) = (CST%XG *CST%XALPHAOC * PLM(:,:) * PLEPS(:,:) &
                                        / PTKEM(:,:))**2
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      CALL MZM_PHY(D,ZWORK1,ZWORK2)  
+      CALL MZM_PHY(D,ZWORK1,ZWORK2)
       IF (KRR /= 0) THEN
         !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
         ZW1(:,:) = ZWORK2(:,:) * PETHETA(:,:)
@@ -543,14 +543,16 @@ DO JSV=1,KSV
         ZW1 = ZWORK2
       END IF
     ELSE
-      !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(:,:) = (CST%XG / PTHVREF(:,:) * PLM(:,:) &
-                                      * PLEPS(:,:) / PTKEM(:,:))**2
-      !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      CALL MZM_PHY(D,ZWORK1,ZW1)  
+      !Compute only once and reuse in next JSV iterations
+      IF ( JSV == 1 ) THEN
+        !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
+        ZWORK1(:,:) = (CST%XG / PTHVREF(:,:) * PLM(:,:) * PLEPS(:,:) / PTKEM(:,:))**2
+        !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
+        CALL MZM_PHY(D,ZWORK1,ZW1)
+      END IF
       !
       CALL GX_M_M_PHY(D,OFLAT,PSVM(:,:,JSV),PDXX,PDZZ,PDZX,ZGXMM_PSV)
-      CALL GX_M_M_PHY(D,OFLAT,PTHLM,PDXX,PDZZ,PDZX,ZGXMM_PTH)
+      !Already computed CALL GX_M_M_PHY(D,OFLAT,PTHLM,PDXX,PDZZ,PDZX,ZGXMM_PTH)
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       ZWORK1(:,:) = ZGXMM_PSV(:,:) * ZGXMM_PTH(:,:)
@@ -567,7 +569,7 @@ DO JSV=1,KSV
                          ZWORK1(:,:) * ZWORK2(:,:)
                          !
       IF (KRR /= 0) THEN
-        CALL GX_M_M_PHY(D,OFLAT,PRM(:,:,1),PDXX,PDZZ,PDZX,ZGXMM_PRM)
+        !Already computed CALL GX_M_M_PHY(D,OFLAT,PRM(:,:,1),PDXX,PDZZ,PDZX,ZGXMM_PRM)
         !
         !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
         ZWORK1(:,:) = ZGXMM_PSV(:,:) * ZGXMM_PRM(:,:)
@@ -589,7 +591,7 @@ DO JSV=1,KSV
       ZWORK1(:,:) = (CST%XG *CST%XALPHAOC * PLM(:,:) * PLEPS(:,:) &
                                        / PTKEM(:,:))**2
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      CALL MZM_PHY(D,ZWORK1,ZWORK2)  
+      CALL MZM_PHY(D,ZWORK1,ZWORK2)
       IF (KRR /= 0) THEN
         !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
         ZW1(:,:) = ZWORK2(:,:) * PETHETA(:,:)
@@ -598,16 +600,18 @@ DO JSV=1,KSV
         ZW1 = ZWORK2
       END IF
     ELSE
-      !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      ZWORK1(:,:) = (CST%XG / PTHVREF(:,:) * PLM(:,:) &
-                                      * PLEPS(:,:) / PTKEM(:,:))**2
-      !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
-      CALL MZM_PHY(D,ZWORK1,ZW1)
+      !Compute only once and reuse in next JSV iterations
+      IF ( JSV == 1 ) THEN
+        !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
+        ZWORK1(:,:) = (CST%XG / PTHVREF(:,:) * PLM(:,:) * PLEPS(:,:) / PTKEM(:,:))**2
+        !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
+        CALL MZM_PHY(D,ZWORK1,ZW1)
+      END IF
       !
       CALL GX_M_M_PHY(D,OFLAT,PSVM(:,:,JSV),PDXX,PDZZ,PDZX,ZGXMM_PSV)
-      CALL GX_M_M_PHY(D,OFLAT,PTHLM,PDXX,PDZZ,PDZX,ZGXMM_PTH)
+      !Already computed CALL GX_M_M_PHY(D,OFLAT,PTHLM,PDXX,PDZZ,PDZX,ZGXMM_PTH)
       CALL GY_M_M_PHY(D,OFLAT,PSVM(:,:,JSV),PDYY,PDZZ,PDZY,ZGYMM_PSV)
-      CALL GY_M_M_PHY(D,OFLAT,PTHLM,PDYY,PDZZ,PDZY,ZGYMM_PTH)
+      !Already computed CALL GY_M_M_PHY(D,OFLAT,PTHLM,PDYY,PDZZ,PDZY,ZGYMM_PTH)
       !
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
       ZWORK1(:,:) = ZGXMM_PSV(:,:) * ZGXMM_PTH(:,:) &
@@ -616,8 +620,8 @@ DO JSV=1,KSV
       CALL MZM_PHY(D,ZWORK1,ZWORK2)
       !
       IF (KRR /= 0) THEN
-        CALL GX_M_M_PHY(D,OFLAT,PRM(:,:,1),PDXX,PDZZ,PDZX,ZGXMM_PRM)
-        CALL GY_M_M_PHY(D,OFLAT,PRM(:,:,1),PDYY,PDZZ,PDZY,ZGYMM_PRM)
+        !Already computed CALL GX_M_M_PHY(D,OFLAT,PRM(:,:,1),PDXX,PDZZ,PDZX,ZGXMM_PRM)
+        !Already computed CALL GY_M_M_PHY(D,OFLAT,PRM(:,:,1),PDYY,PDZZ,PDZY,ZGYMM_PRM)
         !
         !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
         ZWORK1(:,:) = ZGXMM_PSV(:,:) * ZGXMM_PRM(:,:) + ZGYMM_PSV(:,:) * ZGYMM_PRM(:,:)