Changeset 1665 for trunk/LMDZ.VENUS/libf


Ignore:
Timestamp:
Feb 14, 2017, 2:02:02 PM (8 years ago)
Author:
slebonnois
Message:

SL: oubli commit precedent + modif calcul N2 + XIOS

Location:
trunk/LMDZ.VENUS/libf/phyvenus
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F

    r1661 r1665  
    143143
    144144      REAL flxmw(klon,klev)
     145
     146! A VIRER POUR DYNAMICO
    145147      REAL,INTENT(IN) :: plevmoy(klev+1) ! planet-averaged mean pressure (Pa) at interfaces
    146148      REAL,INTENT(IN) :: tmoy(klev) ! planet-averaged mean temperature (Pa) at mid-layers
     
    180182
    181183c Pour calcul GW drag oro et nonoro: CALCUL de N2:
    182       real zdzlev(klon,klev)
    183       real ztlev(klon,klev),zpklev(klon,klev)
    184       real ztetalay(klon,klev),ztetalev(klon,klev)
    185       real zdtetalev(klon,klev)
     184      real zdtlev(klon,klev),zdzlev(klon,klev)
     185      real ztlev(klon,klev)
    186186      real zn2(klon,klev) ! BV^2 at plev
    187187
     
    540540         do j=1,klev
    541541            rnew(ig,j)=R
    542             cpnew(ig,j)=cpdet(tmoy(j))
     542            cpnew(ig,j)=cpdet(t(ig,j))
    543543            mmean(ig,j)=RMD
    544544            akknew(ig,j)=1.e-4
     545            rho(ig,j)=pplay(ig,j)*mmean(ig,j)*1e-3/(rnew(ig,j)*t(ig,j))
    545546          enddo
    546547c        stop
     
    664665      nmicro=0
    665666      if (ok_cloud .AND. (cl_scheme.eq.1)) nmicro=2
    666       if (ok_cloud .AND. (cl_scheme.eq.2)) nmicro=8
     667      if (ok_cloud .AND. (cl_scheme.eq.2)) nmicro=12
    667668 
    668669c CAS 1D POUR MICROPHYS Aurelien
     
    14791480c
    14801481      if (ok_orodr.or.ok_gw_nonoro) then
    1481 c  CALCUL DE N2
     1482
     1483c  CALCUL DE N2   
     1484c   UTILISE LA RELATION ENTRE N2 ET STABILITE
     1485c   N2 = RG/T (dT/dz+RG/cp(T))
     1486c   ET DONC EN N'UTILISE QUE LA TEMPERATURE, PAS teta.
     1487
    14821488       do i=1,klon
    14831489        do k=2,klev
    14841490          ztlev(i,k)  = (t_seri(i,k)+t_seri(i,k-1))/2.
    1485           zpklev(i,k) = sqrt(ppk(i,k)*ppk(i,k-1))
    14861491        enddo
    14871492       enddo
    1488        call t2tpot(klon*klev,ztlev, ztetalev,zpklev)
    1489        call t2tpot(klon*klev,t_seri,ztetalay,ppk)
    14901493       do i=1,klon
    14911494        do k=2,klev
    1492           zdtetalev(i,k) = ztetalay(i,k)-ztetalay(i,k-1)
    1493           zdzlev(i,k)    = (zphi(i,k)-zphi(i,k-1))/RG
    1494           zn2(i,k) = RG*zdtetalev(i,k)/(ztetalev(i,k)*zdzlev(i,k))
     1495          ztlev(i,k)  = (t_seri(i,k)+t_seri(i,k-1))/2.
     1496          zdtlev(i,k) =  t_seri(i,k)-t_seri(i,k-1)
     1497          zdzlev(i,k) = (zphi(i,k)-zphi(i,k-1))/RG
     1498          zn2(i,k) = RG/ztlev(i,k) * ( zdtlev(i,k)/zdzlev(i,k)
     1499     .                                  + RG/cpdet(ztlev(i,k)) )
    14951500          zn2(i,k) = max(zn2(i,k),1.e-12)  ! securite
    14961501        enddo
     
    17961801! <field id="..." /> in context_lmdz_physics.xml to be correctly used)
    17971802     
    1798       CALL send_xios_field("phis",phis)
     1803! 2D fields
     1804
     1805      CALL send_xios_field("phis",pphis)
    17991806      cell_area_out(:)=cell_area(:)
    18001807      if (is_north_pole_phy) cell_area_out(1)=cell_area(1)/nbp_lon
     
    18031810      CALL send_xios_field("tsol",ftsol)
    18041811      CALL send_xios_field("psol",paprs(:,1))
    1805       CALL send_xios_field("ue",ue)
    1806 c VENUS: regardee a l envers!!!!!!!!!!!!!!!
    1807       CALL send_xios_field("ve",-1.*ve)
     1812      CALL send_xios_field("cdragh",cdragh)
     1813      CALL send_xios_field("cdragm",cdragm)
     1814
     1815      CALL send_xios_field("tops",topsw)
     1816      CALL send_xios_field("topl",toplw)
     1817      CALL send_xios_field("sols",solsw)
     1818      CALL send_xios_field("soll",sollw)
     1819
     1820! 3D fields
    18081821
    18091822      CALL send_xios_field("temp",t_seri)
     1823      CALL send_xios_field("pres",pplay)
     1824      CALL send_xios_field("geop",zphi)
    18101825      CALL send_xios_field("vitu",u_seri)
    18111826c VENUS: regardee a l envers!!!!!!!!!!!!!!!
    18121827      CALL send_xios_field("vitv",-1.*v_seri)
     1828      CALL send_xios_field("vitw",omega)
     1829      CALL send_xios_field("Kz",ycoefh)
     1830      CALL send_xios_field("mmean",mmean)
     1831      CALL send_xios_field("rho",rho)
     1832
     1833      CALL send_xios_field("dudyn",d_u_dyn)
     1834      CALL send_xios_field("duvdf",d_u_vdf)
     1835c VENUS: regardee a l envers!!!!!!!!!!!!!!!
     1836      CALL send_xios_field("dvvdf",-1.*d_v_vdf)
     1837      CALL send_xios_field("duajs",d_u_ajs)
     1838      CALL send_xios_field("dugwo",d_u_oro)
     1839      CALL send_xios_field("dugwno",d_u_hin)
     1840      CALL send_xios_field("dumolvis",d_u_molvis)
     1841c VENUS: regardee a l envers!!!!!!!!!!!!!!!
     1842      CALL send_xios_field("dvmolvis",-1.*d_v_molvis)
     1843      CALL send_xios_field("dtdyn",d_t_dyn)
     1844      CALL send_xios_field("dtphy",d_t)
     1845      CALL send_xios_field("dtvdf",d_t_vdf)
     1846      CALL send_xios_field("dtajs",d_t_ajs)
     1847      CALL send_xios_field("dtswr",dtsw)
     1848      CALL send_xios_field("dtswrNLTE",d_t_nirco2)
     1849      CALL send_xios_field("dtswrLTE",heat)
     1850      CALL send_xios_field("dtlwr",dtlw)
     1851      CALL send_xios_field("dtlwrNLTE",d_t_nlte)
     1852      CALL send_xios_field("dtlwrLTE",-1.*cool)
     1853      CALL send_xios_field("dteuv",d_t_euv)
     1854      CALL send_xios_field("dtcond",d_t_conduc)
     1855      CALL send_xios_field("dtec",d_t_ec)
     1856
     1857      CALL send_xios_field("SWnet",swnet)
     1858      CALL send_xios_field("LWnet",lwnet)
     1859      CALL send_xios_field("fluxvdf",fluxt)
     1860      CALL send_xios_field("fluxdyn",flux_dyn)
     1861      CALL send_xios_field("fluxajs",flux_ajs)
     1862      CALL send_xios_field("fluxec",flux_ec)
     1863
     1864c plusieurs traceurs  !!!outputs in [vmr]
     1865      IF (iflag_trac.eq.1) THEN
     1866         DO iq=1,nqmax
     1867       CALL send_xios_field(tname(iq),qx(:,:,iq)*mmean(:,:)/M_tr(iq))
     1868         ENDDO
     1869      ENDIF
     1870
     1871      IF (callthermos .and. ok_chem) THEN
     1872       CALL send_xios_field("d_qmoldifCO2",d_q_moldif(:,:,i_co2))
     1873       CALL send_xios_field("d_qmoldifO3p",d_q_moldif(:,:,i_o))
     1874       CALL send_xios_field("d_qmoldifN2",d_q_moldif(:,:,i_n2))
     1875      ENDIF
    18131876     
    18141877#endif
  • trunk/LMDZ.VENUS/libf/phyvenus/phytrac_chimie.F

    r1661 r1665  
    9595c=============================================================
    9696                             
    97        IF (reinit_trac) THEN
     97       IF (reinit_trac.and.ok_chem) THEN
    9898       PRINT*,'REINIT MIXING RATIO TRACEURS'
    9999
     
    119119      trac(:,:,:)=1.0E-30
    120120
    121 c     !!! AVEC NUAGE !!!
    122       trac(:,1:22,i_ocs)=3.E-6
    123       trac(:,:,i_hcl)=0.4E-6
    124       trac(:,1:22,i_so2)=10.E-6
    125       trac(:,1:22,i_h2o)=30.0E-6
     121c     !!! Verif traceurs !!!
     122      if (   (i_ocs.ne.0).and.(i_co.ne.0).and.(i_hcl.ne.0)
     123     &  .and.(i_so2.ne.0).and.(i_h2o.ne.0).and.(i_n2.ne.0)
     124     &  .and.(i_co2.ne.0) ) then
     125       trac(:,1:22,i_ocs)=3.E-6
     126       trac(:,1:22,i_co)=25.E-6
     127       trac(:,:,i_hcl)=0.4E-6
     128       trac(:,1:22,i_so2)=9.E-6
     129       trac(:,1:22,i_h2o)=30.0E-6
    126130
    127131c     remettre tous les traceurs du start => trac(:,:,:)=trac_sav(:,:,:)
     
    129133c     N2 n est pas encore une espece chimique du modele chimique
    130134c     traceur passif pour la chimie-transport
    131       trac(:,:,i_n2)=0.35d-1
     135       trac(:,:,i_n2)=0.35d-1
    132136   
    133137!!!! GG:   Initialization CO2 = 1 - qtot
    134138!!    It assures that vmr_tot = 1
    135139c     On a donc le CO2 qui est le restant d atmosphere Venus 
    136          trac_sum(:,:)=0.0
     140        trac_sum(:,:)=0.0
    137141c SEULEMENT LES GAZ
    138142        DO iq=2,nqmax-nmicro
     
    141145
    142146        trac(:,:,i_co2)= 1-trac_sum(:,:)
     147      else
     148        write(*,*) "Réinitialisation des traceurs avec chimie "
     149        write(*,*) "IL manque un traceur pour les options choisies"
     150        stop
     151      endif ! verif traceurs
    143152       
    144153c=============================================================
Note: See TracChangeset for help on using the changeset viewer.