Ignore:
Timestamp:
Nov 7, 2024, 11:13:46 AM (2 weeks ago)
Author:
debatzbr
Message:

Add AC6H6 condensation in the microphysics

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.TITAN/libf/phytitan/physiq_mod.F90

    r3340 r3497  
    276276      real zdmassmr_col(ngrid)    ! Atmospheric Column Mass tendency for mass_redistribution (kg_of_air/m2/s).
    277277      real zdpsrfmr(ngrid)        ! Pressure tendency for mass_redistribution routine (Pa/s).
    278 
    279       ! Temporal tracers :
    280       real ppq(ngrid,nlayer,nq)   ! Tracers (kg/kg_of_air).
    281278     
    282279   
     
    842839
    843840               ! standard callcorrk
    844                !call callcorrk(ngrid,nlayer,ppq,nq,qsurf,zday,                      &
    845841               call callcorrk(ngrid,nlayer,pq,nq,qsurf,zday,                      &
    846842                              albedo,albedo_equivalent,emis,mu0,pplev,pplay,zzlev,&
     
    11191115               ENDDO
    11201116            ENDIF
    1121             ! In case there is no clouds, in the troposphere the moments are  fixed to evacuate all aerosols
     1117            ! In case there is no clouds, in the troposphere the moments are fixed to evacuate all aerosols
    11221118            IF (.NOT. callclouds) THEN
    1123                DO l = 1, nlayer
    1124                   DO ig=1,ngrid
    1125                      IF (pplay(ig,l) .gt. 1000.) THEN
    1126                         pdq(ig,l,1)=0.
    1127                         pdq(ig,l,2)=0.
    1128                         IF (pplay(ig,l) .gt. 5000.) THEN
    1129                            pdq(ig,l,3)=0.
    1130                            pdq(ig,l,4)=0.
    1131                         ENDIF
    1132                      ENDIF
    1133                   ENDDO
    1134                ENDDO
     1119               WHERE (pplay(:,:) .gt. 1000.)
     1120                  pdq(:,:,1) = 0.
     1121                  pdq(:,:,2) = 0.
     1122               ENDWHERE
     1123               WHERE (pplay(:,:) .gt. 5000.)
     1124                  pdq(:,:,3) = 0.
     1125                  pdq(:,:,4) = 0.
     1126               ENDWHERE
    11351127            ENDIF
    11361128#endif
     
    12621254            else
    12631255               ! Fill lakes with precipitation :
    1264                tankCH4(:) = tankCH4(:) + (mmd_ice_prec(:,1) / 425. * ptimestep) ! [m]
     1256               !if (REAL(latitude_deg(ig)) .ge. 70.0) then
     1257               !   tankCH4(ig) = 200.0 ! [m]
     1258               !else if (REAL(latitude_deg(ig)) .le. -70.0) then
     1259               !   tankCH4(ig) = 50.0  ! [m]
     1260               !else
     1261               !   tankCH4(ig) = 0.0   ! [m]
     1262               !endif
     1263               tankCH4(:) = tankCH4(:) + (mmd_ice_prec(:,1) / 422. * ptimestep) ! [m]
    12651264               
    12661265               ! Evaporation of lakes :
     
    14151414      enddo
    14161415
    1417       ! [BBT TEMPO] Firstcall : Initialize Tracers
    1418       !if (firstcall) then
    1419       !   do ig = 1, ngrid
    1420       !      ! Aerosols :
    1421       !      !-----------
    1422       !      WHERE (pq(ig,:24,3) < 3.0e7) &
    1423       !               pdq(ig,:24,3) = (3.0e7 - pq(ig,:24,3)) / ptimestep   ! M0 aerf
    1424       !      WHERE (pq(ig,:24,4) < 1.5e-12) &
    1425       !               pdq(ig,:24,4) = (1.5e-12 - pq(ig,:24,4)) / ptimestep ! M3 aerf
    1426       !      ! Lakes :
    1427       !      !--------
    1428       !      if (REAL(latitude_deg(ig)) .ge. 70.0) then
    1429       !         tankCH4(ig) = 100.0 ! [m]
    1430       !      else if (REAL(latitude_deg(ig)) .le. -70.0) then
    1431       !         tankCH4(ig) = 20.0  ! [m]
    1432       !      else
    1433       !         tankCH4(ig) = 0.0   ! [m]
    1434       !      endif
    1435       !      ! Species :
    1436       !      !----------
    1437       !      do iq = 1, size(ices_indx)
    1438       !         ! CH4 :
    1439       !         !------
    1440       !         if(trim(nameOfTracer(gazs_indx(iq))) .eq. "CH4") then
    1441       !            WHERE (pq(ig,:,gazs_indx(iq))/rat_mmol(gazs_indx(iq)) > 0.05) &
    1442       !               pdq(ig,:,gazs_indx(iq)) = (0.05 * rat_mmol(gazs_indx(iq)) - pq(ig,:,gazs_indx(iq))) / ptimestep
    1443       !            WHERE (pq(ig,:,gazs_indx(iq))/rat_mmol(gazs_indx(iq)) < 0.014) &
    1444       !               pdq(ig,:,gazs_indx(iq)) = (0.014 * rat_mmol(gazs_indx(iq)) - pq(ig,:,gazs_indx(iq))) / ptimestep
    1445       !         endif
    1446       !         ! C2H2 :
    1447       !         !-------
    1448       !         if(trim(nameOfTracer(gazs_indx(iq))) .eq. "C2H2") then
    1449       !            WHERE (pq(ig,26:,gazs_indx(iq))/rat_mmol(gazs_indx(iq)) < 3.0e-6) &
    1450       !               pdq(ig,26:,gazs_indx(iq)) = (5.0e-6 * rat_mmol(gazs_indx(iq)) - pq(ig,26:,gazs_indx(iq))) / ptimestep
    1451       !         endif
    1452       !         ! C2H6 :
    1453       !         !-------
    1454       !         if(trim(nameOfTracer(gazs_indx(iq))) .eq. "C2H6") then
    1455       !            WHERE (pq(ig,26:,gazs_indx(iq))/rat_mmol(gazs_indx(iq)) < 2.0e-5) &
    1456       !               pdq(ig,26:,gazs_indx(iq)) = (2.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,26:,gazs_indx(iq))) / ptimestep
    1457       !         endif
    1458       !         ! HCN :
    1459       !         !------
    1460       !         if(trim(nameOfTracer(gazs_indx(iq))) .eq. "HCN") then
    1461       !            WHERE (pq(ig,26:,gazs_indx(iq))/rat_mmol(gazs_indx(iq)) < 8.0e-6) &
    1462       !               pdq(ig,26:,gazs_indx(iq)) = (8.0e-6 * rat_mmol(gazs_indx(iq)) - pq(ig,26:,gazs_indx(iq))) / ptimestep
    1463       !         endif
    1464       !      enddo
    1465       !   enddo
    1466       !endif
    1467       ! [BdBdT : Forcage de la photochimie]
    1468       do ig = 1, ngrid
    1469          do iq = 1, size(ices_indx)
    1470             ! C2H2 :
    1471             !-------
    1472             if(trim(nameOfTracer(gazs_indx(iq))) .eq. "C2H2") then
    1473                pdq(ig,nlayer-3:,gazs_indx(iq)) = (4.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep
    1474             endif
    1475             ! C2H6 :
    1476             !-------
    1477             if(trim(nameOfTracer(gazs_indx(iq))) .eq. "C2H6") then
    1478                pdq(ig,nlayer-3:,gazs_indx(iq)) = (1.0e-4 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep
    1479             endif
    1480             ! HCN :
    1481             !------
    1482             if(trim(nameOfTracer(gazs_indx(iq))) .eq. "HCN") then
    1483                pdq(ig,nlayer-3:,gazs_indx(iq)) = (4.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep
    1484             endif
     1416      ! [Forcage de la photochimie pour les nuages]
     1417      if (callclouds) then
     1418         do ig = 1, ngrid
     1419            do iq = 1, size(ices_indx)
     1420               ! C2H2 :
     1421               !-------
     1422               if(trim(nameOfTracer(gazs_indx(iq))) .eq. "C2H2") then
     1423                  pdq(ig,nlayer-3:,gazs_indx(iq)) = (4.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep
     1424               endif
     1425               ! C2H6 :
     1426               !-------
     1427               if(trim(nameOfTracer(gazs_indx(iq))) .eq. "C2H6") then
     1428                  pdq(ig,nlayer-3:,gazs_indx(iq)) = (8.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep
     1429               endif
     1430               ! HCN :
     1431               !------
     1432               if(trim(nameOfTracer(gazs_indx(iq))) .eq. "HCN") then
     1433                  pdq(ig,nlayer-3:,gazs_indx(iq)) = (2.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep
     1434               endif
     1435               ! AC6H6 :
     1436               !--------
     1437               if(trim(nameOfTracer(gazs_indx(iq))) .eq. "AC6H6") then
     1438                  pdq(ig,nlayer-3:,gazs_indx(iq)) = (2.0e-5 * rat_mmol(gazs_indx(iq)) - pq(ig,nlayer-3:,gazs_indx(iq))) / ptimestep
     1439               endif
     1440            enddo
    14851441         enddo
    1486       enddo
     1442      endif
     1443
    14871444      zq(:,:,:) = pq(:,:,:) + pdq(:,:,:)*ptimestep
    14881445
     
    18301787      ! Optical diagnostics :
    18311788      !--------------------------------------------------------
    1832 
    1833       if (1.eq.0) then  ! not by default...
    1834 
    18351789      ! Haze opacity :
    1836       CALL send_xios_field('ttauhv_14',zpopthv(:,:,14,2)) ! 14 --> 1.076 um
     1790      CALL send_xios_field('ttauhv_08',zpopthv(:,:,8,2))  ! 08 --> 1.983 um
     1791      CALL send_xios_field('ttauhv_15',zpopthv(:,:,15,2)) ! 15 --> 1.000 um
    18371792      CALL send_xios_field('ttauhv_20',zpopthv(:,:,20,2)) ! 20 --> 0.671 um
    18381793      CALL send_xios_field('ttauhv_23',zpopthv(:,:,23,2)) ! 23 --> 0.346 um
     
    18411796      CALL send_xios_field('ttauhi_23',zpopthi(:,:,23,2)) ! 23 --> 4.849 um
    18421797      ! Haze extinction :
    1843       CALL send_xios_field('kkhv_14',zpopthv(:,:,14,3))
     1798      CALL send_xios_field('kkhv_08',zpopthv(:,:,8,3))
     1799      CALL send_xios_field('kkhv_15',zpopthv(:,:,15,3))
    18441800      CALL send_xios_field('kkhv_20',zpopthv(:,:,20,3))
    18451801      CALL send_xios_field('kkhv_23',zpopthv(:,:,23,3))
     
    18481804      CALL send_xios_field('kkhi_23',zpopthi(:,:,23,3))
    18491805      ! Haze single scattering albedo :
    1850       CALL send_xios_field('wwhv_14',zpopthv(:,:,14,4))
     1806      CALL send_xios_field('wwhv_08',zpopthv(:,:,8,4))
     1807      CALL send_xios_field('wwhv_15',zpopthv(:,:,15,4))
    18511808      CALL send_xios_field('wwhv_20',zpopthv(:,:,20,4))
    18521809      CALL send_xios_field('wwhv_23',zpopthv(:,:,23,4))
     
    18551812      CALL send_xios_field('wwhi_23',zpopthi(:,:,23,4))
    18561813      ! Haze asymmetry parameter :
    1857       CALL send_xios_field('gghv_14',zpopthv(:,:,14,5))
     1814      CALL send_xios_field('gghv_08',zpopthv(:,:,8,5))
     1815      CALL send_xios_field('gghv_15',zpopthv(:,:,15,5))
    18581816      CALL send_xios_field('gghv_20',zpopthv(:,:,20,5))
    18591817      CALL send_xios_field('gghv_23',zpopthv(:,:,23,5))
     
    18651823      IF (callclouds) THEN
    18661824         ! Opacity :
    1867          CALL send_xios_field('ttauv_14',zpopttv(:,:,14,2)) ! 14 --> 1.076 um
     1825         CALL send_xios_field('ttauv_08',zpopttv(:,:,8,2))  ! 08 --> 1.983 um
     1826         CALL send_xios_field('ttauv_15',zpopttv(:,:,15,2)) ! 15 --> 1.000 um
    18681827         CALL send_xios_field('ttauv_20',zpopttv(:,:,20,2)) ! 20 --> 0.671 um
    18691828         CALL send_xios_field('ttauv_23',zpopttv(:,:,23,2)) ! 23 --> 0.346 um
     
    18721831         CALL send_xios_field('ttaui_23',zpoptti(:,:,23,2)) ! 23 --> 4.849 um
    18731832         ! Extinction :
    1874          CALL send_xios_field('kkv_14',zpopttv(:,:,14,3))
     1833         CALL send_xios_field('kkv_08',zpopttv(:,:,8,3))
     1834         CALL send_xios_field('kkv_15',zpopttv(:,:,15,3))
    18751835         CALL send_xios_field('kkv_20',zpopttv(:,:,20,3))
    18761836         CALL send_xios_field('kkv_23',zpopttv(:,:,23,3))
     
    18791839         CALL send_xios_field('kki_23',zpoptti(:,:,23,3))
    18801840         ! Single scattering albedo :
    1881          CALL send_xios_field('wwv_14',zpopttv(:,:,14,4))
     1841         CALL send_xios_field('wwv_08',zpopttv(:,:,8,4))
     1842         CALL send_xios_field('wwv_15',zpopttv(:,:,15,4))
    18821843         CALL send_xios_field('wwv_20',zpopttv(:,:,20,4))
    18831844         CALL send_xios_field('wwv_23',zpopttv(:,:,23,4))
     
    18861847         CALL send_xios_field('wwi_23',zpoptti(:,:,23,4))
    18871848         ! Asymmetry parameter :
    1888          CALL send_xios_field('ggv_14',zpopttv(:,:,14,5))
     1849         CALL send_xios_field('ggv_08',zpopttv(:,:,8,5))
     1850         CALL send_xios_field('ggv_15',zpopttv(:,:,15,5))
    18891851         CALL send_xios_field('ggv_20',zpopttv(:,:,20,5))
    18901852         CALL send_xios_field('ggv_23',zpopttv(:,:,23,5))
     
    19001862         CALL send_xios_field('dconti_17',zpoptti(:,:,17,8))
    19011863      ENDIF     
    1902 
    1903       endif  ! 1.eq.0 ...
    19041864
    19051865      ! Diagnostics for haze and clouds (4D) :
Note: See TracChangeset for help on using the changeset viewer.