Ignore:
Timestamp:
Jul 28, 2025, 6:44:28 PM (11 days ago)
Author:
aborella
Message:

Major modifs to treatment of contrails (from 2 classes to 2 moments) + diagnostics. Increased numerical efficiency

File:
1 edited

Legend:

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

    r5779 r5790  
    685685      REAL, SAVE, ALLOCATABLE :: d_q_avi(:,:)
    686686      !$OMP THREADPRIVATE(d_q_avi)
    687       REAL, SAVE, ALLOCATABLE :: cfl_seri(:,:), d_cfl_dyn(:,:)
    688       !$OMP THREADPRIVATE(cfl_seri, d_cfl_dyn)
    689687      REAL, SAVE, ALLOCATABLE :: cfc_seri(:,:), d_cfc_dyn(:,:)
    690688      !$OMP THREADPRIVATE(cfc_seri, d_cfc_dyn)
    691       REAL, SAVE, ALLOCATABLE :: qtl_seri(:,:), d_qtl_dyn(:,:)
    692       !$OMP THREADPRIVATE(qtl_seri, d_qtl_dyn)
    693689      REAL, SAVE, ALLOCATABLE :: qtc_seri(:,:), d_qtc_dyn(:,:)
    694690      !$OMP THREADPRIVATE(qtc_seri, d_qtc_dyn)
    695       REAL, SAVE, ALLOCATABLE :: flight_dist(:,:), flight_h2o(:,:)
    696       !$OMP THREADPRIVATE(flight_dist, flight_h2o)
     691      REAL, SAVE, ALLOCATABLE :: nic_seri(:,:), d_nic_dyn(:,:)
     692      !$OMP THREADPRIVATE(nic_seri, d_nic_dyn)
     693      REAL, SAVE, ALLOCATABLE :: flight_dist(:,:), flight_fuel(:,:)
     694      !$OMP THREADPRIVATE(flight_dist, flight_fuel)
    697695      REAL, SAVE, ALLOCATABLE :: Tcritcont(:,:), qcritcont(:,:)
    698696      !$OMP THREADPRIVATE(Tcritcont, qcritcont)
    699697      REAL, SAVE, ALLOCATABLE :: potcontfraP(:,:), potcontfraNP(:,:)
    700698      !$OMP THREADPRIVATE(potcontfraP, potcontfraNP)
    701       REAL, SAVE, ALLOCATABLE :: qice_lincont(:,:), qice_circont(:,:)
    702       !$OMP THREADPRIVATE(qice_lincont, qice_circont)
    703       REAL, SAVE, ALLOCATABLE :: qradice_lincont(:,:), qradice_circont(:,:)
    704       !$OMP THREADPRIVATE(qradice_lincont, qradice_circont)
    705       REAL, SAVE, ALLOCATABLE :: dcfl_cir(:,:), dqtl_cir(:,:)
    706       !$OMP THREADPRIVATE(dcfl_cir, dqtl_cir)
    707       REAL, SAVE, ALLOCATABLE :: dcfl_ini(:,:), dqil_ini(:,:), dqtl_ini(:,:)
    708       !$OMP THREADPRIVATE(dcfl_ini, dqil_ini, dqtl_ini)
    709       REAL, SAVE, ALLOCATABLE :: dcfl_sub(:,:), dqil_sub(:,:), dqtl_sub(:,:)
    710       !$OMP THREADPRIVATE(dcfl_sub, dqil_sub, dqtl_sub)
    711       REAL, SAVE, ALLOCATABLE :: dcfl_mix(:,:), dqil_mix(:,:), dqtl_mix(:,:)
    712       !$OMP THREADPRIVATE(dcfl_mix, dqil_mix, dqtl_mix)
    713       REAL, SAVE, ALLOCATABLE :: dcfl_sed(:,:), dqil_sed(:,:), dqtl_sed(:,:)
    714       !$OMP THREADPRIVATE(dcfl_sed, dqil_sed, dqtl_sed)
    715       REAL, SAVE, ALLOCATABLE :: dcfc_sed(:,:), dqic_sed(:,:), dqtc_sed(:,:)
    716       !$OMP THREADPRIVATE(dcfc_sed, dqic_sed, dqtc_sed)
    717       REAL, SAVE, ALLOCATABLE :: dcfl_auto(:,:), dqil_auto(:,:), dqtl_auto(:,:)
    718       !$OMP THREADPRIVATE(dcfl_auto, dqil_auto, dqtl_auto)
    719       REAL, SAVE, ALLOCATABLE :: dcfc_auto(:,:), dqic_auto(:,:), dqtc_auto(:,:)
    720       !$OMP THREADPRIVATE(dcfc_auto, dqic_auto, dqtc_auto)
    721       REAL, SAVE, ALLOCATABLE :: dcfc_sub(:,:), dqic_sub(:,:), dqtc_sub(:,:)
    722       !$OMP THREADPRIVATE(dcfc_sub, dqic_sub, dqtc_sub)
    723       REAL, SAVE, ALLOCATABLE :: dcfc_mix(:,:), dqic_mix(:,:), dqtc_mix(:,:)
    724       !$OMP THREADPRIVATE(dcfc_mix, dqic_mix, dqtc_mix)
     699      REAL, SAVE, ALLOCATABLE :: AEI_contrails(:,:), AEI_surv_contrails(:,:)
     700      !$OMP THREADPRIVATE(AEI_contrails, AEI_surv_contrails)
     701      REAL, SAVE, ALLOCATABLE :: fsurv_contrails(:,:), section_contrails(:,:)
     702      !$OMP THREADPRIVATE(fsurv_contrails, section_contrails)
     703      REAL, SAVE, ALLOCATABLE :: qice_cont(:,:)
     704      !$OMP THREADPRIVATE(qice_cont)
     705      REAL, SAVE, ALLOCATABLE :: qradice_cont(:,:)
     706      !$OMP THREADPRIVATE(qradice_cont)
     707      REAL, SAVE, ALLOCATABLE :: dcfc_ini(:,:), dqic_ini(:,:), dqtc_ini(:,:), dnic_ini(:,:)
     708      !$OMP THREADPRIVATE(dcfc_ini, dqic_ini, dqtc_ini, dnic_ini)
     709      REAL, SAVE, ALLOCATABLE :: dcfc_sed(:,:), dqic_sed(:,:), dqtc_sed(:,:), dnic_sed(:,:)
     710      !$OMP THREADPRIVATE(dcfc_sed, dqic_sed, dqtc_sed, dnic_sed)
     711      REAL, SAVE, ALLOCATABLE :: dcfc_auto(:,:), dqic_auto(:,:), dqtc_auto(:,:), dnic_auto(:,:)
     712      !$OMP THREADPRIVATE(dcfc_auto, dqic_auto, dqtc_auto, dnic_auto)
     713      REAL, SAVE, ALLOCATABLE :: dcfc_sub(:,:), dqic_sub(:,:), dqtc_sub(:,:), dnic_sub(:,:)
     714      !$OMP THREADPRIVATE(dcfc_sub, dqic_sub, dqtc_sub, dnic_sub)
     715      REAL, SAVE, ALLOCATABLE :: dcfc_mix(:,:), dqic_mix(:,:), dqtc_mix(:,:), dnic_mix(:,:)
     716      !$OMP THREADPRIVATE(dcfc_mix, dqic_mix, dqtc_mix, dnic_mix)
     717      REAL, SAVE, ALLOCATABLE :: dnic_agg(:,:)
     718      !$OMP THREADPRIVATE(dnic_agg)
    725719      REAL, SAVE, ALLOCATABLE :: cldfra_nocont(:,:), cldtau_nocont(:,:), cldemi_nocont(:,:)
    726720      !$OMP THREADPRIVATE(cldfra_nocont, cldtau_nocont, cldemi_nocont)
     
    12991293!-- LSCP - aviation and contrails variables
    13001294      ALLOCATE(d_q_avi(klon,klev))
    1301       ALLOCATE(cfl_seri(klon,klev), d_cfl_dyn(klon,klev))
    13021295      ALLOCATE(cfc_seri(klon,klev), d_cfc_dyn(klon,klev))
    1303       ALLOCATE(qtl_seri(klon,klev), d_qtl_dyn(klon,klev))
    13041296      ALLOCATE(qtc_seri(klon,klev), d_qtc_dyn(klon,klev))
    1305       ALLOCATE(flight_dist(klon,klev), flight_h2o(klon,klev))
     1297      ALLOCATE(nic_seri(klon,klev), d_nic_dyn(klon,klev))
     1298      ALLOCATE(flight_dist(klon,klev), flight_fuel(klon,klev))
    13061299      ALLOCATE(Tcritcont(klon,klev), qcritcont(klon,klev))
    13071300      ALLOCATE(potcontfraP(klon,klev), potcontfraNP(klon,klev))
    1308       ALLOCATE(qice_lincont(klon,klev), qice_circont(klon,klev))
    1309       ALLOCATE(qradice_lincont(klon,klev), qradice_circont(klon,klev))
    1310       ALLOCATE(dcfl_cir(klon,klev), dqtl_cir(klon,klev))
    1311       ALLOCATE(dcfl_ini(klon,klev), dqil_ini(klon,klev), dqtl_ini(klon,klev))
    1312       ALLOCATE(dcfl_sub(klon,klev), dqil_sub(klon,klev), dqtl_sub(klon,klev))
    1313       ALLOCATE(dcfl_mix(klon,klev), dqil_mix(klon,klev), dqtl_mix(klon,klev))
    1314       ALLOCATE(dcfl_sed(klon,klev), dqil_sed(klon,klev), dqtl_sed(klon,klev))
    1315       ALLOCATE(dcfl_auto(klon,klev), dqil_auto(klon,klev), dqtl_auto(klon,klev))
    1316       ALLOCATE(dcfc_sub(klon,klev), dqic_sub(klon,klev), dqtc_sub(klon,klev))
    1317       ALLOCATE(dcfc_mix(klon,klev), dqic_mix(klon,klev), dqtc_mix(klon,klev))
    1318       ALLOCATE(dcfc_sed(klon,klev), dqic_sed(klon,klev), dqtc_sed(klon,klev))
    1319       ALLOCATE(dcfc_auto(klon,klev), dqic_auto(klon,klev), dqtc_auto(klon,klev))
     1301      ALLOCATE(AEI_contrails(klon,klev), AEI_surv_contrails(klon,klev))
     1302      ALLOCATE(fsurv_contrails(klon,klev), section_contrails(klon,klev))
     1303      ALLOCATE(qice_cont(klon,klev))
     1304      ALLOCATE(qradice_cont(klon,klev))
     1305      ALLOCATE(dcfc_ini(klon,klev), dqic_ini(klon,klev), dqtc_ini(klon,klev), dnic_ini(klon,klev))
     1306      ALLOCATE(dcfc_sub(klon,klev), dqic_sub(klon,klev), dqtc_sub(klon,klev), dnic_sub(klon,klev))
     1307      ALLOCATE(dcfc_mix(klon,klev), dqic_mix(klon,klev), dqtc_mix(klon,klev), dnic_mix(klon,klev))
     1308      ALLOCATE(dnic_agg(klon,klev))
     1309      ALLOCATE(dcfc_sed(klon,klev), dqic_sed(klon,klev), dqtc_sed(klon,klev), dnic_sed(klon,klev))
     1310      ALLOCATE(dcfc_auto(klon,klev), dqic_auto(klon,klev), dqtc_auto(klon,klev), dnic_auto(klon,klev))
    13201311      ALLOCATE(cldfra_nocont(klon,klev), cldtau_nocont(klon,klev), cldemi_nocont(klon,klev))
    13211312      ALLOCATE(cldh_nocont(klon), contcov(klon), conttau(klon,klev), contemi(klon,klev))
     
    17411732
    17421733!-- LSCP - aviation and contrails variables
    1743       DEALLOCATE(cfl_seri, d_cfl_dyn, cfc_seri, d_cfc_dyn)
    1744       DEALLOCATE(qtl_seri, d_qtl_dyn, qtc_seri, d_qtc_dyn)
    1745       DEALLOCATE(d_q_avi, flight_dist, flight_h2o)
     1734      DEALLOCATE(cfc_seri, d_cfc_dyn, qtc_seri, d_qtc_dyn, nic_seri, d_nic_dyn)
     1735      DEALLOCATE(d_q_avi, flight_dist, flight_fuel)
    17461736      DEALLOCATE(Tcritcont, qcritcont, potcontfraP, potcontfraNP)
    1747       DEALLOCATE(qice_lincont, qice_circont, qradice_lincont, qradice_circont)
    1748       DEALLOCATE(dcfl_cir, dqtl_cir, dcfl_ini, dqil_ini)
    1749       DEALLOCATE(dqtl_ini, dcfl_sub, dqil_sub, dqtl_sub, dcfl_mix, dqil_mix, dqtl_mix)
    1750       DEALLOCATE(dcfc_sub, dqic_sub, dqtc_sub, dcfc_mix, dqic_mix, dqtc_mix)
    1751       DEALLOCATE(dcfl_sed, dqil_sed, dqtl_sed, dcfc_sed, dqic_sed, dqtc_sed)
    1752       DEALLOCATE(dcfl_auto, dqil_auto, dqtl_auto, dcfc_auto, dqic_auto, dqtc_auto)
     1737      DEALLOCATE(AEI_contrails, AEI_surv_contrails, fsurv_contrails, section_contrails)
     1738      DEALLOCATE(qice_cont, qradice_cont)
     1739      DEALLOCATE(dcfc_ini, dqic_ini, dqtc_ini, dnic_ini)
     1740      DEALLOCATE(dcfc_sub, dqic_sub, dqtc_sub, dnic_sub)
     1741      DEALLOCATE(dcfc_mix, dqic_mix, dqtc_mix, dnic_mix)
     1742      DEALLOCATE(dnic_agg)
     1743      DEALLOCATE(dcfc_sed, dqic_sed, dqtc_sed, dnic_sed)
     1744      DEALLOCATE(dcfc_auto, dqic_auto, dqtc_auto, dnic_auto)
    17531745      DEALLOCATE(cldfra_nocont, cldtau_nocont, cldemi_nocont, conttau, contemi)
    17541746      DEALLOCATE(cldh_nocont, contcov, fiwp_nocont, fiwc_nocont, ref_ice_nocont)
Note: See TracChangeset for help on using the changeset viewer.