Changeset 4062


Ignore:
Timestamp:
Jan 21, 2022, 6:50:11 PM (2 years ago)
Author:
oboucher
Message:

more keys for plane effects to avoid pb on outputs

Location:
LMDZ6/trunk/libf/phylmd
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/clesphys.h

    r4059 r4062  
    8585       LOGICAL :: ok_cosp,ok_mensuelCOSP,ok_journeCOSP,ok_hfCOSP
    8686       LOGICAL :: ok_airs
    87        INTEGER :: ip_ebil_phy, iflag_rrtm, iflag_ice_thermo, iflag_ice_sursat, NSW, iflag_albedo
     87       INTEGER :: ip_ebil_phy, iflag_rrtm, iflag_ice_thermo, NSW, iflag_albedo
     88       LOGICAL :: ok_ice_sursat, ok_plane_h2o, ok_plane_contrail
    8889       LOGICAL :: ok_chlorophyll
    8990       LOGICAL :: ok_strato
     
    139140     &     , ok_lic_melt, ok_lic_cond, aer_type                         &
    140141     &     , iflag_rrtm, ok_strato,ok_hines, ok_qch4                    &
    141      &     , iflag_ice_thermo, iflag_ice_sursat                         &
     142     &     , iflag_ice_thermo, ok_ice_sursat                            &
     143     &     , ok_plane_h2o, ok_plane_contrail                            &
    142144     &     , ok_gwd_rando, NSW, iflag_albedo                            &
    143145     &     , ok_chlorophyll,ok_conserv_q, adjust_tropopause             &
  • LMDZ6/trunk/libf/phylmd/conf_phys_m.F90

    r4059 r4062  
    179179    INTEGER,SAVE :: iflag_pdf_omp
    180180    INTEGER,SAVE :: iflag_ice_thermo_omp
    181     INTEGER,SAVE :: iflag_ice_sursat_omp
     181    LOGICAL,SAVE :: ok_ice_sursat_omp
     182    LOGICAL,SAVE :: ok_plane_h2o_omp, ok_plane_contrail_omp
    182183    INTEGER,SAVE :: iflag_t_glace_omp
    183184    INTEGER,SAVE :: iflag_cloudth_vert_omp
     
    15041505
    15051506    !
    1506     !Config Key  = iflag_ice_sursat
    1507     !Config Desc =
    1508     !Config Def  = 0
    1509     !Config Help =
    1510     !
    1511     iflag_ice_sursat_omp = 0
    1512     CALL getin('iflag_ice_sursat',iflag_ice_sursat_omp)
     1507    !Config Key  = ok_ice_sursat
     1508    !Config Desc =
     1509    !Config Def  = 0
     1510    !Config Help =
     1511    !
     1512    ok_ice_sursat_omp = 0
     1513    CALL getin('ok_ice_sursat',ok_ice_sursat_omp)
     1514
     1515    !Config Key  = ok_plane_h2o
     1516    !Config Desc =
     1517    !Config Def  = 0
     1518    !Config Help =
     1519    !
     1520    ok_plane_h2o_omp = .FALSE.
     1521    CALL getin('ok_plane_h2o',ok_plane_h2o_omp)
     1522
     1523    !Config Key  = ok_plane_contrail
     1524    !Config Desc =
     1525    !Config Def  = 0
     1526    !Config Help =
     1527    !
     1528    ok_plane_contrail_omp = .FALSE.
     1529    CALL getin('ok_plane_contrail',ok_plane_contrail_omp)
    15131530
    15141531    !
     
    25002517    iflag_vice=iflag_vice_omp
    25012518    iflag_ice_thermo = iflag_ice_thermo_omp
    2502     iflag_ice_sursat = iflag_ice_sursat_omp
     2519    ok_ice_sursat = ok_ice_sursat_omp
     2520    ok_plane_h2o = ok_plane_h2o_omp
     2521    ok_plane_contrail = ok_plane_contrail_omp
    25032522    rei_min = rei_min_omp
    25042523    rei_max = rei_max_omp
     
    29282947    WRITE(lunout,*) ' iflag_vice = ',iflag_vice
    29292948    WRITE(lunout,*) ' iflag_ice_thermo = ',iflag_ice_thermo
    2930     WRITE(lunout,*) ' iflag_ice_sursat = ',iflag_ice_sursat
     2949    WRITE(lunout,*) ' ok_ice_sursat = ',ok_ice_sursat
     2950    WRITE(lunout,*) ' ok_plane_h2o = ',ok_plane_h2o
     2951    WRITE(lunout,*) ' ok_plane_contrail = ',ok_plane_contrail
    29312952    WRITE(lunout,*) ' rei_min = ',rei_min
    29322953    WRITE(lunout,*) ' rei_max = ',rei_max
  • LMDZ6/trunk/libf/phylmd/ice_sursat_mod.F90

    r4059 r4062  
    2424!--Parametres de tuning
    2525REAL, PARAMETER :: chi=1.1, l_turb=50.0, tun_N=1.3, tun_ratqs=3.0
    26 !
    27 ! Contrail cirrus
    28 LOGICAL, PARAMETER :: contrail_cirrus=.FALSE., h2o_emissions=.FALSE.
    2926!
    3027!--contrail cross section, typical value found in Freudenthaler et al, GRL, 22, 3501-3504, 1995
     
    257254  INCLUDE "FCTTRE.h"
    258255  INCLUDE "fisrtilp.h"
     256  INCLUDE "clesphys.h"
     257
    259258  !
    260259  ! Input
     
    335334     ! flight_h2O is in kg H2O / s / cell
    336335     !
    337      IF (h2o_emissions) THEN
     336     IF (ok_plane_h2o) THEN
    338337       q = ( M_cell*q + flight_h2o(i,k)*dtime*(1.-q) ) / (M_cell + flight_h2o(i,k)*dtime*(1.-q) )
    339338     ENDIF
     
    634633
    635634     !--add a source of cirrus from aviation contrails
    636      IF (contrail_cirrus) THEN
     635     IF (ok_plane_contrail) THEN
    637636       drneb_avi(i,k) = rnebss*flight_m(i,k)*contrail_cross_section/V_cell    !--tendency rneb due to aviation [s-1]
    638637       drneb_avi(i,k) = MIN(drneb_avi(i,k), rnebss/dtime)                     !--majoration
  • LMDZ6/trunk/libf/phylmd/lscp_mod.F90

    r4059 r4062  
    1414     prfl, psfl, rhcl, zqta, fraca,                     &
    1515     ztv, zpspsk, ztla, zthl, iflag_cld_th,             &
    16      iflag_ice_thermo, iflag_ice_sursat)
     16     iflag_ice_thermo, ok_ice_sursat)
    1717
    1818!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     
    126126  INTEGER,                         INTENT(IN)   :: iflag_ice_thermo! flag to activate the ice thermodynamics
    127127                                                                   ! CR: if iflag_ice_thermo=2, only convection is active   
    128   INTEGER,                         INTENT(IN)   :: iflag_ice_sursat ! 0 = sursat desativee, 1 = sursat activee
     128  LOGICAL,                         INTENT(IN)   :: ok_ice_sursat   ! flag to determine if ice sursaturation is activated
    129129
    130130  LOGICAL, DIMENSION(klon,klev),   INTENT(IN)   :: ptconv          ! grid points where deep convection scheme is active
     
    816816             
    817817                        !--ice sursaturation by Audran
    818                         IF ((iflag_ice_sursat.EQ.0).OR.(Tbef(i).GT.t_glace_min)) THEN
     818                        IF ((.NOT.ok_ice_sursat).OR.(Tbef(i).GT.t_glace_min)) THEN
    819819
    820820                          IF (zpdf_e1(i).LT.1.e-10) THEN
  • LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90

    r4059 r4062  
    18421842       CALL histwrite_phy(o_qsatl, zqsatl)
    18431843       CALL histwrite_phy(o_qsats, zqsats)
    1844        CALL histwrite_phy(o_flight_m, flight_m)
    1845        CALL histwrite_phy(o_flight_h2o, flight_h2o)
     1844       IF (ok_plane_contrail) THEN
     1845         CALL histwrite_phy(o_flight_m, flight_m)
     1846       ENDIF
     1847       IF (ok_plane_h2o) THEN
     1848         CALL histwrite_phy(o_flight_h2o, flight_h2o)
     1849       ENDIF
    18461850       CALL histwrite_phy(o_Tcontr, Tcontr)
    18471851       CALL histwrite_phy(o_qcontr, qcontr)
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r4059 r4062  
    12971297       ENDIF
    12981298
    1299        IF ((iflag_ice_sursat.GT.0).AND.(iflag_ice_thermo.EQ.0)) THEN
    1300           WRITE (lunout, *) ' iflag_ice_sursat=1 requires iflag_ice_thermo=1 as well'
     1299       IF (ok_ice_sursat.AND.(iflag_ice_thermo.EQ.0)) THEN
     1300          WRITE (lunout, *) ' ok_ice_sursat=y requires iflag_ice_thermo=1 as well'
    13011301          abort_message='see above'
    13021302          CALL abort_physic(modname,abort_message,1)
    13031303       ENDIF
    13041304
    1305        IF ((iflag_ice_sursat.GT.0).AND.(nqo.NE.4)) THEN
    1306           WRITE (lunout, *) ' iflag_ice_sursat=1 requires 4 H2O tracers ', &
     1305       IF (ok_ice_sursat.AND.(nqo.NE.4)) THEN
     1306          WRITE (lunout, *) ' ok_ice_sursat=y requires 4 H2O tracers ', &
    13071307               '(H2Ov, H2Ol, H2Oi, rnebi) but nqo=', nqo, '. Might as well stop here.'
     1308          abort_message='see above'
     1309          CALL abort_physic(modname,abort_message,1)
     1310       ENDIF
     1311
     1312       IF (ok_plane_h2o.AND..NOT.ok_ice_sursat) THEN
     1313          WRITE (lunout, *) ' ok_plane_h2o=y requires ok_ice_sursat=y '
     1314          abort_message='see above'
     1315          CALL abort_physic(modname,abort_message,1)
     1316       ENDIF
     1317
     1318       IF (ok_plane_contrail.AND..NOT.ok_ice_sursat) THEN
     1319          WRITE (lunout, *) ' ok_plane_contrail=y requires ok_ice_sursat=y '
    13081320          abort_message='see above'
    13091321          CALL abort_physic(modname,abort_message,1)
     
    35593571    IF (ok_new_lscp) THEN
    35603572
    3561     !--mise à jour de flight_m dans son module
    3562     CALL airplane(debut,pphis,pplay,paprs,t_seri)
     3573    !--mise à jour de flight_m et flight_h2o dans leur module
     3574    IF (ok_plane_h2o .OR. ok_plane_contrail) THEN
     3575      CALL airplane(debut,pphis,pplay,paprs,t_seri)
     3576    ENDIF
    35633577
    35643578    CALL lscp(phys_tstep,missing_val,paprs,pplay, &
     
    35703584         prfl, psfl, rhcl,  &
    35713585         zqasc, fraca,ztv,zpspsk,ztla,zthl,iflag_cld_th, &
    3572          iflag_ice_thermo, iflag_ice_sursat)
     3586         iflag_ice_thermo, ok_ice_sursat)
    35733587
    35743588    ELSE
Note: See TracChangeset for help on using the changeset viewer.