Index: LMDZ6/branches/Ocean_skin/libf/dyn3d/vlspltqs.F
===================================================================
--- LMDZ6/branches/Ocean_skin/libf/dyn3d/vlspltqs.F	(revision 3428)
+++ LMDZ6/branches/Ocean_skin/libf/dyn3d/vlspltqs.F	(revision 4368)
@@ -4,5 +4,5 @@
        SUBROUTINE vlspltqs ( q,pente_max,masse,w,pbaru,pbarv,pdt,
      ,                                  p,pk,teta,iq             )
-       USE infotrac, ONLY: nqtot,nqdesc,iqfils
+       USE infotrac, ONLY: nqtot,tracers
 c
 c     Auteurs:   P.Le Van, F.Hourdin, F.Forget, F.Codron 
@@ -121,10 +121,8 @@
       CALL SCOPY(ijp1llm,q(1,1,iq),1,zq(1,1,iq),1)
       CALL SCOPY(ijp1llm,masse,1,zm(1,1,iq),1)
-      if (nqdesc(iq).gt.0) then  
-       do ifils=1,nqdesc(iq)
-        iq2=iqfils(ifils,iq)
+      do ifils=1,tracers(iq)%nqDescen
+        iq2=tracers(iq)%iqDescen(ifils)
         CALL SCOPY(ijp1llm,q(1,1,iq2),1,zq(1,1,iq2),1)
-       enddo  
-      endif !if (nqfils(iq).gt.0) then
+      enddo  
 
 c      call minmaxq(zq,qmin,qmax,'avant vlxqs     ')
@@ -162,17 +160,15 @@
       ENDDO
       ! CRisi: aussi pour les fils
-      if (nqdesc(iq).gt.0) then
-      do ifils=1,nqdesc(iq)
-        iq2=iqfils(ifils,iq)
+      do ifils=1,tracers(iq)%nqDescen
+        iq2=tracers(iq)%iqDescen(ifils)
         DO l=1,llm
-         DO ij=1,ip1jmp1
-           q(ij,l,iq2)=zq(ij,l,iq2)
-         ENDDO
-         DO ij=1,ip1jm+1,iip1
+          DO ij=1,ip1jmp1
+            q(ij,l,iq2)=zq(ij,l,iq2)
+          ENDDO
+          DO ij=1,ip1jm+1,iip1
             q(ij+iim,l,iq2)=q(ij,l,iq2)
-         ENDDO
+          ENDDO
         ENDDO
-      enddo !do ifils=1,nqdesc(iq)  
-      endif ! if (nqfils(iq).gt.0) then
+      enddo 
       !write(*,*) 'vlspltqs 183: fin de la routine'
 
@@ -180,5 +176,5 @@
       END
       SUBROUTINE vlxqs(q,pente_max,masse,u_m,qsat,iq)
-      USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils ! CRisi
+      USE infotrac, ONLY : nqtot,tracers ! CRisi
 
 c
@@ -483,22 +479,21 @@
 ! CRisi: appel récursif de l'advection sur les fils.
 ! Il faut faire ça avant d'avoir mis à jour q et masse
-      !write(*,*) 'vlspltqs 326: iq,nqfils(iq)=',iq,nqfils(iq) 
+      !write(*,*) 'vlspltqs 326: iq,nqChildren(iq)=',iq,
+!     &                 tracers(iq)%nqChildren
       
-      if (nqfils(iq).gt.0) then  
-       do ifils=1,nqdesc(iq)
-         iq2=iqfils(ifils,iq)
-         DO l=1,llm
+      do ifils=1,tracers(iq)%nqDescen
+        iq2=tracers(iq)%iqDescen(ifils)
+        DO l=1,llm
           DO ij=iip2,ip1jm
-           ! On a besoin de q et masse seulement entre iip2 et ip1jm 
-           masseq(ij,l,iq2)=masse(ij,l,iq)*q(ij,l,iq)
-           Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq)
+          ! On a besoin de q et masse seulement entre iip2 et ip1jm 
+            masseq(ij,l,iq2)=masse(ij,l,iq)*q(ij,l,iq)
+            Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq)
           enddo   
-         enddo
-        enddo !do ifils=1,nqdesc(iq)
-        do ifils=1,nqfils(iq)
-         iq2=iqfils(ifils,iq)
-         call vlx(Ratio,pente_max,masseq,u_mq,iq2)
-        enddo !do ifils=1,nqfils(iq)
-      endif !if (nqfils(iq).gt.0) then
+        enddo
+      enddo
+      do ifils=1,tracers(iq)%nqChildren
+        iq2=tracers(iq)%iqDescen(ifils)
+        call vlx(Ratio,pente_max,masseq,u_mq,iq2)
+      enddo
 ! end CRisi
 
