Ignore:
Timestamp:
Dec 17, 2013, 1:02:44 PM (11 years ago)
Author:
slebonnois
Message:

SL: update of Titan photochemical module to include computation of chemistry up to 1300 km

Location:
trunk/LMDZ.COMMON/libf/dyn3dpar
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/dyn3dpar/calfis_p.F

    r1107 r1126  
    260260      REAL,allocatable,save :: tmpvarbar(:)
    261261      REAL,allocatable,save :: tmpvarbarp1(:)
     262      real :: zz1,zz2
    262263
    263264c-----------------------------------------------------------------------
     
    314315c------------------------------------------------------------------
    315316c moyennes globales pour les profils de pression et de temperature
    316       if(planet_type.eq."titan") then
     317      if(planet_type.eq."titan".or.planet_type.eq."venus") then
    317318        call AllGather_Field(pp,iip1*jjp1,llmp1)
    318319        call AllGather_Field(pteta,iip1*jjp1,llm)
    319320        call AllGather_Field(ppk,iip1*jjp1,llm)
     321        call AllGather_Field(pphi,iip1*jjp1,llm)
     322        call AllGather_Field(pphis,iip1*jjp1,1)
    320323        ALLOCATE(plevmoy(llm+1))
    321324        ALLOCATE(playmoy(llm))
     
    323326        ALLOCATE(tetamoy(llm))
    324327        ALLOCATE(pkmoy(llm))
     328        ALLOCATE(phimoy(0:llm))
     329        ALLOCATE(zlevmoy(llm+1))
     330        ALLOCATE(zlaymoy(llm))
    325331        plevmoy=0.
    326332        do l=1,llmp1
     
    333339        tetamoy=0.
    334340        pkmoy=0.
     341        phimoy=0.
     342        do i=1,iip1
     343         do j=1,jjp1
     344            phimoy(0)=phimoy(0)+pphis(i,j)/(iip1*jjp1)
     345         enddo
     346        enddo
    335347        do l=1,llm
    336348         do i=1,iip1
     
    338350            tetamoy(l)=tetamoy(l)+pteta(i,j,l)/(iip1*jjp1)
    339351            pkmoy(l)=pkmoy(l)+ppk(i,j,l)/(iip1*jjp1)
     352            phimoy(l)=phimoy(l)+pphi(i,j,l)/(iip1*jjp1)
    340353          enddo
    341354         enddo
    342355        enddo
    343         playmoy = preff * (pkmoy/cpp) ** unskap
     356        playmoy(:) = preff * (pkmoy(:)/cpp) ** unskap
    344357        call tpot2t_p(1,llm,tetamoy,tmoy,pkmoy)
     358c SI ON TIENT COMPTE DE LA VARIATION DE G AVEC L'ALTITUDE:
     359        zlaymoy(:) = g*rad*rad/(g*rad-phimoy(:))-rad
     360        zlevmoy(1) = phimoy(0)/g
     361        DO l=2,llm
     362            zz1=(playmoy(l-1)+plevmoy(l))/(playmoy(l-1)-plevmoy(l))
     363            zz2=(plevmoy(l)  +playmoy(l))/(plevmoy(l)  -playmoy(l))
     364            zlevmoy(l)=(zz1*zlaymoy(l-1)+zz2*zlaymoy(l))/(zz1+zz2)
     365        ENDDO
     366        zlevmoy(llmp1)=zlaymoy(llm)+(zlaymoy(llm)-zlevmoy(llm))
    345367c-------------------
    346368c + lat index
    347369        allocate(klat(klon))
    348370        do ig0=1,klon
    349            j=index_j(ig0)
    350            klat(ig0)=j
     371          j=index_j(ig0)
     372          klat(ig0)=j
    351373        enddo
    352374      endif   ! planet_type=titan
  • trunk/LMDZ.COMMON/libf/dyn3dpar/moyzon_mod.F90

    r1107 r1126  
    2424! to be changed...
    2525      REAL,ALLOCATABLE,SAVE :: plevmoy(:),playmoy(:)
     26      REAL,ALLOCATABLE,SAVE :: zlevmoy(:),zlaymoy(:),phimoy(:)
    2627      REAL,ALLOCATABLE,SAVE :: tmoy(:),tetamoy(:),pkmoy(:)
    2728      INTEGER,ALLOCATABLE,SAVE :: klat(:)
Note: See TracChangeset for help on using the changeset viewer.