Changeset 5813 for LMDZ6


Ignore:
Timestamp:
Sep 17, 2025, 10:23:08 AM (2 months ago)
Author:
musat
Message:

Ajout iflag_tropo pour choisir le calcul de la tropopause
pour l'ozone:
iflag_tropo=0 : tropopause "dynamique"=> valeur par defaut pour

retrocompatibilite

iflag_tropo=1 : tropopause "lapse-rate" comme pour les aerosols

stratospheriques ==> valeur recommandee

Ionela Musat

Location:
LMDZ6/trunk/libf
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/clesphys_mod_h.f90

    r5776 r5813  
    5151          , iflag_thermals, nsplit_thermals              &
    5252          , iflag_physiq, ok_3Deffect, ok_water_mass_fixer             &
    53           , ok_mass_dtcon, ok_mass_dqcon, ok_mass_duvcon
     53          , ok_mass_dtcon, ok_mass_dqcon, ok_mass_duvcon, iflag_tropo
    5454
    5555
     
    157157  LOGICAL :: ok_mass_dtcon, ok_mass_dqcon, ok_mass_duvcon
    158158
     159  ! flag pour le choix du calcul de tropopause pour l'ozone
     160  INTEGER :: iflag_tropo
    159161
    160162
     
    206208  !$OMP      , iflag_thermals, nsplit_thermals              &
    207209  !$OMP      , iflag_physiq, ok_3Deffect, ok_water_mass_fixer             &
    208   !$OMP      , ok_mass_dtcon, ok_mass_dqcon, ok_mass_duvcon )
     210  !$OMP      , ok_mass_dtcon, ok_mass_dqcon, ok_mass_duvcon, iflag_tropo )
    209211
    210212END MODULE clesphys_mod_h
  • LMDZ6/trunk/libf/phylmd/phys_local_var_mod.F90

    r5776 r5813  
    669669#endif
    670670
    671       REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: p_tropopause, z_tropopause, t_tropopause
    672 !$OMP THREADPRIVATE(p_tropopause, z_tropopause, t_tropopause)
     671      REAL, ALLOCATABLE, SAVE, DIMENSION(:) :: dyntropo, p_tropopause, z_tropopause, t_tropopause
     672!$OMP THREADPRIVATE(dyntropo, p_tropopause, z_tropopause, t_tropopause)
    673673
    674674      INTEGER,ALLOCATABLE,SAVE,DIMENSION(:,:) :: zn2mout
     
    12601260#endif
    12611261
     1262      ALLOCATE (dyntropo(klon))
    12621263      ALLOCATE (p_tropopause(klon))
    12631264      ALLOCATE (z_tropopause(klon))
     
    16891690#endif
    16901691
     1692      DEALLOCATE (dyntropo)
    16911693      DEALLOCATE (p_tropopause)
    16921694      DEALLOCATE (z_tropopause)
  • LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90

    r5807 r5813  
    18251825
    18261826!--tropopause pressure
     1827  TYPE(ctrl_out), SAVE :: o_dyntropo = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
     1828    'dyntropo', 'Dynamical Tropopause pressure', 'Pa', (/ ('', i=1, 10) /))
    18271829  TYPE(ctrl_out), SAVE :: o_p_tropopause = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
    18281830    'p_tropopause', 'Tropopause pressure', 'Pa', (/ ('', i=1, 10) /))
  • LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90

    r5807 r5813  
    231231! Tropopause
    232232         o_alt_tropo, &
    233          o_p_tropopause, o_z_tropopause, o_t_tropopause,  &
     233         o_dyntropo, o_p_tropopause, o_z_tropopause, o_t_tropopause,  &
    234234         o_col_O3_strato, o_col_O3_tropo,                 &
    235235!-- LSCP - condensation and ice supersaturation variables
     
    447447#endif
    448448         ep, epmax_diag, &  ! epmax_cape
    449          p_tropopause, t_tropopause, z_tropopause, &
     449         dyntropo, p_tropopause, t_tropopause, z_tropopause, &
    450450         zxfluxt,zxfluxq, &
    451451! offline
     
    20802080       ENDIF
    20812081
     2082       CALL histwrite_phy(o_dyntropo, dyntropo)
    20822083       CALL histwrite_phy(o_p_tropopause, p_tropopause)
    20832084       CALL histwrite_phy(o_t_tropopause, t_tropopause)
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r5812 r5813  
    153153       ! [Variables internes non sauvegardees de la physique]
    154154       ! Variables locales pour effectuer les appels en serie
     155       p_tropopause, dyntropo, &
    155156       t_seri,q_seri,ql_seri,qs_seri,qbs_seri, &
    156157       u_seri,v_seri,cf_seri,rvc_seri,tr_seri, &
     
    26792680          IF(SIZE(time_climoz)==360.AND..NOT.ok_daily_climoz) ro3i=ro3i*360./year_len
    26802681          IF(adjust_tropopause) THEN
     2682             CALL stratosphere_mask(missing_val, pphis, t_seri, pplay, latitude_deg)
     2683             IF(iflag_tropo.EQ.0) THEN
     2684               dyntropo=dyn_tropopause(t_seri, ztsol, paprs, pplay, rot)
     2685             ELSEIF(iflag_tropo.EQ.1) THEN
     2686               dyntropo=p_tropopause
     2687             ENDIF
    26812688             CALL regr_pr_time_av(ncid_climoz, vars_climoz(1:read_climoz),   &
    26822689                      ro3i, 'C', press_cen_climoz, pplay, wo, paprs(:,1),    &
    26832690                      time_climoz ,  longitude_deg,   latitude_deg,          &
    2684                       dyn_tropopause(t_seri, ztsol, paprs, pplay, rot))
     2691                      dyntropo)
    26852692          ELSE
    26862693             CALL regr_pr_time_av(ncid_climoz,  vars_climoz(1:read_climoz),  &
  • LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90

    r5812 r5813  
    192192       ! [Variables internes non sauvegardees de la physique]
    193193       ! Variables locales pour effectuer les appels en serie
     194       p_tropopause, dyntropo, &
    194195       t_seri,q_seri,ql_seri,qs_seri,qbs_seri, &
    195196       u_seri,v_seri,cf_seri,rvc_seri,tr_seri, &
     
    29922993          IF(SIZE(time_climoz)==360.AND..NOT.ok_daily_climoz) ro3i=ro3i*360./year_len
    29932994          IF(adjust_tropopause) THEN
     2995             CALL stratosphere_mask(missing_val, pphis, t_seri, pplay, latitude_deg)
     2996             IF(iflag_tropo.EQ.0) THEN
     2997               dyntropo=dyn_tropopause(t_seri, ztsol, paprs, pplay, rot)
     2998             ELSEIF(iflag_tropo.EQ.1) THEN
     2999               dyntropo=p_tropopause
     3000             ENDIF
    29943001             CALL regr_pr_time_av(ncid_climoz, vars_climoz(1:read_climoz),   &
    29953002                      ro3i, 'C', press_cen_climoz, pplay, wo, paprs(:,1),    &
    29963003                      time_climoz ,  longitude_deg,   latitude_deg,          &
    2997                       dyn_tropopause(t_seri, ztsol, paprs, pplay, rot))
     3004                      dyntropo)
    29983005          ELSE
    29993006             CALL regr_pr_time_av(ncid_climoz,  vars_climoz(1:read_climoz),  &
Note: See TracChangeset for help on using the changeset viewer.