Ignore:
Timestamp:
Apr 15, 2005, 2:36:17 PM (19 years ago)
Author:
lmdzadmin
Message:

Rajout convection Kerry Emanuel pour traceurs- MAF+JYG

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/phylmd/physiq.F

    r616 r619  
    212212      REAL d_qx(klon,klev,nqmax)
    213213      REAL d_ps(klon)
     214      real da(klon,klev),phi(klon,klev,klev),mp(klon,klev)
    214215
    215216      INTEGER klevp1, klevm1
     
    769770      REAL zx_t, zx_qs, zdelta, zcor, zfra, zlvdcp, zlsdcp
    770771      real zqsat(klon,klev)
    771       INTEGER i, k, iq, ig, j, nsrf, ll
     772      INTEGER i, k, iq, ig, j, iiq, nsrf, ll
    772773      REAL t_coup
    773774      PARAMETER (t_coup=234.0)
     
    795796      INTEGER iflagctrl(klon)          ! flag fonctionnement de convect
    796797c -- convect43:
    797       INTEGER ntra              ! nb traceurs pour convect4.3
     798      INTEGER ntra              ! nb traceurs
    798799      REAL pori_con(klon)    ! pressure at the origin level of lifted parcel
    799800      REAL plcl_con(klon),dtma_con(klon),dtlcl_con(klon)
     
    11531154
    11541155         WRITE(lunout,*)"*** Convection de Kerry Emanuel 4.3  "
    1155          WRITE(lunout,*)
    1156      .      "On va utiliser le melange convectif des traceurs qui"
    1157          WRITE(lunout,*)"est calcule dans convect4.3"
    1158          WRITE(lunout,*)" !!! penser aux logical flags de phytrac"
    11591156
    11601157          DO i = 1, klon
     
    11671164          DO i = 1, klon
    11681165           ibas_con(i) = 1
    1169            itop_con(i) = klev+1
     1166           itop_con(i) = 1
    11701167          ENDDO
    11711168cIM15/11/02 rajout initialisation ibas_con,itop_con cf. SB =>END
     
    17331730      ELSE IF (iflag_con.GE.3) THEN
    17341731c nb of tracers for the KE convection:
    1735           if (nqmax .GE. 4) then
    1736               ntra = nbtr
    1737           else
    1738               ntra = 1
    1739           endif
    1740 c
     1732c MAF la partie traceurs est faite dans phytrac
     1733c on met ntra=1 pour limiter les appels mais on peut
     1734c supprimer les calculs / ftra.
     1735              ntra = 1
    17411736c sb, oct02:
    17421737c Schema de convection modularise et vectorise:
     
    17471742          CALL concvl (iflag_con,
    17481743     .        dtime,paprs,pplay,t_seri,q_seri,
    1749      .        u_seri,v_seri,tr_seri,nbtr,
     1744     .        u_seri,v_seri,tr_seri,ntra,
    17501745     .        ema_work1,ema_work2,
    17511746     .        d_t_con,d_q_con,d_u_con,d_v_con,d_tr,
     
    17531748     .        upwd,dnwd,dnwd0,
    17541749     .        Ma,cape,tvp,iflagctrl,
    1755      .        pbase,bbase,dtvpdt1,dtvpdq1,dplcldt,dplcldr,qcondc,wd)
     1750     .        pbase,bbase,dtvpdt1,dtvpdq1,dplcldt,dplcldr,qcondc,wd,
     1751     .        pmflxr,pmflxs,
     1752     .        da,phi,mp)
     1753
    17561754cIM cf. FH
    17571755              clwcon0=qcondc
     1756              pmfu(:,:)=upwd(:,:)+dnwd(:,:)
    17581757
    17591758          ELSE ! ok_cvl
    1760 
     1759c MAF conema3 ne contient pas les traceurs
    17611760          CALL conema3 (dtime,
    17621761     .        paprs,pplay,t_seri,q_seri,
    1763      .        u_seri,v_seri,tr_seri,nbtr,
     1762     .        u_seri,v_seri,tr_seri,ntra,
    17641763     .        ema_work1,ema_work2,
    17651764     .        d_t_con,d_q_con,d_u_con,d_v_con,d_tr,
     
    18851884      zx_ajustq=.FALSE.
    18861885c
    1887       IF (nqmax.GT.2) THEN !--melange convectif de traceurs
    1888 c
    1889           IF (iflag_con .NE. 2 .AND. debut) THEN
    1890               WRITE(lunout,*)'Pour l instant, seul conflx fonctionne ',
    1891      $            'avec traceurs', iflag_con
    1892               WRITE(lunout,*)' Mettre iflag_con',
    1893      $            ' = 2 dans run.def et repasser'
    1894 c              CALL abort
    1895               ENDIF
    1896 c
    1897       ENDIF !--nqmax.GT.2
    1898 c
    1899 c Appeler l'ajustement sec
    1900 c
    19011886c===================================================================
    19021887c Convection seche (thermiques ou ajustement)
     
    26442629c   Calcul  des tendances traceurs
    26452630c====================================================================
    2646 C Pascale : il faut quand meme apeller phytrac car il gere les sorties
    2647 cKE43       des traceurs => il faut donc mettre des flags a .false.
    2648       IF (iflag_con.GE.3) THEN
    2649 c           on ajoute les tendances calculees par KE43
    2650 cXXX OM on onhibe la convection sur les traceurs
    2651         DO iq=1, nqmax-2 ! Sandrine a -3 ???
    2652 cXXX OM on inhibe la convection sur les traceur
    2653 cXXX        DO k = 1, nlev
    2654 cXXX        DO i = 1, klon
    2655 cXXX          tr_seri(i,k,iq) = tr_seri(i,k,iq) + d_tr(i,k,iq)
    2656 cXXX        ENDDO
    2657 cXXX        ENDDO
    2658         WRITE(iqn,'(i2.2)') iq
    2659         CALL minmaxqfi(tr_seri(1,1,iq),0.,1.e33,'couche lim iq='//iqn)
    2660         ENDDO
    2661 CMAF modif pour garder info du nombre de traceurs auxquels
    2662 C la physique s'applique
    2663       ELSE
    2664 CMAF modif pour garder info du nombre de traceurs auxquels
    2665 C la physique s'applique
    26662631C
    2667       call phytrac (rnpb,
     2632      call phytrac (iflag_con,rnpb,
    26682633     I                   itap, julien, gmtime,
    26692634     I                   debut,lafin,
     
    26802645     I                   ibas_con,
    26812646     I                   pmflxr,pmflxs,prfl,psfl,
    2682 #ifdef INCA
     2647     I                   da,phi,mp,
     2648     I                   upwd,dnwd,
     2649#ifdef INCA_CH4
    26832650     I                   flxmass_w,
    26842651#endif
    26852652     O                   tr_seri)
    2686       ENDIF
    26872653
    26882654      IF (offline) THEN
Note: See TracChangeset for help on using the changeset viewer.