Index: LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/precuremission.F
===================================================================
--- LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/precuremission.F	(revision 2175)
+++ LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/precuremission.F	(revision 2196)
@@ -107,14 +107,16 @@
       DO i=1, klon
          IF (iregion_ind(i).GT.0) THEN
-           source_tr(i,id_prec)=source_tr(i,id_prec) + fracso2emis
+       IF(id_prec>0) source_tr(i,id_prec)=source_tr(i,id_prec) 
+     .             + fracso2emis
      .             *scale_param_ind(iregion_ind(i))*lmt_so2ff_l(i)*1.e4
      .             +scale_param_ind(iregion_ind(i))*lmt_so2ff_l(i)*1.e4
      .                   *frach2sofso2            ! molec/m2/s
 c
-           source_tr(i,id_fine)=source_tr(i,id_fine)+(1-fracso2emis)
+      IF(id_fine>0) source_tr(i,id_fine)=
+     .                source_tr(i,id_fine)+(1-fracso2emis)
      .                *scale_param_ind(iregion_ind(i))*lmt_so2ff_l(i)
      .                *1.e4*masse_ammsulfate/RNAVO  ! g/m2/s
 c
-           flux_tr(i,id_prec)=flux_tr(i,id_prec) + (
+       IF(id_prec>0)   flux_tr(i,id_prec)=flux_tr(i,id_prec) + (
      .               scale_param_ind(iregion_ind(i))*(lmt_so2ff_l(i)+
      .                lmt_so2ff_h(i))
@@ -125,10 +127,11 @@
      .                )*1.e4/RNAVO*masse_s*1.e3          ! mgS/m2/s
 c
-           flux_tr(i,id_fine)=flux_tr(i,id_fine)+(1-fracso2emis)
+      IF(id_fine>0)  flux_tr(i,id_fine)=
+     . flux_tr(i,id_fine)+(1-fracso2emis)
      .               *scale_param_ind(iregion_ind(i))*(lmt_so2ff_l(i)+
      .                lmt_so2ff_h(i))
      .               *1.e4/RNAVO*masse_ammsulfate*1.e3    ! mgS/m2/s
 c
-           flux_sparam_ind(i)=flux_sparam_ind(i)+ (1-fracso2emis)
+      flux_sparam_ind(i)=flux_sparam_ind(i)+ (1-fracso2emis)
      .               *scale_param_ind(iregion_ind(i))*(lmt_so2ff_l(i)+
      .                lmt_so2ff_h(i))
@@ -136,14 +139,16 @@
          ENDIF
          IF (iregion_bb(i).GT.0) THEN
-           source_tr(i,id_prec)= source_tr(i,id_prec) + fracso2emis
+      IF(id_prec>0) source_tr(i,id_prec)= 
+     .                  source_tr(i,id_prec) + fracso2emis
      .                 *scale_param_bb(iregion_bb(i))*lmt_so2bb_l(i)
      .                   *(1.-pctsrf(i,is_oce))*1.e4
 c
-           source_tr(i,id_fine)=source_tr(i,id_fine)+(1-fracso2emis)
+      IF(id_fine>0)     source_tr(i,id_fine)=
+     .                   source_tr(i,id_fine)+(1-fracso2emis)
      .                  *scale_param_bb(iregion_bb(i))*lmt_so2bb_l(i)*
      .                   (1.-pctsrf(i,is_oce))*1.e4*
      .                   masse_ammsulfate/RNAVO  ! g/m2/s
 c
-           flux_tr(i,id_prec)=flux_tr(i,id_prec) +
+      IF(id_prec>0)     flux_tr(i,id_prec)=flux_tr(i,id_prec) +
      .               (scale_param_bb(iregion_bb(i))*lmt_so2bb_l(i)
      .                 +scale_param_bb(iregion_bb(i))*lmt_so2bb_h(i))
@@ -151,5 +156,6 @@
      .                 *1.e4/RNAVO*masse_s*1.e3          ! mgS/m2/s
 c
-           flux_tr(i,id_fine)=flux_tr(i,id_fine)+(1-fracso2emis)
+      IF(id_fine>0) flux_tr(i,id_fine)=
+     .                flux_tr(i,id_fine)+(1-fracso2emis)
      .               *(scale_param_bb(iregion_bb(i))*lmt_so2bb_l(i)
      .                +scale_param_bb(iregion_bb(i))*lmt_so2bb_h(i))
@@ -168,14 +174,17 @@
      .               *1.e4/RNAVO*masse_ammsulfate*1.e3    ! mgS/m2/s
          ENDIF
-         source_tr(i,id_prec)=source_tr(i,id_prec) + fracso2emis
+      IF(id_prec>0)   source_tr(i,id_prec)=source_tr(i,id_prec) 
+     .                 + fracso2emis
      .                 *(lmt_so2ba(i)+lmt_so2nff(i))*1.e4
      .                 +(lmt_h2sbio(i)
      .                   +lmt_dms(i)+lmt_dmsbio(i))*1.e4            ! molec/m2/s
 c
-         source_tr(i,id_fine)=source_tr(i,id_fine)+(1-fracso2emis)
+      IF(id_fine>0)   source_tr(i,id_fine)=source_tr(i,id_fine)
+     .                +(1-fracso2emis)
      .                *(lmt_so2ba(i)+lmt_so2nff(i))*1.e4*
      .                   masse_ammsulfate/RNAVO  ! g/m2/s
 c
-         flux_tr(i,id_prec)=flux_tr(i,id_prec) + (lmt_h2sbio(i)
+      IF(id_prec>0)   flux_tr(i,id_prec)=flux_tr(i,id_prec) 
+     .               + (lmt_h2sbio(i)
      .               +lmt_so2volc_cont(i)+lmt_so2volc_expl(i)
      .                 +(lmt_so2ba(i)+lmt_so2nff(i))*fracso2emis
@@ -183,5 +192,6 @@
      .              *1.e4/RNAVO*masse_s*1.e3          ! mgS/m2/s
 c
-         flux_tr(i,id_fine)=flux_tr(i,id_fine)+(1-fracso2emis)
+      IF(id_fine>0)   flux_tr(i,id_fine)=flux_tr(i,id_fine)
+     .               +(1-fracso2emis)
      .               *(lmt_so2ba(i) + lmt_so2nff(i))
      .               *1.e4/RNAVO*masse_ammsulfate*1.e3    ! mgS/m2/s
@@ -208,5 +218,5 @@
       ENDDO
       ENDDO
-
+      IF(id_prec>0) THEN
       DO i = 1, klon
         tr_seri(i,kkk_cont(i),id_prec)=tr_seri(i,kkk_cont(i),id_prec) +
@@ -215,5 +225,5 @@
      .               lmt_so2volc_expl(i)/zdz(i,kkk_expl(i))/100.*pdtphys
       ENDDO
-                                           
+      ENDIF                                           
 c  Sources hautes de SO2      
       
@@ -226,14 +236,17 @@
 c
          IF (iregion_bb(i).GT.0) THEN
-           tr_seri(i,k,id_prec)=tr_seri(i,k,id_prec) + fracso2emis
+      IF(id_prec>0)   tr_seri(i,k,id_prec)=
+     .              tr_seri(i,k,id_prec) + fracso2emis
      .              *scale_param_bb(iregion_bb(i))*lmt_so2bb_h(i)
      .              /zdz(i,k)/100.*pdtphys
 c
-           tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine) + (1.-fracso2emis)
+      IF(id_fine>0)     tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine) 
+     .              + (1.-fracso2emis)
      .              *scale_param_bb(iregion_bb(i))*lmt_so2bb_h(i)
      .              *masse_ammsulfate/RNAVO/zdz(i,k)/100.*pdtphys   !g/cm3
          ENDIF
          IF (iregion_ind(i).GT.0) THEN
-           tr_seri(i,k,id_prec)=tr_seri(i,k,id_prec) + (fracso2emis
+       IF(id_prec>0)  tr_seri(i,k,id_prec)=
+     .              tr_seri(i,k,id_prec) + (fracso2emis
      .              *scale_param_ind(iregion_ind(i))*lmt_so2ff_h(i)
      .              + frach2sofso2
@@ -241,5 +254,6 @@
      .              /zdz(i,k)/100.*pdtphys
 c
-           tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine) + (1.-fracso2emis)
+       IF(id_fine>0)    tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine) 
+     .               + (1.-fracso2emis)
      .              *scale_param_ind(iregion_ind(i))*lmt_so2ff_h(i)
      .              *masse_ammsulfate/RNAVO/zdz(i,k)/100.*pdtphys   !g/cm3
