Changeset 4013
- Timestamp:
- Jan 19, 2026, 2:31:03 PM (5 days ago)
- Location:
- trunk/LMDZ.TITAN/libf/phytitan
- Files:
-
- 7 edited
-
callcorrk.F90 (modified) (3 diffs)
-
evapCH4.F90 (modified) (1 diff)
-
get_haze_and_cloud_opacity.F90 (modified) (2 diffs)
-
optci.F90 (modified) (3 diffs)
-
optcv.F90 (modified) (4 diffs)
-
phys_state_var_mod.F90 (modified) (1 diff)
-
physiq_mod.F90 (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.TITAN/libf/phytitan/callcorrk.F90
r3659 r4013 726 726 727 727 728 ! Optical thickness diagnostics (added by JVO)728 ! Optical thickness diagnostics 729 729 if (diagdtau) then 730 730 do l=1,L_NLAYRAD … … 732 732 int_dtauv(ig,l,nw) = 0.0d0 733 733 DO k=1,L_NGAUSS 734 ! Output exp(-tau) because gweight ponderates exp and not tau itself735 int_dtauv(ig,l,nw)= int_dtauv(ig,l,nw) + exp(-dtauv(l,nw,k))*gweight(k)734 ! Output exp(-tau) because gweight ponderates exp and not tau itself 735 int_dtauv(ig,l,nw)= int_dtauv(ig,l,nw) + exp(-dtauv(l,nw,k))*gweight(k) 736 736 ENDDO 737 737 enddo … … 739 739 int_dtaui(ig,l,nw) = 0.0d0 740 740 DO k=1,L_NGAUSS 741 ! Output exp(-tau) because gweight ponderates exp and not tau itself742 int_dtaui(ig,l,nw)= int_dtaui(ig,l,nw) + exp(-dtaui(l,nw,k))*gweight(k)741 ! Output exp(-tau) because gweight ponderates exp and not tau itself 742 int_dtaui(ig,l,nw)= int_dtaui(ig,l,nw) + exp(-dtaui(l,nw,k))*gweight(k) 743 743 ENDDO 744 744 enddo -
trunk/LMDZ.TITAN/libf/phytitan/evapCH4.F90
r3497 r4013 79 79 real, parameter :: humCH4 = 0.4 ! Imposed surface humidity for CH4 [-] 80 80 81 real, parameter :: Flnp = 0. 10! Fraction occupied by lakes (North Pole)81 real, parameter :: Flnp = 0.07 ! Fraction occupied by lakes (North Pole) 82 82 real, parameter :: Flsp = 0.01 ! Fraction occupied by lakes (South Pole) 83 real, parameter :: Flml = 1.! Fraction not infiltrated into the ground (Mid latitudes)83 real, parameter :: Flml = 0.75 ! Fraction not infiltrated into the ground (Mid latitudes) 84 84 85 85 real, parameter :: mmolair = 28.e-3 ! Molar mass of air [kg.mol-1] -
trunk/LMDZ.TITAN/libf/phytitan/get_haze_and_cloud_opacity.F90
r3700 r4013 200 200 !------------------------- 201 201 202 IF((m0 .gt. tiny(m0)) .and. (m3 .gt.tiny(m3))) THEN ! if there are clouds !emoisan tests202 IF((m0 .gt. tiny(m0)) .and. (m3 .gt.tiny(m3))) THEN ! If there are clouds 203 203 rinit = 1.e-9 ! fin = rinit*step**(33-1) = 1.e-5 204 204 if(CTYPE.eq.0) rinit = 1.e-7 ! fin = rinit*step**(33-1) = 1.e-3 … … 324 324 325 325 tauext = tauext * m0 326 ENDIF !if there are clouds !emoisan tests 327 !else just return the initialize values of tauext, wbar and gbar =0 326 ENDIF ! If there are clouds, else return the initialize values tauext=wbar=gbar=0 328 327 329 328 return -
trunk/LMDZ.TITAN/libf/phytitan/optci.F90
r3700 r4013 289 289 call get_haze_and_cloud_opacity(FTYPE,FTYPE,m0ccn,m3ccn,iw,dtau_ccn,ssa_ccn(nw),asf_ccn(nw)) 290 290 291 ! Clear column (CCN , C2H2, C2H6, HCN, AC6H6):291 ! Clear column (CCN + minor ices): 292 292 IF (CDCOLUMN == 0) THEN 293 293 DO iq = 2, nice … … 296 296 call get_haze_and_cloud_opacity(FTYPE,CTYPE,m0ccn,m3cld,iw,dtau_cld,ssa_cld(nw),asf_cld(nw)) 297 297 298 ! Dark column (CCN , CH4, C2H2, C2H6, HCN, AC6H6):298 ! Dark column (CCN + CH4 ice + minor ices): 299 299 ELSEIF (CDCOLUMN == 1) THEN 300 300 DO iq = 1, nice … … 313 313 314 314 ! For small dropplets, opacity of nucleus dominates... 315 IF ((m3ccn + m3cld) .le. tiny(m3ccn)) THEN ! no cloud !emoisan tests315 IF ((m3ccn + m3cld) .le. tiny(m3ccn)) THEN ! No cloud 316 316 dtau_cld = 0. 317 317 ssa_cld(nw) = 0. -
trunk/LMDZ.TITAN/libf/phytitan/optcv.F90
r3700 r4013 313 313 call get_haze_and_cloud_opacity(FTYPE,FTYPE,m0ccn,m3ccn,iw,dtau_ccn,ssa_ccn(nw),asf_ccn(nw)) 314 314 315 ! Clear column (CCN , C2H2, C2H6, HCN, AC6H6):315 ! Clear column (CCN + minor ices): 316 316 IF (CDCOLUMN == 0) THEN 317 317 DO iq = 2, nice … … 320 320 call get_haze_and_cloud_opacity(FTYPE,CTYPE,m0ccn,m3cld,iw,dtau_cld,ssa_cld(nw),asf_cld(nw)) 321 321 322 ! Dark column (CCN , CH4, C2H2, C2H6, HCN, AC6H6):322 ! Dark column (CCN + CH4 ice + minor ices): 323 323 ELSEIF (CDCOLUMN == 1) THEN 324 324 DO iq = 1, nice … … 337 337 338 338 ! For small dropplets, opacity of nucleus dominates 339 IF ((m3ccn + m3cld) .le. tiny(m3ccn)) THEN ! no cloud !emoisan tests339 IF ((m3ccn + m3cld) .le. tiny(m3ccn)) THEN ! No cloud 340 340 dtau_cld = 0. 341 341 ssa_cld(nw) = 0. … … 586 586 ! END DO 587 587 !END DO ! end full gauss loop 588 588 589 589 TAUCUMV(:,:,:) = DTAUKV(:,:,:) 590 590 DO L=1,L_NLAYRAD -
trunk/LMDZ.TITAN/libf/phytitan/phys_state_var_mod.F90
r3318 r4013 70 70 real,dimension(:,:,:),allocatable,save :: int_dtauv ! VI optical thickness of layers within narrowbands for diags (). 71 71 real,dimension(:,:,:),allocatable,save :: int_dtaui ! IR optical thickness of layers within narrowbands for diags (). 72 !$OMP THREADPRIVATE(int_dtaui,int_dtauv) 72 !$OMP THREADPRIVATE(int_dtaui,int_dtauv) 73 73 74 74 real,dimension(:,:,:,:),allocatable,save :: zpopthi ! IR optical properties [haze] within narrowbands for diags (dtau,tau,k,wbar,gbar,drayaer,taugaz,dcont). -
trunk/LMDZ.TITAN/libf/phytitan/physiq_mod.F90
r3682 r4013 220 220 real zh(ngrid,nlayer) ! Potential temperature (K). 221 221 real pw(ngrid,nlayer) ! Vertical velocity (m/s). (NOTE : >0 WHEN DOWNWARDS !!) 222 real omega(ngrid,nlayer) ! omega velocity (Pa/s, >0 when downward) 222 223 223 224 integer l,ig,ierr,iq,nw,isoil,ilat,lat_idx,i,j … … 814 815 pw(:,l)=(pw(:,l)*r*pt(:,l)) / (pplay(:,l)*cell_area(:)) 815 816 enddo 817 ! omega in Pa/s 818 do l=1,nlayer-1 819 omega(1:ngrid,l)=0.5*(flxw(1:ngrid,l)+flxw(1:ngrid,l+1)) 820 enddo 821 omega(1:ngrid,nlayer)=0.5*flxw(1:ngrid,nlayer) ! since flxw(nlayer+1)=0 822 do l=1,nlayer 823 omega(1:ngrid,l)=g*omega(1:ngrid,l)/cell_area(1:ngrid) 824 enddo 816 825 817 826 !--------------------------------- … … 1437 1446 enddo 1438 1447 1439 ! [ Forcage de la photochimie pour les nuages]1448 ! [Temporary: adapted photochemistry for clouds] 1440 1449 if (callclouds) then 1441 1450 do ig = 1, ngrid … … 1444 1453 !------- 1445 1454 if(trim(nameOfTracer(gazs_indx(iq))) .eq. "C2H2") then 1446 pdq(ig,nlayer-3:,gazs_indx(iq)) = ( 4.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep1455 pdq(ig,nlayer-3:,gazs_indx(iq)) = (3.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep 1447 1456 endif 1448 1457 ! C2H6 : 1449 1458 !------- 1450 1459 if(trim(nameOfTracer(gazs_indx(iq))) .eq. "C2H6") then 1451 pdq(ig,nlayer-3:,gazs_indx(iq)) = (8.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep 1460 pdq(ig,nlayer-3:,gazs_indx(iq)) = (6.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep 1461 endif 1462 ! AC6H6 : 1463 !-------- 1464 if(trim(nameOfTracer(gazs_indx(iq))) .eq. "AC6H6") then 1465 pdq(ig,nlayer-5:,gazs_indx(iq)) = (5.0e-11 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-5:,gazs_indx(iq))) / ptimestep 1452 1466 endif 1453 1467 ! HCN : 1454 1468 !------ 1455 1469 if(trim(nameOfTracer(gazs_indx(iq))) .eq. "HCN") then 1456 pdq(ig,nlayer-3:,gazs_indx(iq)) = ( 2.0e-5* rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep1470 pdq(ig,nlayer-3:,gazs_indx(iq)) = (5.0e-6 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep 1457 1471 endif 1458 ! AC6H6:1459 !------- -1460 if(trim(nameOfTracer(gazs_indx(iq))) .eq. " AC6H6") then1461 pdq(ig,nlayer-3:,gazs_indx(iq)) = ( 2.0e-5* rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep1472 ! HC3N : 1473 !------- 1474 if(trim(nameOfTracer(gazs_indx(iq))) .eq. "HC3N") then 1475 pdq(ig,nlayer-3:,gazs_indx(iq)) = (5.0e-8 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep 1462 1476 endif 1463 1477 enddo … … 1737 1751 CALL send_xios_field("v",zv) 1738 1752 CALL send_xios_field("w",pw) 1753 CALL send_xios_field("omega",omega) 1739 1754 1740 1755 CALL send_xios_field("area",cell_area) … … 1964 1979 CALL send_xios_field("evapCH4",dycevapCH4(:)) ! Pseudo-evaporation flux (mol/mol/s) 1965 1980 CALL send_xios_field("tankCH4",tankCH4(:)) ! CH4 tank at the surface (m) 1981 CALL send_xios_field("sphumCH4",zq(:,:,7+nmicro)/(1+zq(:,:,7+nmicro))) ! CH4 Specific Humidity (kg/kg) 1966 1982 1967 1983 ! Atmosphere (3D) :
Note: See TracChangeset
for help on using the changeset viewer.
