Ignore:
Timestamp:
Jun 27, 2025, 7:30:06 PM (5 weeks ago)
Author:
aborella
Message:

Correction to rare floating point errors + added support for the sedimentation of contrails

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/contrails/libf/phylmd/lmdz_lscp_main.f90

    r5717 r5728  
    137137USE phys_local_var_mod, ONLY : dcfl_cir, dqtl_cir, dcfl_mix, dqil_mix, dqtl_mix
    138138USE phys_local_var_mod, ONLY : dcfc_sub, dqic_sub, dqtc_sub, dcfc_mix, dqic_mix, dqtc_mix
     139USE phys_local_var_mod, ONLY : dcfl_sed, dqil_sed, dqtl_sed, dcfc_sed, dqic_sed, dqtc_sed
    139140USE geometry_mod, ONLY: longitude_deg, latitude_deg
    140141
     
    464465shear(:)        = 0.
    465466flsed(:)        = 0.
     467flsed_lincont(:)= 0.
     468flsed_circont(:)= 0.
    466469pt_pron_clds(:) = .FALSE.
    467470
     
    570573      CALL poprecip_precld(klon, dtime, iftop, paprs(:,k), paprs(:,k+1), zp, &
    571574                        zt, ztupnew, zq, zmqc, znebprecipclr, znebprecipcld, &
    572                         zqvapclr, zqupnew, flsed, &
     575                        zqvapclr, zqupnew, flsed, flsed_lincont, flsed_circont, &
    573576                        cldfra_in, qvc_in, qliq_in, qice_in, &
    574577                        zrfl, zrflclr, zrflcld, &
     
    581584
    582585      CALL histprecip_precld(klon, dtime, iftop, paprs(:,k), paprs(:,k+1), zp, &
    583                         zt, ztupnew, zq, zmqc, zneb, znebprecip, znebprecipclr, flsed, &
     586                        zt, ztupnew, zq, zmqc, zneb, znebprecip, znebprecipclr, &
     587                        flsed, flsed_lincont, flsed_circont, &
    584588                        zrfl, zrflclr, zrflcld, &
    585589                        zifl, ziflclr, ziflcld, &
     
    939943                        dcfl_cir(:,k), dqtl_cir(:,k), &
    940944                        dcfl_mix(:,k), dqil_mix(:,k), dqtl_mix(:,k), &
     945                        dcfl_sed(:,k), dqil_sed(:,k), dqtl_sed(:,k), &
     946                        dcfc_sed(:,k), dqic_sed(:,k), dqtc_sed(:,k), &
    941947                        dcfc_sub(:,k), dqic_sub(:,k), dqtc_sub(:,k), &
    942948                        dcfc_mix(:,k), dqic_mix(:,k), dqtc_mix(:,k))
     
    10991105
    11001106                        IF ( ok_ice_sedim ) THEN
    1101                           qice_sedim = flsed(i) / ( paprs(i,k) - paprs(i,k+1) ) * RG * dtime
     1107                          qice_sedim = (flsed(i) + flsed_lincont(i) + flsed_circont(i)) &
     1108                              / ( paprs(i,k) - paprs(i,k+1) ) * RG * dtime
    11021109                          ! Add the ice that was sedimented, as it is not included in zqn
    11031110                          qlibef(i) = qlibef(i) + qice_sedim
     
    11791186
    11801187                IF ( ok_ice_sedim ) THEN
    1181                   qice_sedim = flsed(i) / ( paprs(i,k) - paprs(i,k+1) ) * RG * dtime
     1188                  qice_sedim = (flsed(i) + flsed_lincont(i) + flsed_circont(i)) &
     1189                      / ( paprs(i,k) - paprs(i,k+1) ) * RG * dtime
    11821190                  ! Remove the ice that was sedimented. As it is not included in zqn,
    11831191                  ! we only remove it from the total water
     
    12481256                            ctot_vol(:,k), ptconv(:,k), &
    12491257                            zt, zq, zoliql, zoliqi, zfice, &
    1250                             rneb(:,k), flsed, znebprecipclr, znebprecipcld, &
     1258                            rneb(:,k), znebprecipclr, znebprecipcld, &
    12511259                            zrfl, zrflclr, zrflcld, &
    12521260                            zifl, ziflclr, ziflcld, &
     
    12651273      CALL histprecip_postcld(klon, dtime, iftop, paprs(:,k), paprs(:,k+1), zp, &
    12661274                            ctot_vol(:,k), ptconv(:,k), pt_pron_clds, zdqsdT_raw, &
    1267                             zt, zq, zoliq, zoliql, zoliqi, zcond, zfice, zmqc, flsed, &
     1275                            zt, zq, zoliq, zoliql, zoliqi, zcond, zfice, zmqc, &
    12681276                            rneb(:,k), znebprecipclr, znebprecipcld, &
    12691277                            zneb, tot_zneb, zrho_up, zvelo_up, &
     
    14291437        !--the sink of condensed water from precipitation
    14301438        IF ( ptconv(i,k) ) THEN
    1431           IF ( zoliq(i) .GT. 0. ) THEN
     1439          IF ( zcond(i) .GT. 0. ) THEN
    14321440            qvcon_old(i,k) = qvcon(i,k)
    14331441            qccon_old(i,k) = qccon(i,k) * zoliq(i) / zcond(i)
     
    15721580  IF ( ok_ice_sedim ) THEN
    15731581    DO i = 1, klon
    1574       snow(i) = snow(i) + flsed(i)
     1582      snow(i) = snow(i) + flsed(i) + flsed_lincont(i) + flsed_circont(i)
    15751583    ENDDO
    15761584  ENDIF
Note: See TracChangeset for help on using the changeset viewer.