Changeset 3963 for trunk/LMDZ.TITAN


Ignore:
Timestamp:
Nov 18, 2025, 1:41:14 PM (4 days ago)
Author:
debatzbr
Message:

Titan PCM: Corrects the calculation of latent heat + add HC3N calculation.
BBT

File:
1 edited

Legend:

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

    r3497 r3963  
    2424!   ------
    2525!   B. de Batz de Trenquelléon (07/2023)
    26 !
    27 !   !!! WARNING !!!
    28 !   ---------------
    29 !   We suppose a given order of tracers !
    30 !   Tracers come from microphysics (ices_indx) :
    31 !   CH4  --> 1
    32 !   C2H2 --> 2
    33 !   C2H6 --> 3
    34 !   HCN  --> 4
    35 !   AC6H6--> 5
    3626!====================================================================   
    3727
     
    5646real, parameter :: mmolC2H2 = 26.e-3 ! Molar mass of C2H2 [kg.mol-1]
    5747real, parameter :: mmolC2H6 = 30.e-3 ! Molar mass of C2H6 [kg.mol-1]
     48real, parameter :: mmolC6H6 = 78.e-3 ! Molar mass of AC6H6 [kg.mol-1]
    5849real, parameter :: mmolHCN  = 27.e-3 ! Molar mass of HCN [kg.mol-1]
    59 real, parameter :: mmolAC6H6 = 78.e-3 ! Molar mass of AC6H6 [kg.mol-1]
     50real, parameter :: mmolHC3N = 51.e-3 ! Molar mass of HC3N [kg.mol-1]
    6051
    6152real, parameter :: TcCH4  = 190.56 ! Critical point of CH4  [K]
    6253real, parameter :: TcC2H2 = 308.35 ! Critical point of C2H2 [K]
    6354real, parameter :: TcC2H6 = 305.35 ! Critical point of C2H6 [K]
     55real, parameter :: TcC6H6 = 562.10 ! Critical point of AC6H6 [K]
    6456real, parameter :: TcHCN  = 456.70 ! Critical point of HCN [K]
    65 real, parameter :: TcAC6H6 = 562.10 ! Critical point of AC6H6 [K]
     57real, parameter :: TcHC3N = 527.00 ! Critical point of HC3N [K]
    6658
    6759! Local variables :
     
    8375        do ig = 1, ngrid ! Main loop on the horizontal grid
    8476            do l = 1, nlayer ! Loop on vertical layers
    85                 ftx = (1. - pt(ig,l)) / TcCH4
     77                ftx = (1. - pt(ig,l) / TcCH4)
    8678                if (ftx .le. 1.e-3) ftx = 1.e-3
    8779                Lcx(ig,l,iq) = 8.314 * TcCH4 * (7.08 * ftx**0.354 + 10.95 * 1.1e-2 * ftx**0.456) / mmolCH4
     
    9688        do ig = 1, ngrid ! Main loop on the horizontal grid
    9789            do l = 1, nlayer ! Loop on vertical layers       
    98                 ftx = (1. - pt(ig,l)) / TcC2H2
     90                ftx = (1. - pt(ig,l) / TcC2H2)
    9991                if (ftx .le. 1.e-3) ftx = 1.e-3
    10092                Lcx(ig,l,iq) = 8.314 * TcC2H2 * (7.08 * ftx**0.354 + 10.95 * 1.9e-1 * ftx**0.456) / mmolC2H2
     
    109101        do ig = 1, ngrid ! Main loop on the horizontal grid
    110102            do l = 1, nlayer ! Loop on vertical layers
    111                 ftx = (1. - pt(ig,l)) / TcC2H6
     103                ftx = (1. - pt(ig,l) / TcC2H6)
    112104                if (ftx .le. 1.e-3) ftx = 1.e-3
    113105                Lcx(ig,l,iq) = 8.314 * TcC2H6 * (7.08 * ftx**0.354 + 10.95 * 9.9e-2 * ftx**0.456) / mmolC2H6
     
    115107        enddo ! End of main loop on the horizontal grid
    116108   
    117     ! AC6H6 :
    118     !--------
     109    ! C6H6 :
     110    !-------
    119111    else if(trim(nameOfTracer(gazs_indx(iq))) .eq. "AC6H6") then
    120112       
    121113        do ig = 1, ngrid ! Main loop on the horizontal grid
    122114            do l = 1, nlayer ! Loop on vertical layers
    123                 ftx = (1. - pt(ig,l)) / TcAC6H6
     115                ftx = (1. - pt(ig,l) / TcC6H6)
    124116                if (ftx .le. 1.e-3) ftx = 1.e-3
    125                 Lcx(ig,l,iq) = 8.314 * TcAC6H6 * (7.08 * ftx**0.354 + 10.95 * 9.9e-2 * ftx**0.456) / mmolAC6H6
     117                Lcx(ig,l,iq) = 8.314 * TcC6H6 * (7.08 * ftx**0.354 + 10.95 * 9.9e-2 * ftx**0.456) / mmolC6H6
    126118            enddo ! End of loop on vertical layers
    127119        enddo ! End of main loop on the horizontal grid
     
    133125        do ig = 1, ngrid ! Main loop on the horizontal grid
    134126            do l = 1, nlayer ! Loop on vertical layers
    135                 ftx = (1. - pt(ig,l)) / TcHCN
     127                ftx = (1. - pt(ig,l) / TcHCN)
    136128                if (ftx .le. 1.e-3) ftx = 1.e-3
    137129                Lcx(ig,l,iq) = 8.314 * TcHCN * (7.08 * ftx**0.354 + 10.95 * 3.88e-1 * ftx**0.456) / mmolHCN
     130            enddo ! End of loop on vertical layers
     131        enddo ! End of main loop on the horizontal grid
     132
     133    ! HC3N :
     134    !-------
     135    else if(trim(nameOfTracer(gazs_indx(iq))) .eq. "HC3N") then
     136
     137        do ig = 1, ngrid ! Main loop on the horizontal grid
     138            do l = 1, nlayer ! Loop on vertical layers
     139                ftx = (1. - pt(ig,l) / TcHC3N)
     140                if (ftx .le. 1.e-3) ftx = 1.e-3
     141                Lcx(ig,l,iq) = 8.314 * TcHC3N * (7.08 * ftx**0.354 + 10.95 * 3.88e-1 * ftx**0.456) / mmolHC3N
    138142            enddo ! End of loop on vertical layers
    139143        enddo ! End of main loop on the horizontal grid
Note: See TracChangeset for help on using the changeset viewer.