Changeset 3894


Ignore:
Timestamp:
Aug 14, 2025, 9:40:34 AM (7 hours ago)
Author:
debatzbr
Message:

Pluto PCM: Allows for haze production with vmr CH4 fix profile.
BBT

Location:
trunk/LMDZ.PLUTO/libf/phypluto
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.PLUTO/libf/phypluto/callkeys_mod.F90

    r3889 r3894  
    6262      logical,save :: cooling
    6363!$OMP THREADPRIVATE(cooling)
    64       logical,save :: source_haze,hazeconservch4
    65 !$OMP THREADPRIVATE(source_haze,hazeconservch4)
     64      logical,save :: source_haze,hazeconservch4,haze_ch4proffix
     65!$OMP THREADPRIVATE(source_haze,hazeconservch4,haze_ch4proffix)
    6666      logical,save :: ch4lag,tsurfmax
    6767!$OMP THREADPRIVATE(ch4lag,tsurfmax)
  • trunk/LMDZ.PLUTO/libf/phypluto/hazecloud.F90

    r3889 r3894  
    11      subroutine hazecloud(ngrid,nlayer,nq,ptimestep,zday, &
    2           pplay,pplev,pq,pdq,pdist_sol,mu0,pfluxuv,zdqhaze, &
     2          pplay,pplev,zzlay,pq,pdq,pdist_sol,mu0,pfluxuv,zdqhaze, &
    33          zdqphot_prec,zdqphot_ch4,zdqconv_prec,declin)
    44          !zdqhaze_col)
     
    66      use comgeomfi_h
    77      use comcstfi_mod, only: pi, g
    8       use tracer_h, only: igcm_haze, igcm_ch4_gas, igcm_prec_haze, noms, mmol
     8      use tracer_h, only: igcm_haze, igcm_ch4_gas, igcm_n2, igcm_prec_haze, noms, mmol
    99      use geometry_mod, only: longitude, latitude ! in radians
    10       use callkeys_mod, only: hazeconservch4, diurnal, tcon_ch4, k_ch4, ncratio_ch4
     10      use callkeys_mod, only: hazeconservch4, haze_ch4proffix, diurnal, tcon_ch4, k_ch4, ncratio_ch4
     11      use datafile_mod, only: datadir
    1112
    1213      implicit none
     
    5051      REAL zday
    5152      REAL pplay(ngrid,nlayer),pplev(ngrid,nlayer+1)
     53      REAL,INTENT(IN) :: zzlay(ngrid,nlayer) ! Mid-layer altitude
    5254      REAL,INTENT(IN) :: pq(ngrid,nlayer,nq)
    5355      REAL,INTENT(IN) :: pdq(ngrid,nlayer,nq)
     
    8688      REAL tcon   ! Time constant: conversion in aerosol
    8789      REAL avogadro ! avogadro constant
     90
     91      integer Nfine,ifine
     92      parameter(Nfine=701)
     93      character(len=100) :: file_path
     94      real,save :: levdat(Nfine),vmrdat(Nfine)
     95      real :: vmrch4(ngrid,nlayer) ! vmr ch4 from vmrch4_proffix
    8896
    8997      REAL longit
     
    157165!---
    158166
     167      ! If fixed profile of CH4 gas
     168      if (haze_ch4proffix) then
     169         file_path=trim(datadir)//'/gas_prop/vmr_ch4.txt'
     170         open(115,file=file_path,form='formatted')
     171         do ifine=1,Nfine
     172           read(115,*) levdat(ifine), vmrdat(ifine)
     173         enddo
     174         close(115)
     175      endif
     176      vmrch4(:,:)=0.
     177
    159178!! Time constant of conversion in aerosol [second]
    160179!! To be explore: 1.E3; 1.E5; 1.E7; 1.E9
     
    189208        fluxlym_ipm(nlayer+1)= flym_ipm(ig)
    190209
     210        !! Interpolate on the model vertical grid
     211        if (haze_ch4proffix) then
     212            CALL interp_line(levdat,vmrdat,Nfine, &
     213                 zzlay(ig,:)/1000.,vmrch4(ig,:),nlayer)
     214        endif
     215
    191216        DO l=nlayer,1,-1
    192217          !! Actualisation tracer ch4 and prec_haze
    193 
    194           !IF (ngrid.eq.1) THEN
    195           !! option zq_ch4 = cte
    196           !    zq_ch4(ig,l)=0.01*0.5*16./28.  ! Temporaire
    197           !ELSE
    198           zq_ch4(ig,l)=pq(ig,l,igcm_ch4_gas)+     &
    199                                 pdq(ig,l,igcm_ch4_gas)*ptimestep
    200           !ENDIF
     218          if (haze_ch4proffix) then
     219            zq_ch4(ig,l)=vmrch4(ig,l)*mmol(igcm_ch4_gas) / &
     220                         (100.*mmol(igcm_n2))
     221          else
     222            zq_ch4(ig,l)=pq(ig,l,igcm_ch4_gas) + &
     223                         pdq(ig,l,igcm_ch4_gas)*ptimestep
     224          endif
     225         
    201226          if (zq_ch4(ig,l).lt.0.) then
    202227                zq_ch4(ig,l)=0.
    203228          endif
    204 
    205           !! option zq_ch4 = cte
    206 !          zq_ch4(ig,l)=0.1*16./28.  ! Temporaire
    207229
    208230          zq_prec(ig,l)=pq(ig,l,igcm_prec_haze)+    &
     
    254276                                          zdqconv_prec(ig,:)
    255277
    256            else if (noms(iq).eq."ch4_gas".and.(.not.hazeconservch4)) then
     278           else if (noms(iq).eq."ch4_gas".and.(.not.hazeconservch4).and.(.not.haze_ch4proffix)) then
    257279              zdqhaze(ig,:,igcm_ch4_gas)= zdqphot_ch4(ig,:)
    258280           endif
  • trunk/LMDZ.PLUTO/libf/phypluto/inifis_mod.F90

    r3889 r3894  
    827827     if (is_master)write(*,*)trim(rname)//&
    828828     "hazconservch4 = ",hazeconservch4
     829     if (is_master) write(*,*) "Production of haze with CH4 fix profile?"
     830     haze_ch4proffix=.false. ! default value
     831     call getin_p("haze_ch4proffix",haze_ch4proffix)
     832     if (is_master) write(*,*)" haze_ch4proffix = ",haze_ch4proffix
    829833     if (is_master)write(*,*)trim(rname)//&
    830834     "Production of haze (fast version) ?"
  • trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90

    r3882 r3894  
    15271527               pdqmufi_prod(:,:,:) = 0.
    15281528               call hazecloud(ngrid,nlayer,nq,ptimestep,zday,                        &
    1529                               pplay,pplev,pq,pdq,dist_star,mu0,zfluxuv,pdqmufi_prod, &
     1529                              pplay,pplev,zzlay,pq,pdq,dist_star,mu0,zfluxuv,pdqmufi_prod, &
    15301530                              zdqphot_prec,zdqphot_ch4,zdqconv_prec,declin)
    15311531               pdq(:,:,:) = pdq(:,:,:) + pdqmufi_prod(:,:,:) ! Should be updated
     
    15501550               else
    15511551                  call hazecloud(ngrid,nlayer,nq,ptimestep,zday,       &
    1552                      pplay,pplev,pq,pdq,dist_star,mu0,zfluxuv,zdqhaze, &
     1552                     pplay,pplev,zzlay,pq,pdq,dist_star,mu0,zfluxuv,zdqhaze, &
    15531553                     zdqphot_prec,zdqphot_ch4,zdqconv_prec,declin)
    15541554               endif
Note: See TracChangeset for help on using the changeset viewer.