Changeset 4062 for LMDZ6/trunk/libf
- Timestamp:
- Jan 21, 2022, 6:50:11 PM (3 years ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/clesphys.h
r4059 r4062 85 85 LOGICAL :: ok_cosp,ok_mensuelCOSP,ok_journeCOSP,ok_hfCOSP 86 86 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 88 89 LOGICAL :: ok_chlorophyll 89 90 LOGICAL :: ok_strato … … 139 140 & , ok_lic_melt, ok_lic_cond, aer_type & 140 141 & , 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 & 142 144 & , ok_gwd_rando, NSW, iflag_albedo & 143 145 & , ok_chlorophyll,ok_conserv_q, adjust_tropopause & -
LMDZ6/trunk/libf/phylmd/conf_phys_m.F90
r4059 r4062 179 179 INTEGER,SAVE :: iflag_pdf_omp 180 180 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 182 183 INTEGER,SAVE :: iflag_t_glace_omp 183 184 INTEGER,SAVE :: iflag_cloudth_vert_omp … … 1504 1505 1505 1506 ! 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) 1513 1530 1514 1531 ! … … 2500 2517 iflag_vice=iflag_vice_omp 2501 2518 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 2503 2522 rei_min = rei_min_omp 2504 2523 rei_max = rei_max_omp … … 2928 2947 WRITE(lunout,*) ' iflag_vice = ',iflag_vice 2929 2948 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 2931 2952 WRITE(lunout,*) ' rei_min = ',rei_min 2932 2953 WRITE(lunout,*) ' rei_max = ',rei_max -
LMDZ6/trunk/libf/phylmd/ice_sursat_mod.F90
r4059 r4062 24 24 !--Parametres de tuning 25 25 REAL, PARAMETER :: chi=1.1, l_turb=50.0, tun_N=1.3, tun_ratqs=3.0 26 !27 ! Contrail cirrus28 LOGICAL, PARAMETER :: contrail_cirrus=.FALSE., h2o_emissions=.FALSE.29 26 ! 30 27 !--contrail cross section, typical value found in Freudenthaler et al, GRL, 22, 3501-3504, 1995 … … 257 254 INCLUDE "FCTTRE.h" 258 255 INCLUDE "fisrtilp.h" 256 INCLUDE "clesphys.h" 257 259 258 ! 260 259 ! Input … … 335 334 ! flight_h2O is in kg H2O / s / cell 336 335 ! 337 IF ( h2o_emissions) THEN336 IF (ok_plane_h2o) THEN 338 337 q = ( M_cell*q + flight_h2o(i,k)*dtime*(1.-q) ) / (M_cell + flight_h2o(i,k)*dtime*(1.-q) ) 339 338 ENDIF … … 634 633 635 634 !--add a source of cirrus from aviation contrails 636 IF ( contrail_cirrus) THEN635 IF (ok_plane_contrail) THEN 637 636 drneb_avi(i,k) = rnebss*flight_m(i,k)*contrail_cross_section/V_cell !--tendency rneb due to aviation [s-1] 638 637 drneb_avi(i,k) = MIN(drneb_avi(i,k), rnebss/dtime) !--majoration -
LMDZ6/trunk/libf/phylmd/lscp_mod.F90
r4059 r4062 14 14 prfl, psfl, rhcl, zqta, fraca, & 15 15 ztv, zpspsk, ztla, zthl, iflag_cld_th, & 16 iflag_ice_thermo, iflag_ice_sursat)16 iflag_ice_thermo, ok_ice_sursat) 17 17 18 18 !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ … … 126 126 INTEGER, INTENT(IN) :: iflag_ice_thermo! flag to activate the ice thermodynamics 127 127 ! CR: if iflag_ice_thermo=2, only convection is active 128 INTEGER, INTENT(IN) :: iflag_ice_sursat ! 0 = sursat desativee, 1 = sursat activee128 LOGICAL, INTENT(IN) :: ok_ice_sursat ! flag to determine if ice sursaturation is activated 129 129 130 130 LOGICAL, DIMENSION(klon,klev), INTENT(IN) :: ptconv ! grid points where deep convection scheme is active … … 816 816 817 817 !--ice sursaturation by Audran 818 IF (( iflag_ice_sursat.EQ.0).OR.(Tbef(i).GT.t_glace_min)) THEN818 IF ((.NOT.ok_ice_sursat).OR.(Tbef(i).GT.t_glace_min)) THEN 819 819 820 820 IF (zpdf_e1(i).LT.1.e-10) THEN -
LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90
r4059 r4062 1842 1842 CALL histwrite_phy(o_qsatl, zqsatl) 1843 1843 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 1846 1850 CALL histwrite_phy(o_Tcontr, Tcontr) 1847 1851 CALL histwrite_phy(o_qcontr, qcontr) -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r4059 r4062 1297 1297 ENDIF 1298 1298 1299 IF ( (iflag_ice_sursat.GT.0).AND.(iflag_ice_thermo.EQ.0)) THEN1300 WRITE (lunout, *) ' iflag_ice_sursat=1requires 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' 1301 1301 abort_message='see above' 1302 1302 CALL abort_physic(modname,abort_message,1) 1303 1303 ENDIF 1304 1304 1305 IF ( (iflag_ice_sursat.GT.0).AND.(nqo.NE.4)) THEN1306 WRITE (lunout, *) ' iflag_ice_sursat=1requires 4 H2O tracers ', &1305 IF (ok_ice_sursat.AND.(nqo.NE.4)) THEN 1306 WRITE (lunout, *) ' ok_ice_sursat=y requires 4 H2O tracers ', & 1307 1307 '(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 ' 1308 1320 abort_message='see above' 1309 1321 CALL abort_physic(modname,abort_message,1) … … 3559 3571 IF (ok_new_lscp) THEN 3560 3572 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 3563 3577 3564 3578 CALL lscp(phys_tstep,missing_val,paprs,pplay, & … … 3570 3584 prfl, psfl, rhcl, & 3571 3585 zqasc, fraca,ztv,zpspsk,ztla,zthl,iflag_cld_th, & 3572 iflag_ice_thermo, iflag_ice_sursat)3586 iflag_ice_thermo, ok_ice_sursat) 3573 3587 3574 3588 ELSE
Note: See TracChangeset
for help on using the changeset viewer.