Index: LMDZ6/trunk/libf/phylmd/lscp_mod.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/lscp_mod.F90	(revision 4420)
+++ LMDZ6/trunk/libf/phylmd/lscp_mod.F90	(revision 4424)
@@ -241,5 +241,5 @@
 
   LOGICAL lognormale(klon)
-  LOGICAL convergence(klon)
+  LOGICAL keepgoing(klon)
   LOGICAL,SAVE :: appel1er
   !$OMP THREADPRIVATE(appel1er)
@@ -501,6 +501,4 @@
                 zq(i) = zq(i) - (zrfln(i)+zifln(i)-zrfl(i)-zifl(i)) &
                 * (RG/(paprs(i,k)-paprs(i,k+1)))*dtime
-
-                ! precip thermalization
                 zmqc(i) = zmqc(i) + (zrfln(i)+zifln(i)-zrfl(i)-zifl(i)) &
                 * (RG/(paprs(i,k)-paprs(i,k+1)))*dtime
@@ -604,5 +602,5 @@
 
         ! P2.1> With the PDFs (log-normal, bigaussian) 
-        ! cloud propertues calculation with the initial values of t and q
+        ! cloud properties calculation with the initial values of t and q
         ! ----------------------------------------------------------------
 
@@ -684,14 +682,17 @@
         ! Treatment of non-boundary layer clouds (lognormale)
         ! condensation with qsat(T) variation (adaptation)
-        ! Iterative Loop to converge towards qsat
-
+        ! Iterative resolution to converge towards qsat
+        ! with update of temperature, ice fraction and qsat at 
+        ! each iteration
+
+        ! todoan -> sensitivity to iflag_fisrtilp_qsat
         DO iter=1,iflag_fisrtilp_qsat+1
 
                 DO i=1,klon
 
-                    ! convergence = .true. until when convergence is not satisfied
-                    convergence(i)=ABS(DT(i)).GT.DDT0
-
-                    IF ((convergence(i) .OR. (n_i(i) .EQ. 0)) .AND. lognormale(i)) THEN
+                    ! keepgoing = .true. while convergence is not satisfied
+                    keepgoing(i)=ABS(DT(i)).GT.DDT0
+
+                    IF ((keepgoing(i) .OR. (n_i(i) .EQ. 0)) .AND. lognormale(i)) THEN
 
                         ! if not convergence:
@@ -705,5 +706,5 @@
                         !---------------------------------------------------------------
 
-                        ! new temperature:
+                        ! new temperature that only serves in the iteration process:
                         Tbef(i)=Tbef(i)+DT(i)
 
@@ -722,7 +723,7 @@
                   CALL icefrac_lscp(klon, zt(:),pplay(:,k)/paprs(:,1),zfice(:),dzfice(:))
 
-                  DO i=1,klon
-
-                      IF ((convergence(i) .OR. (n_i(i) .EQ. 0)) .AND. lognormale(i)) THEN
+                  DO i=1,klon !todoan : check if loop in i is needed
+
+                      IF ((keepgoing(i) .OR. (n_i(i) .EQ. 0)) .AND. lognormale(i)) THEN
 
                         zpdf_sig(i)=ratqs(i,k)*zq(i)
@@ -738,5 +739,4 @@
                         zpdf_e2(i)=1.-erf(zpdf_e2(i))
 
-                        !--ice sursaturation by Audran
                         IF ((.NOT.ok_ice_sursat).OR.(Tbef(i).GT.t_glace_min)) THEN
 
@@ -754,5 +754,5 @@
                           qss(i,k)=0.0      !--idem
 
-                        ELSE
+                       ELSE ! in case of ice supersaturation by Audran
 
                         !------------------------------------
@@ -793,8 +793,10 @@
                               -(RLSTT-RLVTT)/RCPD/(1.0+RVTMP2*(zq(i)+zmqc(i)))*rneb(i,k)      &
                               *qlbef(i)*dzfice(i)
+                        ! here we update a provisory temperature variable that only serves in the iteration
+                        ! process
                         DT(i)=num/denom
                         n_i(i)=n_i(i)+1
 
-                    ENDIF ! end convergence
+                    ENDIF ! end keepgoing
 
                 ENDDO     ! end loop on i
@@ -879,6 +881,6 @@
         
         DO i=1, klon
-                tot_znebn(i) = 1 - (1-tot_zneb(i))*(1 - max(rneb(i,k),zneb(i))) &
-                        /(1-min(zneb(i),1-smallestreal))
+                tot_znebn(i) = 1. - (1.-tot_zneb(i))*(1 - max(rneb(i,k),zneb(i))) &
+                        /(1.-min(zneb(i),1.-smallestreal))
                 d_tot_zneb(i) = tot_znebn(i) - tot_zneb(i)
                 tot_zneb(i) = tot_znebn(i)
@@ -887,5 +889,5 @@
                 !1) Cloudy to clear air
                 d_znebprecip_cld_clr(i) = znebprecipcld(i) - min(rneb(i,k),znebprecipcld(i)) 
-                IF (znebprecipcld(i) .GT. 0) THEN
+                IF (znebprecipcld(i) .GT. 0.) THEN
                         d_zrfl_cld_clr(i) = d_znebprecip_cld_clr(i)/znebprecipcld(i)*zrflcld(i) 
                         d_zifl_cld_clr(i) = d_znebprecip_cld_clr(i)/znebprecipcld(i)*ziflcld(i) 
