Index: LMDZ6/trunk/libf/phydev/infotrac_phy.F90
===================================================================
--- LMDZ6/trunk/libf/phydev/infotrac_phy.F90	(revision 4236)
+++ LMDZ6/trunk/libf/phydev/infotrac_phy.F90	(revision 4240)
@@ -4,23 +4,21 @@
 MODULE infotrac_phy
 
-! Information on tracers for physics;
-! nqtot : total number of tracers and higher order of moment, water vapor and liquid included
-  INTEGER, SAVE :: nqtot
-!$OMP THREADPRIVATE(nqtot)
-
-  CHARACTER(len=4),SAVE :: type_trac
-!$OMP THREADPRIVATE(type_trac)
+   INTEGER,                 SAVE :: nqtot                       !--- Tracers nb in dynamics (incl. higher moments + H2O)
+   CHARACTER(LEN=maxlen),   SAVE :: type_trac                   !--- Keyword for tracers type
+   CHARACTER(LEN=maxlen),   SAVE, ALLOCATABLE :: types_trac(:)  !--- Parsed version (one or several components name(s))
+!$OMP THREADPRIVATE(nqtot, type_trac, types_trac)
 
 CONTAINS
 
-  SUBROUTINE init_infotrac_phy(nqtot_,type_trac_)
-  ! transfer information on tracers from dynamics to physics
-  IMPLICIT NONE
-    INTEGER,INTENT(IN) :: nqtot_
-    CHARACTER(len=4),INTENT(IN) :: type_trac_
+SUBROUTINE init_infotrac_phy(nqtot_, type_trac_)
+   USE strings_mod, ONLY: maxlen, strParse
+   IMPLICIT NONE
+   INTEGER,          INTENT(IN) :: nqtot_
+   CHARACTER(LEN=*), INTENT(IN) :: type_trac_
 
-    nqtot=nqtot_
-    type_trac=type_trac_
-  
+   nqtot = nqtot_
+   IF(strParse(type_trac, '|', types_trac)) CALL abort_physic(modname,'can''t parse "type_trac = '//TRIM(type_trac)//'"',1)
+   type_trac = type_trac_
+
   END SUBROUTINE init_infotrac_phy
 
