Index: LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/coarsemission.F
===================================================================
--- LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/coarsemission.F	(revision 2175)
+++ LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/coarsemission.F	(revision 2196)
@@ -18,4 +18,5 @@
      .                             flux_sparam_ssfine,flux_sparam_sscoa,
      .                          id_prec,id_fine,id_coss,id_codu,id_scdu,
+     .                          ok_chimeredust,
      .                                                source_tr,flux_tr)
 !     .                         wth,cly,zprecipinsoil,lmt_sea_salt,
@@ -41,4 +42,5 @@
 c============================== INPUT ==================================
       INTEGER nbjour
+      LOGICAL ok_chimeredust
       REAL pdtphys  ! pas d'integration pour la physique (seconde)
       REAL t_seri(klon,klev)  ! temperature
@@ -133,4 +135,5 @@
 
 c
+      IF (.NOT. ok_chimeredust)  THEN  
       DO i=1, klon
 !!     IF (cly(i).GE.9990..OR.wth(i).GE.9990..OR.
@@ -154,29 +157,30 @@
 !         flux_sparam_ddcoa(i)=scale_param_dustcoa(iregion_dust(i)) *
 !     .                            dust_ec(i)*1.e3*0.905*1.e3
-         source_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))*
-     .                  dust_ec(i)*1.e3*0.114   ! g/m2/s
-         source_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))*
-     .                  dust_ec(i)*1.e3*0.108   ! g/m2/s   bin 0.5-3um
-         source_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))*
-     .                  dust_ec(i)*1.e3*0.778   ! g/m2/s   bin 3-15um
-! Original line (4 tracers)
-         flux_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))*
-     .                  dust_ec(i)*1.e3*0.114*1.e3  !mg/m2/s
-         flux_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))*
-     .                  dust_ec(i)*1.e3*0.108*1.e3  !mg/m2/s bin 0.5-3um
-         flux_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))*
-     .                  dust_ec(i)*1.e3*0.778*1.e3  !mg/m2/s bin 0.5-3um
+      IF(id_fine>0)     source_tr(i,id_fine)=
+     . scale_param_dustacc(iregion_dust(i))*
+     .                  dust_ec(i)*1.e3*0.093   ! g/m2/s 
+      IF(id_codu>0)   source_tr(i,id_codu)=
+     . scale_param_dustcoa(iregion_dust(i))*
+     .                  dust_ec(i)*1.e3*0.905   ! g/m2/s   bin 0.5-10um
+      IF(id_scdu>0)  source_tr(i,id_scdu)=0.   ! no supercoarse
+! Original line (4 tracers)
+       IF(id_fine>0)   flux_tr(i,id_fine)=
+     .  scale_param_dustacc(iregion_dust(i))*
+     .                  dust_ec(i)*1.e3*0.093*1.e3  !mg/m2/s
+       IF(id_codu>0)  flux_tr(i,id_codu)=
+     . scale_param_dustcoa(iregion_dust(i))*
+     .                  dust_ec(i)*1.e3*0.905*1.e3  !mg/m2/s bin 0.5-10um
+       IF(id_scdu>0) flux_tr(i,id_scdu)=0.
 
          flux_sparam_ddfine(i)=scale_param_dustacc(iregion_dust(i)) *
-     .                            dust_ec(i)*1.e3*0.114*1.e3
+     .                            dust_ec(i)*1.e3*0.093*1.e3
          flux_sparam_ddcoa(i)=scale_param_dustcoa(iregion_dust(i)) *
-     .                            dust_ec(i)*1.e3*0.108*1.e3
-         flux_sparam_ddsco(i)=scale_param_dustsco(iregion_dust(i)) *
-     .                            dust_ec(i)*1.e3*0.778*1.e3
-      ENDDO
-      
+     .                            dust_ec(i)*1.e3*0.905*1.e3
+         flux_sparam_ddsco(i)=0.
+      ENDDO
+      ENDIF
 !*****************NEW CHIMERE DUST EMISSION Sahara*****
 ! je  20140522
-      IF(.TRUE.) THEN
+      IF(ok_chimeredust) THEN
       print *,'MIX- NEW SAHARA DUST SOURCE SCHEME...'
 
@@ -195,16 +199,22 @@
       DO i=1,klon   
          if (maskd(i).gt.0) then 
-         source_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))*
+      IF(id_fine>0)    source_tr(i,id_fine)=
+     . scale_param_dustacc(iregion_dust(i))*
      .                  dustsourceacc(i)*1.e3   ! g/m2/s  bin 0.03-0.5
-         source_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))*
+      IF(id_codu>0)    source_tr(i,id_codu)=
+     . scale_param_dustcoa(iregion_dust(i))*
      .                  dustsourcecoa(i)*1.e3   ! g/m2/s   bin 0.5-3um
-         source_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))*
+      IF(id_scdu>0)   source_tr(i,id_scdu)=
+     . scale_param_dustsco(iregion_dust(i))*
      .                  dustsourcesco(i)*1.e3   ! g/m2/s   bin 3-15um
 ! Original line (4 tracers)
