Changeset 199 for LMDZ.3.3/trunk


Ignore:
Timestamp:
Apr 2, 2001, 11:12:13 AM (23 years ago)
Author:
lmdz
Message:

Introduction Kerry Emmanuel
ratqs interactif
mise a jour offline
FH
LF

Location:
LMDZ.3.3/trunk/libf/phylmd
Files:
8 added
5 edited

Legend:

Unmodified
Added
Removed
  • LMDZ.3.3/trunk/libf/phylmd/condsurf.F

    r40 r199  
     1c $Header
     2c
    13      SUBROUTINE condsurf( jour, jourvrai, pctsrf,
    24     s                    lmt_sst,lmt_alb,lmt_rug,lmt_bils )
  • LMDZ.3.3/trunk/libf/phylmd/fisrtilp_tr.F

    r60 r199  
    1       SUBROUTINE fisrtilp_tr(dtime,paprs,pplay,t,q,
     1c $Header
     2c
     3      SUBROUTINE fisrtilp_tr(dtime,paprs,pplay,t,q,ratqs,
    24     s                   d_t, d_q, d_ql, rneb, radliq, rain, snow,
    35     s                   pfrac_impa, pfrac_nucl, pfrac_1nucl,
     
    6668      PARAMETER (coef_eva=2.0E-05)
    6769      LOGICAL calcrat ! calculer ratqs au lieu de fixer sa valeur
    68       REAL ratqs ! determine la largeur de distribution de vapeur
     70      REAL ratqs(klon,klev) ! determine la largeur de distribution de vapeur
    6971      PARAMETER (calcrat=.TRUE.)
    7072      REAL zx_min, rat_max
     
    281283         DO i = 1, klon
    282284c
    283             zx = pplay(i,k)/paprs(i,1)
    284             zx = (zx_max-zx)/(zx_max-zx_min)
    285             zx = MIN(MAX(zx,0.0),1.0)
    286             zx = zx * zx * zx
    287             ratqs = zx * (rat_max-rat_min) + rat_min
    288             IF (.NOT.calcrat) ratqs=0.05
    289 c
    290             zdelq = ratqs * zq(i)
     285            zdelq = ratqs(i,k) * zq(i)
    291286            rneb(i,k) = (zq(i)+zdelq-zqs(i)) / (2.0*zdelq)
    292287            zqn(i) = (zq(i)+zdelq+zqs(i))/2.0
  • LMDZ.3.3/trunk/libf/phylmd/physiq.F

    r197 r199  
     1c $Header
     2c
    13      SUBROUTINE physiq (nlon,nlev,nqmax  ,
    24     .            debut,lafin,rjourvrai,rjour_ecri,gmtime,pdtphys,
     
    273275      REAL alb_neig(klon)
    274276      SAVE alb_neig               ! albedo de la neige
     277cKE43
     278c Variables liees a la convection de K. Emanuel (sb):
     279c
     280      REAL ema_workcbmf(klon)   ! cloud base mass flux
     281      SAVE ema_workcbmf
     282
     283      REAL ema_cbmf(klon)       ! cloud base mass flux
     284      SAVE ema_cbmf
     285
     286      REAL ema_pcb(klon)        ! cloud base pressure
     287      SAVE ema_pcb
     288
     289      REAL ema_pct(klon)        ! cloud top pressure
     290      SAVE ema_pct
     291
     292      REAL bas, top             ! cloud base and top levels
     293      SAVE bas
     294      SAVE top
     295
     296      REAL Ma(klon,klev)        ! undilute upward mass flux
     297      SAVE Ma
     298      REAL ema_work1(klon, klev), ema_work2(klon, klev)
     299      SAVE ema_work1, ema_work2
     300      REAL wdn(klon), tdn(klon), qdn(klon)
     301c Variables locales pour la couche limite (al1):
     302c
     303cAl1      REAL pblh(klon)           ! Hauteur de couche limite
     304cAl1      SAVE pblh
     305c34EK
    275306c
    276307c Variables locales:
     
    346377      EXTERNAL condsurf  ! lire les conditions aux limites
    347378      EXTERNAL conlmd    ! convection (schema LMD)
     379cKE43
     380      EXTERNAL conema  ! convect4.3
    348381      EXTERNAL fisrtilp  ! schema de condensation a grande echelle (pluie)
    349382cAA
     
    425458      REAL zx_relief(iim,jjmp1)
    426459      REAL zx_aire(iim,jjmp1)
     460cKE43
     461c Variables locales pour la convection de K. Emanuel (sb):
     462c
     463      REAL upwd(klon,klev)      ! saturated updraft mass flux
     464      REAL dnwd(klon,klev)      ! saturated downdraft mass flux
     465      REAL dnwd0(klon,klev)     ! unsaturated downdraft mass flux
     466      REAL tvp(klon,klev)       ! virtual temp of lifted parcel
     467      REAL cape(klon)           ! CAPE
     468      SAVE cape
     469      REAL pbase(klon)          ! cloud base pressure
     470      SAVE pbase
     471      REAL bbase(klon)          ! cloud base buoyancy
     472      SAVE bbase
     473      REAL rflag(klon)          ! flag fonctionnement de convect
     474c -- convect43:
     475      INTEGER ntra              ! nb traceurs pour convect4.3
     476      REAL pori_con(klon)    ! pressure at the origin level of lifted parcel
     477      REAL plcl_con(klon),dtma_con(klon),dtlcl_con(klon)
     478      REAL dtvpdt1(klon,klev), dtvpdq1(klon,klev)
     479      REAL dplcldt(klon), dplcldr(klon)
     480c?     .     condm_con(klon,klev),conda_con(klon,klev),
     481c?     .     mr_con(klon,klev),ep_con(klon,klev)
     482c?     .    ,sadiab(klon,klev),wadiab(klon,klev)
     483c --
     484c34EK
    427485c
    428486c Variables du changement
     
    459517      REAL d_u_lif(klon,klev), d_v_lif(klon,klev)
    460518      REAL d_t_lif(klon,klev)
     519
     520      REAL ratqs(klon,klev)
     521      LOGICAL zpt_conv(klon,klev)
     522
    461523c
    462524c Variables liees a l'ecriture de la bande histoire physique
     
    627689         PRINT*, "Clef pour la convection, iflag_con=", iflag_con
    628690c
     691cKE43
     692c Initialisation pour la convection de K.E. (sb):
     693         IF (iflag_con.EQ.4) THEN
     694
     695         PRINT*, "*** Convection de Kerry Emanuel 4.3  "
     696         PRINT*, "On va utiliser le melange convectif des traceurs qui"
     697         PRINT*, "est calcule dans convect4.3"
     698         PRINT*, " !!! penser aux logical flags de phytrac"
     699
     700          DO i = 1, klon
     701           ema_cbmf(i) = 0.
     702           ema_pcb(i)  = 0.
     703           ema_pct(i)  = 0.
     704           ema_workcbmf(i) = 0.
     705          ENDDO
     706         ENDIF
     707c34EK
    629708         IF (ok_orodr) THEN
    630709         DO i=1,klon
     
    10061085     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    10071086     .                "ave(X)", zsto,zout)
     1087cKE43
     1088      IF (iflag_con .EQ. 4) THEN ! sb
     1089c
     1090         CALL histdef(nid_mth, "cape", "Conv avlbl pot ener", "J/Kg",
     1091     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1092     .                "ave(X)", zsto,zout)
     1093c
     1094         CALL histdef(nid_mth, "pbase", "Cld base pressure", "hPa",
     1095     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1096     .                "ave(X)", zsto,zout)
     1097c
     1098         CALL histdef(nid_mth, "ptop", "Cld top pressure", "hPa",
     1099     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1100     .                "ave(X)", zsto,zout)
     1101c
     1102         CALL histdef(nid_mth, "fbase", "Cld base mass flux", "Kg/m2/s",
     1103     .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1104     .                "ave(X)", zsto,zout)
     1105c
     1106c
     1107      ENDIF
     1108c34EK
    10081109c
    10091110c Champs 3D:
     
    10881189     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
    10891190     .                "ave(X)", zsto,zout)
     1191
     1192         CALL histdef(nid_mth, "ptconv", "POINTS CONVECTIFS"," ",
     1193     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     1194     .                "ave(X)", zsto,zout)
     1195
     1196         CALL histdef(nid_mth, "ratqs", "RATQS"," ",
     1197     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     1198     .                "ave(X)", zsto,zout)
     1199
    10901200c
    10911201         CALL histdef(nid_mth, "dtajs", "Dry adjust. dT", "K/s",
     
    11601270         ENDIF
    11611271c
     1272cKE43
     1273      IF (iflag_con.EQ.4) THEN ! (sb)
     1274c
     1275         CALL histdef(nid_mth, "upwd", "saturated updraft", "Kg/m2/s",
     1276     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1277     .                "ave(X)", zsto,zout)
     1278c
     1279         CALL histdef(nid_mth, "dnwd", "saturated downdraft","Kg/m2/s",
     1280     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1281     .                "ave(X)", zsto,zout)
     1282c
     1283         CALL histdef(nid_mth, "dnwd0", "unsat. downdraft", "Kg/m2/s",
     1284     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1285     .                "ave(X)", zsto,zout)
     1286c
     1287         CALL histdef(nid_mth,"Ma","undilute adiab updraft","Kg/m2/s",
     1288     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1289     .                "ave(X)", zsto,zout)
     1290c
     1291c
     1292      ENDIF
     1293c34EK
    11621294         CALL histend(nid_mth)
    11631295c
     
    13611493      IF (MOD(itap-1,lmt_pas) .EQ. 0) THEN
    13621494         idayvrai = NINT(xjour)
    1363          PRINT *,' PHYS cond  julien ',julien,idayvrai
     1495         PRINT *,' PHYS cond  julien ',julien,idayvrai,ok_limitvrai
    13641496         CALL condsurf(julien,idayvrai, pctsrf ,
    13651497     .                  lmt_sst,lmt_alb,lmt_rug,lmt_bils  )
     
    14951627      DO i = 1, klon
    14961628         zxtsol(i) = 0.0
     1629         IF ( abs( pctsrf(i, is_ter) + pctsrf(i, is_lic) +
     1630     $       pctsrf(i, is_oce) + pctsrf(i, is_sic)  - 1.) .GT. EPSFRA)
     1631     $       THEN
     1632             WRITE(*,*) 'physiq : pb sous surface au point ', i,
     1633     $           pctsrf(i, 1 : nbsrf)
     1634         ENDIF
    14971635      ENDDO
    14981636      DO nsrf = 1, nbsrf
     
    15071645c
    15081646      DO nsrf = 1, nbsrf
    1509       DO i = 1, klon
    1510          IF (pctsrf(i,nsrf).LT.epsfra) ftsol(i,nsrf) = zxtsol(i)
    1511       ENDDO
     1647        DO i = 1, klon
     1648          IF (pctsrf(i,nsrf) .LT. epsfra) ftsol(i,nsrf) = zxtsol(i)
     1649        ENDDO
    15121650      ENDDO
    15131651
     
    15801718c    s             d_t_con, d_q_con,
    15811719c    s             rain_con, snow_con, ibas_con, itop_con)
     1720cKE43
     1721      ELSE IF (iflag_con.EQ.4) THEN
     1722c nb of tracers for the KE convection:
     1723          if (nqmax .GE. 4) then
     1724              ntra = nbtr
     1725          else
     1726              ntra = 1
     1727          endif
     1728cke43 (arguments inutiles enleves => des SAVE dans conema43?)
     1729c$$$          CALL conema43(dtime,paprs,pplay,t_seri,q_seri,
     1730c$$$     $        u_seri,v_seri,tr_seri,nbtr,
     1731c$$$     .        ema_workcbmf,
     1732c$$$     .        d_t_con,d_q_con,d_u_con,d_v_con,d_tr,
     1733c$$$     .        wdn, tdn, qdn,
     1734c$$$     .        rain_con, snow_con, ibas_con, itop_con,
     1735c$$$     .        upwd,dnwd,dnwd0,bas,top,Ma,cape,tvp,rflag,
     1736c$$$     .        pbase
     1737c$$$     .        ,bbase,dtvpdt1,dtvpdq1,dplcldt,dplcldr,
     1738c$$$     .        pori_con,plcl_con,dtma_con,dtlcl_con)
     1739          CALL conema (dtime,paprs,pplay,t_seri,q_seri,
     1740     $        u_seri,v_seri,tr_seri,nbtr,
     1741     .        ema_work1,ema_work2,
     1742     .        d_t_con,d_q_con,d_u_con,d_v_con,d_tr,
     1743c$$$     .        wdn, tdn, qdn,
     1744     .        rain_con, snow_con, ibas_con, itop_con,
     1745     .        upwd,dnwd,dnwd0,bas,top,Ma,cape,tvp,rflag,
     1746     .        pbase
     1747     .        ,bbase,dtvpdt1,dtvpdq1,dplcldt,dplcldr)
     1748c$$$     .        pori_con,plcl_con,dtma_con,dtlcl_con)
     1749          DO i = 1, klon
     1750            ema_pcb(i)  = pbase(i)
     1751          ENDDO
     1752          DO i = 1, klon
     1753            ema_pct(i)  = paprs(i,itop_con(i))
     1754          ENDDO
     1755          DO i = 1, klon
     1756            ema_cbmf(i) = ema_workcbmf(i)
     1757          ENDDO     
    15821758      ELSE
    1583       PRINT*, "iflag_con non-prevu", iflag_con
    1584       CALL abort
     1759          PRINT*, "iflag_con non-prevu", iflag_con
     1760          CALL abort
    15851761      ENDIF
    15861762      CALL homogene(paprs, q_seri, d_q_con, u_seri,v_seri,
    15871763     .              d_u_con, d_v_con)
    15881764      DO k = 1, klev
    1589       DO i = 1, klon
    1590          t_seri(i,k) = t_seri(i,k) + d_t_con(i,k)
    1591          q_seri(i,k) = q_seri(i,k) + d_q_con(i,k)
    1592          u_seri(i,k) = u_seri(i,k) + d_u_con(i,k)
    1593          v_seri(i,k) = v_seri(i,k) + d_v_con(i,k)
    1594       ENDDO
     1765        DO i = 1, klon
     1766          t_seri(i,k) = t_seri(i,k) + d_t_con(i,k)
     1767          q_seri(i,k) = q_seri(i,k) + d_q_con(i,k)
     1768          u_seri(i,k) = u_seri(i,k) + d_u_con(i,k)
     1769          v_seri(i,k) = v_seri(i,k) + d_v_con(i,k)
     1770        ENDDO
    15951771      ENDDO
    15961772      IF (check) THEN
    1597          za = qcheck(klon,klev,paprs,q_seri,ql_seri,paire)
    1598          PRINT*, "aprescon=", za
    1599          zx_t = 0.0
    1600          za = 0.0
    1601          DO i = 1, klon
     1773          za = qcheck(klon,klev,paprs,q_seri,ql_seri,paire)
     1774          PRINT*, "aprescon=", za
     1775          zx_t = 0.0
     1776          za = 0.0
     1777          DO i = 1, klon
    16021778            za = za + paire(i)/FLOAT(klon)
    16031779            zx_t = zx_t + (rain_con(i)+snow_con(i))*paire(i)/FLOAT(klon)
    1604         ENDDO
    1605          zx_t = zx_t/za*dtime
    1606          PRINT*, "Precip=", zx_t
     1780          ENDDO
     1781          zx_t = zx_t/za*dtime
     1782          PRINT*, "Precip=", zx_t
    16071783      ENDIF
    16081784      IF (zx_ajustq) THEN
    1609          DO i = 1, klon
     1785          DO i = 1, klon
    16101786            z_apres(i) = 0.0
    1611          ENDDO
    1612          DO k = 1, klev
    1613          DO i = 1, klon
    1614             z_apres(i) = z_apres(i) + (q_seri(i,k)+ql_seri(i,k))
    1615      .                        *(paprs(i,k)-paprs(i,k+1))/RG
    1616          ENDDO
    1617          ENDDO
    1618          DO i = 1, klon
    1619          z_factor(i) = (z_avant(i)-(rain_con(i)+snow_con(i))*dtime)
    1620      .                /z_apres(i)
    1621          ENDDO
    1622          DO k = 1, klev
    1623          DO i = 1, klon
    1624          IF (z_factor(i).GT.(1.0+1.0E-08) .OR.
    1625      .       z_factor(i).LT.(1.0-1.0E-08)) THEN
    1626                q_seri(i,k) = q_seri(i,k) * z_factor(i)
    1627          ENDIF
    1628          ENDDO
    1629          ENDDO
     1787          ENDDO
     1788          DO k = 1, klev
     1789            DO i = 1, klon
     1790              z_apres(i) = z_apres(i) + (q_seri(i,k)+ql_seri(i,k))
     1791     .            *(paprs(i,k)-paprs(i,k+1))/RG
     1792            ENDDO
     1793          ENDDO
     1794          DO i = 1, klon
     1795            z_factor(i) = (z_avant(i)-(rain_con(i)+snow_con(i))*dtime)
     1796     .          /z_apres(i)
     1797          ENDDO
     1798          DO k = 1, klev
     1799            DO i = 1, klon
     1800              IF (z_factor(i).GT.(1.0+1.0E-08) .OR.
     1801     .            z_factor(i).LT.(1.0-1.0E-08)) THEN
     1802                  q_seri(i,k) = q_seri(i,k) * z_factor(i)
     1803              ENDIF
     1804            ENDDO
     1805          ENDDO
    16301806      ENDIF
    16311807      zx_ajustq=.FALSE.
     
    16331809      IF (nqmax.GT.2) THEN !--melange convectif de traceurs
    16341810c
    1635       IF (iflag_con.NE.2) THEN
    1636          PRINT*, "Pour l instant, seul conflx fonctionne avec traceurs"
    1637          PRINT*,' Mettre iflag_con = 2  dans  run.def et repasser  !'
    1638          CALL abort
    1639       ENDIF
     1811          IF (iflag_con .NE. 2 .AND.  iflag_con .NE. 4 ) THEN
     1812              PRINT*, 'Pour l instant, seul conflx fonctionne ',
     1813     $            'avec traceurs', iflag_con
     1814              PRINT*,' Mettre iflag_con',
     1815     $            ' = 2  ou 4 dans run.def et repasser'
     1816              CALL abort
     1817              ENDIF
    16401818c
    16411819      ENDIF !--nqmax.GT.2
     
    16501828      ENDDO
    16511829      ENDDO
     1830
     1831c   RATQS
     1832      call calcratqs (
     1833     I            paprs,pplay,q_seri,d_t_con,d_t_ajs
     1834     O           ,ratqs,zpt_conv)
    16521835c
    16531836c Appeler le processus de condensation a grande echelle
     
    16551838c
    16561839      CALL fisrtilp_tr(dtime,paprs,pplay,
    1657      .           t_seri, q_seri,
     1840     .           t_seri, q_seri,ratqs,
    16581841     .           d_t_lsc, d_q_lsc, d_ql_lsc, rneb, cldliq,
    16591842     .           rain_lsc, snow_lsc,
     
    19162099c   Calcul  des tendances traceurs
    19172100c====================================================================
     2101C Pascale : il faut quand meme apeller phytrac car il gere les sorties
     2102cKE43       des traceurs => il faut donc mettre des flags a .false.
     2103      IF (iflag_con.EQ.4) THEN
     2104c           on ajoute les tendances calculees par KE43
     2105        DO iq=1, nqmax-2 ! Sandrine a -3 ???
     2106        DO k = 1, nlev
     2107        DO i = 1, klon
     2108          tr_seri(i,k,iq) = tr_seri(i,k,iq) + d_tr(i,k,iq)
     2109        ENDDO
     2110        ENDDO
     2111        WRITE(iqn,'(i2.2)') iq
     2112        CALL minmaxqfi(tr_seri(1,1,iq),0.,1.e33,'couche lim iq='//iqn)
     2113        ENDDO
     2114CMAF modif pour garder info du nombre de traceurs auxquels
     2115C la physique s'applique
     2116      ELSE
    19182117CMAF modif pour garder info du nombre de traceurs auxquels
    19192118C la physique s'applique
    19202119C
    19212120      call phytrac (rnpb,
    1922      I                   debut,
     2121     I                   debut,lafin,
    19232122     I                   nqmax-2,
    19242123     I                   nlon,nlev,dtime,
     
    19292128     I                   rlon,presnivs,paire,pphis,
    19302129     O                   tr_seri)
     2130      ENDIF
    19312131
    19322132      IF (offline) THEN
     
    22392439      CALL gr_fi_ecrit(1, klon,iim,jjmp1, vq,zx_tmp_2d)
    22402440      CALL histwrite(nid_mth,"vq",itap,zx_tmp_2d,iim*jjmp1,ndex2d)
     2441cKE43
     2442      IF (iflag_con .EQ. 4) THEN ! sb
     2443c
     2444      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cape,zx_tmp_2d)
     2445      CALL histwrite(nid_mth,"cape",itap,zx_tmp_2d,iim*jjmp1,ndex2d)
     2446c
     2447      CALL gr_fi_ecrit(1, klon,iim,jjmp1,pbase,zx_tmp_2d)
     2448      CALL histwrite(nid_mth,"pbase",itap,zx_tmp_2d,iim*jjmp1,ndex2d)
     2449c
     2450      CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_pct,zx_tmp_2d)
     2451      CALL histwrite(nid_mth,"ptop",itap,zx_tmp_2d,iim*jjmp1,ndex2d)
     2452c
     2453      CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_cbmf,zx_tmp_2d)
     2454      CALL histwrite(nid_mth,"fbase",itap,zx_tmp_2d,iim*jjmp1,ndex2d)
     2455c
     2456c
     2457      ENDIF
     2458c34EK
    22412459c
    22422460c Champs 3D:
     
    23212539      CALL histwrite(nid_mth,"dqeva",itap,zx_tmp_3d,
    23222540     .                                   iim*jjmp1*klev,ndex3d)
     2541c
     2542      CALL gr_fi_ecrit(klev,klon,iim,jjm+1, zpt_conv, zx_tmp_3d)
     2543      CALL histwrite(nid_mth,"ptconv",itap,zx_tmp_3d,
     2544     .                                   iim*(jjm+1)*klev,ndex3d)
     2545c
     2546      CALL gr_fi_ecrit(klev,klon,iim,jjm+1, ratqs, zx_tmp_3d)
     2547      CALL histwrite(nid_mth,"ratqs",itap,zx_tmp_3d,
     2548     .                                   iim*(jjm+1)*klev,ndex3d)
    23232549c
    23242550      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_ajs, zx_tmp_3d)
     
    23922618      ENDDO
    23932619      ENDIF
     2620cKE43
     2621      IF (iflag_con.EQ.4) THEN ! (sb)
     2622c
     2623      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, upwd, zx_tmp_3d)
     2624      CALL histwrite(nid_mth,"upwd",itap,zx_tmp_3d,
     2625     .                                   iim*jjmp1*klev,ndex3d)
     2626c
     2627      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd, zx_tmp_3d)
     2628      CALL histwrite(nid_mth,"dnwd",itap,zx_tmp_3d,
     2629     .                                   iim*jjmp1*klev,ndex3d)
     2630c
     2631      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd0, zx_tmp_3d)
     2632      CALL histwrite(nid_mth,"dnwd0",itap,zx_tmp_3d,
     2633     .                                   iim*jjmp1*klev,ndex3d)
     2634c
     2635      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, Ma, zx_tmp_3d)
     2636      CALL histwrite(nid_mth,"Ma",itap,zx_tmp_3d,
     2637     .                                   iim*jjmp1*klev,ndex3d)
     2638c
     2639c
     2640      ENDIF
     2641c34EK
    23942642c
    23952643      if (ok_sync) then
  • LMDZ.3.3/trunk/libf/phylmd/phystokenc.F

    r188 r199  
     1c
     2c $Header
     3c
    14      SUBROUTINE phystokenc (
    25     I                   nlon,nlev,pdtphys,rlon,rlat,
  • LMDZ.3.3/trunk/libf/phylmd/phytrac.F

    r53 r199  
     1c
     2c $Header
     3c
    14      SUBROUTINE phytrac (rnpb,
    2      I                   debutphy,
     5     I                   debutphy,lafin,
    36     I                   nqmax,
    47     I                   nlon,nlev,pdtphys,
     
    5255      real pphis(klon)
    5356      logical debutphy       ! le flag de l'initialisation de la physique
     57      logical lafin          ! le flag de la fin de la physique
     58
    5459      integer ll
    5560c
     
    282287            enddo
    283288         END DO
     289
     290         open (99,file='starttrac',status='old',
     291     .         err=999,form='formatted')
     292         read(99,*) (trs(i,1),i=1,klon)
     293999      close(99)
     294         print*, 'apres starttrac'
     295
    284296c Initialisation de la fraction d'aerosols lessivee
    285297c
     
    536548      if (ok_sync) call histsync(nid_tra)
    537549
     550      if (lafin) then
     551         print*, 'c est la fin de la physique'
     552         open (99,file='restarttrac',  form='formatted')
     553         do i=1,klon
     554             write(99,*) trs(i,1)
     555         enddo
     556         PRINT*, 'Ecriture du fichier restarttrac'
     557         close(99)
     558      else
     559         print*, 'physique pas fini'
     560      endif
     561
     562
    538563      RETURN
    539564      END
Note: See TracChangeset for help on using the changeset viewer.