Index: /LMDZ6/trunk/libf/phylmd/phyetat0_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/phyetat0_mod.F90	(revision 4578)
+++ /LMDZ6/trunk/libf/phylmd/phyetat0_mod.F90	(revision 4579)
@@ -332,6 +332,7 @@
   found=phyetat0_get(snow_fall,"snow_f","snow fall",0.)
   found=phyetat0_get(rain_fall,"rain_f","rain fall",0.)
-  found=phyetat0_get(bs_fall,"bs_f","blowing snow fall",0.)
-
+  IF (ok_bs) THEN
+     found=phyetat0_get(bs_fall,"bs_f","blowing snow fall",0.)
+  ENDIF
 !=======================================================================
 ! Radiation
@@ -390,5 +391,4 @@
   ancien_ok=ancien_ok.AND.phyetat0_get(ql_ancien,"QLANCIEN","QLANCIEN",0.)
   ancien_ok=ancien_ok.AND.phyetat0_get(qs_ancien,"QSANCIEN","QSANCIEN",0.)
-  ancien_ok=ancien_ok.AND.phyetat0_get(qbs_ancien,"QBSANCIEN","QBSANCIEN",0.)
   ancien_ok=ancien_ok.AND.phyetat0_get(rneb_ancien,"RNEBANCIEN","RNEBANCIEN",0.)
   ancien_ok=ancien_ok.AND.phyetat0_get(u_ancien,"UANCIEN","UANCIEN",0.)
@@ -397,6 +397,9 @@
   ancien_ok=ancien_ok.AND.phyetat0_get(prlw_ancien,"PRLWANCIEN","PRLWANCIEN",0.)
   ancien_ok=ancien_ok.AND.phyetat0_get(prsw_ancien,"PRSWANCIEN","PRSWANCIEN",0.)
-  ancien_ok=ancien_ok.AND.phyetat0_get(prsw_ancien,"PRBSWANCIEN","PRBSWANCIEN",0.)
-
+
+  IF (ok_bs) THEN
+     ancien_ok=ancien_ok.AND.phyetat0_get(qbs_ancien,"QBSANCIEN","QBSANCIEN",0.)
+     ancien_ok=ancien_ok.AND.phyetat0_get(prbsw_ancien,"PRBSWANCIEN","PRBSWANCIEN",0.)
+  ENDIF
 
   ! Ehouarn: addtional tests to check if t_ancien, q_ancien contain
@@ -406,12 +409,17 @@
        (maxval(ql_ancien).EQ.minval(ql_ancien))     .OR. &
        (maxval(qs_ancien).EQ.minval(qs_ancien))     .OR. &
-       (maxval(qbs_ancien).EQ.minval(qbs_ancien))    .OR. &
        (maxval(rneb_ancien).EQ.minval(rneb_ancien)) .OR. &
        (maxval(prw_ancien).EQ.minval(prw_ancien))   .OR. &
        (maxval(prlw_ancien).EQ.minval(prlw_ancien)) .OR. &
        (maxval(prsw_ancien).EQ.minval(prsw_ancien)) .OR. &
-       (maxval(prbsw_ancien).EQ.minval(prbsw_ancien)) .OR. &
        (maxval(t_ancien).EQ.minval(t_ancien)) ) THEN
     ancien_ok=.false.
+  ENDIF
+
+  IF (ok_bs) THEN
+    IF ( (maxval(qbs_ancien).EQ.minval(qbs_ancien))       .OR. &
+         (maxval(prbsw_ancien).EQ.minval(prbsw_ancien)) ) THEN
+       ancien_ok=.false.
+    ENDIF
   ENDIF
 
Index: /LMDZ6/trunk/libf/phylmdiso/phyetat0_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmdiso/phyetat0_mod.F90	(revision 4578)
+++ /LMDZ6/trunk/libf/phylmdiso/phyetat0_mod.F90	(revision 4579)
@@ -348,5 +348,8 @@
   found=phyetat0_get(snow_fall,"snow_f","snow fall",0.)
   found=phyetat0_get(rain_fall,"rain_f","rain fall",0.)
-  found=phyetat0_get(bs_fall,"bs_f","blowing snow fall",0.)
+  IF (ok_bs) THEN
+     found=phyetat0_get(bs_fall,"bs_f","blowing snow fall",0.)
+  ENDIF
+
 
 !=======================================================================
@@ -404,5 +407,4 @@
   ancien_ok=ancien_ok.AND.phyetat0_get(ql_ancien,"QLANCIEN","QLANCIEN",0.)
   ancien_ok=ancien_ok.AND.phyetat0_get(qs_ancien,"QSANCIEN","QSANCIEN",0.)
-  ancien_ok=ancien_ok.AND.phyetat0_get(qbs_ancien,"QBSANCIEN","QBSANCIEN",0.)
   ancien_ok=ancien_ok.AND.phyetat0_get(rneb_ancien,"RNEBANCIEN","RNEBANCIEN",0.)
   ancien_ok=ancien_ok.AND.phyetat0_get(u_ancien,"UANCIEN","UANCIEN",0.)
@@ -411,5 +413,10 @@
   ancien_ok=ancien_ok.AND.phyetat0_get(prlw_ancien,"PRLWANCIEN","PRLWANCIEN",0.)
   ancien_ok=ancien_ok.AND.phyetat0_get(prsw_ancien,"PRSWANCIEN","PRSWANCIEN",0.)
-  ancien_ok=ancien_ok.AND.phyetat0_get(prsw_ancien,"PRBSWANCIEN","PRBSWANCIEN",0.)
+
+  IF (ok_bs) THEN
+     ancien_ok=ancien_ok.AND.phyetat0_get(qbs_ancien,"QBSANCIEN","QBSANCIEN",0.)
+     ancien_ok=ancien_ok.AND.phyetat0_get(prbsw_ancien,"PRBSWANCIEN","PRBSWANCIEN",0.)
+  ENDIF
+
 
   ! Ehouarn: addtional tests to check if t_ancien, q_ancien contain
@@ -419,13 +426,19 @@
        (maxval(ql_ancien).EQ.minval(ql_ancien))     .OR. &
        (maxval(qs_ancien).EQ.minval(qs_ancien))     .OR. &
-       (maxval(qbs_ancien).EQ.minval(qbs_ancien))   .OR. &
        (maxval(rneb_ancien).EQ.minval(rneb_ancien)) .OR. &
        (maxval(prw_ancien).EQ.minval(prw_ancien))   .OR. &
        (maxval(prlw_ancien).EQ.minval(prlw_ancien)) .OR. &
        (maxval(prsw_ancien).EQ.minval(prsw_ancien)) .OR. &
-       (maxval(prbsw_ancien).EQ.minval(prbsw_ancien)) .OR. &
        (maxval(t_ancien).EQ.minval(t_ancien)) ) THEN
     ancien_ok=.false.
   ENDIF
+
+  IF (ok_bs) THEN
+    IF ( (maxval(qbs_ancien).EQ.minval(qbs_ancien))       .OR. &
+         (maxval(prbsw_ancien).EQ.minval(prbsw_ancien)) ) THEN
+       ancien_ok=.false.
+    ENDIF
+  ENDIF
+
 
   found=phyetat0_get(clwcon,"CLWCON","CLWCON",0.)
