diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90
index d9d28aef64039c9e0a5d4a91061179ff639f3a39..8f00cebc580bf4bbe7a00c955ad007bfe8c2c088 100644
--- a/src/MNH/ini_modeln.f90
+++ b/src/MNH/ini_modeln.f90
@@ -2555,27 +2555,41 @@ RCCO2 = 360.0E-06 * 44.0E-03 / XMD
 !
 !*      17.2   Externalized surface fields
 !              ---------------------------
-IF (CPROGRAM=='MESONH') THEN
-  ! ajout flux aerosols marins
-  ALLOCATE(XFLXT_SLT(IIU,IJU,NMODE_SLT))
-  ALLOCATE(XFLX_SLT(IIU,IJU,NMODE_SLT))
-  ALLOCATE(XFLX_AER(IIU,IJU,NSV_AER))
-  ALLOCATE(XFLXT_AER(IIU,IJU,NSV_AER))
-  ALLOCATE(XFLX_DMS(IIU,IJU))
-  ALLOCATE(XFLXT_DMS(IIU,IJU))
-  XFLX_SLT(:,:,:) = 0.
-  XFLXT_SLT(:,:,:) = 0.
-  XFLX_AER(:,:,:) = 0.
-  XFLXT_AER(:,:,:) = 0.
-  XFLX_DMS(:,:) = 0.
-  XFLXT_DMS(:,:) = 0.
+IF ( CPROGRAM == 'MESONH' ) THEN
+  ! Add sea salt fluxes
+  IF ( LSALT ) THEN;
+    ALLOCATE( XFLXT_SLT(IIU, IJU, NMODE_SLT) ) ; XFLX_SLT( :,:,:) = 0.
+    ALLOCATE( XFLX_SLT (IIU, IJU, NMODE_SLT) ) ; XFLXT_SLT(:,:,:) = 0.
+  ELSE
+    ALLOCATE( XFLXT_SLT(0, 0, 0) )
+    ALLOCATE( XFLX_SLT (0, 0, 0) )
+  END IF
+  IF ( LORILAM ) THEN
+    ALLOCATE( XFLX_AER (IIU, IJU, NSV_AER) ) ; XFLX_AER (:,:,:) = 0.
+    ALLOCATE( XFLXT_AER(IIU, IJU, NSV_AER) ) ; XFLXT_AER(:,:,:) = 0.
+  ELSE
+    ALLOCATE( XFLX_AER (0, 0, 0) )
+    ALLOCATE( XFLXT_AER(0, 0, 0) )
+  END IF
+  IF ( LUSECHEM ) THEN
+    ALLOCATE( XFLX_DMS (IIU, IJU) ) ; XFLX_DMS (:,:) = 0.
+    ALLOCATE( XFLXT_DMS(IIU, IJU) ) ; XFLXT_DMS(:,:) = 0.
+  ELSE
+    ALLOCATE( XFLX_DMS (0, 0) )
+    ALLOCATE( XFLXT_DMS(0, 0) )
+  END IF
+ELSE
+  ALLOCATE( XFLXT_SLT(0, 0, 0) )
+  ALLOCATE( XFLX_SLT (0, 0, 0) )
+  ALLOCATE( XFLX_AER (0, 0, 0) )
+  ALLOCATE( XFLXT_AER(0, 0, 0) )
+  ALLOCATE( XFLX_DMS (0, 0) )
+  ALLOCATE( XFLXT_DMS(0, 0) )
 END IF
-
 !
 ALLOCATE(ZCO2(IIU,IJU))
 ZCO2(:,:) = XCCO2
 !
-
 ALLOCATE(ZDIR_ALB(IIU,IJU,NSWB_MNH))
 ALLOCATE(ZSCA_ALB(IIU,IJU,NSWB_MNH))
 ALLOCATE(ZEMIS  (IIU,IJU,NLWB_MNH))