Ignore:
Timestamp:
Oct 17, 2023, 9:40:14 AM (13 months ago)
Author:
slebonnois
Message:

BdeBatz? : Cleans microphysics and makes few corrections for physics

File:
1 edited

Legend:

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

    r3083 r3090  
    2525  !     -------
    2626  !     Adapted from the NASA Ames code by R. Wordsworth (2009)
    27   !     Clean and adaptation to Titan by J. Vatant d'Ollone (2016-17)
    28   !     Clean and correction to Titan by B. de Batz de Trenquelléon (2022)
    29   !     New optics added for Titan's clouds by B. de Batz de Trenquelléon (2023)
    30   !     The whole routine needs to be redone...
     27  !     
     28  !     Modified
     29  !     --------
     30  !     J. Vatant d'Ollone (2016-17)
     31  !         --> Clean and adaptation to Titan
     32  !     B. de Batz de Trenquelléon (2022-2023)
     33  !         --> Clean and correction to Titan
     34  !         --> New optics added for Titan's clouds
    3135  !     
    3236  !==================================================================
     
    116120  ! Variables for new optics
    117121  integer iq, iw, FTYPE, CTYPE
    118   real*8 m0as,m0af,m0ccn,m3as,m3af,m3ccn,m3ices,m3cld
     122  real*8 m0as,m0af,m0ccn,m3as,m3af,m3ccn,m3cld
    119123  real*8 dtauaer_s,dtauaer_f,dtau_ccn,dtau_cld
    120124  real*8,save :: rhoaer_s(L_NSPECTV),ssa_s(L_NSPECTV),asf_s(L_NSPECTV)
     
    202206               m3as = pqmo(ilay,2) / 2.0
    203207               m3af = pqmo(ilay,4) / 2.0
    204                ! Cut-off
    205                IF (ilay .lt. 19) THEN
    206                   m3as = pqmo(19,2) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(20)-zlev(19))
    207                   m3af = pqmo(19,4) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(20)-zlev(19))
     208               ! Cut-off (here for p = 2.7e3Pa / alt = 70km)
     209               IF (ilay .lt. 23) THEN
     210                  m3as = pqmo(23,2) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(24)-zlev(23))
     211                  m3af = pqmo(23,4) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(24)-zlev(23))
    208212               ENDIF
    209213               
     
    226230               m0as  = pqmo(ilay,1) / 2.0
    227231               m3as  = pqmo(ilay,2) / 2.0
    228                ! If not callclouds : must have a cut-off
     232               ! If not callclouds : must have a cut-off (here for p = 2.7e3Pa / alt = 70km)
    229233               IF (.NOT. callclouds) THEN
    230                   IF (ilay .lt. 19) THEN
    231                      m0as = pqmo(19,1) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(20)-zlev(19))
    232                      m3as = pqmo(19,2) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(20)-zlev(19))
     234                  IF (ilay .lt. 23) THEN
     235                     m0as = pqmo(23,1) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(24)-zlev(23))
     236                     m3as = pqmo(23,2) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(24)-zlev(23))
    233237                  ENDIF
    234238               ENDIF
     
    240244               m0af  = pqmo(ilay,3) / 2.0
    241245               m3af  = pqmo(ilay,4) / 2.0
    242                ! If not callclouds : must have a cut-off
     246               ! If not callclouds : must have a cut-off (here for p = 2.7e3Pa / alt = 70km)
    243247               IF (.NOT. callclouds) THEN
    244                   IF (ilay .lt. 19) THEN
    245                      m0af = pqmo(19,3) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(20)-zlev(19))
    246                      m3af = pqmo(19,4) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(20)-zlev(19))
     248                  IF (ilay .lt. 23) THEN
     249                     m0af = pqmo(23,3) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(24)-zlev(23))
     250                     m3af = pqmo(23,4) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(24)-zlev(23))
    247251                  ENDIF
    248252               ENDIF
     
    273277               m0ccn = pqmo(ilay,5) / 2.0
    274278               m3ccn = pqmo(ilay,6) / 2.0
    275                m3ices = 0.0d0
    276                m3cld  = m3ccn
     279               m3cld = 0.0d0
    277280               
    278281               ! Clear / Dark column method :
     
    285288               IF (CDCOLUMN == 0) THEN
    286289                  DO iq = 2, nice
    287                      m3ices = m3ices + (pqmo(ilay,ices_indx(iq)) / 2.0)
    288290                     m3cld  = m3cld + (pqmo(ilay,ices_indx(iq)) / 2.0)
    289291                  ENDDO
     
    293295               ELSEIF (CDCOLUMN == 1) THEN
    294296                  DO iq = 1, nice
    295                      m3ices = m3ices + (pqmo(ilay,ices_indx(iq)) / 2.0)
    296297                     m3cld  = m3cld + (pqmo(ilay,ices_indx(iq)) / 2.0)
    297298                  ENDDO
     
    302303                  WRITE(*,*) 'WE USE DARK COLUMN ...'
    303304                  DO iq = 1, nice
    304                      m3ices = m3ices + (pqmo(ilay,ices_indx(iq)) / 2.0)
    305305                     m3cld  = m3cld + (pqmo(ilay,ices_indx(iq)) / 2.0)
    306306                  ENDDO
     
    309309
    310310               ! For small dropplets, opacity of nucleus dominates
    311                !ssa_cld(nw) = (ssa_ccn(nw)*m3ccn + ssa_cld(nw)*m3ices) / (m3ccn + m3ices)
    312311               ssa_cld(nw) = (ssa_ccn(nw)*m3ccn + ssa_cld(nw)*m3cld) / (m3ccn + m3cld)
    313312               ssa_cld(nw) = ssa_cld(nw) * Fssa
Note: See TracChangeset for help on using the changeset viewer.