Changeset 808 for trunk/LMDZ.TITAN/libf


Ignore:
Timestamp:
Oct 16, 2012, 12:57:35 PM (12 years ago)
Author:
slebonnois
Message:

SL: Many changes for VENUS (related to newstart) and TITAN (related to clouds). Please read DOC/chantiers/commit_importants.log (cf v808).

Location:
trunk/LMDZ.TITAN/libf/phytitan
Files:
3 added
17 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.TITAN/libf/phytitan/cnuages3D.F

    r175 r808  
    131131         real  especes(NG,NL,3*nrad+1)         
    132132         real  condens(NG,NL,nrad)         
    133          real gg,xmair
     133         real  gg(NL),xmair
     134         real  effg     ! effg est une fonction(z), z en m.
    134135
    135136         integer jsup,jinf,h,i,j,k,ndim
     
    143144         ndim=3*nrad+1
    144145
    145          gg=g0
     146         do j=1,NL
     147           gg(j)=effg(z(j))
     148         enddo
    146149
    147150*********************************************
     
    167170             enddo
    168171
    169              gg=g0*rtit**2/(rtit+z(j))**2.
    170              xmair=(pb(j+1)-pb(j))/gg/dzb(j)
     172             xmair=(pb(j+1)-pb(j))/gg(j)/dzb(j)
    171173
    172174             do k=1,nrad
     
    196198           do j=1,NL
    197199
    198              gg=g0*rtit**2/(rtit+z(j))**2.
    199              xmair=(pb(j+1)-pb(j))/gg/dzb(j)
     200             xmair=(pb(j+1)-pb(j))/gg(j)/dzb(j)
    200201
    201202*  ici ce sont les tendances a sortir de nuages.F pour le methane....
     
    245246             enddo
    246247
    247              gg=g0*rtit**2/(rtit+z(j))**2.
    248              xmair=(pb(j+1)-pb(j))/gg/dzb(j)
     248             xmair=(pb(j+1)-pb(j))/gg(j)/dzb(j)
    249249
    250250             do k=1,nrad
     
    267267         do i=1,ng1
    268268           do j=1,NL
    269              gg=g0*rtit**2/(rtit+z(j))**2.
    270              xmair=(pb(j+1)-pb(j))/gg/dzb(j)
     269             xmair=(pb(j+1)-pb(j))/gg(j)/dzb(j)
    271270
    272271*  ici ce sont les tendances a sortir de nuages.F pour l'ethane....
     
    311310               tdq( i,j,k,3) = 0.
    312311             enddo
    313              gg=g0*rtit**2/(rtit+z(j))**2.
    314              xmair=(pb(j+1)-pb(j))/gg/dzb(j)
     312             xmair=(pb(j+1)-pb(j))/gg(j)/dzb(j)
    315313
    316314             do k=1,nrad
     
    333331           do j=1,NL
    334332
    335              gg=g0*rtit**2/(rtit+z(j))**2.
    336              xmair=(pb(j+1)-pb(j))/gg/dzb(j)
     333             xmair=(pb(j+1)-pb(j))/gg(j)/dzb(j)
    337334
    338335*  ici ce sont les tendances a sortir de nuages.F pour l'ethane....
  • trunk/LMDZ.TITAN/libf/phytitan/cooling.F

    r495 r808  
    5858#include "dimensions.h"
    5959#include "YOMCST.h"
     60#include "clesphys.h"
    6061      INTEGER NLAYER,NSPECI,NSPC1I
    6162      PARAMETER(NLAYER=llm)
  • trunk/LMDZ.TITAN/libf/phytitan/effg.F

    r306 r808  
    11      FUNCTION EFFG(Z)
    22#include "YOMCST.h"
    3 ! RA en m, Z en km...
    4       EFFG = RG * (RA/(RA + Z*1000. ) )**2
     3! RA en m, Z en m...
     4
     5! Quand on prendra atmosphere epaisse dans dynamique
     6!    (et dans physique, attention a clmain et autres...)
     7
     8!      EFFG = RG * (RA/(RA + Z ) )**2
     9
     10! Pour l'instant:
     11      EFFG = RG
    512      RETURN
    613      END
  • trunk/LMDZ.TITAN/libf/phytitan/gasses.F

    r3 r808  
    1616      DO 159 J=1,NLAYER
    1717      EMU=(XMU(J+1)+XMU(J))*0.5
    18       COLDEN(J)=RHOP*(PRESS(J+1)-PRESS(J))/EFFG(Z(J))
     18c attention ici, Z en km doit etre passe en m
     19      COLDEN(J)=RHOP*(PRESS(J+1)-PRESS(J))/EFFG(Z(J)*1000.)
    1920      GAS1(J)=(16./EMU)*AVERGE(CH4(J+1),CH4(J))
    2021159   CONTINUE
  • trunk/LMDZ.TITAN/libf/phytitan/optci.F

    r495 r808  
    268268c       if ((microfi.eq.0).or.(ig.eq.(klon/2+16))) iout=1
    269269        if (seulmtunpt.eq.0) then
    270           call optci_1pt2(zqaer_1pt,rmcbar(ig,:),xfbar(ig,:,:),
     270          call optci_1pt3(zqaer_1pt,rmcbar(ig,:),xfbar(ig,:,:),
    271271     &                   iopti,iout)
    272272           iopti = 1
  • trunk/LMDZ.TITAN/libf/phytitan/optci_1pt.F

    r495 r808  
    9090        PBAR=SQRT(PRESS(J)*PRESS(J+1))
    9191        BMU=0.5*(XMU(J+1)+XMU(J))
     92c attention ici, Z en km doit etre passe en m
    9293        COEF1=RGAS*273.15**2*.5E5* (PRESS(J+1)**2 - PRESS(J)**2)
    93      & /(1.01325**2 *EFFG(Z(J))*TBAR*BMU)
    94 
    95       IF (IPRINT .GT. 9) WRITE(6,21) J,EFFG(Z(J)),TBAR,BMU,COEF1
     94     & /(1.01325**2 *EFFG(Z(J)*1000.)*TBAR*BMU)
     95
     96      IF (IPRINT .GT. 9) WRITE(6,21) J,EFFG(Z(J)*1000.),TBAR,BMU,COEF1
    9697 21   FORMAT(' J, EFFG, TBAR, BMU, COEF1,: ',I3,1P6E10.3)
    9798
  • trunk/LMDZ.TITAN/libf/phytitan/optci_1pt_2.F

    r495 r808  
    9090        PBAR=SQRT(PRESS(J)*PRESS(J+1))
    9191        BMU=0.5*(XMU(J+1)+XMU(J))
     92c attention ici, Z en km doit etre passe en m
    9293        COEF1=RGAS*273.15**2*.5E5* (PRESS(J+1)**2 - PRESS(J)**2)
    93      & /(1.01325**2 *EFFG(Z(J))*TBAR*BMU)
    94 
    95       IF (IPRINT .GT. 9) WRITE(6,21) J,EFFG(Z(J)),TBAR,BMU,COEF1
     94     & /(1.01325**2 *EFFG(Z(J)*1000.)*TBAR*BMU)
     95
     96      IF (IPRINT .GT. 9) WRITE(6,21) J,EFFG(Z(J)*1000.),TBAR,BMU,COEF1
    9697 21   FORMAT(' J, EFFG, TBAR, BMU, COEF1,: ',I3,1P6E10.3)
    9798
  • trunk/LMDZ.TITAN/libf/phytitan/optcv.F

    r495 r808  
    202202c       if ((microfi.eq.0).or.(ig.eq.klon/2)) iout=1
    203203        if (seulmtunpt.eq.0) then
    204           call optcv_1pt2(zqaer_1pt,rmcbar(ig,:),xfbar(ig,:,:),
     204          call optcv_1pt3(zqaer_1pt,rmcbar(ig,:),xfbar(ig,:,:),
    205205     &                   ioptv,IPRINT)
    206206           ioptv = 1
  • trunk/LMDZ.TITAN/libf/phytitan/phyetat0.F

    r175 r808  
    9292      itau_phy = tab_cntrl(15)
    9393
     94c Attention si raz_date est active :
     95c il faut remettre a zero itau_phy apres phyetat0 !
     96      IF (raz_date.eq.1) THEN
     97        itau_phy=0
     98      ENDIF
     99
    94100c
    95101c Lecture des latitudes (coordonnees):
  • trunk/LMDZ.TITAN/libf/phytitan/physiq.F

    r495 r808  
    286286      REAL dist, rmu0(klon), fract(klon), pdecli
    287287      REAL zday
    288       REAL zls
     288      REAL zls,zlsm1
    289289c
    290290      INTEGER i, k, iq, ig, j, ll, l
     
    794794      DO l=1,klev
    795795         DO i=1,klon
    796 c           zzlay(i,l)=zphi(i,l)/RG
     796            zzlay(i,l)=zphi(i,l)/RG
    797797c SI ON TIENT COMPTE DE LA VARIATION DE G AVEC L'ALTITUDE:
    798             zzlay(i,l)=RG*RA*RA/(RG*RA-zphi(i,l))-RA
     798c           zzlay(i,l)=RG*RA*RA/(RG*RA-zphi(i,l))-RA
    799799         ENDDO
    800800      ENDDO
     
    863863          print*,'Ls',zls*180./RPI      ! zls est en radians !!
    864864      CALL orbite(zls,dist,pdecli)
     865      IF (debut) zlsm1=zls
    865866
    866867c dans zenang, Ls en degres ; dans mucorr, Ls en radians
  • trunk/LMDZ.TITAN/libf/phytitan/phytrac.F

    r474 r808  
    732732               d_tr_mph(i,l,iq) = (qaer(i,l,iq)-qaer0(i,l,iq))/
    733733     &                            ptimestep
    734 c  Traceurs microphysiques: passage en intensif: n/m^2 --> n/kg
    735                d_tr_mph(i,l,iq) = d_tr_mph(i,l,iq)*RG/delp(i,l)
    736734             ENDDO
    737735           ENDDO
     
    743741             DO i = 1, klon
    744742               d_tr_mph(i,l,iq)=(qaer(i,l,iq)-qaer0(i,l,iq))/ptimestep
     743             ENDDO
     744           ENDDO
     745         ENDDO
     746
     747       ENDIF   ! microfi
     748
     749       DO iq=1,nmicro
     750         DO l=1,llm
     751           DO i = 1, klon
    745752c  Traceurs microphysiques: passage en intensif: n/m^2 --> n/kg
    746                d_tr_mph(i,l,iq) = d_tr_mph(i,l,iq)*RG/delp(i,l)
    747              ENDDO
    748            ENDDO
    749          ENDDO
    750 
    751        ENDIF   ! microfi
     753             d_tr_mph(i,l,iq) = d_tr_mph(i,l,iq)*RG/delp(i,l)
     754           ENDDO
     755         ENDDO
     756       ENDDO
    752757
    753758c AUTRES TRACEURS
     
    970975      RETURN
    971976      END
     977
  • trunk/LMDZ.TITAN/libf/phytitan/radtitan.F

    r175 r808  
    3434      use dimphy
    3535      USE comgeomphy
     36      USE optcld, only : iniqcld
    3637      IMPLICIT NONE
    3738#include "dimensions.h"
     
    136137       print*,'FHVIS  = ',FHVIS
    137138       print*,'FHIR   = ',FHIR
     139c      on initialise le paquet optcld
     140       call iniqcld()
    138141       iprem=1
    139142       endif
     
    225228          enddo
    226229          do i=1,nlayer
    227              colden(i)=rhop*(press(i+1)-press(i))/effg(z(i))
     230c attention ici, Z en km doit etre passe en m
     231             colden(i)=rhop*(press(i+1)-press(i))/effg(z(i)*1000.)
    228232             gas1(i)=0.
    229233             emu=(xmu(i+1)+xmu(i))/2.
  • trunk/LMDZ.TITAN/libf/phytitan/sources.F

    r474 r808  
    4747         REAL zcdv(klon),zu2,pz0
    4848         REAL xmair,gg,zrho,ws,ch,qch4,flux
     49         REAL effg               ! effg est une fonction(z), z en m.
    4950         REAL xmuair
    5051         REAL zmem,zmem2,zmem3
     
    9293         DO ig=1,ngrid
    9394           zu2=pu(ig)*pu(ig)+pv(ig)*pv(ig)+umin
    94            zcdv(ig)=pz0*(1.+sqrt(zu2))
     95           zcdv(ig)=pz0*(sqrt(zu2))
    9596c           write(99,'(I4,3(ES24.17,1X))') ig,
    96 c     &     pz0,zu2,(1.+sqrt(zu2))
     97c     &     pz0,zu2,(sqrt(zu2))
    9798         ENDDO
    9899c          write(99,*) ""
     
    107108           zevapch4=0.
    108109           restemp=0.
    109            gg=RG*RA**2/(RA+pzlay(ig,1))**2.
     110           gg=effg(pzlay(ig,1))
    110111           zrho=(pplev(ig,1)-pplev(ig,2))/gg
    111112           zrho=zrho/(pzlev(ig,2)-pzlev(ig,1))
     
    127128     &                /(1.+flux*ptimestep)
    128129
    129            gg=RG!*RA**2/(RA+pzlay(ig,1))**2.
     130           gg=effg(pzlay(ig,1))
    130131           xmair=(pplev(ig,1)-pplev(ig,1+1))/gg
    131132           xmair=xmair/(pzlev(ig,1+1)-pzlev(ig,1))
     
    156157           ENDIF
    157158c         
    158            evapch4(ig)=evapch4(ig)+zevapch4  ! evapch4 doit etre < 0
     159           evapch4(ig) = zevapch4  ! < 0 si volume évaporé (m3/m2)
    159160
    160161         ENDDO
     
    168169             DO ilev=nlay,nlay-4,-1
    169170*            calcule de zrho (kg/m3) pour la couche...
    170                gg=RG*RA**2/(RA+pzlay(ig,ilev))**2.
     171               gg=effg(pzlay(ig,ilev))
    171172               zrho=(pplev(ig,ilev)-pplev(ig,ilev+1))/gg
    172173               zrho=zrho/(pzlev(ig,ilev+1)-pzlev(ig,ilev))
     
    202203             DO ilev=nlay,nlay-4,-1
    203204*            calcule de zrho (kg/m3) pour la couche...
    204                 gg=RG*RA**2/(RA+pzlay(ig,ilev))**2.
     205                gg=effg(pzlay(ig,ilev))
    205206                zrho=(pplev(ig,ilev)-pplev(ig,ilev+1))/gg
    206207                zrho=zrho/(pzlev(ig,ilev+1)-pzlev(ig,ilev))
  • trunk/LMDZ.TITAN/libf/phytitan/write_histday.h

    r474 r808  
    2727      CALL histwrite(nid_day,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    2828c
    29 ccccccc axe Ls
     29ccccccc axe Ls ... Faudrait le reduire a axe temporel seulement...
    3030      do j=1,jjmp1
    3131       do i=1,iim
     
    3333       enddo
    3434      enddo
     35c Correction passage de 360 à 0... Sinon probleme avec moyenne
     36      if (zls.lt.zlsm1) then
     37        zx_tmp_2d = zx_tmp_2d+360.
     38        zlsm1 = 2.*RPI
     39      else
     40        zlsm1 = zls
     41      endif
    3542      CALL histwrite(nid_day,"ls",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    3643c
  • trunk/LMDZ.TITAN/libf/phytitan/write_histins.h

    r175 r808  
    2727      CALL histwrite(nid_ins,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    2828c
    29 ccccccc axe Ls
     29ccccccc axe Ls ... Faudrait le reduire a axe temporel seulement...
    3030      do j=1,jjmp1
    3131       do i=1,iim
  • trunk/LMDZ.TITAN/libf/phytitan/write_histmth.h

    r474 r808  
    2323      CALL histwrite(nid_mth,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    2424c
    25 ccccccc axe Ls
     25ccccccc axe Ls ... Faudrait le reduire a axe temporel seulement...
    2626      do j=1,jjmp1
    2727       do i=1,iim
     
    2929       enddo
    3030      enddo
     31c Correction passage de 360 à 0... Sinon probleme avec moyenne
     32      if (zls.lt.zlsm1) then
     33        zx_tmp_2d = zx_tmp_2d+360.
     34        zlsm1 = 2.*RPI
     35      else
     36        zlsm1 = zls
     37      endif
    3138      CALL histwrite(nid_mth,"ls",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    3239c
  • trunk/LMDZ.TITAN/libf/phytitan/yamada4.F

    r102 r808  
    434434
    435435                                                          do ig=1,ngrid
    436       coriol(ig)=1.e-4
    437       pblhmin(ig)=0.07*ustar(ig)/max(abs(coriol(ig)),2.546e-5)
    438                                                           enddo
    439       if (first) then
    440        print*,'A REVOIR!! coriol ?? pblhmin ',pblhmin
    441       endif
     436      coriol(ig)=1.e-4*86400/RDAY  !! scaling... should be checked
     437      pblhmin(ig)=0.07*ustar(ig)/max(abs(coriol(ig)),2.546e-5*86400/RDAY)
     438                                                          enddo
     439c     if (first) then
     440c      print*,'A REVOIR!! coriol ?? pblhmin ',pblhmin
     441c     endif
    442442CTest a remettre 21 11 02
    443443c test abd 13 05 02      if(0.eq.1) then
Note: See TracChangeset for help on using the changeset viewer.