Changeset 1726 for trunk/LMDZ.VENUS


Ignore:
Timestamp:
Jul 22, 2017, 11:34:22 PM (7 years ago)
Author:
slebonnois
Message:

SL: adjustments after revision 1723, + some debug for cloud microphysics config and rcm1d

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

Legend:

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

    r1723 r1726  
    4949!Config  Help = Cette option permet d'eteidre le cycle diurne.
    5050!Config         Peut etre util pour accelerer le code !
    51        !cycle_diurne = .FALSE.
    5251       cycle_diurne = .TRUE.       
    5352       call getin('cycle_diurne',cycle_diurne)
     
    6766!Config  Help = GW drag orographie
    6867!Config         
    69        ok_orodr = .true.
     68       ok_orodr = .false.
    7069       call getin('ok_orodr',ok_orodr)
    7170
     
    7473!Config  Def  = n
    7574!Config  Help = GW lift orographie (pas utilise)
    76        ok_orolf = .true.
     75       ok_orolf = .false.
    7776       call getin('ok_orolf', ok_orolf)
    7877
     
    8180!Config  Def  = n
    8281!Config  Help = GW drag non-orographique
    83        ok_gw_nonoro = .true.
     82       ok_gw_nonoro = .false.
    8483       call getin('ok_gw_nonoro',ok_gw_nonoro)
    8584
     
    124123!Config Key  = OK_mensuel
    125124!Config Desc = Pour des sorties mensuelles
    126 !Config Def  = .true.
     125!Config Def  = .false.
    127126!Config Help = Pour creer le fichier histmth contenant les sorties
    128127!              mensuelles
    129128!
    130   ok_mensuel = .true.
     129  ok_mensuel = .false.
    131130  call getin('OK_mensuel', ok_mensuel)
    132131!
     
    343342!
    344343  ok_cloud = .false.
    345   !ok_cloud = .true.
    346344  call getin('ok_cloud',ok_cloud)
     345
     346!
     347!Config Key  = cl_scheme
     348!Config Desc =
     349!Config Def  = 2
     350!Config Help =
     351!
     352! 1   = Simple microphysics (Aurelien Stolzenbach's PhD)
     353! 2   = Full microphysics (momentum scheme, Sabrina Guilbon's PhD)
     354
     355  cl_scheme = 2
     356  call getin('cl_scheme',cl_scheme)
    347357
    348358!
     
    353363!
    354364  ok_chem = .false.
    355   !ok_chem = .TRUE.
    356365  call getin('ok_chem',ok_chem)
    357366
     
    372381!
    373382  ok_sedim = .false.
    374   !ok_sedim=.TRUE.
    375383  call getin('ok_sedim',ok_sedim)
    376384
     
    505513  write(numout,*)' reinit_trac = ',reinit_trac
    506514  write(numout,*)' ok_cloud = ',ok_cloud
     515  write(numout,*)' cl_scheme = ',cl_scheme
    507516  write(numout,*)' ok_chem = ',ok_chem
    508517  write(numout,*)' ok_sedim = ',ok_sedim
  • trunk/LMDZ.VENUS/libf/phyvenus/dyn1d/rcm1d.F

    r1692 r1726  
    451451        ENDDO
    452452
     453c       calcul des traceurs au pas de temps suivant
     454c       -------------------------------------------
     455        if (iflag_trac.eq.1) then
     456         DO iq=1,nqtot
     457          DO ilayer=1,nlayer
     458           q(ilayer,iq)=q(ilayer,iq)+dq(ilayer,iq)*dtphys
     459          ENDDO
     460         ENDDO
     461        endif
     462
    453463c       calcul des pressions au pas de temps suivant
    454 c       ----------------------------------------------------------
     464c       --------------------------------------------
    455465
    456466           psurf=psurf+dtphys*dpsurf(1)   ! evolution de la pression de surface
  • trunk/LMDZ.VENUS/libf/phyvenus/load_ksi.F

    r1723 r1726  
    3838      character*9 tmp1
    3939      character*100 file
    40       CHARACTER*3 str2
     40      CHARACTER*2 str2
     41      CHARACTER*3 str3
     42      CHARACTER*10 format_lect
    4143      real   lambda(nnuve)            ! wavelenght in table (mu->m, middle of interval)
    4244      real   lambdamin(nnuve),lambdamax(nnuve) ! in microns
     
    99101        endif
    100102c     Now reading ksi matrix index "mat"
    101         !write(str2,'(i2.2)') m+2
    102         write(str2,'(i3.3)') m+2
     103        if ((m+2).ge.100) then
     104          write(str3,'(i3.3)') m+2
     105          format_lect='('//str3//'e17.9)'
     106        else
     107          write(str2,'(i2.2)') m+2
     108          format_lect='('//str2//'e17.9)'
     109        endif
    103110        do band=1,Nb
    104111         read(10,*) lambdamin(band),lambdamax(band)
    105112         do i=0,m+1
    106             read(10,'('//str2//'e17.9)') (ksive(i,j,band,mat),j=0,m+1) ! no unit
     113            read(10,format_lect) (ksive(i,j,band,mat),j=0,m+1) ! no unit
    107114         enddo                  ! i
    108115        enddo                     ! band
  • trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F

    r1723 r1726  
    732732           
    733733c INIT PHOTOCHEMISTRY ! includes the indexation of microphys tracers
    734       if ((nlon .GT. 1) .AND. ok_chem) then
    735 c !!! DONC 3D !!!
     734c     if ((nlon .GT. 1) .AND. ok_chem) then
     735c !!! DONC 3D !!!  POURQUOI ???
     736      if (ok_chem) then
    736737        CALL chemparam_ini()
    737738      endif
     
    19201921         ENDDO
    19211922
    1922         IF ((tr_scheme.eq.3).and.(ok_sedim).and.(cl_scheme.eq.1)) THEN
    1923        CALL send_xios_field("Fsedim",Fsedim(:,1:klev))
     1923        IF ((tr_scheme.eq.3).and.(cl_scheme.eq.1)) THEN
     1924c liquids  !!!outputs in [vmr]
     1925         CALL send_xios_field(tname(i_h2oliq),
     1926     .             qx(:,:,i_h2oliq)*mmean(:,:)/M_tr(i_h2oliq))
     1927         CALL send_xios_field(tname(i_h2so4liq),
     1928     .             qx(:,:,i_h2so4liq)*mmean(:,:)/M_tr(i_h2so4liq))
     1929         if (ok_sedim) CALL send_xios_field("Fsedim",Fsedim(:,1:klev))
    19241930        ENDIF
    19251931      ENDIF
  • trunk/LMDZ.VENUS/libf/phyvenus/phytrac_chimie.F

    r1687 r1726  
    273273         DO ilev=1, n_lev
    274274
     275         if (temp(ilon,ilev).lt.500.) then
    275276           CALL MAD_MUPHY(pdtphys,                               ! Timestep
    276277     &  temp(ilon,ilev),pplay(ilon,ilev),                        ! Temperature and pressure
     
    283284     &  trac(ilon,ilev,i_m3_mode2sa),trac(ilon,ilev,i_m3_mode2w),      ! Moments of mode 2
    284285     &  trac(ilon,ilev,i_m3_mode2ccn))                                 ! Moments of mode 2
    285 
     286          else
     287           trac(ilon,ilev,i_m0_aer)=0.
     288           trac(ilon,ilev,i_m3_aer)=0.
     289           trac(ilon,ilev,i_m0_mode1drop)=0.
     290           trac(ilon,ilev,i_m0_mode1ccn)=0.
     291           trac(ilon,ilev,i_m3_mode1sa)=0.
     292           trac(ilon,ilev,i_m3_mode1w)=0.
     293           trac(ilon,ilev,i_m3_mode1ccn)=0.
     294           trac(ilon,ilev,i_m0_mode2drop)=0.
     295           trac(ilon,ilev,i_m0_mode2ccn)=0.
     296           trac(ilon,ilev,i_m3_mode2sa)=0.
     297           trac(ilon,ilev,i_m3_mode2w)=0.
     298           trac(ilon,ilev,i_m3_mode2ccn)=0.
     299          endif
    286300         ENDDO
    287301        ENDDO
  • trunk/LMDZ.VENUS/libf/phyvenus/radlwsw.F

    r1723 r1726  
    562562c      CALL SW_venus_dc_1Dglobave(zrmu0,zfract,   ! pour moy globale
    563563c      CALL SW_venus_dc(zrmu0,zfract,
     564c      CALL SW_venus_rh_1Dglobave(zrmu0,zfract,   ! pour moy globale
     565c     S        PPB,temp,
    564566      CALL SW_venus_rh(zrmu0,zfract,latdeg,
    565 c      CALL SW_venus_rh_1Dglobave(zrmu0,zfract,   ! pour moy globale
    566567     S        PPA,PPB,temp,
    567568     S        zheat,
  • trunk/LMDZ.VENUS/libf/phyvenus/sw_venus_rh.F

    r1723 r1726  
    5959      real   solza(nszarh,nlatrh)       ! solar zenith angles in table
    6060      real   presrh(nlrh+1)             ! pressure in table (bar)
    61       real   logplaydc(nlrh)
     61      real   logplayrh(nlrh)
    6262      real   altrh(nlrh+1)              ! altitude in table (km)
    6363      real   latrh(nlatrh)              ! latitude in table (degrees)
     
    7070      save   firstcall
    7171      real   Tplay(nlrh)
    72       real   Qdc1(nlrh)
    73       real   Qdc2(nlrh)
    74       real   Qdc3(nlrh)
    75       real   Qdc4(nlrh)
     72      real   Qrh1(nlrh)
     73      real   Qrh2(nlrh)
     74      real   Qrh3(nlrh)
     75      real   Qrh4(nlrh)
    7676     
    7777c ------------------------
     
    198198
    199199#ifdef MESOSCALE
    200 ! extrapolation play DCrisp pressure
     200! extrapolation play RH pressure
    201201      do j=1,nlrh
    202          logplaydc(j)=(log(presrh(j+1))+log(presrh(j)))/2.
    203       enddo
    204 ! Extrapolation of temperature over DCrisp play pressure
     202         logplayrh(j)=(log(presrh(j+1))+log(presrh(j)))/2.
     203      enddo
     204! Extrapolation of temperature over RH play pressure
    205205      do i=nlrh,2,-1
    206206        nl0 = 2
    207207        do j=1,klev-1
    208            if (exp(logplaydc(i)).le.PPA(j)) then
     208           if (exp(logplayrh(i)).le.PPA(j)) then
    209209                nl0 = j+1
    210210           endif
    211211        enddo
    212         factflux = (log10(max(exp(logplaydc(i)),PPA(klev)))
     212        factflux = (log10(max(exp(logplayrh(i)),PPA(klev)))
    213213     .                         -log10(PPA(nl0-1)))
    214214     .       /(log10(PPA(nl0))-log10(PPA(nl0-1)))
     
    217217
    218218      ENDDO
    219 ! DCrisp PHEAT over DCrisp play pressure
     219! RH PHEAT over RH play pressure
    220220      DO k=1,nlrh
    221221c
    222        Qdc1(k)=((RG/cpdet(Tplay(k)))
     222       Qrh1(k)=((RG/cpdet(Tplay(k)))
    223223     .     *((zsnet(k+1,nsza0(1),nlat0-1)-zsnet(k,nsza0(1),nlat0-1))
    224224     .         *PFRAC))
    225225     .      /((presrh(k)-presrh(k+1))*1.e5)
    226        Qdc2(k)=((RG/cpdet(Tplay(k)))
     226       Qrh2(k)=((RG/cpdet(Tplay(k)))
    227227     . *((zsnet(k+1,nsza0(1)-1,nlat0-1)-zsnet(k,nsza0(1)-1,nlat0-1))
    228228     .         *PFRAC))
    229229     .      /((presrh(k)-presrh(k+1))*1.e5)
    230        Qdc3(k)=((RG/cpdet(Tplay(k)))
     230       Qrh3(k)=((RG/cpdet(Tplay(k)))
    231231     .       *((zsnet(k+1,nsza0(2),nlat0)-zsnet(k,nsza0(2),nlat0))
    232232     .         *PFRAC))
    233233     .      /((presrh(k)-presrh(k+1))*1.e5)
    234        Qdc4(k)=((RG/cpdet(Tplay(k)))
     234       Qrh4(k)=((RG/cpdet(Tplay(k)))
    235235     .       *((zsnet(k+1,nsza0(2)-1,nlat0)-zsnet(k,nsza0(2)-1,nlat0))
    236236     .        *PFRAC))
    237237     .      /((presrh(k)-presrh(k+1))*1.e5)
    238238      ENDDO
    239 ! Interapolation of PHEAT over GCM/MESOSCALE play lelv
     239! Interapolation of PHEAT over GCM/MESOSCALE play levels
    240240      do j=1,klev
    241241        nl0 = nlrh-1
    242242        do i=nlrh,2,-1
    243            if (exp(logplaydc(i)).ge.PPA(j)) then
     243           if (exp(logplayrh(i)).ge.PPA(j)) then
    244244                nl0 = i-1
    245245           endif
     
    247247c        factflux = (log10(max(PPB(j),presrh(1)))-log10(presrh(nl0+1)))
    248248c     .            /(log10(presrh(nl0))-log10(presrh(nl0+1)))
    249         factflux = (log10(max(PPA(j),exp(logplaydc(1))))
    250      .                         -log10(exp(logplaydc(nl0+1))))
    251      .     /(log10(exp(logplaydc(nl0)))-log10(exp(logplaydc(nl0+1))))
     249        factflux = (log10(max(PPA(j),exp(logplayrh(1))))
     250     .                         -log10(exp(logplayrh(nl0+1))))
     251     .     /(log10(exp(logplayrh(nl0)))-log10(exp(logplayrh(nl0+1))))
    252252        PHEATPPA(j)=factlat*(
    253      .      factflux   *  factsza(2)  *Qdc3(nl0)
    254      . +   factflux   *(1.-factsza(2))*Qdc4(nl0)
    255      . + (1.-factflux)*  factsza(2)   *Qdc3(nl0+1)
    256      . + (1.-factflux)*(1.-factsza(2))*Qdc4(nl0+1))
     253     .      factflux   *  factsza(2)  *Qrh3(nl0)
     254     . +   factflux   *(1.-factsza(2))*Qrh4(nl0)
     255     . + (1.-factflux)*  factsza(2)   *Qrh3(nl0+1)
     256     . + (1.-factflux)*(1.-factsza(2))*Qrh4(nl0+1))
    257257     .            + (1.-factlat)*(
    258      .      factflux   *  factsza(1)   *Qdc1(nl0)
    259      . +   factflux   *(1.-factsza(1))*Qdc2(nl0)
    260      . + (1.-factflux)*  factsza(1)   *Qdc1(nl0+1)
    261      . + (1.-factflux)*(1.-factsza(1))*Qdc2(nl0+1) )
     258     .      factflux   *  factsza(1)  *Qrh1(nl0)
     259     . +   factflux   *(1.-factsza(1))*Qrh2(nl0)
     260     . + (1.-factflux)*  factsza(1)   *Qrh1(nl0+1)
     261     . + (1.-factflux)*(1.-factsza(1))*Qrh2(nl0+1) )
    262262        PHEAT(j)=PHEATPPA(j)
    263263      ENDDO
     
    275275      do j=1,klev
    276276! ADAPTATION GCM POUR CP(T)
    277          PHEAT(j) = PHEATPPA(j)
     277        PHEAT(j) = (ZFSNET(j+1)-ZFSNET(j))
    278278     .            *RG/cpdet(pt(j)) / ((PPB(j)-PPB(j+1))*1.e5)
    279279c-----TEST-------
     
    281281        if ((PPB(j).gt.1.4).and.(PPB(j).le.10.)) then
    282282         PHEAT(j) = PHEAT(j)*3
    283 !        endif
     283        endif
    284284c----------------
    285 !      enddo
     285      enddo
    286286#endif
    287287     
Note: See TracChangeset for help on using the changeset viewer.