Ignore:
Timestamp:
Aug 5, 2025, 2:22:14 PM (9 days ago)
Author:
aborella
Message:

Bugfix for saturation adjustment in cirrus mixing + bugfix for contrails sedimentation + new diagnostics + support for unadjusted contrails

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/contrails/libf/phylmd/physiq_mod.F90

    r5796 r5797  
    3939    USE ioipsl_getin_p_mod, ONLY : getin_p
    4040    USE indice_sol_mod
    41     USE infotrac_phy, ONLY: nqtot, nbtr, nqo, nqtke, tracers, type_trac, addPhase, ivap, iliq, isol, ibs, icf, iqvc, itke, icfc, iqtc, inic
     41    USE infotrac_phy, ONLY: nqtot, nbtr, nqo, nqtke, tracers, type_trac, addPhase, &
     42        ivap, iliq, isol, ibs, icf, iqvc, itke, icfc, iqtc, iqic, inic
    4243    USE strings_mod,  ONLY: strIdx
    4344    USE iophy
     
    341342       dqvc_adj, dqvc_sub, dqvc_con, dqvc_mix, qsatliq, qsatice, &
    342343       !-- LSCP - aviation and contrails variables
    343        cfc_seri, qtc_seri, nic_seri, d_cfc_dyn, d_qtc_dyn, d_nic_dyn, &
     344       cfc_seri, qtc_seri, qic_seri, nic_seri, d_cfc_dyn, d_qtc_dyn, d_qic_dyn, d_nic_dyn, &
    344345       d_q_avi, flight_dist, flight_fuel, &
    345346       qice_cont, contfra, qradice_cont, &
     
    24912492          cfc_seri(i,k)= 0.
    24922493          qtc_seri(i,k)= 0.
     2494          qic_seri(i,k)= 0.
    24932495          nic_seri(i,k)= 0.
    24942496          !CR: ATTENTION, on rajoute la variable glace
     
    25082510             cfc_seri(i,k) = qx(i,k,icfc)
    25092511             qtc_seri(i,k) = qx(i,k,iqtc)
     2512             qic_seri(i,k) = qx(i,k,iqic)
    25102513             nic_seri(i,k) = qx(i,k,inic)
    25112514             !--DYNAMICO can return NaNs for children tracers
    25122515             IF (ISNAN(cfc_seri(i,k))) cfc_seri(i,k) = 0.
    25132516             IF (ISNAN(qtc_seri(i,k))) qtc_seri(i,k) = 0.
     2517             IF (ISNAN(qic_seri(i,k))) qic_seri(i,k) = 0.
    25142518             IF (ISNAN(nic_seri(i,k))) nic_seri(i,k) = 0.
    25152519          ENDIF
     
    26032607       d_cfc_dyn(:,:)= (cfc_seri(:,:)-cfc_ancien(:,:))/phys_tstep
    26042608       d_qtc_dyn(:,:)= (qtc_seri(:,:)-qtc_ancien(:,:))/phys_tstep
     2609       d_qic_dyn(:,:)= (qic_seri(:,:)-qic_ancien(:,:))/phys_tstep
    26052610       d_nic_dyn(:,:)= (nic_seri(:,:)-nic_ancien(:,:))/phys_tstep
    26062611       d_tke_dyn(:,:)= (pbl_tke(:,:,is_ave)-tke_ancien(:,:))/phys_tstep
     
    26282633       d_cfc_dyn(:,:)= 0.0
    26292634       d_qtc_dyn(:,:)= 0.0
     2635       d_qic_dyn(:,:)= 0.0
    26302636       d_nic_dyn(:,:)= 0.0
    26312637       d_tke_dyn(:,:)= 0.0
     
    27552761            qvc_seri(i,k) = qvc_seri(i,k) / ( q_seri(i,k) + ql_seri(i,k) + qs_seri(i,k) )
    27562762            qtc_seri(i,k) = qtc_seri(i,k) / ( q_seri(i,k) + ql_seri(i,k) + qs_seri(i,k) )
     2763            qic_seri(i,k) = qic_seri(i,k) / ( q_seri(i,k) + ql_seri(i,k) + qs_seri(i,k) )
    27572764          ELSE
    27582765            ql_seri_lscp(i,k) = 0.
     
    27602767            qvc_seri(i,k) = 0.
    27612768            qtc_seri(i,k) = 0.
     2769            qic_seri(i,k) = 0.
    27622770          ENDIF
    27632771        ENDDO
     
    40334041        DO i = 1, klon
    40344042          qtc_seri(i,k) = qtc_seri(i,k) * q_seri(i,k)
     4043          qic_seri(i,k) = qic_seri(i,k) * q_seri(i,k)
    40354044        ENDDO
    40364045      ENDDO
     
    40634072         dqi_adj, dqi_sub, dqi_con, dqi_mix, &
    40644073         dqvc_adj, dqvc_sub, dqvc_con, dqvc_mix, qsatliq, qsatice, &
    4065          cfc_seri, qtc_seri, nic_seri, qice_cont, &
     4074         cfc_seri, qtc_seri, qic_seri, nic_seri, qice_cont, &
    40664075         flight_dist, flight_fuel, contfra, qradice_cont, &
    40674076         Tcritcont, qcritcont, potcontfraP, potcontfraNP, &
     
    58235832             d_qx(i,k,icfc) = ( cfc_seri(i,k) - qx(i,k,icfc) ) / phys_tstep
    58245833             d_qx(i,k,iqtc) = ( qtc_seri(i,k) - qx(i,k,iqtc) ) / phys_tstep
     5834             d_qx(i,k,iqic) = ( qic_seri(i,k) - qx(i,k,iqic) ) / phys_tstep
    58255835             d_qx(i,k,inic) = ( nic_seri(i,k) - qx(i,k,inic) ) / phys_tstep
    58265836          ENDIF
     
    58665876    cfc_ancien(:,:)= cfc_seri(:,:)
    58675877    qtc_ancien(:,:)= qtc_seri(:,:)
     5878    qic_ancien(:,:)= qic_seri(:,:)
    58685879    nic_ancien(:,:)= nic_seri(:,:)
    58695880    tke_ancien(:,:)= pbl_tke(:,:,is_ave)
Note: See TracChangeset for help on using the changeset viewer.