-         flux_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))*
+       IF(id_fine>0)  flux_tr(i,id_fine)=
+     .  scale_param_dustacc(iregion_dust(i))*
      .                  dustsourceacc(i)*1.e3*1.e3  !mg/m2/s
-         flux_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))*
+       IF(id_codu>0)  flux_tr(i,id_codu)=
+     . scale_param_dustcoa(iregion_dust(i))*
      .                  dustsourcecoa(i)*1.e3*1.e3  !mg/m2/s bin 0.5-3um
-         flux_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))*
+       IF(id_scdu>0)  flux_tr(i,id_scdu)=
+     . scale_param_dustsco(iregion_dust(i))*
      .                  dustsourcesco(i)*1.e3*1.e3  !mg/m2/s bin 3-15um
          flux_sparam_ddfine(i)=scale_param_dustacc(iregion_dust(i)) *
@@ -215,16 +225,22 @@
      .                            dustsourcesco(i)*1.e3*1.e3
          else
-         source_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))*
+        IF(id_fine>0) source_tr(i,id_fine)=
+     .  scale_param_dustacc(iregion_dust(i))*
      .                  dust_ec(i)*1.e3*0.114   ! g/m2/s
-         source_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))*
+        IF(id_codu>0) source_tr(i,id_codu)=
+     .  scale_param_dustcoa(iregion_dust(i))*
      .                  dust_ec(i)*1.e3*0.108   ! g/m2/s   bin 0.5-3um
-         source_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))*
+        IF(id_scdu>0) source_tr(i,id_scdu)=
+     .  scale_param_dustsco(iregion_dust(i))*
      .                  dust_ec(i)*1.e3*0.778   ! g/m2/s   bin 3-15um
 ! Original line (4 tracers)
-         flux_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))*
+        IF(id_fine>0) flux_tr(i,id_fine)=
+     . scale_param_dustacc(iregion_dust(i))*
      .                  dust_ec(i)*1.e3*0.114*1.e3  !mg/m2/s
-         flux_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))*
+        IF(id_codu>0) flux_tr(i,id_codu)=
+     . scale_param_dustcoa(iregion_dust(i))*
      .                  dust_ec(i)*1.e3*0.108*1.e3  !mg/m2/s bin 0.5-3um
-         flux_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))*
+        IF(id_scdu>0) flux_tr(i,id_scdu)=
+     . scale_param_dustsco(iregion_dust(i))*
      .                  dust_ec(i)*1.e3*0.778*1.e3  !mg/m2/s bin 0.5-3um
 
@@ -257,19 +273,24 @@
       ENDDO
       CALL minmaxsource(tmp_var2,qmin,qmax,'src: before SS emiss')
+      IF(id_coss>0) then
       print *,'Source = ',SUM(source_tr(:,id_coss)),
      .     MINVAL(source_tr(:,id_coss)), MAXVAL(source_tr(:,id_coss))
-!      ENDIF
+      ENDIF
 !
       DO i=1,klon
 ! Original line (4 tracers)
-         source_tr(i,id_fine)=source_tr(i,id_fine)+scale_param_ssacc*
+         IF(id_fine>0) source_tr(i,id_fine)=
+     . source_tr(i,id_fine)+scale_param_ssacc*
      .                                 lmt_sea_salt(i,1)*1.e4       !g/m2/s
 
 ! Original line (4 tracers)
-         flux_tr(i,id_fine)=flux_tr(i,id_fine)+scale_param_ssacc
+       IF(id_fine>0)  flux_tr(i,id_fine)=
+     . flux_tr(i,id_fine)+scale_param_ssacc
      .                            *lmt_sea_salt(i,1)*1.e4*1.e3      !mg/m2/s
 !
-       source_tr(i,id_coss)=scale_param_sscoa*lmt_sea_salt(i,2)*1.e4    !g/m2/s
-       flux_tr(i,id_coss)=scale_param_sscoa*lmt_sea_salt(i,2)*1.e4*1.e3 !mg/m2/s
+      IF(id_coss>0)  source_tr(i,id_coss)=
+     . scale_param_sscoa*lmt_sea_salt(i,2)*1.e4    !g/m2/s
+      IF(id_coss>0)  flux_tr(i,id_coss)=
+     . scale_param_sscoa*lmt_sea_salt(i,2)*1.e4*1.e3 !mg/m2/s
 c
          flux_sparam_ssfine(i)=scale_param_ssacc *
@@ -285,7 +306,8 @@
       ENDDO
       CALL minmaxsource(tmp_var2,qmin,qmax,'src: after SS emiss')
+      IF(id_coss>0) then
       print *,'Source = ',SUM(source_tr(:,id_coss)),
      .  MINVAL(source_tr(:,id_coss)), MAXVAL(source_tr(:,id_coss))
-!      ENDIF
+      ENDIF
 c     
 
