Ignore:
Timestamp:
Jul 25, 2017, 6:03:55 PM (7 years ago)
Author:
dcugnet
Message:

Improved method for ozone forcing: the ozone field from the forcing file is
vertically interpolated on the LMDZ pressure field that is stretched, so
that the resulting tropopause is close from the one of LMDZ.
(need to activate key adjust_tropopause=y in run.def)

The stretching is done in a limited region in each column, defined by a
trapezoidal function:

  • flat between LMDZ and file tropopauses (full stretching)
  • quasi-linear in the 2 surrounding regions (from full to null stretching)

This way, most of the ozone profile is unaffected by the stretching.

The total ozone column is not stricly conserved.

The transition regions are thick enough to ensure that the stretched
pressure profile is growing with decreasing height. Some additional margin
helps to avoid a too steep variation in the stretched region.

In case the distance separating the chemical tropopause of the forcing
fields (built from monthly means) from the LMDZ dynamical tropopause
(extremely variable, both in space and time) is too large, it is under-
evaluated to avoid injecting ozone at low troposphere levels (filaments
of stratospheric air entering the troposphere are not accurately enough
detected to allow that to be done reliably).

In the dynamical tropopause detection routine, the PV and the potential
temperature are moderately smoothed to avoid the algorithm to be fooled
by local variations.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/physiq_mod.F90

    r2952 r2968  
    195195       beta_prec,  &
    196196       rneb,  &
    197        zxsnow,snowhgt,qsnow,to_ice,sissnow,runoff,albsol3_lic, &
    198        pr_tropopause
     197       zxsnow,snowhgt,qsnow,to_ice,sissnow,runoff,albsol3_lic
    199198       !
    200199    USE phys_state_var_mod ! Variables sauvegardees de la physique
     
    20152014          IF(SIZE(time_climoz)==360.AND..NOT.ok_daily_climoz) ro3i=ro3i*360./year_len
    20162015          IF(adjust_tropopause) THEN
    2017              CALL dyn_tropopause(t_seri, ztsol, paprs, pplay, presnivs, rot, &
    2018                   pr_tropopause)
    20192016             CALL regr_pr_time_av(ncid_climoz, vars_climoz(1:read_climoz),   &
    20202017                      ro3i,  press_edg_climoz,  paprs,   wo, time_climoz,    &
    2021                            latitude_deg,  press_cen_climoz,  pr_tropopause)
     2018                      longitude_deg,   latitude_deg,    press_cen_climoz,    &
     2019                      dyn_tropopause(t_seri, ztsol, paprs, pplay, rot))
    20222020          ELSE
    20232021             CALL regr_pr_time_av(ncid_climoz, vars_climoz(1:read_climoz),   &
Note: See TracChangeset for help on using the changeset viewer.