Changeset 1421 for LMDZ4/trunk/libf


Ignore:
Timestamp:
Jul 28, 2010, 3:28:42 PM (14 years ago)
Author:
jghattas
Message:
  • Fixed problems with pseudo-vapor tracers.
  • Removed variable nseuil. The transport with convection can be desactivated with the variable conv_flg instead of nseuil.
Location:
LMDZ4/trunk/libf
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/dyn3d/dynetat0.F

    r1403 r1421  
    321321        ierr =  NF_INQ_VARID (nid, tname(iq), nvarid)
    322322        IF (ierr .NE. NF_NOERR) THEN
    323            write(lunout,*)"dynetat0: Le champ <"//tname(iq)//
     323           write(lunout,*)"dynetat0: Le traceur <"//trim(tname(iq))//
    324324     &                    "> est absent"
    325325           write(lunout,*)"          Il est donc initialise a zero"
  • LMDZ4/trunk/libf/dyn3dpar/dynetat0.F

    r1403 r1421  
    321321        ierr =  NF_INQ_VARID (nid, tname(iq), nvarid)
    322322        IF (ierr .NE. NF_NOERR) THEN
    323            write(lunout,*)"dynetat0: Le champ <"//tname(iq)//
     323           write(lunout,*)"dynetat0: Le traceur <"//trim(tname(iq))//
    324324     &                    "> est absent"
    325325           write(lunout,*)"          Il est donc initialise a zero"
  • LMDZ4/trunk/libf/phylmd/clesphys.h

    r1403 r1421  
    7373       LOGICAL :: ok_strato
    7474       LOGICAL :: ok_hines
    75        INTEGER :: nseuil
    7675
    7776       COMMON/clesphys/cycle_diurne, soil_model, new_oliq,              &
     
    9493     &     , ok_lic_melt, cvl_corr, aer_type                            &
    9594     &     , qsol0, iflag_rrtm, ok_strato,ok_hines,ecrit_LES            &
    96      &     , co2_ppm0, nseuil
     95     &     , co2_ppm0
    9796     
    9897!$OMP THREADPRIVATE(/clesphys/)
  • LMDZ4/trunk/libf/phylmd/conf_phys.F90

    r1403 r1421  
    153153  REAL,SAVE :: ecrit_LES_omp
    154154  REAL,SAVE :: ecrit_tra_omp
    155   INTEGER, SAVE :: nseuil_omp   
    156155  REAL,SAVE :: cvl_corr_omp
    157156  LOGICAL,SAVE :: ok_lic_melt_omp
     
    12681267  ecrit_tra_omp = 30.
    12691268  call getin('ecrit_tra',ecrit_tra_omp)
    1270 !
    1271 !Config Key  = nseuil
    1272 !Config Desc = Numero du traceur a partir duquel on ne transporte
    1273 !              pas par convection
    1274 !Config Def  = 7 !a partir du numero 7 pour les pseudo-traceurs de Remy
    1275 !Config Help =
    1276 !
    1277   nseuil_omp = 7
    1278   call getin('nseuil',nseuil_omp)
    1279 !
    12801269!
    12811270!Config Key  = ecrit_reg
     
    15711560    ecrit_mth = ecrit_mth_omp
    15721561    ecrit_tra = ecrit_tra_omp
    1573     nseuil = nseuil_omp
    15741562    ecrit_reg = ecrit_reg_omp
    15751563    cvl_corr = cvl_corr_omp
     
    17391727  write(numout,*)' ecrit_ hf, ins, day, mth, reg, tra, ISCCP, LES',&
    17401728   ecrit_hf, ecrit_ins, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra, ecrit_ISCCP, ecrit_LES
    1741   write(numout,*)' nseuil ',nseuil
    17421729
    17431730  write(numout,*) 'ok_strato = ', ok_strato
  • LMDZ4/trunk/libf/phylmd/phys_output_mod.F90

    r1403 r1421  
    12321232       o_trac(nq)    =  ctrl_out((/ 4, 5, 1, 1, 1 /),'trac'//TRIM(solsym(nq)))
    12331233      ENDIF
    1234      WRITE(*,*) 'nq, o_trac(nq)=',nq, o_trac(nq)
    12351234    ENDDO
    12361235!
  • LMDZ4/trunk/libf/phylmd/phytrac.F90

    r1403 r1421  
    241241  CASE('lmdz')
    242242     !    -- Traitement des traceurs avec traclmdz
    243      
    244243     CALL traclmdz(nstep, julien, gmtime, pdtphys, t_seri, paprs, pplay, &
    245244          cdragh,  coefh, yu1, yv1, ftsol, pctsrf, xlat, xlon, couchelimite, &
    246245          sh, tr_seri, source, solsym, d_tr_cl, zmasse)
    247      
    248246  CASE('inca')
    249247     !    -- CHIMIE INCA  config_inca = aero or chem --
     
    281279        END IF
    282280
    283 !IM ajout traceurs RR
    284 !      print*,'phytrac it,nseuil=',it,nseuil
    285        IF (it.lt.nseuil) THEN
    286281        DO k = 1, klev
    287282           DO i = 1, klon       
     
    289284           END DO
    290285        END DO
    291        END IF !(it.lt.nseuil) then
    292286
    293287        CALL minmaxqfi(tr_seri(:,:,it),0.,1.e33,'convection it = '//solsym(it))
  • LMDZ4/trunk/libf/phylmd/traclmdz_mod.F90

    r1409 r1421  
    66! only if running without any other chemestry model as INCA or REPROBUS. 
    77!
    8 
    98  IMPLICIT NONE
    109
     
    4544!$OMP THREADPRIVATE(id_be)
    4645
    47 !IM ajout traceurs RR
    48   INTEGER,SAVE :: id_dry !traceur dry intrusions
    49 !$OMP THREADPRIVATE(id_dry)
    5046  INTEGER,SAVE :: id_pcsat, id_pcocsat, id_pcq ! traceurs pseudo-vapeur CL qsat, qsat_oc, q
    5147!$OMP THREADPRIVATE(id_pcsat, id_pcocsat, id_pcq)
    52   INTEGER,SAVE :: id_pcs0, id_pcos0, id_pcq0 ! traceurs pseudo-vapeur CL qsat, qsat_oc, q
    53 !                                            ! qui ne sont pas transportes par la convection
     48  INTEGER,SAVE :: id_pcs0, id_pcos0, id_pcq0   ! traceurs pseudo-vapeur CL qsat, qsat_oc, q
     49!                                              ! qui ne sont pas transportes par la convection
    5450!$OMP THREADPRIVATE(id_pcs0, id_pcos0, id_pcq0)
    5551
    5652  INTEGER, SAVE:: id_o3
    57   !$OMP THREADPRIVATE(id_o3)
    58   ! index of ozone tracer with Cariolle parameterization
    59   ! 0 means no ozone tracer
     53!$OMP THREADPRIVATE(id_o3)
     54! index of ozone tracer with Cariolle parameterization
     55! 0 means no ozone tracer
    6056
    6157  LOGICAL,SAVE :: rnpb=.FALSE. ! Presence du couple Rn222, Pb210
     
    9086  SUBROUTINE traclmdz_init(pctsrf, ftsol, tr_seri, t_seri, pplay, sh, aerosol, lessivage)
    9187    ! This subroutine allocates and initialize module variables and control variables.
     88    ! Initialization of the tracers should be done here only for those not found in the restart file.
    9289    USE dimphy
    9390    USE infotrac
     
    9592    USE press_coefoz_m, ONLY: press_coefoz
    9693    USE carbon_cycle_mod, ONLY : carbon_cycle_init, carbon_cycle_tr, carbon_cycle_cpl
     94    USE mod_grid_phy_lmdz
     95    USE mod_phys_lmdz_para
    9796
    9897    INCLUDE "indicesol.h"
    99 
     98    INCLUDE "iniprint.h"
    10099! Input variables
    101100    REAL,DIMENSION(klon,nbsrf),INTENT(IN)     :: pctsrf ! Pourcentage de sol f(nature du sol)
    102101    REAL,DIMENSION(klon,nbsrf),INTENT(IN)     :: ftsol  ! Temperature du sol (surf)(Kelvin)
    103 !IM traceurs RR   REAL,DIMENSION(klon,klev,nbtr),INTENT(IN) :: tr_seri! Concentration Traceur [U/KgA] 
    104102    REAL,DIMENSION(klon,klev,nbtr),INTENT(INOUT) :: tr_seri! Concentration Traceur [U/KgA] 
    105103    REAL,DIMENSION(klon,klev),INTENT(IN)   :: t_seri  ! Temperature
     
    113111! Local variables   
    114112    INTEGER :: ierr, it, iiq, i, k
    115     REAL,DIMENSION(klon,klev)      :: qsat   ! pression de la vapeur a saturation
    116    
     113    REAL, DIMENSION(klon_glo,klev) :: varglo ! variable temporaire sur la grille global   
     114    REAL, DIMENSION(klev)          :: mintmp, maxtmp
     115    LOGICAL                        :: zero
     116
    117117! --------------------------------------------
    118118! Allocation
    119119! --------------------------------------------
    120 
    121120    ALLOCATE( scavtr(nbtr), stat=ierr)
    122121    IF (ierr /= 0) CALL abort_gcm('traclmdz_init', 'pb in allocation 9',1)
     
    152151! --------------------------------------------
    153152    id_rn=0; id_pb=0; id_aga=0; id_be=0; id_o3=0
     153    id_pcsat=0; id_pcocsat=0; id_pcq=0; id_pcs0=0; id_pcos0=0; id_pcq0=0
    154154    DO it=1,nbtr
    155155       iiq=niadv(it+2)
     
    181181          aerosol(id_be) = .TRUE. ! le Be est un aerosol
    182182          CALL init_be(pctsrf,masktr(:,id_be),tautr(id_be),vdeptr(id_be),scavtr(id_be),srcbe)
    183           WRITE(*,*) 'Initialisation srcBe: OK'
     183          WRITE(lunout,*) 'Initialisation srcBe: OK'
    184184       ELSE IF (tname(iiq)=="O3" .OR. tname(iiq)=="o3") THEN
    185185          ! Recherche de l'ozone : parametrization de la chimie par Cariolle
     
    187187          CALL alloc_coefoz   ! allocate ozone coefficients
    188188          CALL press_coefoz   ! read input pressure levels
    189        END IF   
    190     END DO
    191 
    192     id_dry=0
    193     DO it=1,nbtr
    194        iiq=niadv(it+2)
    195        IF ( tname(iiq) == "dry" .OR. tname(iiq) == "Dry" ) THEN
    196         id_dry=it
    197        END IF   
    198     END DO 
    199 
    200     id_pcsat=0
    201     DO it=1,nbtr
    202        iiq=niadv(it+2)
    203        IF ( tname(iiq) == "pcsat" .OR. tname(iiq) == "Pcsat" ) THEN
    204         id_pcsat=it
    205       END IF
    206     END DO
    207 
    208     id_pcocsat=0
    209     DO it=1,nbtr
    210        iiq=niadv(it+2)
    211        IF ( tname(iiq) == "pcocsat" .OR. tname(iiq) == "Pcocsat" ) THEN
    212         id_pcocsat=it
    213        END IF
    214     END DO
    215 
    216     id_pcq=0
    217     DO it=1,nbtr
    218        iiq=niadv(it+2)
    219        IF ( tname(iiq) == "pcq" .OR. tname(iiq) == "Pcq" ) THEN
    220         id_pcq=it
    221        END IF
    222     END DO
    223 
    224     id_pcs0=0
    225     DO it=1,nbtr
    226        iiq=niadv(it+2)
    227        IF ( tname(iiq) == "pcs0" .OR. tname(iiq) == "Pcs0" ) THEN
    228         id_pcs0=it
    229       END IF
    230     END DO
    231 
    232     id_pcos0=0
    233     DO it=1,nbtr
    234        iiq=niadv(it+2)
    235        IF ( tname(iiq) == "pcos0" .OR. tname(iiq) == "Pcos0" ) THEN
    236         id_pcos0=it
    237        END IF
    238     END DO
    239 
    240     id_pcq0=0
    241     DO it=1,nbtr
    242        iiq=niadv(it+2)
    243        IF ( tname(iiq) == "pcq0" .OR. tname(iiq) == "Pcq0" ) THEN
    244         id_pcq0=it
     189       ELSE IF ( tname(iiq) == "pcsat" .OR. tname(iiq) == "Pcsat" ) THEN
     190          id_pcsat=it
     191       ELSE IF ( tname(iiq) == "pcocsat" .OR. tname(iiq) == "Pcocsat" ) THEN
     192          id_pcocsat=it
     193       ELSE IF ( tname(iiq) == "pcq" .OR. tname(iiq) == "Pcq" ) THEN
     194          id_pcq=it
     195       ELSE IF ( tname(iiq) == "pcs0" .OR. tname(iiq) == "Pcs0" ) THEN
     196          id_pcs0=it
     197          conv_flg(it)=0 ! No transport by convection for this tracer
     198       ELSE IF ( tname(iiq) == "pcos0" .OR. tname(iiq) == "Pcos0" ) THEN
     199          id_pcos0=it
     200          conv_flg(it)=0 ! No transport by convection for this tracer
     201       ELSE IF ( tname(iiq) == "pcq0" .OR. tname(iiq) == "Pcq0" ) THEN
     202          id_pcq0=it
     203          conv_flg(it)=0 ! No transport by convection for this tracer
     204       ELSE
     205          WRITE(lunout,*) 'This is an unknown tracer in LMDZ : ', trim(tname(iiq))
    245206       END IF
    246207    END DO
     
    268229    END IF
    269230
    270 !IM initialisation traceurs pseudo-vapeurs
    271     call q_sat(klon*klev,t_seri,pplay,qsat)
    272     IF ( id_pcsat /= 0 ) THEN
    273      DO k = 1, klev
    274       DO i = 1, klon
    275        IF ( pplay(i,k).GE.85000.) THEN
    276         tr_seri(i,k,id_pcsat) = qsat(i,k)
    277        ELSE
    278         tr_seri(i,k,id_pcsat) = 100.
    279        END IF
    280       END DO
    281      END DO
    282     END IF
    283 
    284     IF ( id_pcocsat /= 0 ) THEN
    285      DO k = 1, klev
    286       DO i = 1, klon
    287        IF ( pplay(i,k).GE.85000.) THEN
    288         IF ( pctsrf (i, is_oce) > 0. ) THEN
    289          tr_seri(i,k,id_pcocsat) = qsat(i,k)
    290         ELSE
    291          tr_seri(i,k,id_pcocsat) = 100.
    292         END IF
    293        END IF
    294       END DO
    295      END DO
    296     END IF
    297 
    298     IF ( id_pcq /= 0 ) THEN
    299      DO k = 1, klev
    300       DO i = 1, klon
    301        IF ( pplay(i,k).GE.85000.) THEN
    302         tr_seri(i,k,id_pcq) = sh(i,k)
    303        ELSE
    304         tr_seri(i,k,id_pcq) = 100.
    305        END IF
    306       END DO
    307      END DO
    308     END IF
    309 
    310     IF ( id_pcs0 /= 0 ) THEN
    311      DO k = 1, klev
    312       DO i = 1, klon
    313        IF ( pplay(i,k).GE.85000.) THEN
    314         tr_seri(i,k,id_pcs0) = qsat(i,k)
    315        ELSE
    316         tr_seri(i,k,id_pcs0) = 100.
    317        END IF
    318       END DO
    319      END DO
    320     END IF
    321 
    322     IF ( id_pcos0 /= 0 ) THEN
    323      DO k = 1, klev
    324       DO i = 1, klon
    325        IF ( pplay(i,k).GE.85000.) THEN
    326         IF ( pctsrf (i, is_oce) > 0. ) THEN
    327          tr_seri(i,k,id_pcos0) = qsat(i,k)
    328         ELSE
    329          tr_seri(i,k,id_pcos0) = 100.
    330         END IF
    331        END IF
    332       END DO
    333      END DO
    334     END IF
    335 
    336     IF ( id_pcq0 /= 0 ) THEN
    337      DO k = 1, klev
    338       DO i = 1, klon
    339        IF ( pplay(i,k).GE.85000.) THEN
    340         tr_seri(i,k,id_pcq0) = sh(i,k)
    341        ELSE
    342         tr_seri(i,k,id_pcq0) = 100.
    343        END IF
    344       END DO
    345      END DO
    346     END IF
    347  
     231! Check if all tracers have restart values
     232! ----------------------------------------------
     233    DO it=1,nbtr
     234       iiq=niadv(it+2)
     235       ! Test if tracer is zero everywhere.
     236       ! Done by master process MPI and master thread OpenMP
     237       CALL gather(tr_seri(:,:,it),varglo)
     238       IF (is_mpi_root .AND. is_omp_root) THEN
     239          mintmp=MINVAL(varglo,dim=1)
     240          maxtmp=MAXVAL(varglo,dim=1)
     241          IF (MINVAL(mintmp,dim=1)==0. .AND. MAXVAL(maxtmp,dim=1)==0.) THEN
     242             ! Tracer is zero everywhere
     243             zero=.TRUE.
     244          ELSE
     245             zero=.FALSE.
     246          END IF
     247       END IF
     248
     249       ! Distribute variable at all processes
     250       CALL bcast(zero)
     251
     252       ! Initalize tracer that was not found in restart file.
     253       IF (zero) THEN
     254          ! The tracer was not found in restart file or it was equal zero everywhere.
     255          WRITE(lunout,*) "The tracer ",trim(tname(iiq))," will be initialized"
     256          IF (it==id_pcsat .OR. it==id_pcq .OR. &
     257               it==id_pcs0 .OR. it==id_pcq0) THEN
     258             tr_seri(:,:,it) = 100.
     259          ELSE IF (it==id_pcocsat .OR. it==id_pcos0) THEN
     260             DO i = 1, klon
     261                IF ( pctsrf (i, is_oce) == 0. ) THEN
     262                   tr_seri(i,:,it) = 0.
     263                ELSE
     264                   tr_seri(i,:,it) = 100.
     265                END IF
     266             END DO
     267          ELSE
     268             ! No specific initialization exist for this tracer
     269             tr_seri(:,:,it) = 0.
     270          END IF
     271       END IF
     272    END DO
     273
    348274  END SUBROUTINE traclmdz_init
    349275
     
    391317    REAL,DIMENSION(klon),INTENT(IN)      :: yv1        ! vents au premier niveau
    392318    LOGICAL,INTENT(IN)                   :: couchelimite
    393 !IM traceurs RR
    394     REAL,DIMENSION(klon,klev),INTENT(IN)   :: sh      ! humidite specifique
     319    REAL,DIMENSION(klon,klev),INTENT(IN) :: sh         ! humidite specifique
    395320
    396321! Arguments necessaires pour les sources et puits de traceur:
    397322    REAL,DIMENSION(klon,nbsrf),INTENT(IN) :: ftsol  ! Temperature du sol (surf)(Kelvin)
    398323    REAL,DIMENSION(klon,nbsrf),INTENT(IN) :: pctsrf ! Pourcentage de sol f(nature du sol)
    399 
    400324
    401325! InOutput argument
     
    412336
    413337    INTEGER :: i, k, it
    414     INTEGER lmt_pas ! number of time steps of "physics" per day
     338    INTEGER :: lmt_pas ! number of time steps of "physics" per day
    415339
    416340    REAL,DIMENSION(klon)           :: d_trs    ! Td dans le reservoir
     341    REAL,DIMENSION(klon,klev)      :: qsat     ! pression de la vapeur a saturation
    417342    REAL,DIMENSION(klon,klev,nbtr) :: d_tr_dec ! Td radioactive
    418     REAL                           :: zrho      ! Masse Volumique de l'air KgA/m3
    419 
    420 !IM traceurs RR
    421     REAL,DIMENSION(klon,klev)      :: qsat   ! pression de la vapeur a saturation
    422     REAL :: amn, amx
     343    REAL                           :: zrho     ! Masse Volumique de l'air KgA/m3
     344    REAL                           :: amn, amx
    423345!
    424346!=================================================================
     
    435357    END IF
    436358 
    437 !IM ajout traceurs RR
    438     call q_sat(klon*klev,t_seri,pplay,qsat)
    439    
     359
     360!=================================================================
     361! Update pseudo-vapor tracers
     362!=================================================================
     363
     364    CALL q_sat(klon*klev,t_seri,pplay,qsat)
     365
    440366    IF ( id_pcsat /= 0 ) THEN
    441367     DO k = 1, klev
    442368      DO i = 1, klon
    443        IF ( pplay(i,k).GE.85000.) THEN
    444         tr_seri(i,k,id_pcsat) = qsat(i,k)
    445        END IF
     369         IF ( pplay(i,k).GE.85000.) THEN
     370            tr_seri(i,k,id_pcsat) = qsat(i,k)
     371         ELSE
     372            tr_seri(i,k,id_pcsat) = MIN (qsat(i,k), tr_seri(i,k,id_pcsat))           
     373         END IF
    446374      END DO
    447375     END DO
     
    451379     DO k = 1, klev
    452380      DO i = 1, klon
    453        IF ( pplay(i,k).GE.85000.) THEN
    454         IF ( pctsrf (i, is_oce) > 0. ) THEN
    455          tr_seri(i,k,id_pcocsat) = qsat(i,k)
    456         END IF
     381         IF ( pplay(i,k).GE.85000.) THEN
     382            IF ( pctsrf (i, is_oce) > 0. ) THEN
     383               tr_seri(i,k,id_pcocsat) = qsat(i,k)
     384            ELSE
     385               tr_seri(i,k,id_pcocsat) = 0.
     386          END IF
     387       ELSE
     388          tr_seri(i,k,id_pcocsat) = MIN (qsat(i,k), tr_seri(i,k,id_pcocsat))
    457389       END IF
    458390      END DO
     
    463395     DO k = 1, klev
    464396      DO i = 1, klon
    465        IF ( pplay(i,k).GE.85000.) THEN
    466         tr_seri(i,k,id_pcq) = sh(i,k)
    467        END IF
     397         IF ( pplay(i,k).GE.85000.) THEN
     398            tr_seri(i,k,id_pcq) = sh(i,k)
     399         ELSE
     400            tr_seri(i,k,id_pcq) = MIN (qsat(i,k), tr_seri(i,k,id_pcq))   
     401         END IF
    468402      END DO
    469403     END DO
    470404    END IF
     405
    471406
    472407    IF ( id_pcs0 /= 0 ) THEN
    473408     DO k = 1, klev
    474409      DO i = 1, klon
    475        IF ( pplay(i,k).GE.85000.) THEN
    476         tr_seri(i,k,id_pcs0) = qsat(i,k)
    477        END IF
     410         IF ( pplay(i,k).GE.85000.) THEN
     411            tr_seri(i,k,id_pcs0) = qsat(i,k)
     412         ELSE
     413            tr_seri(i,k,id_pcs0) = MIN (qsat(i,k), tr_seri(i,k,id_pcs0))   
     414         END IF
    478415      END DO
    479416     END DO
    480417    END IF
     418
    481419
    482420    IF ( id_pcos0 /= 0 ) THEN
    483421     DO k = 1, klev
    484422      DO i = 1, klon
    485        IF ( pplay(i,k).GE.85000.) THEN
    486         IF ( pctsrf (i, is_oce) > 0. ) THEN
    487          tr_seri(i,k,id_pcos0) = qsat(i,k)
    488         END IF
    489        END IF
     423         IF ( pplay(i,k).GE.85000.) THEN
     424            IF ( pctsrf (i, is_oce) > 0. ) THEN
     425               tr_seri(i,k,id_pcos0) = qsat(i,k)
     426            ELSE
     427               tr_seri(i,k,id_pcos0) = 0.
     428            END IF
     429         ELSE
     430            tr_seri(i,k,id_pcos0) = MIN (qsat(i,k), tr_seri(i,k,id_pcos0))
     431         END IF
    490432      END DO
    491433     END DO
    492434    END IF
     435
    493436
    494437    IF ( id_pcq0 /= 0 ) THEN
    495438     DO k = 1, klev
    496439      DO i = 1, klon
    497        IF ( pplay(i,k).GE.85000.) THEN
    498         tr_seri(i,k,id_pcq0) = sh(i,k)
    499        END IF
     440         IF ( pplay(i,k).GE.85000.) THEN
     441            tr_seri(i,k,id_pcq0) = sh(i,k)
     442         ELSE
     443            tr_seri(i,k,id_pcq0) = MIN (qsat(i,k), tr_seri(i,k,id_pcq0))
     444         END IF
    500445      END DO
    501446     END DO
    502447    END IF
    503 
    504     DO it=1,nbtr
    505        WRITE(solsym(it),'(i2)') it
    506     END DO
    507448
    508449!=================================================================
     
    566507    END DO
    567508         
    568 !IM traceurs RR
    569     IF ( id_pcsat /= 0 ) THEN
    570      DO k = 1, klev
    571       DO i = 1, klon
    572        IF ( pplay(i,k).LT.85000.) THEN
    573         tr_seri(i,k,id_pcsat) = MIN (qsat(i,k), tr_seri(i,k,id_pcsat))
    574        END IF
    575       END DO
    576      END DO
    577     END IF
    578 
    579     IF ( id_pcocsat /= 0 ) THEN
    580      DO k = 1, klev
    581       DO i = 1, klon
    582        IF ( pplay(i,k).LT.85000.) THEN
    583         tr_seri(i,k,id_pcocsat) = MIN (qsat(i,k), tr_seri(i,k,id_pcocsat))
    584        END IF
    585       END DO
    586      END DO
    587     END IF
    588 
    589     IF ( id_pcq /= 0 ) THEN
    590      DO k = 1, klev
    591       DO i = 1, klon
    592        IF ( pplay(i,k).LT.85000.) THEN
    593         tr_seri(i,k,id_pcq) = MIN (qsat(i,k), tr_seri(i,k,id_pcq))
    594        END IF
    595       END DO 
    596      END DO 
    597     END IF 
    598 
    599     IF ( id_pcs0 /= 0 ) THEN
    600      DO k = 1, klev
    601       DO i = 1, klon
    602        IF ( pplay(i,k).LT.85000.) THEN
    603         tr_seri(i,k,id_pcs0) = MIN (qsat(i,k), tr_seri(i,k,id_pcs0))
    604        END IF
    605       END DO
    606      END DO
    607     END IF
    608 
    609     IF ( id_pcos0 /= 0 ) THEN
    610      DO k = 1, klev
    611       DO i = 1, klon
    612        IF ( pplay(i,k).LT.85000.) THEN
    613         tr_seri(i,k,id_pcos0) = MIN (qsat(i,k), tr_seri(i,k,id_pcos0))
    614        END IF
    615       END DO
    616      END DO
    617     END IF
    618 
    619     IF ( id_pcq0 /= 0 ) THEN
    620      DO k = 1, klev
    621       DO i = 1, klon
    622        IF ( pplay(i,k).LT.85000.) THEN
    623         tr_seri(i,k,id_pcq0) = MIN (qsat(i,k), tr_seri(i,k,id_pcq0))
    624        END IF
    625       END DO
    626      END DO
    627     END IF
     509
    628510!======================================================================
    629511!   Calcul de l'effet du puits radioactif
    630512!======================================================================
    631513    CALL radio_decay (radio,rnpb,pdtphys,tautr,tr_seri,d_tr_dec)
    632  
     514
     515    DO it=1,nbtr
     516       WRITE(solsym(it),'(i2)') it
     517    END DO
     518
    633519    DO it=1,nbtr
    634520       IF(radio(it)) then     
Note: See TracChangeset for help on using the changeset viewer.