Changeset 2048 for trunk/LMDZ.VENUS


Ignore:
Timestamp:
Nov 29, 2018, 4:49:10 PM (6 years ago)
Author:
slebonnois
Message:

SL: VENUS, autres details

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

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.VENUS/libf/phyvenus/chemparam_mod.F90

    r1691 r2048  
    307307
    308308!       ===============================================
    309 !       Initialisation TRIMODALE Knollenberg
     309!       Initialisation TRIMODALE Knollenberg 
    310310!       ===============================================
    311311
     
    430430      END DO
    431431
     432!      option: upper haze remplacee par extension upper cloud
     433!         => 35 remplace par cloudmax et upper haze commentee
     434!       ===============================================
    432435
    433436!     Upper Cloud: mode 1
    434       DO i_lev=29,35
     437      DO i_lev=29,35 !cloudmax
    435438      R_MEDIAN(:,i_lev,1)=0.2e-6
    436439      PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev,1)
     
    442445
    443446!     Upper Cloud: mode 2
    444       DO i_lev=29,35
     447      DO i_lev=29,35 !cloudmax
    445448      R_MEDIAN(:,i_lev,2)=1.0e-6
    446449      PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev,2)
     
    452455       
    453456!     Upper Cloud: mode 3
    454       DO i_lev=29,35
     457      DO i_lev=29,35 !cloudmax
    455458      R_MEDIAN(:,i_lev,3)=3.65e-6
    456459      PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev,3)
     
    677680!      PRINT*,'level',i_lev,'Coeff Mass: k_mass',K_MASS(1,i_lev,3)
    678681!      END DO       
     682
    679683!=============================================================
    680684      PRINT*,'==============================='
  • trunk/LMDZ.VENUS/libf/phyvenus/clmain.F

    r1723 r2048  
    921921      use dimphy
    922922      use cpdet_phy_mod, only: cpdet,t2tpot
     923#ifdef CPP_XIOS     
     924      use xios_output_mod, only: send_xios_field
     925#endif
     926
    923927      IMPLICIT none
    924928c======================================================================
     
    989993      REAL zt(klon,klev),ztvu(klon,klev),ztvd(klon,klev)
    990994      real ztetav(klon,klev),ztetavu(klon,klev),ztetavd(klon,klev)
    991       REAL zri(klon),z1(klon)
     995      REAL zri(klon,klev),zri1(klon),z1(klon)
    992996      REAL pcfm1(klon), pcfh1(klon)
    993997c
     
    11351139c
    11361140            IF (tvirtu) THEN
    1137             zri(i) =(  zmgeom(i,k)*(ztetavd(i,k)-ztetavu(i,k))
     1141            zri(i,k) =(  zmgeom(i,k)*(ztetavd(i,k)-ztetavu(i,k))
    11381142     .            + zmgeom(i,k)*zmgeom(i,k)/RG*gamh(k))   ! contregradient
    11391143     .           /(zdu2*ztetav(i,k))
     
    11551159            zalh2=(0.5*ckap/rg*z2geomf
    11561160     .             /(1.+0.5*ckap/RG/(clam*SQRT(1.5*cd))*z2geomf))**2
    1157             IF (zri(i).LT.0.0) THEN  ! situation instable
     1161            IF (zri(i,k).LT.0.0) THEN  ! situation instable
    11581162               zscf = ((zgeop(i,k)/zgeop(i,k-1))**(1./3.)-1.)**3
    11591163     .                / (zmgeom(i,k)/RG)**3 / (zgeop(i,k-1)/RG)
    1160                zscf = SQRT(-zri(i)*zscf)
     1164               zscf = SQRT(-zri(i,k)*zscf)
    11611165               zscfm = 1.0 / (1.0+3.0*cb*cc*zalm2*zscf)
    11621166               zscfh = 1.0 / (1.0+3.0*cb*cc*zalh2*zscf)
    1163                pcfm(i,k)=zcdn*zalm2*(1.-2.0*cb*zri(i)*zscfm)
    1164                pcfh(i,k)=zcdn*zalh2*(1.-3.0*cb*zri(i)*zscfh)
     1167               pcfm(i,k)=zcdn*zalm2*(1.-2.0*cb*zri(i,k)*zscfm)
     1168               pcfh(i,k)=zcdn*zalh2*(1.-3.0*cb*zri(i,k)*zscfh)
    11651169            ELSE ! situation stable
    1166                zscf=SQRT(1.+cd*zri(i))
    1167                pcfm(i,k)=zcdn*zalm2/(1.+2.0*cb*zri(i)/zscf)
    1168                pcfh(i,k)=zcdn*zalh2/(1.+3.0*cb*zri(i)*zscf)
     1170               zscf=SQRT(1.+cd*zri(i,k))
     1171               pcfm(i,k)=zcdn*zalm2/(1.+2.0*cb*zri(i,k)/zscf)
     1172               pcfh(i,k)=zcdn*zalh2/(1.+3.0*cb*zri(i,k)*zscf)
    11691173            ENDIF
    11701174          ELSE
    11711175            zl2=(lmixmin*MAX(0.0,(paprs(i,k)-paprs(i,itop(i)+1))
    11721176     .                          /(paprs(i,2)-paprs(i,itop(i)+1)) ))**2
    1173             pcfm(i,k)=sqrt(max(zcdn*zcdn*(ric-zri(i))/ric, ksta))
     1177            pcfm(i,k)=sqrt(max(zcdn*zcdn*(ric-zri(i,k))/ric, ksta))
    11741178            pcfm(i,k)= zl2* pcfm(i,k)
    11751179            pcfh(i,k) = pcfm(i,k) /prandtl ! h et m different
     
    11801184      DO i = 1, knon
    11811185            zdu2=MAX(cepdu2,u(i,1)**2+v(i,1)**2)
    1182             zri(i) = zgeop(i,1)*(ztetavd(i,1)-ztetavu(i,1))
     1186            zri(i,1) = zgeop(i,1)*(ztetavd(i,1)-ztetavu(i,1))
    11831187     .              /(zdu2*ztetav(i,1))
    11841188      ENDDO
     
    11891193      DO i = 1, knon
    11901194       z1(i) = zgeop(i,1)
     1195       zri1(i) = zri(i,1)
    11911196      ENDDO
    11921197c
    11931198      CALL clcdrag(klon, knon, zxli,
    1194      $             z1, zri,
     1199     $             z1, zri1,
    11951200     $             pcfm1, pcfh1)
    11961201C
     
    12181223c      pcfm(:,1)= pcfm(:,1)*20.
    12191224c      pcfh(:,1)= pcfh(:,1)*20.
     1225
     1226c#ifdef CPP_XIOS     
     1227c     CALL send_xios_field("Ri",zri)
     1228c#endif
    12201229
    12211230      RETURN
  • trunk/LMDZ.VENUS/libf/phyvenus/flott_gwd_ran.F90

    r1675 r2048  
    135135    DELTAT=24.*3600.    ! Time scale of the waves (first introduced in 9b)
    136136
    137 !!!! TEST GG. Values corresponding to min/max horizontal wavel 50-500 km
     137!!!! TEST GG Values corresponding to min/max horizontal wavel 50-500 km
    138138!(similar to observations)
    139139    KMIN = 1.E-5        ! Min horizontal wavenumber
    140 !   KMIN = 6.3E-6       ! Min horizontal wavenumber
     140!    KMIN = 6.3E-6       ! Min horizontal wavenumber
    141141    KMAX = 1.E-4        ! Max horizontal wavenumber
    142142    !Online output: one value only
     
    146146    endif
    147147    CMIN = 1.           ! Min phase velocity
    148     CMAX = 61.          ! Max phase speed velocity
     148    CMAX = 111.          ! Max phase speed velocity
    149149!    XLAUNCH=0.6         ! Parameter that control launching altitude
    150150    XLAUNCH=5e-3        ! Value for top of cloud convective region
  • trunk/LMDZ.VENUS/libf/phyvenus/nlte_aux.F

    r1310 r2048  
    202202      real*8          factor
    203203      real*8    temperatura     ! para evitar valores ligeramnt out of limits
     204      character(len=100) text
    204205
    205206c     ***********
     
    227228c     @           thist(1),thist(nhist)
    228229c           write (*,*) ' HUNT/ location in grid:', xtemp(k)
    229             stop ' INTERSHP/ Interpolation error. T out of Histogram.'
     230            text='INTERSHP/ Interpolation error. T out of Histogram.'
     231            CALL abort_physic("nlte_aux",text, 1)
    230232         endif
    231233         factor = 1.d0 /  (thist(i+1)-thist(i))
     
    261263      real*8          factor
    262264      real*8    temperatura
     265      character(len=100) text
    263266
    264267c     ***********
     
    286289c     $           thist(1),thist(nhist)
    287290c           write(*,*)'HUNT/ location in grid:',xtemp(k)
    288             stop'INTERSTR/1/ Interpolation error. T out of Histogram.'
     291            text='INTERSTR/1/ Interpolation error. T out of Histogram.'
     292            CALL abort_physic("nlte_aux",text, 1)
    289293         endif
    290294         factor = 1.d0 /  (thist(i+1)-thist(i))
     
    315319c     @        thist(1),thist(nhist)
    316320c         write (*,*) ' HUNT/ location in grid:', ts
    317          stop ' INTERSTR/2/ Interpolat error. T out of Histogram.'
     321         text='INTERSTR/2/ Interpolat error. T out of Histogram.'
     322         CALL abort_physic("nlte_aux",text, 1)
    318323      endif
    319324      factor = 1.d0 /  (thist(i+1)-thist(i))
     
    10091014      real    factor
    10101015      real    zaux
     1016      character(len=100) text
    10111017
    10121018!!!! 
     
    10271033            write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
    10281034            write (*,*) ' HUNT/ location in new grid:', zz(i)
    1029             stop ' interhunt2/ Interpolat error. zz out of limits.'
     1035            text='interhunt2/ Interpolat error. zz out of limits.'
     1036            CALL abort_physic("nlte_aux",text, 1)
    10301037         endif
    10311038
     
    10721079      real    factor
    10731080      real    zaux
     1081      character(len=100) text
    10741082
    10751083!!!! 
     
    10901098            write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
    10911099            write (*,*) ' HUNT/ location in new grid:', zz(i)
    1092             stop ' interhunt5/ Interpolat error. zz out of limits.'
     1100            text='interhunt5/ Interpolat error. zz out of limits.'
     1101            CALL abort_physic("nlte_aux",text, 1)
    10931102         endif
    10941103
     
    11401149      real*8    factor
    11411150      real*8    zaux
     1151      character(len=100) text
    11421152
    11431153!!!! 
     
    11581168            write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
    11591169            write (*,*) ' HUNT/ location in new grid:', zz(i)
    1160             stop ' INTERHUNTDP3/ Interpolat error. zz out of limits.'
     1170            text='INTERHUNTDP3/ Interpolat error. zz out of limits.'
     1171            CALL abort_physic("nlte_aux",text, 1)
    11611172         endif
    11621173
     
    12061217      real*8    factor
    12071218      real*8    zaux
     1219      character(len=100) text
    12081220
    12091221!!!! 
     
    12241236            write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
    12251237            write (*,*) ' HUNT/ location in new grid:', zz(i)
    1226             stop ' INTERHUNTDP4/ Interpolat error. zz out of limits.'
     1238            text='INTERHUNTDP4/ Interpolat error. zz out of limits.'
     1239            CALL abort_physic("nlte_aux",text, 1)
    12271240         endif
    12281241
     
    12741287      real*8    factor
    12751288      real*8    zaux
     1289      character(len=100) text
    12761290
    12771291!!!! 
     
    12921306            write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
    12931307            write (*,*) ' HUNT/ location in new grid:', zz(i)
    1294             stop ' INTERHUNT/ Interpolat error. zz out of limits.'
     1308            text='INTERHUNT/ Interpolat error. zz out of limits.'
     1309            CALL abort_physic("nlte_aux",text, 1)
    12951310         endif
    12961311
     
    13361351      real    factor
    13371352      real    zaux
     1353      character(len=100) text
    13381354
    13391355!!!! 
     
    13541370            write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
    13551371            write (*,*) ' HUNT/ location in new grid:', zz(i)
    1356             stop ' interhunt/ Interpolat error. z out of limits.'
     1372            text='interhunt/ Interpolat error. z out of limits.'
     1373            CALL abort_physic("nlte_aux",text, 1)
    13571374         endif
    13581375
     
    14141431      real    factor
    14151432      real    zaux
     1433      character(len=100) text
    14161434
    14171435!!!! 
     
    14321450            write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
    14331451            write (*,*) ' HUNT/ location in new grid:', zz(i)
    1434             stop ' interhuntlimits/ Interpolat error. z out of limits.'
     1452            text='interhuntlimits/ Interpolat error. z out of limits.'
     1453            CALL abort_physic("nlte_aux",text, 1)
    14351454         endif
    14361455
     
    15041523      real    factor
    15051524      real    zaux
     1525      character(len=100) text
    15061526
    15071527!!!! 
     
    15221542            write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
    15231543            write (*,*) ' HUNT/ location in new grid:', zz(i)
    1524             stop ' interhuntlimits/ Interpolat error. z out of limits.'
     1544            text='interhuntlimits/ Interpolat error. z out of limits.'
     1545            CALL abort_physic("nlte_aux",text, 1)
    15251546         endif
    15261547
     
    16041625      real    factor
    16051626      real    zaux
     1627      character(len=100) text
    16061628
    16071629!!!! 
     
    16221644            write (*,*) ' HUNT/ Limits input grid:', z(1),z(n)
    16231645            write (*,*) ' HUNT/ location in new grid:', zz(i)
    1624             stop ' interhuntlimits/ Interpolat error. z out of limits.'
     1646            text='interhuntlimits/ Interpolat error. z out of limits.'
     1647            CALL abort_physic("nlte_aux",text, 1)
    16251648         endif
    16261649
  • trunk/LMDZ.VENUS/libf/phyvenus/nlte_tcool.F

    r1591 r2048  
    14101410      real*8 varerr
    14111411     
     1412      character(len=100) text
     1413
    14121414c***************
    14131415
     
    16471649         write (*,*) '   Negative vibr.temp   xvt41 < 0 '
    16481650         
    1649 
    16501651      endif
    16511652
    1652 
    1653       stop ' Stopped in NLTE scheme due to severe error.'
     1653      text='Stopped in NLTE scheme due to severe error'
     1654      CALL abort_physic("nlte_tcool",text, 1)
    16541655      end
  • trunk/LMDZ.VENUS/libf/phyvenus/phytrac_chimie.F

    r1726 r2048  
    140140        trac_sum(:,:)=0.0
    141141c SEULEMENT LES GAZ
    142         DO iq=2,nqmax-nmicro
    143          trac_sum(:,:)= trac_sum(:,:) + trac(:,:,iq)
     142        DO iq=1,nqmax-nmicro
     143         if (iq.ne.i_co2) trac_sum(:,:)= trac_sum(:,:) + trac(:,:,iq)
    144144        END DO
    145145
    146146        trac(:,:,i_co2)= 1-trac_sum(:,:)
     147
    147148      else
    148149        write(*,*) "Réinitialisation des traceurs avec chimie "
     
    362363
    363364      IF (ok_cloud .AND. cl_scheme.eq.1) THEN
    364 c         Passage de Rm a Rv pour les liq
     365c         Passage de Rv a Rm pour les liq
    365366         trac(:,:,i_h2so4liq)=trac(:,:,i_h2so4liq)*M_tr(i_h2so4liq)
    366367     &                          /mmean(:,:)
  • trunk/LMDZ.VENUS/libf/phyvenus/sw_venus_rh.F

    r1726 r2048  
    279279c-----TEST-------
    280280c tayloring the solar flux...
     281c        if ((PPB(j).gt.0.04).and.(PPB(j).le.0.1)) then
     282c         PHEAT(j) = PHEAT(j)*1.5
     283c        endif
     284c        if ((PPB(j).gt.0.1).and.(PPB(j).le.0.5)) then
     285c         PHEAT(j) = PHEAT(j)*2.
     286c        endif
    281287        if ((PPB(j).gt.1.4).and.(PPB(j).le.10.)) then
     288c        if ((PPB(j).gt.1.4).and.(PPB(j).le.100.)) then
    282289         PHEAT(j) = PHEAT(j)*3
    283290        endif
     291c        if ((PPB(j).gt.10.).and.(PPB(j).le.120.)) then
     292c         PHEAT(j) = PHEAT(j)*2
     293c        endif
    284294c----------------
    285295      enddo
Note: See TracChangeset for help on using the changeset viewer.