Ignore:
Timestamp:
Dec 6, 2022, 12:01:16 AM (2 years ago)
Author:
lguez
Message:

Sync latest trunk changes to Ocean_skin

Location:
LMDZ6/branches/Ocean_skin
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Ocean_skin

  • LMDZ6/branches/Ocean_skin/libf/phylmd/Dust/phys_output_write_spl_mod.F90

    r3811 r4368  
    381381    USE pbl_surface_mod, ONLY: snow
    382382    USE indice_sol_mod, ONLY: nbsrf
    383     USE infotrac, ONLY: nqtot, nqo, nbtr, type_trac
     383    USE infotrac, ONLY: nqtot, nbtr, tracers, type_trac
    384384    USE geometry_mod, ONLY: cell_area
    385385    USE surface_data, ONLY: type_ocean, version_ocean, ok_veget, landice_opt
     
    401401!   INCLUDE "temps.h"
    402402    INCLUDE "clesphys.h"
    403     INCLUDE "thermcell.h"
     403    INCLUDE "alpale.h"
    404404    INCLUDE "compbl.h"
    405405    INCLUDE "YOMCST.h"
     
    430430    INTEGER, PARAMETER :: jjmp1=jjm+1-1/jjm
    431431    INTEGER :: itau_w
    432     INTEGER :: i, iinit, iinitend=1, iff, iq, nsrf, k, ll, naero
     432    INTEGER :: i, iinit, iinitend=1, iff, iq, itr, nsrf, k, ll, naero
    433433    REAL, DIMENSION (klon) :: zx_tmp_fi2d
    434434    REAL, DIMENSION (klon,klev) :: zx_tmp_fi3d, zpt_conv
     
    16101610#endif
    16111611!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    1612        IF (nqtot.GE.nqo+1) THEN
    1613          !AS: type_trac = 'lmdz' par defaut dans libf/dyn3d/conf_gcm.F90
    1614          !Changé par inca, repr(obus), coag(ulation), co2i(nteractif), PAS par SPLA
    1615          !Cet "if" est donc inutile : IF (type_trac == 'lmdz' .OR. type_trac == 'repr') THEN
    1616            DO iq=nqo+1,nqtot
    1617              CALL histwrite_phy(o_trac(iq-nqo), tr_seri(:,:,iq-nqo))
    1618              CALL histwrite_phy(o_dtr_vdf(iq-nqo),d_tr_cl(:,:,iq-nqo))
    1619              CALL histwrite_phy(o_dtr_the(iq-nqo),d_tr_th(:,:,iq-nqo))
    1620              CALL histwrite_phy(o_dtr_con(iq-nqo),d_tr_cv(:,:,iq-nqo))
    1621              CALL histwrite_phy(o_dtr_lessi_impa(iq-nqo),d_tr_lessi_impa(:,:,iq-nqo))
    1622              CALL histwrite_phy(o_dtr_lessi_nucl(iq-nqo),d_tr_lessi_nucl(:,:,iq-nqo))
    1623              CALL histwrite_phy(o_dtr_insc(iq-nqo),d_tr_insc(:,:,iq-nqo))
    1624              CALL histwrite_phy(o_dtr_bcscav(iq-nqo),d_tr_bcscav(:,:,iq-nqo))
    1625              CALL histwrite_phy(o_dtr_evapls(iq-nqo),d_tr_evapls(:,:,iq-nqo))
    1626              CALL histwrite_phy(o_dtr_ls(iq-nqo),d_tr_ls(:,:,iq-nqo))
    1627 !            CALL histwrite_phy(o_dtr_dyn(iq-nqo),d_tr_dyn(:,:,iq-nqo))
    1628 !            CALL histwrite_phy(o_dtr_cl(iq-nqo),d_tr_cl(:,:,iq-nqo))
    1629              CALL histwrite_phy(o_dtr_trsp(iq-nqo),d_tr_trsp(:,:,iq-nqo))
    1630              CALL histwrite_phy(o_dtr_sscav(iq-nqo),d_tr_sscav(:,:,iq-nqo))
    1631              CALL histwrite_phy(o_dtr_sat(iq-nqo),d_tr_sat(:,:,iq-nqo))
    1632              CALL histwrite_phy(o_dtr_uscav(iq-nqo),d_tr_uscav(:,:,iq-nqo))
     1612           itr = 0
     1613           DO iq = 1, nqtot
     1614             IF(.NOT.tracers(iq)%isInPhysics) CYCLE
     1615             itr = itr+1
     1616             CALL histwrite_phy(o_trac(itr), tr_seri(:,:,itr))
     1617             CALL histwrite_phy(o_dtr_vdf(itr),d_tr_cl(:,:,itr))
     1618             CALL histwrite_phy(o_dtr_the(itr),d_tr_th(:,:,itr))
     1619             CALL histwrite_phy(o_dtr_con(itr),d_tr_cv(:,:,itr))
     1620             CALL histwrite_phy(o_dtr_lessi_impa(itr),d_tr_lessi_impa(:,:,itr))
     1621             CALL histwrite_phy(o_dtr_lessi_nucl(itr),d_tr_lessi_nucl(:,:,itr))
     1622             CALL histwrite_phy(o_dtr_insc(itr),d_tr_insc(:,:,itr))
     1623             CALL histwrite_phy(o_dtr_bcscav(itr),d_tr_bcscav(:,:,itr))
     1624             CALL histwrite_phy(o_dtr_evapls(itr),d_tr_evapls(:,:,itr))
     1625             CALL histwrite_phy(o_dtr_ls(itr),d_tr_ls(:,:,itr))
     1626!            CALL histwrite_phy(o_dtr_dyn(itr),d_tr_dyn(:,:,itr))
     1627!            CALL histwrite_phy(o_dtr_cl(itr),d_tr_cl(:,:,itr))
     1628             CALL histwrite_phy(o_dtr_trsp(itr),d_tr_trsp(:,:,itr))
     1629             CALL histwrite_phy(o_dtr_sscav(itr),d_tr_sscav(:,:,itr))
     1630             CALL histwrite_phy(o_dtr_sat(itr),d_tr_sat(:,:,itr))
     1631             CALL histwrite_phy(o_dtr_uscav(itr),d_tr_uscav(:,:,itr))
    16331632             zx_tmp_fi2d=0.
    16341633             IF (vars_defined) THEN
    16351634                DO k=1,klev
    1636                    zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*tr_seri(:,k,iq-nqo)
     1635                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*tr_seri(:,k,itr)
    16371636                ENDDO
    16381637             ENDIF
    1639              CALL histwrite_phy(o_trac_cum(iq-nqo), zx_tmp_fi2d)
     1638             CALL histwrite_phy(o_trac_cum(itr), zx_tmp_fi2d)
    16401639           ENDDO
    1641          !ENDIF
    1642        ENDIF
    16431640
    16441641       IF (.NOT.vars_defined) THEN
  • LMDZ6/branches/Ocean_skin/libf/phylmd/Dust/phytracr_spl_mod.F90

    r4013 r4368  
    820820! 1/ le call phytrac se fait avec nqmax-2 donc nous avons bien
    821821! les vrais traceurs (nbtr) dans phytrac (pas la vapeur ni eau liquide)
     822!! AS : nqmax-2 devrait etre nqmax-3 apres introducton de H2Oi ;
     823!!   et c'est encore different avec le parser de DC ?
    822824!======================================================================
    823825#include "dimensions.h"
     
    827829#include "YOETHF.h"
    828830#include "paramet.h"
    829 #include "thermcell.h"
     831#include "alpale.h"
    830832
    831833!======================================================================
     
    11041106      REAL, intent(in) ::  rlon(klon)       ! longitudes pour chaque point
    11051107!
    1106       INTEGER i, k, it, j, ig
     1108      INTEGER i, k, iq, itr, j, ig
    11071109!
    11081110! DEFINITION OF DIAGNOSTIC VARIABLES
     
    12601262
    12611263#ifdef IOPHYS_DUST
    1262       do it=1,nbtr
    1263          write(str2,'(i2.2)') it
    1264          call iophys_ecrit('TRA'//str2,klev,'SOURCE','',tr_seri(:,:,it))
     1264      itr = 0
     1265      DO iq = 1, nqtot
     1266         IF(.NOT.tracers(iq)%isInPhysics) CYCLE
     1267         itr = itr+1
     1268         write(str2,'(i2.2)') itrr
     1269         call iophys_ecrit('TRA'//str2,klev,'SOURCE','',tr_seri(:,:,itr))
    12651270      enddo
    12661271#endif
     
    14141419        id_codu=-1
    14151420        id_scdu=-1
    1416        !print *,nbtr
    1417        do it=1,nbtr
    1418         print *, it, tname(it+nqo)
    1419         if (tname(it+nqo) == 'PREC' ) then
    1420             id_prec=it
    1421         endif
    1422         if (tname(it+nqo) == 'FINE' ) then
    1423             id_fine=it
    1424         endif
    1425         if (tname(it+nqo) == 'COSS' ) then
    1426             id_coss=it
    1427         endif
    1428         if (tname(it+nqo) == 'CODU' ) then
    1429             id_codu=it
    1430         endif
    1431         if (tname(it+nqo) == 'SCDU' ) then
    1432             id_scdu=it
    1433         endif
    1434        enddo
    1435        ! check consistency with dust emission scheme:
    1436        if (ok_chimeredust) then
     1421        itr = 0
     1422        do iq=1,nqtot
     1423          IF(.NOT.tracers(iq)%isInPhysics) CYCLE
     1424          itr = itr+1
     1425          print *, itr, TRIM(tracers(iq)%name)
     1426          SELECT CASE(tracers(iq)%name)
     1427            CASE('PREC'); id_prec=itr
     1428            CASE('FINE'); id_fine=itr
     1429            CASE('COSS'); id_coss=itr
     1430            CASE('CODU'); id_codu=itr
     1431            CASE('SCDU'); id_scdu=itr
     1432          END SELECT
     1433        enddo
     1434        ! check consistency with dust emission scheme:
     1435        if (ok_chimeredust) then
    14371436          if (.not.( id_scdu>0 .and. id_codu>0 .and. id_fine>0)) then
    14381437             call abort_gcm('phytracr_mod', 'pb in ok_chimdust 0',1)
    14391438          endif
    1440        else
     1439        else
    14411440          if (id_scdu>0) then
    14421441       call abort_gcm('phytracr_mod', 'pb in ok_chimdust 1 SCDU',1)
     
    15681567! JE before put in zero
    15691568      IF (lminmax) THEN
    1570         DO it=1,nbtr
    1571         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan init phytracr')
    1572         ENDDO       
    1573         DO it=1,nbtr
    1574         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'minmax init phytracr')
     1569        DO itr=1,nbtr
     1570        CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan init phytracr')
     1571        ENDDO
     1572        DO itr=1,nbtr
     1573        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'minmax init phytracr')
    15751574        ENDDO
    15761575        CALL minmaxsource(source_tr,qmin,qmax,'maxsource init phytracr')
    15771576      ENDIF
    15781577! JE   initializon to cero the tracers     
    1579 !         DO it=1, nbtr
    1580 !            tr_seri(:,:,it)=0.0
     1578!         DO itr=1,nbtr
     1579!            tr_seri(:,:,itr)=0.0
    15811580!         ENDDO
    15821581! JE end     
     
    15841583!        tr_seri(:,:,:)=0.0
    15851584!
    1586 !        DO it=1,nbtr
    1587 !           trm_aux(it)=0.0
    1588 !           src_aux(it)=0.0
    1589 !           diag_trm(it)=0.0
    1590 !           diag_drydep(it)=0.0
    1591 !           diag_wetdep(it)=0.0
    1592 !           diag_cvtdep(it)=0.0
    1593 !           diag_emissn(it)=0.0
     1585!        DO itr=1,nbtr
     1586!           trm_aux(itr)=0.0
     1587!           src_aux(itr)=0.0
     1588!           diag_trm(itr)=0.0
     1589!           diag_drydep(itr)=0.0
     1590!           diag_wetdep(itr)=0.0
     1591!           diag_cvtdep(itr)=0.0
     1592!           diag_emissn(itr)=0.0
    15941593!        ENDDO
    15951594!        diag_g2part=0.0
     
    17671766
    17681767!
    1769       DO it=1, nbtr
     1768      DO itr=1,nbtr
    17701769       DO k=1,klev
    17711770        DO i=1,klon
    1772          d_tr_cv(i,k,it)=0.
    1773          d_tr_trsp(i,k,it)=0.
    1774          d_tr_sscav(i,k,it)=0.
    1775          d_tr_sat(i,k,it)=0.
    1776          d_tr_uscav(i,k,it)=0.
    1777          d_tr(i,k,it)=0.
    1778          d_tr_insc(i,k,it)=0.
    1779          d_tr_bcscav(i,k,it)=0.
    1780          d_tr_evapls(i,k,it)=0.
    1781          d_tr_ls(i,k,it)=0.
    1782          d_tr_cl(i,k,it)=0.
    1783          d_tr_th(i,k,it)=0.
     1771         d_tr_cv(i,k,itr)=0.
     1772         d_tr_trsp(i,k,itr)=0.
     1773         d_tr_sscav(i,k,itr)=0.
     1774         d_tr_sat(i,k,itr)=0.
     1775         d_tr_uscav(i,k,itr)=0.
     1776         d_tr(i,k,itr)=0.
     1777         d_tr_insc(i,k,itr)=0.
     1778         d_tr_bcscav(i,k,itr)=0.
     1779         d_tr_evapls(i,k,itr)=0.
     1780         d_tr_ls(i,k,itr)=0.
     1781         d_tr_cl(i,k,itr)=0.
     1782         d_tr_th(i,k,itr)=0.
    17841783 
    1785          d_tr_cv_o(i,k,it)=0.
    1786          d_tr_trsp_o(i,k,it)=0.
    1787          d_tr_sscav_o(i,k,it)=0.
    1788          d_tr_sat_o(i,k,it)=0.
    1789          d_tr_uscav_o(i,k,it)=0.
    1790 
    1791 
    1792          qDi(i,k,it)=0.
    1793          qPr(i,k,it)=0.
    1794          qPa(i,k,it)=0.
    1795          qMel(i,k,it)=0.
    1796          qTrdi(i,k,it)=0.
    1797          dtrcvMA(i,k,it)=0.
    1798          zmfd1a(i,k,it)=0.
    1799          zmfdam(i,k,it)=0.
    1800          zmfphi2(i,k,it)=0.
     1784         d_tr_cv_o(i,k,itr)=0.
     1785         d_tr_trsp_o(i,k,itr)=0.
     1786         d_tr_sscav_o(i,k,itr)=0.
     1787         d_tr_sat_o(i,k,itr)=0.
     1788         d_tr_uscav_o(i,k,itr)=0.
     1789
     1790
     1791         qDi(i,k,itr)=0.
     1792         qPr(i,k,itr)=0.
     1793         qPa(i,k,itr)=0.
     1794         qMel(i,k,itr)=0.
     1795         qTrdi(i,k,itr)=0.
     1796         dtrcvMA(i,k,itr)=0.
     1797         zmfd1a(i,k,itr)=0.
     1798         zmfdam(i,k,itr)=0.
     1799         zmfphi2(i,k,itr)=0.
    18011800        END DO
    18021801       END DO
     
    18041803
    18051804
    1806       DO it=1, nbtr
     1805      DO itr=1,nbtr
    18071806       DO i=1,klon
    1808           qPrls(i,it)=0.0
    1809           dtrconv(i,it)=0.0
     1807          qPrls(i,itr)=0.0
     1808          dtrconv(i,itr)=0.0
    18101809!JE20140507<<
    1811           d_tr_dry(i,it)=0.0
    1812           flux_tr_dry(i,it)=0.0
     1810          d_tr_dry(i,itr)=0.0
     1811          flux_tr_dry(i,itr)=0.0
    18131812!JE20140507>>
    18141813       ENDDO
    18151814      ENDDO
    18161815
    1817       DO it=1, nbtr
     1816      DO itr=1,nbtr
    18181817      DO i=1, klon
    1819         his_dh(i,it)=0.0
    1820         his_dhlsc(i,it)=0.0
    1821         his_dhcon(i,it)=0.0
    1822         his_dhbclsc(i,it)=0.0
    1823         his_dhbccon(i,it)=0.0
    1824         trm(i,it)=0.0
    1825         his_th(i,it)=0.0
    1826         his_dhkecv(i,it)=0.0
    1827         his_ds(i,it)=0.0
    1828         his_dhkelsc(i,it)=0.0
     1818        his_dh(i,itr)=0.0
     1819        his_dhlsc(i,itr)=0.0
     1820        his_dhcon(i,itr)=0.0
     1821        his_dhbclsc(i,itr)=0.0
     1822        his_dhbccon(i,itr)=0.0
     1823        trm(i,itr)=0.0
     1824        his_th(i,itr)=0.0
     1825        his_dhkecv(i,itr)=0.0
     1826        his_ds(i,itr)=0.0
     1827        his_dhkelsc(i,itr)=0.0
    18291828
    18301829      ENDDO
     
    20682067!=======================================================================
    20692068!
    2070       DO it=1, nbtr
     2069      DO itr=1,nbtr
    20712070        DO j=1,klev
    20722071        DO i=1,klon
    2073            tmp_var(i,j)=tr_seri(i,j,it)
     2072           tmp_var(i,j)=tr_seri(i,j,itr)
    20742073        ENDDO
    20752074        ENDDO
     
    20772076        DO j=1,klev
    20782077        DO i=1,klon
    2079            tr_seri(i,j,it)=tmp_var(i,j)
     2078           tr_seri(i,j,itr)=tmp_var(i,j)
    20802079        ENDDO
    20812080        ENDDO
     
    20942093!
    20952094      IF (lminmax) THEN
    2096         DO it=1,nbtr
    2097         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_avt_coarem')
     2095        DO itr=1,nbtr
     2096        CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_avt_coarem')
    20982097        ENDDO       
    2099         DO it=1,nbtr
    2100         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'avt coarem')
     2098        DO itr=1,nbtr
     2099        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'avt coarem')
    21012100        ENDDO
    21022101        CALL minmaxsource(source_tr,qmin,qmax,'src: avt coarem')
     
    21312130!     .                                         MAXVAL(tr_seri(:,:,3))
    21322131#ifdef IOPHYS_DUST
    2133       do it=1,nbtr
    2134          write(str2,'(i2.2)') it
    2135          call iophys_ecrit('sav'//str2,1,'SOURCE','',source_tr(:,it))
    2136          call iophys_ecrit('fav'//str2,1,'SOURCE','',source_tr(:,it))
     2132      do itr=1,nbtr
     2133         write(str2,'(i2.2)') itr
     2134         call iophys_ecrit('sav'//str2,1,'SOURCE','',source_tr(:,itr))
     2135         call iophys_ecrit('fav'//str2,1,'SOURCE','',source_tr(:,itr))
    21372136      enddo
    2138       do it=1,nbtr
    2139          write(str2,'(i2.2)') it
    2140          call iophys_ecrit('TRB'//str2,klev,'SOURCE','',tr_seri(:,:,it))
     2137      do itr=1,nbtr
     2138         write(str2,'(i2.2)') itr
     2139         call iophys_ecrit('TRB'//str2,klev,'SOURCE','',tr_seri(:,:,itr))
    21412140      enddo
    21422141#endif
     
    21642163
    21652164#ifdef IOPHYS_DUST
    2166       do it=1,nbtr
    2167          write(str2,'(i2.2)') it
    2168          call iophys_ecrit('sap'//str2,1,'SOURCE','',source_tr(:,it))
    2169          call iophys_ecrit('fap'//str2,1,'SOURCE','',source_tr(:,it))
     2165      do itr=1,nbtr
     2166         write(str2,'(i2.2)') itr
     2167         call iophys_ecrit('sap'//str2,1,'SOURCE','',source_tr(:,itr))
     2168         call iophys_ecrit('fap'//str2,1,'SOURCE','',source_tr(:,itr))
    21702169      enddo
    21712170#endif
    21722171
    21732172      IF (lminmax) THEN
    2174         DO it=1,nbtr
    2175         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_after_coarem')
    2176         ENDDO
    2177         DO it=1,nbtr
    2178         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'after coarem')
     2173        DO itr=1,nbtr
     2174        CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after_coarem')
     2175        ENDDO
     2176        DO itr=1,nbtr
     2177        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after coarem')
    21792178        ENDDO
    21802179        CALL minmaxsource(source_tr,qmin,qmax,'src: after coarem')
     
    22482247!
    22492248      IF (lminmax) THEN
    2250         DO it=1,nbtr
    2251         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_after precur')
    2252         ENDDO
    2253         DO it=1,nbtr
    2254         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'after precur')
     2249        DO itr=1,nbtr
     2250        CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after precur')
     2251        ENDDO
     2252        DO itr=1,nbtr
     2253        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after precur')
    22552254        ENDDO
    22562255        CALL minmaxsource(source_tr,qmin,qmax,'src: after precur')
     
    22622261#ifdef IOPHYS_DUST
    22632262!
    2264       do it=1,nbtr
    2265          write(str2,'(i2.2)') it
    2266          call iophys_ecrit('tpr'//str2,1,'SOURCE','',source_tr(:,it))
    2267          call iophys_ecrit('fpr'//str2,1,'SOURCE','',flux_tr(:,it))
     2263      do itr=1,nbtr
     2264         write(str2,'(i2.2)') itr
     2265         call iophys_ecrit('tpr'//str2,1,'SOURCE','',source_tr(:,itr))
     2266         call iophys_ecrit('fpr'//str2,1,'SOURCE','',flux_tr(:,itr))
    22682267      enddo
    22692268#endif
     
    22822281!
    22832282      IF (lminmax) THEN
    2284         DO it=1,nbtr
    2285         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_after_fineem')
    2286         ENDDO
    2287         DO it=1,nbtr
    2288         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'after fineem')
     2283        DO itr=1,nbtr
     2284        CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after_fineem')
     2285        ENDDO
     2286        DO itr=1,nbtr
     2287        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after fineem')
    22892288        ENDDO
    22902289      IF (lcheckmass) THEN
    2291         DO it=1,nbtr
    2292          CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz,   &
     2290        DO itr=1,nbtr
     2291         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz,   &
    22932292           pplay,t_seri,iscm3,'after fineem')                 
    22942293        ENDDO
     
    23092308
    23102309#ifdef IOPHYS_DUST
    2311       do it=1,nbtr
    2312          write(str2,'(i2.2)') it
    2313          call iophys_ecrit('t'//str2,1,'SOURCE','',source_tr(:,it))
    2314          call iophys_ecrit('f'//str2,1,'SOURCE','',flux_tr(:,it))
     2310      do itr=1,nbtr
     2311         write(str2,'(i2.2)') itr
     2312         call iophys_ecrit('t'//str2,1,'SOURCE','',source_tr(:,itr))
     2313         call iophys_ecrit('f'//str2,1,'SOURCE','',flux_tr(:,itr))
    23152314      enddo
    23162315#endif
     
    23252324!=======================================================================
    23262325!
    2327 !        DO it=1,nbtr
    2328 !         CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz,
     2326!        DO itr=1,nbtr
     2327!         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz,
    23292328!     .      pplay,t_seri,iscm3,'')
    23302329!        ENDDO
     
    23372336      ENDIF
    23382337
    2339       DO it=1, nbtr
     2338      DO itr=1,nbtr
    23402339         DO j=1,klev
    23412340         DO i=1,klon
    2342            tmp_var(i,j)=tr_seri(i,j,it)
     2341           tmp_var(i,j)=tr_seri(i,j,itr)
    23432342         ENDDO
    23442343         ENDDO
     
    23462345         DO j=1,klev
    23472346         DO i=1,klon
    2348            tr_seri(i,j,it)=tmp_var(i,j)
     2347           tr_seri(i,j,itr)=tmp_var(i,j)
    23492348         ENDDO
    23502349         ENDDO
     
    23532352!----------------------------
    23542353      IF (lminmax) THEN
    2355         DO it=1,nbtr
    2356         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_before_depo')
    2357         ENDDO
    2358         DO it=1,nbtr
    2359         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'before depo')
     2354        DO itr=1,nbtr
     2355        CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_before_depo')
     2356        ENDDO
     2357        DO itr=1,nbtr
     2358        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'before depo')
    23602359        ENDDO
    23612360      IF (lcheckmass) THEN
    2362         DO it=1,nbtr
    2363          CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz, &
     2361        DO itr=1,nbtr
     2362         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, &
    23642363           pplay,t_seri,iscm3,'before depo')
    23652364        ENDDO
     
    23692368
    23702369#ifdef IOPHYS_DUST
    2371       do it=1,nbtr
    2372          write(str2,'(i2.2)') it
    2373          call iophys_ecrit('TRC'//str2,klev,'SOURCE','',tr_seri(:,:,it))
     2370      do itr=1,nbtr
     2371         write(str2,'(i2.2)') itr
     2372         call iophys_ecrit('TRC'//str2,klev,'SOURCE','',tr_seri(:,:,itr))
    23742373      enddo
    23752374#endif
     
    23812380!
    23822381      IF (lminmax) THEN
    2383         DO it=1,nbtr
    2384         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_after_depo')
    2385         ENDDO
    2386         DO it=1,nbtr
    2387         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'after depo')
     2382        DO itr=1,nbtr
     2383        CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after_depo')
     2384        ENDDO
     2385        DO itr=1,nbtr
     2386        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after depo')
    23882387        ENDDO
    23892388      IF (lcheckmass) THEN
    2390         DO it=1,nbtr
    2391          CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz,   &
     2389        DO itr=1,nbtr
     2390         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz,   &
    23922391           pplay,t_seri,iscm3,'after depo')
    23932392        ENDDO
     
    24112410
    24122411#ifdef IOPHYS_DUST
    2413       do it=1,nbtr
    2414          write(str2,'(i2.2)') it
    2415          call iophys_ecrit('TRD'//str2,klev,'SOURCE','',tr_seri(:,:,it))
     2412      do itr=1,nbtr
     2413         write(str2,'(i2.2)') itr
     2414         call iophys_ecrit('TRD'//str2,klev,'SOURCE','',tr_seri(:,:,itr))
    24162415      enddo
    24172416#endif
     
    24312430      END DO
    24322431!
    2433       DO it=1, nbtr
     2432      DO itr=1,nbtr
    24342433      DO j=1, klev
    24352434      DO i=1, klon
    2436         tmp_var(i,j)=tr_seri(i,j,it)
    2437         aux_var2(i)=source_tr(i,it)
     2435        tmp_var(i,j)=tr_seri(i,j,itr)
     2436        aux_var2(i)=source_tr(i,itr)
    24382437      ENDDO
    24392438      ENDDO
     
    24462445!KE
    24472446      CALL cltrac(pdtphys, coefh,t_seri,tmp_var,aux_var2,paprs,pplay,  &
    2448                  delp,aux_var3,d_tr_dry,flux_tr_dry(:,it))
     2447                 delp,aux_var3,d_tr_dry,flux_tr_dry(:,itr))
    24492448      ENDIF
    24502449
    24512450      DO i=1, klon
    24522451      DO j=1, klev
    2453         tr_seri(i,j,it)=tmp_var(i,j)
    2454         d_tr(i,j,it)=aux_var3(i,j)
    2455         d_tr_cl(i,j,it)=d_tr(i,j,it)
     2452        tr_seri(i,j,itr)=tmp_var(i,j)
     2453        d_tr(i,j,itr)=aux_var3(i,j)
     2454        d_tr_cl(i,j,itr)=d_tr(i,j,itr)
    24562455      ENDDO
    24572456      ENDDO
    24582457      DO k = 1, klev
    24592458      DO i = 1, klon
    2460          tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr(i,k,it)
     2459         tr_seri(i,k,itr) = tr_seri(i,k,itr) + d_tr(i,k,itr)
    24612460      ENDDO
    24622461      ENDDO
    24632462      print *,' AFTER Cltrac'
    24642463      IF (lminmax) THEN
    2465         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'after cltrac')
     2464        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after cltrac')
    24662465      ENDIF
    24672466      ENDDO !--end itr loop
     
    24872486      call iophys_ecrit('yv1',1,'yv1','',yv1)
    24882487      call iophys_ecrit('delp',klev,'delp','',delp)
    2489       do it=1,nbtr
    2490          write(str2,'(i2.2)') it
    2491          call iophys_ecrit('TRE'//str2,klev,'SOURCE','',tr_seri(:,:,it))
     2488      do itr=1,nbtr
     2489         write(str2,'(i2.2)') itr
     2490         call iophys_ecrit('TRE'//str2,klev,'SOURCE','',tr_seri(:,:,itr))
    24922491      enddo
    24932492#endif
     
    25062505     
    25072506       IF (lminmax) THEN
    2508         DO it=1,nbtr
    2509        CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_before therm')
    2510         ENDDO
    2511         DO it=1,nbtr
    2512         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'before therm')
     2507        DO itr=1,nbtr
     2508       CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_before therm')
     2509        ENDDO
     2510        DO itr=1,nbtr
     2511        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'before therm')
    25132512        ENDDO
    25142513      IF (lcheckmass) THEN
    2515         DO it=1,nbtr
    2516          CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz,  &
     2514        DO itr=1,nbtr
     2515         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz,  &
    25172516           pplay,t_seri,iscm3,'before therm')
    25182517        ENDDO
     
    25212520      ENDIF
    25222521
    2523       DO it=1,nbtr
     2522      DO itr=1,nbtr
    25242523         DO k=1,klev
    25252524            DO i=1,klon
    2526                tmp_var3(i,k,it)=tr_seri(i,k,it)
    2527                d_tr_th(i,k,it)=0.
    2528                tr_seri(i,k,it)=MAX(tr_seri(i,k,it),0.)
    2529 !JE: precursor >>1e10         tr_seri(i,k,it)=MIN(tr_seri(i,k,it),1.e10)
     2525               tmp_var3(i,k,itr)=tr_seri(i,k,itr)
     2526               d_tr_th(i,k,itr)=0.
     2527               tr_seri(i,k,itr)=MAX(tr_seri(i,k,itr),0.)
     2528!JE: precursor >>1e10         tr_seri(i,k,itr)=MIN(tr_seri(i,k,itr),1.e10)
    25302529            END DO
    25312530         END DO
     
    25332532
    25342533!JE  new implicit scheme 20140323
    2535       DO it=1,nbtr
     2534      DO itr=1,nbtr
    25362535        CALL thermcell_dq(klon,klev,1,pdtphys,fm_therm,entr_therm,  &
    2537                          zmasse,tr_seri(1:klon,1:klev,it),         &
    2538                          d_tr(1:klon,1:klev,it),ztra_th,0 )
     2536                         zmasse,tr_seri(1:klon,1:klev,itr),         &
     2537                         d_tr(1:klon,1:klev,itr),ztra_th,0 )
    25392538
    25402539        DO k=1,klev
    25412540           DO i=1,klon
    2542               d_tr(i,k,it)=pdtphys*d_tr(i,k,it)
    2543               d_tr_th(i,k,it)=d_tr_th(i,k,it)+d_tr(i,k,it)
    2544               tr_seri(i,k,it)=MAX(tr_seri(i,k,it)+d_tr(i,k,it),0.)
     2541              d_tr(i,k,itr)=pdtphys*d_tr(i,k,itr)
     2542              d_tr_th(i,k,itr)=d_tr_th(i,k,itr)+d_tr(i,k,itr)
     2543              tr_seri(i,k,itr)=MAX(tr_seri(i,k,itr)+d_tr(i,k,itr),0.)
    25452544              END DO
    25462545        END DO
     
    25502549! old scheme explicit
    25512550!       nsplit=10
    2552 !       DO it=1,nbtr
     2551!       DO itr=1,nbtr
    25532552!          DO isplit=1,nsplit
    25542553!              CALL dqthermcell(klon,klev,pdtphys/nsplit,
    25552554!     .            fm_therm,entr_therm,zmasse,
    2556 !     .            tr_seri(1:klon,1:klev,it),
    2557 !     .            d_tr(1:klon,1:klev,it),ztra_th)
     2555!     .            tr_seri(1:klon,1:klev,itr),
     2556!     .            d_tr(1:klon,1:klev,itr),ztra_th)
    25582557!            DO k=1,klev
    25592558!               DO i=1,klon
    2560 !                  d_tr(i,k,it)=pdtphys*d_tr(i,k,it)/nsplit
    2561 !                  d_tr_th(i,k,it)=d_tr_th(i,k,it)+d_tr(i,k,it)
    2562 !                  tr_seri(i,k,it)=MAX(tr_seri(i,k,it)+d_tr(i,k,it),0.)
     2559!                  d_tr(i,k,itr)=pdtphys*d_tr(i,k,itr)/nsplit
     2560!                  d_tr_th(i,k,itr)=d_tr_th(i,k,itr)+d_tr(i,k,itr)
     2561!                  tr_seri(i,k,itr)=MAX(tr_seri(i,k,itr)+d_tr(i,k,itr),0.)
    25632562!               END DO
    25642563!            END DO
     
    25672566!JE end modif 20140323
    25682567
    2569       DO it=1,nbtr
     2568      DO itr=1,nbtr
    25702569         DO k=1,klev
    25712570            DO i=1,klon
    2572           tmp_var(i,k)=tr_seri(i,k,it)-tmp_var3(i,k,it)
     2571          tmp_var(i,k)=tr_seri(i,k,itr)-tmp_var3(i,k,itr)
    25732572            ENDDO
    25742573         ENDDO
    25752574       IF (lminmax) THEN
    25762575      IF (lcheckmass) THEN
    2577          CALL checkmass(tmp_var(:,:),RNAVO,masse(it),zdz,  &
     2576         CALL checkmass(tmp_var(:,:),RNAVO,masse(itr),zdz,  &
    25782577           pplay,t_seri,iscm3,'dtr therm ')
    25792578      ENDIF
     
    25832582         DO k=1,klev
    25842583            DO i=1,klon
    2585                his_th(i,it)=his_th(i,it)+    &
     2584               his_th(i,itr)=his_th(i,itr)+    &
    25862585                           (tmp_var(i,k))/RNAVO*   &
    2587                      masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys
     2586                     masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys
    25882587            END DO !klon
    25892588         END DO !klev
     
    25912590      END DO !it
    25922591       IF (lminmax) THEN
    2593         DO it=1,nbtr
    2594        CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_after therm')
    2595         ENDDO
    2596         DO it=1,nbtr
    2597         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'after therm')
     2592        DO itr=1,nbtr
     2593       CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after therm')
     2594        ENDDO
     2595        DO itr=1,nbtr
     2596        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after therm')
    25982597        ENDDO
    25992598      IF (lcheckmass) THEN
    2600         DO it=1,nbtr
    2601          CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz,   &
     2599        DO itr=1,nbtr
     2600         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz,   &
    26022601           pplay,t_seri,iscm3,'after therm')
    26032602        ENDDO
     
    26242623
    26252624
    2626       DO it=1,nbtr
     2625      DO itr=1,nbtr
    26272626      DO j=1,klev
    26282627      DO i=1,klon
    2629          tmp_var(i,j)=tr_seri(i,j,it)
     2628         tmp_var(i,j)=tr_seri(i,j,itr)
    26302629      ENDDO
    26312630      ENDDO
     
    26332632      DO j=1,klev
    26342633      DO i=1,klon
    2635          tr_seri(i,j,it)=tmp_var(i,j)
     2634         tr_seri(i,j,itr)=tmp_var(i,j)
    26362635      ENDDO
    26372636      ENDDO
     
    26422641
    26432642      IF (lminmax) THEN
    2644         DO it=1,nbtr
    2645         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_before_sedi')
    2646         ENDDO
    2647         DO it=1,nbtr
    2648         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'before sedi')
     2643        DO itr=1,nbtr
     2644        CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_before_sedi')
     2645        ENDDO
     2646        DO itr=1,nbtr
     2647        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'before sedi')
    26492648        ENDDO
    26502649      IF (lcheckmass) THEN
    2651         DO it=1,nbtr
    2652          CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz,   &
     2650        DO itr=1,nbtr
     2651         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz,   &
    26532652           pplay,t_seri,iscm3,'before sedi')
    26542653        ENDDO
     
    26682667
    26692668      IF (lminmax) THEN
    2670         DO it=1,nbtr
    2671         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_after_sedi')
    2672         ENDDO
    2673         DO it=1,nbtr
    2674         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'after sedi')
     2669        DO itr=1,nbtr
     2670        CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after_sedi')
     2671        ENDDO
     2672        DO itr=1,nbtr
     2673        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after sedi')
    26752674        ENDDO
    26762675      IF (lcheckmass) THEN
    2677         DO it=1,nbtr
    2678          CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz,  &
     2676        DO itr=1,nbtr
     2677         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz,  &
    26792678           pplay,t_seri,iscm3,'after sedi')
    26802679        ENDDO
     
    26862685!=======================================================================
    26872686#ifdef IOPHYS_DUST
    2688       do it=1,nbtr
    2689          write(str2,'(i2.2)') it
    2690          call iophys_ecrit('TRF'//str2,klev,'SOURCE','',tr_seri(:,:,it))
     2687      do itr=1,nbtr
     2688         write(str2,'(i2.2)') itr
     2689         call iophys_ecrit('TRF'//str2,klev,'SOURCE','',tr_seri(:,:,itr))
    26912690      enddo
    26922691#endif
     
    27032702      ENDIF
    27042703
    2705       DO it=1, nbtr
     2704      DO itr=1,nbtr
    27062705         DO j=1,klev
    27072706         DO i=1,klon
    2708            tmp_var(i,j)=tr_seri(i,j,it)
     2707           tmp_var(i,j)=tr_seri(i,j,itr)
    27092708         ENDDO
    27102709         ENDDO
     
    27122711         DO j=1,klev
    27132712         DO i=1,klon
    2714            tr_seri(i,j,it)=tmp_var(i,j)
     2713           tr_seri(i,j,itr)=tmp_var(i,j)
    27152714         ENDDO
    27162715         ENDDO
     
    27292728
    27302729      IF (lminmax) THEN
    2731         DO it=1,nbtr
    2732         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_beforegastopar')
    2733         ENDDO
    2734         DO it=1,nbtr
    2735         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'before gastopar')
     2730        DO itr=1,nbtr
     2731        CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_beforegastopar')
     2732        ENDDO
     2733        DO itr=1,nbtr
     2734        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'before gastopar')
    27362735        ENDDO
    27372736      IF (lcheckmass) THEN
    2738         DO it=1,nbtr
    2739          CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz,  &
     2737        DO itr=1,nbtr
     2738         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz,  &
    27402739           pplay,t_seri,iscm3,'before gastopar')
    27412740        ENDDO
     
    27492748!
    27502749      IF (lminmax) THEN
    2751         DO it=1,nbtr
    2752         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_after_gastopar')
    2753         ENDDO
    2754         DO it=1,nbtr
    2755         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'after gastopar')
     2750        DO itr=1,nbtr
     2751        CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after_gastopar')
     2752        ENDDO
     2753        DO itr=1,nbtr
     2754        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after gastopar')
    27562755        ENDDO
    27572756      IF (lcheckmass) THEN
    2758         DO it=1,nbtr
    2759          CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz,  &
     2757        DO itr=1,nbtr
     2758         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz,  &
    27602759           pplay,t_seri,iscm3,'after gastopar')
    27612760        ENDDO
     
    27802779
    27812780#ifdef IOPHYS_DUST
    2782       do it=1,nbtr
    2783          write(str2,'(i2.2)') it
    2784          call iophys_ecrit('TRG'//str2,klev,'SOURCE','',tr_seri(:,:,it))
     2781      do itr=1,nbtr
     2782         write(str2,'(i2.2)') itr
     2783         call iophys_ecrit('TRG'//str2,klev,'SOURCE','',tr_seri(:,:,itr))
    27852784      enddo
    27862785#endif
     
    27962795
    27972796
    2798        DO it=1, nbtr
     2797       DO itr=1,nbtr
    27992798        DO j=1,klev
    28002799        DO i=1,klon
    2801            tmp_var(i,j)=tr_seri(i,j,it)
     2800           tmp_var(i,j)=tr_seri(i,j,itr)
    28022801        ENDDO
    28032802        ENDDO
     
    28052804        DO j=1,klev
    28062805        DO i=1,klon
    2807            tr_seri(i,j,it)=tmp_var(i,j)
     2806           tr_seri(i,j,itr)=tmp_var(i,j)
    28082807        ENDDO
    28092808        ENDDO
     
    28182817
    28192818      IF (lminmax) THEN
    2820         DO it=1,nbtr
    2821         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_before_incloud')
    2822         ENDDO
    2823         DO it=1,nbtr
    2824         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'before incloud')
     2819        DO itr=1,nbtr
     2820        CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_before_incloud')
     2821        ENDDO
     2822        DO itr=1,nbtr
     2823        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'before incloud')
    28252824        ENDDO
    28262825      IF (lcheckmass) THEN
    2827         DO it=1,nbtr
    2828          CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz,  &
     2826        DO itr=1,nbtr
     2827         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz,  &
    28292828           pplay,t_seri,iscm3,'before incloud')
    28302829        ENDDO
     
    28592858      print *,' BEFORE blcloud (after incloud)'
    28602859      IF (lminmax) THEN
    2861         DO it=1,nbtr
    2862         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_before_blcloud')
    2863         ENDDO
    2864         DO it=1,nbtr
    2865         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'before blcloud')
     2860        DO itr=1,nbtr
     2861        CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_before_blcloud')
     2862        ENDDO
     2863        DO itr=1,nbtr
     2864        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'before blcloud')
    28662865        ENDDO
    28672866      IF (lcheckmass) THEN
    2868         DO it=1,nbtr
    2869          CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz,   &
     2867        DO itr=1,nbtr
     2868         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz,   &
    28702869           pplay,t_seri,iscm3,'before blcloud')
    28712870        ENDDO
     
    29022901
    29032902      IF (lminmax) THEN
    2904         DO it=1,nbtr
    2905         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_after_blcloud')
     2903        DO itr=1,nbtr
     2904        CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after_blcloud')
    29062905        ENDDO                           
    2907         DO it=1,nbtr
    2908         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'after blcloud')
     2906        DO itr=1,nbtr
     2907        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after blcloud')
    29092908        ENDDO                                 
    29102909      IF (lcheckmass) THEN
    2911         DO it=1,nbtr
    2912          CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz,  &
     2910        DO itr=1,nbtr
     2911         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz,  &
    29132912           pplay,t_seri,iscm3,'after blcloud')
    29142913        ENDDO
     
    29202919      ENDIF !--lessivage
    29212920
    2922       DO it=1, nbtr
     2921      DO itr=1,nbtr
    29232922         DO j=1,klev
    29242923         DO i=1,klon
    2925            tmp_var(i,j)=tr_seri(i,j,it)
     2924           tmp_var(i,j)=tr_seri(i,j,itr)
    29262925         ENDDO
    29272926         ENDDO
     
    29292928         DO j=1,klev
    29302929         DO i=1,klon
    2931            tr_seri(i,j,it)=tmp_var(i,j)
     2930           tr_seri(i,j,itr)=tmp_var(i,j)
    29322931         ENDDO
    29332932         ENDDO
     
    29552954!
    29562955#ifdef IOPHYS_DUST
    2957       do it=1,nbtr
    2958          write(str2,'(i2.2)') it
    2959          call iophys_ecrit('TRH'//str2,klev,'SOURCE','',tr_seri(:,:,it))
     2956      do itr=1,nbtr
     2957         write(str2,'(i2.2)') itr
     2958         call iophys_ecrit('TRH'//str2,klev,'SOURCE','',tr_seri(:,:,itr))
    29602959      enddo
    29612960#endif
     
    29722971
    29732972      IF (lminmax) THEN
    2974         DO it=1,nbtr
    2975         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_before_trconve')
    2976         ENDDO
    2977         DO it=1,nbtr
    2978         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'before trconve')
     2973        DO itr=1,nbtr
     2974        CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_before_trconve')
     2975        ENDDO
     2976        DO itr=1,nbtr
     2977        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'before trconve')
    29792978        ENDDO
    29802979      IF (lcheckmass) THEN
    2981         DO it=1,nbtr
    2982          CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz,  &
     2980        DO itr=1,nbtr
     2981         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz,  &
    29832982           pplay,t_seri,iscm3,'before trconve')
    29842983        ENDDO
     
    29972996                  pen_d,pde_d,paprs,zdz,xconv,qmin,qmax,.false.,masse, &
    29982997                                                      dtrconv,tr_seri)
    2999          DO it=1, nbtr
    3000            d_tr_cv(:,:,it)=0.
     2998         DO itr=1,nbtr
     2999           d_tr_cv(:,:,itr)=0.
    30013000         ENDDO
    30023001
     
    30043003! KE
    30053004         print *,'JE: KE in phytracr_spl'
    3006          DO it=1, nbtr
     3005         DO itr=1,nbtr
    30073006             DO k = 1, klev
    30083007              DO i = 1, klon
    3009                tmp_var3(i,k,it)=tr_seri(i,k,it)
     3008               tmp_var3(i,k,itr)=tr_seri(i,k,itr)
    30103009              END DO
    30113010             END DO
    30123011         ENDDO
    30133012
    3014          DO it=1, nbtr
     3013         DO itr=1,nbtr
    30153014!          routine for aerosols . otherwise, check cvltrorig
    3016          print *,'Check sum before cvltr it',it,SUM(tr_seri(:,:,it))
     3015         print *,'Check sum before cvltr itr)',itr,SUM(tr_seri(:,:,itr))
    30173016!           IF (.FALSE.) THEN
    30183017           CALL cvltr_spl(pdtphys, da, phi,phi2,d1a,dam, mp,ep,    &
    30193018            sigd,sij,wght_cvfd,clw,elij,epmlmMm,eplaMm,           &
    30203019            pmflxr,pmflxs,evapls,t_seri,wdtrainA,wdtrainM,          &
    3021 !            paprs,it,tr_seri,upwd,dnwd,itop_con,ibas_con,        &
    3022             paprs,it,tmp_var3,upwd,dnwd,itop_con,ibas_con,        &
     3020!            paprs,itr,tr_seri,upwd,dnwd,itop_con,ibas_con,        &
     3021            paprs,itr,tmp_var3,upwd,dnwd,itop_con,ibas_con,        &
    30233022            henry,kk,zrho,ccntrAA_spla,ccntrENV_spla,coefcoli_spla, &
    30243023            id_prec,id_fine,id_coss, id_codu, id_scdu,              &
     
    30323031!     .       sigd,sij,wght_cvfd,clw,elij,epmlmMm,eplaMm,
    30333032!     .       pmflxr,pmflxs,evapls,t_seri,wdtrainA,wdtrainM,
    3034 !     .       paprs,it,tmp_var3,upwd,dnwd,itop_con,ibas_con,
     3033!     .       paprs,itr,tmp_var3,upwd,dnwd,itop_con,ibas_con,
    30353034!     .       d_tr_cv,d_tr_trsp,d_tr_sscav,d_tr_sat,d_tr_uscav,qDi,qPr,
    30363035!     .       qPa,qMel,qTrdi,dtrcvMA,Mint,
     
    30503049!             CALL checknanqfi(paprs(:,:),1.,-1.,'paprs ')
    30513050!             CALL checknanqfi(pplay(:,:),1.,-1.,'pplay ')
    3052 !             CALL checknanqfi(tmp_var3(:,:,it),1.,-1.,'tmp_var3 ')
     3051!             CALL checknanqfi(tmp_var3(:,:,itr),1.,-1.,'tmp_var3 ')
    30533052!             CALL checknanqfi(upwd(:,:),1.,-1.,'upwd ')
    30543053!             CALL checknanqfi(dnwd(:,:),1.,-1.,'dnwd ')
    3055 !             CALL checknanqfi(d_tr_cv(:,:,it),1.,-1.,'d_tr_cv ')
     3054!             CALL checknanqfi(d_tr_cv(:,:,itr),1.,-1.,'d_tr_cv ')
    30563055!             IF (.TRUE.) THEN
    30573056!             CALL cvltr_noscav(it,pdtphys, da, phi,mp,wght_cvfd,paprs,
     
    30603059             DO k = 1, klev
    30613060              DO i = 1, klon
    3062 !               tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr_cv(i,k,it)
    3063                tr_seri(i,k,it)=(tmp_var3(i,k,it)+d_tr_cv(i,k,it))
    3064                tmp_var(i,k)=d_tr_cv(i,k,it)
     3061!               tr_seri(i,k,itr) = tr_seri(i,k,itr) + d_tr_cv(i,k,itr)
     3062               tr_seri(i,k,itr)=(tmp_var3(i,k,itr)+d_tr_cv(i,k,itr))
     3063               tmp_var(i,k)=d_tr_cv(i,k,itr)
    30653064
    30663065              END DO
     
    30713070             DO k = 1, klev
    30723071              DO i = 1, klon
    3073                dtrconv(i,it)=0.0
    3074                his_dhkecv(i,it)=his_dhkecv(i,it)-tmp_var(i,k)  &
    3075                      /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys
     3072               dtrconv(i,itr)=0.0
     3073               his_dhkecv(i,itr)=his_dhkecv(i,itr)-tmp_var(i,k)  &
     3074                     /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys
    30763075              END DO
    30773076             END DO
     
    30823081             DO k = 1, klev
    30833082              DO i = 1, klon
    3084                dtrconv(i,it)=0.0
    3085                his_ds(i,it)=his_ds(i,it)-tmp_var(i,k)  &
    3086                      /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys
     3083               dtrconv(i,itr)=0.0
     3084               his_ds(i,itr)=his_ds(i,itr)-tmp_var(i,k)  &
     3085                     /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys
    30873086              END DO
    30883087             END DO
     
    30903089       IF (lminmax) THEN
    30913090
    3092          print *,'Check sum after cvltr it',it,SUM(tr_seri(:,:,it))
    3093         CALL minmaxqfi2(d_tr_cv(:,:,it),qmin,qmax,'d_tr_cv:')
    3094         CALL minmaxqfi2(d_tr_trsp(:,:,it),qmin,qmax,'d_tr_trsp:')
    3095         CALL minmaxqfi2(d_tr_sscav(:,:,it),qmin,qmax,'d_tr_sscav:')
    3096         CALL minmaxqfi2(d_tr_sat(:,:,it),qmin,qmax,'d_tr_sat:')
    3097         CALL minmaxqfi2(d_tr_uscav(:,:,it),qmin,qmax,'d_tr_uscav:')
     3091         print *,'Check sum after cvltr itr)',itr,SUM(tr_seri(:,:,itr))
     3092        CALL minmaxqfi2(d_tr_cv(:,:,itr),qmin,qmax,'d_tr_cv:')
     3093        CALL minmaxqfi2(d_tr_trsp(:,:,itr),qmin,qmax,'d_tr_trsp:')
     3094        CALL minmaxqfi2(d_tr_sscav(:,:,itr),qmin,qmax,'d_tr_sscav:')
     3095        CALL minmaxqfi2(d_tr_sat(:,:,itr),qmin,qmax,'d_tr_sat:')
     3096        CALL minmaxqfi2(d_tr_uscav(:,:,itr),qmin,qmax,'d_tr_uscav:')
    30983097      IF (lcheckmass) THEN
    3099         CALL checkmass(d_tr_cv(:,:,it),RNAVO,masse(it),zdz,  &
     3098        CALL checkmass(d_tr_cv(:,:,itr),RNAVO,masse(itr),zdz,  &
    31003099           pplay,t_seri,.false.,'d_tr_cv:')
    31013100      ENDIF
     
    31053104        ENDIF ! iflag_conv
    31063105       IF (lminmax) THEN
    3107         DO it=1,nbtr
    3108         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_after_trcon')
    3109         ENDDO
    3110         DO it=1,nbtr
    3111         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'after trconv')
     3106        DO itr=1,nbtr
     3107        CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after_trcon')
     3108        ENDDO
     3109        DO itr=1,nbtr
     3110        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after trconv')
    31123111        ENDDO
    31133112      IF (lcheckmass) THEN
    3114         DO it=1,nbtr
    3115          CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz, &
     3113        DO itr=1,nbtr
     3114         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, &
    31163115           pplay,t_seri,iscm3,'after trconv')
    31173116        ENDDO
     
    31583157      call iophys_ecrit('wdtrainM',klev,'wdtrainM','',wdtrainM)
    31593158
    3160       do it=1,nbtr
    3161          write(str2,'(i2.2)') it
    3162          call iophys_ecrit('TRI'//str2,klev,'SOURCE','',tr_seri(:,:,it))
     3159      do itr=1,nbtr
     3160         write(str2,'(i2.2)') itr
     3161         call iophys_ecrit('TRI'//str2,klev,'SOURCE','',tr_seri(:,:,itr))
    31633162      enddo
    31643163#endif
     
    31743173       print *,' BEFORE lsc_scav '
    31753174       IF (lminmax) THEN
    3176         DO it=1,nbtr
    3177        CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_before_lsc_scav')
    3178         ENDDO
    3179         DO it=1,nbtr
    3180         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'before lsc_scav')
     3175        DO itr=1,nbtr
     3176       CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_before_lsc_scav')
     3177        ENDDO
     3178        DO itr=1,nbtr
     3179        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'before lsc_scav')
    31813180        ENDDO
    31823181      IF (lcheckmass) THEN
    3183         DO it=1,nbtr
    3184          CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz,  &
     3182        DO itr=1,nbtr
     3183         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz,  &
    31853184           pplay,t_seri,iscm3,'before lsc_scav')
    31863185        ENDDO
     
    31993198      !IF (.false.) THEN  ! test #DFB (Binta) sans lsc_scav_spl
    32003199        print *,'JE iflag_lscav',iflag_lscav
    3201         DO it = 1, nbtr
     3200        DO itr=1,nbtr
    32023201
    32033202!       incloud scavenging and removal by large scale rain ! orig : ql_incl
     
    32063205!         Liu (2001) proposed to use 1.5e-3 kg/kg
    32073206
    3208 !       CALL lsc_scav_orig(pdtphys,it,iflag_lscav,ql_incl,prfl,psfl,
     3207!       CALL lsc_scav_orig(pdtphys,itr,iflag_lscav,ql_incl,prfl,psfl,
    32093208!     .               rneb,beta_fisrt, beta_v1,pplay,paprs,
    32103209!     .               t_seri,tr_seri,d_tr_insc,
    32113210!     .               d_tr_bcscav,d_tr_evapls,qPrls)
    3212           CALL lsc_scav_spl(pdtphys,it,iflag_lscav,ql_incl,prfl,psfl,  &
     3211          CALL lsc_scav_spl(pdtphys,itr,iflag_lscav,ql_incl,prfl,psfl,  &
    32133212                    rneb,beta_fisrt, beta_v1,pplay,paprs,      &
    32143213                    t_seri,tr_seri,d_tr_insc,                  &
     
    32203219          DO k = 1, klev
    32213220           DO i = 1, klon
    3222                 d_tr_ls(i,k,it)=d_tr_insc(i,k,it)+d_tr_bcscav(i,k,it) &
    3223                         +d_tr_evapls(i,k,it)
    3224                 tr_seri(i,k,it)=tr_seri(i,k,it)+d_tr_ls(i,k,it)
    3225                          tmp_var(i,k)=d_tr_ls(i,k,it)
     3221                d_tr_ls(i,k,itr)=d_tr_insc(i,k,itr)+d_tr_bcscav(i,k,itr) &
     3222                        +d_tr_evapls(i,k,itr)
     3223                tr_seri(i,k,itr)=tr_seri(i,k,itr)+d_tr_ls(i,k,itr)
     3224                         tmp_var(i,k)=d_tr_ls(i,k,itr)
    32263225           ENDDO
    32273226          ENDDO
     
    32313230          DO k=1,klev
    32323231           DO i=1,klon
    3233             his_dhkelsc(i,it)=his_dhkelsc(i,it)-tmp_var(i,k)    &
    3234                      /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys
     3232            his_dhkelsc(i,itr)=his_dhkelsc(i,itr)-tmp_var(i,k)    &
     3233                     /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys
    32353234     
    32363235           END DO
     
    32413240      ELSE
    32423241        print *,'WARNING: NO lsc_scav, Please choose iflag_lscav=3 or 4'
    3243         DO it = 1, nbtr
     3242        DO itr=1,nbtr
    32443243          DO i=1,klon
    3245             his_dhkelsc(i,it)=0.0
     3244            his_dhkelsc(i,itr)=0.0
    32463245          END DO  ! klon
    32473246         END DO  !it=1,nbtr
     
    32503249       print *,' AFTER lsc_scav '
    32513250       IF (lminmax) THEN
    3252         DO it=1,nbtr
    3253        CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan_after_lsc_scav')
    3254         ENDDO
    3255         DO it=1,nbtr
    3256         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'after lsc_scav')
     3251        DO itr=1,nbtr
     3252       CALL checknanqfi(tr_seri(:,:,itr),qmin,qmax,'nan_after_lsc_scav')
     3253        ENDDO
     3254        DO itr=1,nbtr
     3255        CALL minmaxqfi2(tr_seri(:,:,itr),qmin,qmax,'after lsc_scav')
    32573256        ENDDO
    32583257      IF (lcheckmass) THEN
    3259         DO it=1,nbtr
    3260          CALL checkmass(tr_seri(:,:,it),RNAVO,masse(it),zdz, &
     3258        DO itr=1,nbtr
     3259         CALL checkmass(tr_seri(:,:,itr),RNAVO,masse(itr),zdz, &
    32613260           pplay,t_seri,iscm3,'after lsc_scav')
    32623261        ENDDO
     
    32843283!=======================================================================
    32853284#ifdef IOPHYS_DUST
    3286       do it=1,nbtr
    3287          write(str2,'(i2.2)') it
    3288          call iophys_ecrit('TRJ'//str2,klev,'SOURCE','',tr_seri(:,:,it))
     3285      do itr=1,nbtr
     3286         write(str2,'(i2.2)') itr
     3287         call iophys_ecrit('TRJ'//str2,klev,'SOURCE','',tr_seri(:,:,itr))
    32893288      enddo
    32903289#endif
     
    32963295
    32973296 
    3298       DO it=1, nbtr
     3297      DO itr=1,nbtr
    32993298        DO j=1,klev
    33003299        DO i=1,klon
    3301            tmp_var(i,j)=tr_seri(i,j,it)
     3300           tmp_var(i,j)=tr_seri(i,j,itr)
    33023301        ENDDO
    33033302        ENDDO
     
    33053304        DO j=1,klev
    33063305        DO i=1,klon
    3307            tr_seri(i,j,it)=tmp_var(i,j)
     3306           tr_seri(i,j,itr)=tmp_var(i,j)
    33083307        ENDDO
    33093308        ENDDO
     
    33133312!
    33143313! Computing burden in mg/m2
    3315       DO it=1, nbtr
     3314      DO itr=1,nbtr
    33163315      DO k=1, klev
    33173316      DO i=1, klon
    3318         trm(i,it)=trm(i,it)+tr_seri(i,k,it)*1.e6*zdz(i,k)*  &
    3319                  masse(it)*1.e3/RNAVO     !--mg S/m2
     3317        trm(i,itr)=trm(i,itr)+tr_seri(i,k,itr)*1.e6*zdz(i,k)*  &
     3318                 masse(itr)*1.e3/RNAVO     !--mg S/m2
    33203319      ENDDO
    33213320      ENDDO
     
    33243323! Computing Surface concentration in ug/m3
    33253324!
    3326       DO it=1, nbtr
     3325      DO itr=1,nbtr
    33273326      DO i=1, klon
    3328         sconc_seri(i,it)=tr_seri(i,1,it)*1.e6* &
    3329                  masse(it)*1.e3/RNAVO     !--mg/m3 (tr_seri ist in g/cm3)
     3327        sconc_seri(i,itr)=tr_seri(i,1,itr)*1.e6* &
     3328                 masse(itr)*1.e3/RNAVO     !--mg/m3 (tr_seri ist in g/cm3)
    33303329      ENDDO
    33313330      ENDDO
     
    35593558!======================================================================
    35603559#ifdef IOPHYS_DUST
    3561       do it=1,nbtr
    3562          write(str2,'(i2.2)') it
    3563          call iophys_ecrit('TRK'//str2,klev,'SOURCE','',tr_seri(:,:,it))
     3560      do itr=1,nbtr
     3561         write(str2,'(i2.2)') itr
     3562         call iophys_ecrit('TRK'//str2,klev,'SOURCE','',tr_seri(:,:,itr))
    35643563      enddo
    35653564#endif
     
    35713570      ENDIF
    35723571
    3573       DO it=1, nbtr
     3572      DO itr=1,nbtr
    35743573         DO j=1,klev
    35753574         DO i=1,klon
    3576            tmp_var(i,j)=tr_seri(i,j,it)
     3575           tmp_var(i,j)=tr_seri(i,j,itr)
    35773576         ENDDO
    35783577         ENDDO
     
    35803579         DO j=1,klev
    35813580         DO i=1,klon
    3582            tr_seri(i,j,it)=tmp_var(i,j)
     3581           tr_seri(i,j,itr)=tmp_var(i,j)
    35833582         ENDDO
    35843583         ENDDO
     
    37293728!      prepare outputs cvltr
    37303729
    3731       DO it=1, nbtr
     3730      DO itr=1,nbtr
    37323731        DO k=1,klev
    37333732        DO i=1,klon
    3734            tmp_var(i,k)=d_tr_cv(i,k,it)
     3733           tmp_var(i,k)=d_tr_cv(i,k,itr)
    37353734        ENDDO
    37363735        ENDDO
     
    37383737       DO k=1,klev
    37393738        DO i=1,klon
    3740           d_tr_cv_o(i,k,it)=tmp_var(i,k)  &
    3741                          /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys 
     3739          d_tr_cv_o(i,k,itr)=tmp_var(i,k)  &
     3740                         /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 
    37423741        ENDDO
    37433742       ENDDO
    37443743      ENDDO
    3745       DO it=1, nbtr
     3744      DO itr=1,nbtr
    37463745        DO k=1,klev
    37473746        DO i=1,klon
    3748            tmp_var(i,k)=d_tr_trsp(i,k,it)
     3747           tmp_var(i,k)=d_tr_trsp(i,k,itr)
    37493748        ENDDO
    37503749        ENDDO
     
    37523751       DO k=1,klev
    37533752        DO i=1,klon
    3754           d_tr_trsp_o(i,k,it)=tmp_var(i,k)  &
    3755                          /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys 
     3753          d_tr_trsp_o(i,k,itr)=tmp_var(i,k)  &
     3754                         /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 
    37563755        ENDDO
    37573756       ENDDO
    37583757      ENDDO
    3759       DO it=1, nbtr
     3758      DO itr=1,nbtr
    37603759        DO k=1,klev
    37613760        DO i=1,klon
    3762            tmp_var(i,k)=d_tr_sscav(i,k,it)
     3761           tmp_var(i,k)=d_tr_sscav(i,k,itr)
    37633762        ENDDO
    37643763        ENDDO
     
    37663765       DO k=1,klev
    37673766        DO i=1,klon
    3768           d_tr_sscav_o(i,k,it)=tmp_var(i,k)  &
    3769                          /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys 
     3767          d_tr_sscav_o(i,k,itr)=tmp_var(i,k)  &
     3768                         /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 
    37703769        ENDDO
    37713770       ENDDO
    37723771      ENDDO
    3773       DO it=1, nbtr
     3772      DO itr=1,nbtr
    37743773        DO k=1,klev
    37753774        DO i=1,klon
    3776            tmp_var(i,k)=d_tr_sat(i,k,it)
     3775           tmp_var(i,k)=d_tr_sat(i,k,itr)
    37773776        ENDDO
    37783777        ENDDO
     
    37803779       DO k=1,klev
    37813780        DO i=1,klon
    3782           d_tr_sat_o(i,k,it)=tmp_var(i,k)   &
    3783                          /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys 
     3781          d_tr_sat_o(i,k,itr)=tmp_var(i,k)   &
     3782                         /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 
    37843783        ENDDO
    37853784       ENDDO
    37863785      ENDDO
    3787       DO it=1, nbtr
     3786      DO itr=1,nbtr
    37883787        DO k=1,klev
    37893788        DO i=1,klon
    3790            tmp_var(i,k)=d_tr_uscav(i,k,it)
     3789           tmp_var(i,k)=d_tr_uscav(i,k,itr)
    37913790        ENDDO
    37923791        ENDDO
     
    37943793       DO k=1,klev
    37953794        DO i=1,klon
    3796           d_tr_uscav_o(i,k,it)=tmp_var(i,k)  &
    3797                          /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys 
     3795          d_tr_uscav_o(i,k,itr)=tmp_var(i,k)  &
     3796                         /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 
    37983797        ENDDO
    37993798       ENDDO
     
    38013800!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    38023801     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    3803       DO it=1, nbtr
     3802      DO itr=1,nbtr
    38043803        DO k=1,klev
    38053804        DO i=1,klon
    3806            tmp_var(i,k)=d_tr_insc(i,k,it)
     3805           tmp_var(i,k)=d_tr_insc(i,k,itr)
    38073806        ENDDO
    38083807        ENDDO
     
    38103809       DO k=1,klev
    38113810        DO i=1,klon
    3812           d_tr_insc_o(i,k,it)=tmp_var(i,k)  &
    3813                          /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys 
     3811          d_tr_insc_o(i,k,itr)=tmp_var(i,k)  &
     3812                         /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 
    38143813        ENDDO
    38153814       ENDDO
     
    38173816     
    38183817
    3819       DO it=1, nbtr
     3818      DO itr=1,nbtr
    38203819        DO k=1,klev
    38213820        DO i=1,klon
    3822            tmp_var(i,k)=d_tr_bcscav(i,k,it)
     3821           tmp_var(i,k)=d_tr_bcscav(i,k,itr)
    38233822        ENDDO
    38243823        ENDDO
     
    38263825       DO k=1,klev
    38273826        DO i=1,klon
    3828           d_tr_bcscav_o(i,k,it)=tmp_var(i,k)  &
    3829                          /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys 
     3827          d_tr_bcscav_o(i,k,itr)=tmp_var(i,k)  &
     3828                         /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 
    38303829        ENDDO
    38313830       ENDDO
     
    38333832
    38343833
    3835       DO it=1, nbtr
     3834      DO itr=1,nbtr
    38363835        DO k=1,klev
    38373836        DO i=1,klon
    3838            tmp_var(i,k)=d_tr_evapls(i,k,it)
     3837           tmp_var(i,k)=d_tr_evapls(i,k,itr)
    38393838        ENDDO
    38403839        ENDDO
     
    38423841       DO k=1,klev
    38433842        DO i=1,klon
    3844           d_tr_evapls_o(i,k,it)=tmp_var(i,k)  &
    3845                          /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys 
     3843          d_tr_evapls_o(i,k,itr)=tmp_var(i,k)  &
     3844                         /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 
    38463845        ENDDO
    38473846       ENDDO
     
    38493848
    38503849
    3851       DO it=1, nbtr
     3850      DO itr=1,nbtr
    38523851        DO k=1,klev
    38533852        DO i=1,klon
    3854            tmp_var(i,k)=d_tr_ls(i,k,it)
     3853           tmp_var(i,k)=d_tr_ls(i,k,itr)
    38553854        ENDDO
    38563855        ENDDO
     
    38583857       DO k=1,klev
    38593858        DO i=1,klon
    3860           d_tr_ls_o(i,k,it)=tmp_var(i,k)  &
    3861                          /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys 
     3859          d_tr_ls_o(i,k,itr)=tmp_var(i,k)  &
     3860                         /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 
    38623861        ENDDO
    38633862       ENDDO
     
    38653864
    38663865
    3867       DO it=1, nbtr
     3866      DO itr=1,nbtr
    38683867        DO k=1,klev
    38693868        DO i=1,klon
    3870            tmp_var(i,k)=d_tr_dyn(i,k,it)
     3869           tmp_var(i,k)=d_tr_dyn(i,k,itr)
    38713870        ENDDO
    38723871        ENDDO
     
    38743873       DO k=1,klev
    38753874        DO i=1,klon
    3876           d_tr_dyn_o(i,k,it)=tmp_var(i,k)  &
    3877                          /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys 
     3875          d_tr_dyn_o(i,k,itr)=tmp_var(i,k)  &
     3876                         /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 
    38783877        ENDDO
    38793878       ENDDO
     
    38813880
    38823881
    3883       DO it=1, nbtr
     3882      DO itr=1,nbtr
    38843883        DO k=1,klev
    38853884        DO i=1,klon
    3886            tmp_var(i,k)=d_tr_cl(i,k,it)
     3885           tmp_var(i,k)=d_tr_cl(i,k,itr)
    38873886        ENDDO
    38883887        ENDDO
     
    38903889       DO k=1,klev
    38913890        DO i=1,klon
    3892           d_tr_cl_o(i,k,it)=tmp_var(i,k)  &
    3893                          /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys 
     3891          d_tr_cl_o(i,k,itr)=tmp_var(i,k)  &
     3892                         /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 
    38943893        ENDDO
    38953894       ENDDO
     
    38973896
    38983897
    3899       DO it=1, nbtr
     3898      DO itr=1,nbtr
    39003899        DO k=1,klev
    39013900        DO i=1,klon
    3902            tmp_var(i,k)=d_tr_th(i,k,it)
     3901           tmp_var(i,k)=d_tr_th(i,k,itr)
    39033902        ENDDO
    39043903        ENDDO
     
    39063905       DO k=1,klev
    39073906        DO i=1,klon
    3908           d_tr_th_o(i,k,it)=tmp_var(i,k)  &
    3909                          /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys 
     3907          d_tr_th_o(i,k,itr)=tmp_var(i,k)  &
     3908                         /RNAVO*masse(itr)*1.e3*1.e6*zdz(i,k)/pdtphys 
    39103909        ENDDO
    39113910       ENDDO
     
    39143913!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    39153914
    3916      DO it=1,nbtr
    3917       WRITE(str2,'(i2.2)') it
     3915     DO itr=1,nbtr
     3916      WRITE(str2,'(i2.2)') itr
    39183917       DO i=1, klon                                                       
    3919         his_dh(i,it)= his_dhlsc(i,it)+his_dhcon(i,it)+               &
    3920                    his_dhbclsc(i,it)+his_dhbccon(i,it)
     3918        his_dh(i,itr)= his_dhlsc(i,itr)+his_dhcon(i,itr)+               &
     3919                   his_dhbclsc(i,itr)+his_dhbccon(i,itr)
    39213920
    39223921       ENDDO
  • LMDZ6/branches/Ocean_skin/libf/phylmd/Dust/splaeropt_5wv_rrtm.F90

    r2753 r4368  
    99  USE DIMPHY
    1010  USE aero_mod
    11   USE infotrac_phy
     11  USE infotrac_phy, ONLY: nqtot, nbtr, tracers
    1212  USE phys_local_var_mod, ONLY: od550aer,od865aer,ec550aer,od550lt1aer
    1313  !
     
    3434  LOGICAL :: soluble
    3535 
    36   INTEGER :: i, k, m, itr, irh, aerindex
     36  INTEGER :: i, k, m, iq, itr, irh, aerindex
    3737  INTEGER :: spsol, spinsol, la
    3838  INTEGER :: RH_num(klon,klev)
     
    112112  ENDDO
    113113
    114   DO itr=1,nbtr    !--loop over tracers 
    115 
    116     IF (tname(itr+nqo)=='PREC') THEN       !--fine mode accumulation mode
    117       CYCLE
    118     ELSE IF (tname(itr+nqo)=='FINE') THEN  !--fine mode accumulation mode
    119       soluble=.TRUE.
    120       spsol=1
    121       aerindex=1
    122     ELSE IF (tname(itr+nqo)=='COSS') THEN  !--coarse mode sea salt
    123       soluble=.TRUE.
    124       spsol=2
    125       aerindex=2
    126     ELSE IF (tname(itr+nqo)=='CODU') THEN  !--coarse mode dust
    127       soluble=.FALSE.
    128       spinsol=1
    129       aerindex=3
    130     ELSE IF (tname(itr+nqo)=='SCDU') THEN  !--super coarse mode dust
    131       soluble=.FALSE.
    132       spinsol=2
    133       aerindex=4
    134     ELSE
    135        CALL abort_physic(modname,'I cannot do aerosol optics for '//tname(itr+nqo),1)
    136     ENDIF
     114  itr = 0
     115  DO iq = 1, nqtot
     116    IF(.NOT.tracers(iq)%isInPhysics) CYCLE
     117    itr = itr+1
     118    SELECT CASE(tracers(iq)%name)
     119      CASE('PREC'); CYCLE                                  !--precursor
     120      CASE('FINE'); soluble=.TRUE.;  spsol=1; aerindex=1   !--fine mode accumulation mode
     121      CASE('COSS'); soluble=.TRUE.;  spsol=2; aerindex=2   !--coarse mode sea salt
     122      CASE('CODU'); soluble=.FALSE.; spinsol=1; aerindex=3   !--coarse mode dust
     123      CASE('SCDU'); soluble=.FALSE.; spinsol=2; aerindex=4   !--super coarse mode dust
     124      CASE DEFAULT; CALL abort_physic(modname,'I cannot do aerosol optics for '//tracers(iq)%name,1)
     125    END SELECT
    137126
    138127    DO la=1,las
  • LMDZ6/branches/Ocean_skin/libf/phylmd/Dust/splaeropt_6bands_rrtm.F90

    r3798 r4368  
    88  USE dimphy
    99  USE aero_mod
    10   USE infotrac_phy
     10  USE infotrac_phy, ONLY: nqtot, nbtr, tracers
    1111  USE phys_local_var_mod, ONLY: abs550aer
    1212
     
    3535  !
    3636  LOGICAL :: soluble
    37   INTEGER :: i, k, irh, itr, inu
     37  INTEGER :: i, k, irh, iq, itr, inu
    3838  INTEGER :: aerindex, spsol, spinsol
    3939  INTEGER :: RH_num(klon,klev)
     
    165165  cg_ae(:,:,:,:)=0.
    166166   
    167   DO itr=1, nbtr
    168 
    169     IF (tname(itr+nqo)=='PREC') THEN       !--precursor
    170       CYCLE
    171     ELSE IF (tname(itr+nqo)=='FINE') THEN  !--fine mode accumulation mode
    172       soluble=.TRUE.
    173       spsol=1
    174       aerindex=1
    175     ELSE IF (tname(itr+nqo)=='COSS') THEN  !--coarse mode sea salt
    176       soluble=.TRUE.
    177       spsol=2
    178       aerindex=2
    179     ELSE IF (tname(itr+nqo)=='CODU') THEN  !--coarse mode dust
    180       soluble=.FALSE.
    181       spinsol=1
    182       aerindex=3
    183     ELSE IF (tname(itr+nqo)=='SCDU') THEN  !--super coarse mode dust
    184       soluble=.FALSE.
    185       spinsol=2
    186       aerindex=4
    187     ELSE
    188        CALL abort_physic(modname,'I cannot do aerosol optics for '//tname(itr+nqo),1)
    189     ENDIF
     167  itr = 0
     168  DO iq = 1, nqtot
     169    IF(.NOT.tracers(iq)%isInPhysics) CYCLE
     170    itr = itr+1
     171    SELECT CASE(tracers(iq)%name)
     172      CASE('PREC'); CYCLE                                  !--precursor
     173      CASE('FINE'); soluble=.TRUE.;  spsol=1; aerindex=1   !--fine mode accumulation mode
     174      CASE('COSS'); soluble=.TRUE.;  spsol=2; aerindex=2   !--coarse mode sea salt
     175      CASE('CODU'); soluble=.FALSE.; spinsol=1; aerindex=3   !--coarse mode dust
     176      CASE('SCDU'); soluble=.FALSE.; spinsol=2; aerindex=4   !--super coarse mode dust
     177      CASE DEFAULT; CALL abort_physic(modname,'I cannot do aerosol optics for '//tracers(iq)%name,1)
     178    END SELECT
    190179
    191180    IF (soluble) THEN ! For aerosol soluble components
  • LMDZ6/branches/Ocean_skin/libf/phylmd/Dust/splaeropt_lw_rrtm.F90

    r2753 r4368  
    1010  USE dimphy
    1111  USE aero_mod
    12   USE infotrac_phy
     12  USE infotrac_phy, ONLY: nqtot, nbtr, tracers
    1313  USE phys_state_var_mod, ONLY : tau_aero_lw_rrtm
    1414  USE YOERAD, ONLY : NLW
     
    3030  INTEGER, PARAMETER :: naero=naero_soluble+naero_insoluble
    3131  !
    32   INTEGER inu, itr, spinsol
     32  INTEGER inu, itr, iq, spinsol
    3333  CHARACTER*20 modname
    3434  !
     
    5454    tau_aero_lw_rrtm = 0.0
    5555    !
    56     DO itr=1,nbtr
    57       !
    58       IF (tname(itr+nqo)=='PREC') THEN       !--precursor
    59         CYCLE
    60       ELSE IF (tname(itr+nqo)=='FINE') THEN  !--fine mode accumulation mode
    61         CYCLE
    62       ELSE IF (tname(itr+nqo)=='COSS') THEN  !--coarse mode sea salt
    63         CYCLE
    64       ELSE IF (tname(itr+nqo)=='CODU') THEN  !--coarse mode dust
    65         spinsol=1
    66       ELSE IF (tname(itr+nqo)=='SCDU') THEN  !--super coarse mode dust
    67         spinsol=2
    68       ELSE
    69          CALL abort_physic(modname,'I cannot do aerosol optics for '//tname(itr+nqo),1)
    70       ENDIF
     56   
     57    itr = 0
     58    DO iq = 1, nqtot
     59      IF(.NOT.tracers(iq)%isInPhysics) CYCLE
     60      itr = itr+1
     61      SELECT CASE(tracers(iq)%name)
     62        CASE('PREC','FINE','COSS'); CYCLE                  !--precursor or fine/coarde accumulation mode
     63        CASE('CODU'); spinsol=1                            !--coarse mode dust
     64        CASE('SCDU'); spinsol=2                            !--super coarse mode dust
     65        CASE DEFAULT; CALL abort_physic(modname,'I cannot do aerosol optics for '//tracers(iq)%name,1)
     66      END SELECT
    7167      !
    7268      DO inu=1,NLW
  • LMDZ6/branches/Ocean_skin/libf/phylmd/Dust/splaerosol_optic_rrtm.F90

    r2753 r4368  
    1313  USE dimphy
    1414  USE aero_mod
    15   USE infotrac_phy
     15  USE infotrac_phy, ONLY: nbtr, nqtot, tracers
    1616  USE YOMCST, ONLY: RD, RG
    1717
     
    4040  REAL, DIMENSION(klon,klev,nwave,naero_tot), INTENT(OUT)  :: tau3d_aero
    4141
    42   INTEGER i, k, itr
     42  INTEGER i, k, iq, itr
    4343  REAL, DIMENSION(klon,klev) :: zdm, zdh
    4444  REAL zrho, pdel
     
    5050  mass_solu_aero_pi(:,:) = 0.0
    5151  !
    52   DO itr=1,nbtr
    53     IF (tname(itr+nqo)=='FINE') THEN
     52  itr = 0
     53  DO iq = 1, nqtot
     54    IF(.NOT.tracers(iq)%isInPhysics) CYCLE
     55    itr = itr+1
     56    IF(tracers(iq)%name/='FINE') THEN
    5457      mass_solu_aero(:,:)    = tr_seri(:,:,itr)
    5558      mass_solu_aero_pi(:,:) = tr_seri(:,:,itr)
Note: See TracChangeset for help on using the changeset viewer.