Ignore:
Timestamp:
Apr 13, 2025, 7:10:19 PM (3 months ago)
Author:
aborella
Message:
  • changed treatment of prognostic variables for prognostic clouds
  • adapted sedimentation and autoconversion for prognostic cirrus clouds
  • cloud mixing, ice sedimentation and ISSR diagnosis are now consistent with the water vapor PDF
  • simplified assumptions for ice crystals deposition / sublimation
  • first version of the coupling between prognostic cirrus clouds and deep convection
  • added persistent contrail cirrus clouds in radiative diagnostics
Location:
LMDZ6/branches/contrails/libf/phylmd/dyn1d
Files:
2 edited

Legend:

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

    r5601 r5609  
    1010      USE ioipsl, only: ju2ymds, ymds2ju, ioconf_calendar,getin
    1111   USE phys_state_var_mod, ONLY : phys_state_var_init, phys_state_var_end, &
    12        clwcon, detr_therm, &
     12       cwcon, clwcon, detr_therm, &
    1313       qsol, fevap, z0m, z0h, agesno, &
    1414       du_gwd_rando, du_gwd_front, entr_therm, f0, fm_therm, &
     
    2323       zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl, &
    2424       ql_ancien, qs_ancien, qbs_ancien, &
    25        cf_ancien, qvc_ancien, cfa_ancien, qta_ancien, &
     25       cf_ancien, qvc_ancien, cfa_ancien, pcf_ancien, qva_ancien, qia_ancien, &
    2626       prlw_ancien, prsw_ancien, prbsw_ancien, prw_ancien, &
    2727       u10m,v10m,ale_wake,ale_bl_stat
     
    874874          cf_ancien = 0.
    875875          qvc_ancien = 0.
     876          cwcon = 0.
    876877        ENDIF
    877878        IF ( ok_plane_contrail ) THEN
    878879          cfa_ancien = 0.
    879           qta_ancien = 0.
     880          pcf_ancien = 0.
     881          qva_ancien = 0.
     882          qia_ancien = 0.
    880883        ENDIF
    881884!jyg<
  • LMDZ6/branches/contrails/libf/phylmd/dyn1d/scm.f90

    r5601 r5609  
    66   USE ioipsl, only: ju2ymds, ymds2ju, ioconf_calendar,getin
    77   USE phys_state_var_mod, ONLY : phys_state_var_init, phys_state_var_end, &
    8        clwcon, detr_therm, &
     8       cwcon, clwcon, detr_therm, &
    99       qsol, fevap, z0m, z0h, agesno, &
    1010       du_gwd_rando, du_gwd_front, entr_therm, f0, fm_therm, &
     
    1919       zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl, &
    2020       ql_ancien, qs_ancien, qbs_ancien, &
    21        cf_ancien, qvc_ancien, cfa_ancien, qta_ancien, &
     21       cf_ancien, qvc_ancien, cfa_ancien, pcf_ancien, qva_ancien, qia_ancien, &
    2222       prlw_ancien, prsw_ancien, prbsw_ancien, prw_ancien, &
    2323       u10m,v10m,ale_wake,ale_bl_stat, ratqs_inter_
     
    616616          cf_ancien = 0.
    617617          qvc_ancien = 0.
     618          cwcon = 0.
    618619        ENDIF
    619620        IF ( ok_plane_contrail ) THEN
    620621          cfa_ancien = 0.
    621           qta_ancien = 0.
     622          pcf_ancien = 0.
     623          qva_ancien = 0.
     624          qia_ancien = 0.
    622625        ENDIF
    623626        rain_fall=0.
     
    820823      ENDIF
    821824     
     825      ! calculation of potential temperature for the advection
     826      teta=temp*(pzero/play)**rkappa
     827
    822828      ! vertical tendencies computed as d X / d t = -W  d X / d z
    823829
     
    829835        d_v_vert_adv(l)=-w_adv(l)*(v(l+1)-v(l-1))/(z_adv(l+1)-z_adv(l-1))
    830836        ! d theta / dt = -W d theta / d z, transformed into d temp / d t dividing by (pzero/play(l))**rkappa
    831         d_t_vert_adv(l)=-w_adv(l)*(temp(l+1)-temp(l-1))/(z_adv(l+1)-z_adv(l-1))
     837        d_t_vert_adv(l)=-w_adv(l)*(teta(l+1)-teta(l-1))/(z_adv(l+1)-z_adv(l-1)) / (pzero/play(l))**rkappa
    832838        d_q_vert_adv(l,:)=-w_adv(l)*(q(l+1,:)-q(l-1,:))/(z_adv(l+1)-z_adv(l-1))
    833839      enddo
     
    842848          d_u_vert_adv(l)=-w_adv(l)*(u(l)-u(l-1))/(z_adv(l)-z_adv(l-1))
    843849          d_v_vert_adv(l)=-w_adv(l)*(v(l)-v(l-1))/(z_adv(l)-z_adv(l-1))
    844           d_t_vert_adv(l)=-w_adv(l)*(temp(l)-temp(l-1))/(z_adv(l)-z_adv(l-1))
     850          ! d theta / dt = -W d theta / d z, transformed into d temp / d t dividing by (pzero/play(l))**rkappa
     851          d_t_vert_adv(l)=-w_adv(l)*(teta(l)-teta(l-1))/(z_adv(l)-z_adv(l-1)) / (pzero/play(l))**rkappa
    845852          d_q_vert_adv(l,:)=-w_adv(l)*(q(l,:)-q(l-1,:))/(z_adv(l)-z_adv(l-1))
    846853        ELSE
    847854          d_u_vert_adv(l)=-w_adv(l)*(u(l+1)-u(l))/(z_adv(l+1)-z_adv(l))
    848855          d_v_vert_adv(l)=-w_adv(l)*(v(l+1)-v(l))/(z_adv(l+1)-z_adv(l))
    849           d_t_vert_adv(l)=-w_adv(l)*(temp(l+1)-temp(l))/(z_adv(l+1)-z_adv(l))
     856          ! d theta / dt = -W d theta / d z, transformed into d temp / d t dividing by (pzero/play(l))**rkappa
     857          d_t_vert_adv(l)=-w_adv(l)*(teta(l+1)-teta(l))/(z_adv(l+1)-z_adv(l)) / (pzero/play(l))**rkappa
    850858          d_q_vert_adv(l,:)=-w_adv(l)*(q(l+1,:)-q(l,:))/(z_adv(l+1)-z_adv(l))
    851859        ENDIF
Note: See TracChangeset for help on using the changeset viewer.