Changeset 3894
- Timestamp:
- Aug 14, 2025, 9:40:34 AM (7 hours ago)
- Location:
- trunk/LMDZ.PLUTO/libf/phypluto
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.PLUTO/libf/phypluto/callkeys_mod.F90
r3889 r3894 62 62 logical,save :: cooling 63 63 !$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) 66 66 logical,save :: ch4lag,tsurfmax 67 67 !$OMP THREADPRIVATE(ch4lag,tsurfmax) -
trunk/LMDZ.PLUTO/libf/phypluto/hazecloud.F90
r3889 r3894 1 1 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, & 3 3 zdqphot_prec,zdqphot_ch4,zdqconv_prec,declin) 4 4 !zdqhaze_col) … … 6 6 use comgeomfi_h 7 7 use comcstfi_mod, only: pi, g 8 use tracer_h, only: igcm_haze, igcm_ch4_gas, igcm_ prec_haze, noms, mmol8 use tracer_h, only: igcm_haze, igcm_ch4_gas, igcm_n2, igcm_prec_haze, noms, mmol 9 9 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 11 12 12 13 implicit none … … 50 51 REAL zday 51 52 REAL pplay(ngrid,nlayer),pplev(ngrid,nlayer+1) 53 REAL,INTENT(IN) :: zzlay(ngrid,nlayer) ! Mid-layer altitude 52 54 REAL,INTENT(IN) :: pq(ngrid,nlayer,nq) 53 55 REAL,INTENT(IN) :: pdq(ngrid,nlayer,nq) … … 86 88 REAL tcon ! Time constant: conversion in aerosol 87 89 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 88 96 89 97 REAL longit … … 157 165 !--- 158 166 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 159 178 !! Time constant of conversion in aerosol [second] 160 179 !! To be explore: 1.E3; 1.E5; 1.E7; 1.E9 … … 189 208 fluxlym_ipm(nlayer+1)= flym_ipm(ig) 190 209 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 191 216 DO l=nlayer,1,-1 192 217 !! Actualisation tracer ch4 and prec_haze 193 194 !IF (ngrid.eq.1) THEN195 !! option zq_ch4 = cte196 ! zq_ch4(ig,l)=0.01*0.5*16./28. ! Temporaire197 !ELSE198 zq_ch4(ig,l)=pq(ig,l,igcm_ch4_gas)+ &199 pdq(ig,l,igcm_ch4_gas)*ptimestep200 !ENDIF218 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 201 226 if (zq_ch4(ig,l).lt.0.) then 202 227 zq_ch4(ig,l)=0. 203 228 endif 204 205 !! option zq_ch4 = cte206 ! zq_ch4(ig,l)=0.1*16./28. ! Temporaire207 229 208 230 zq_prec(ig,l)=pq(ig,l,igcm_prec_haze)+ & … … 254 276 zdqconv_prec(ig,:) 255 277 256 else if (noms(iq).eq."ch4_gas".and.(.not.hazeconservch4) ) then278 else if (noms(iq).eq."ch4_gas".and.(.not.hazeconservch4).and.(.not.haze_ch4proffix)) then 257 279 zdqhaze(ig,:,igcm_ch4_gas)= zdqphot_ch4(ig,:) 258 280 endif -
trunk/LMDZ.PLUTO/libf/phypluto/inifis_mod.F90
r3889 r3894 827 827 if (is_master)write(*,*)trim(rname)//& 828 828 "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 829 833 if (is_master)write(*,*)trim(rname)//& 830 834 "Production of haze (fast version) ?" -
trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90
r3882 r3894 1527 1527 pdqmufi_prod(:,:,:) = 0. 1528 1528 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, & 1530 1530 zdqphot_prec,zdqphot_ch4,zdqconv_prec,declin) 1531 1531 pdq(:,:,:) = pdq(:,:,:) + pdqmufi_prod(:,:,:) ! Should be updated … … 1550 1550 else 1551 1551 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, & 1553 1553 zdqphot_prec,zdqphot_ch4,zdqconv_prec,declin) 1554 1554 endif
Note: See TracChangeset
for help on using the changeset viewer.