@@ -523,17 +518,15 @@
       ! On calcule q entre iip2+1,ip1jm -> on fait pareil pour ratio 
       ! puis on boucle en longitude
-      if (nqdesc(iq).gt.0) then  
-       do ifils=1,nqdesc(iq)
-         iq2=iqfils(ifils,iq)  
-         DO l=1,llm
+      do ifils=1,tracers(iq)%nqDescen
+        iq2=tracers(iq)%iqDescen(ifils)
+        DO l=1,llm
           DO ij=iip2+1,ip1jm
             q(ij,l,iq2)=q(ij,l,iq)*Ratio(ij,l,iq2)            
           enddo
           DO ij=iip1+iip1,ip1jm,iip1
-             q(ij-iim,l,iq2)=q(ij,l,iq2)
-          enddo ! DO ij=ijb+iip1-1,ije,iip1
-         enddo !DO l=1,llm
-        enddo !do ifils=1,nqdesc(iq)
-      endif !if (nqfils(iq).gt.0) then
+            q(ij-iim,l,iq2)=q(ij,l,iq2)
+          enddo
+        enddo
+      enddo
 
 c     CALL SCOPY((jjm-1)*llm,q(iip1+iip1,1),iip1,q(iip2,1),iip1)
@@ -544,5 +537,5 @@
       END
       SUBROUTINE vlyqs(q,pente_max,masse,masse_adv_v,qsat,iq)
-      USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils ! CRisi
+      USE infotrac, ONLY : nqtot,tracers ! CRisi
 c
 c     Auteurs:   P.Le Van, F.Hourdin, F.Forget 
@@ -794,23 +787,21 @@
 ! CRisi: appel récursif de l'advection sur les fils.
 ! Il faut faire ça avant d'avoir mis à jour q et masse
-      !write(*,*) 'vlyqs 689: iq,nqfils(iq)=',iq,nqfils(iq) 
+      !write(*,*) 'vlyqs 689: iq,nqChildren(iq)=',iq,
+!     &              tracers(iq)%nqChildren
    
-      if (nqfils(iq).gt.0) then  
-       do ifils=1,nqdesc(iq)
-         iq2=iqfils(ifils,iq)
-         DO l=1,llm
-         DO ij=1,ip1jmp1
-           masseq(ij,l,iq2)=masse(ij,l,iq)*q(ij,l,iq)
-           Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq)     
+      do ifils=1,tracers(iq)%nqDescen
+        iq2=tracers(iq)%iqDescen(ifils)
+        DO l=1,llm
+          DO ij=1,ip1jmp1
+            masseq(ij,l,iq2)=masse(ij,l,iq)*q(ij,l,iq)
+            Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq)     
           enddo   
-         enddo
-        enddo !do ifils=1,nqdesc(iq)
-
-        do ifils=1,nqfils(iq)
-         iq2=iqfils(ifils,iq)
-         !write(*,*) 'vlyqs 783: appel rec de vly, iq2=',iq2
-         call vly(Ratio,pente_max,masseq,qbyv,iq2)
-        enddo !do ifils=1,nqfils(iq)
-      endif !if (nqfils(iq).gt.0) then
+        enddo
+      enddo
+      do ifils=1,tracers(iq)%nqChildren
+        iq2=tracers(iq)%iqDescen(ifils)
+        !write(*,*) 'vlyqs 783: appel rec de vly, iq2=',iq2
+        call vly(Ratio,pente_max,masseq,qbyv,iq2)
+      enddo
 
       DO l=1,llm
@@ -868,14 +859,12 @@
 
 ! retablir les fils en rapport de melange par rapport a l'air:
-      if (nqdesc(iq).gt.0) then  
-       do ifils=1,nqdesc(iq)
-         iq2=iqfils(ifils,iq)  
-         DO l=1,llm
+      do ifils=1,tracers(iq)%nqDescen
+        iq2=tracers(iq)%iqDescen(ifils)
+        DO l=1,llm
           DO ij=1,ip1jmp1
             q(ij,l,iq2)=q(ij,l,iq)*Ratio(ij,l,iq2)            
           enddo
-         enddo
-        enddo !do ifils=1,nqdesc(iq)
-      endif !if (nqfils(iq).gt.0) then
+        enddo
+      enddo
       !write(*,*) 'vly 879'
 
