Changeset 5224 for LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_lscp_ini.F90
- Timestamp:
- Sep 24, 2024, 10:47:17 AM (7 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_lscp_ini.F90
r5117 r5224 6 6 !-------------------- 7 7 8 REAL RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, R G, RV, RPI9 !$OMP THREADPRIVATE(RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, R G, RV, RPI)8 REAL RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RV, RG, RPI, EPS_W 9 !$OMP THREADPRIVATE(RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RV, RG, RPI, EPS_W) 10 10 11 11 REAL, SAVE, PROTECTED :: seuil_neb=0.001 ! cloud fraction threshold: a cloud can precipitate when exceeded … … 40 40 !$OMP THREADPRIVATE(ztfondue) 41 41 42 REAL, SAVE, PROTECTED :: temp_nowater=23 3.15 ! temperature below which liquid water no longer exists42 REAL, SAVE, PROTECTED :: temp_nowater=235.15 ! temperature below which liquid water no longer exists 43 43 !$OMP THREADPRIVATE(temp_nowater) 44 44 … … 140 140 !$OMP THREADPRIVATE(dist_liq) 141 141 142 REAL, SAVE, PROTECTED 142 REAL, SAVE, PROTECTED :: tresh_cl=0.0 ! cloud fraction threshold for cloud top search 143 143 !$OMP THREADPRIVATE(tresh_cl) 144 145 !--Parameters for condensation and ice supersaturation 146 LOGICAL, SAVE, PROTECTED :: ok_external_lognormal=.FALSE. ! if True, the lognormal condensation scheme is calculated in the lmdz_lscp_condensation routine 147 !$OMP THREADPRIVATE(ok_external_lognormal) 148 149 LOGICAL, SAVE, PROTECTED :: ok_ice_supersat=.FALSE. ! activates the condensation scheme that allows for ice supersaturation 150 !$OMP THREADPRIVATE(ok_ice_supersat) 151 152 LOGICAL, SAVE, PROTECTED :: ok_unadjusted_clouds=.FALSE. ! if True, relax the saturation adjustment assumption for ice clouds 153 !$OMP THREADPRIVATE(ok_unadjusted_clouds) 154 155 LOGICAL, SAVE, PROTECTED :: ok_weibull_warm_clouds=.FALSE. ! if True, the weibull condensation scheme replaces the lognormal condensation scheme at positive temperatures 156 !$OMP THREADPRIVATE(ok_weibull_warm_clouds) 157 158 INTEGER, SAVE, PROTECTED :: iflag_cloud_sublim_pdf=3 ! iflag for the distribution of water inside ice clouds 159 !$OMP THREADPRIVATE(iflag_cloud_sublim_pdf) 160 161 REAL, SAVE, PROTECTED :: depo_coef_cirrus=.5 ! [-] deposition coefficient for growth of ice crystals in cirrus clouds 162 !$OMP THREADPRIVATE(depo_coef_cirrus) 163 164 REAL, SAVE, PROTECTED :: capa_cond_cirrus=.5 ! [-] capacitance factor for growth/sublimation of ice crystals in cirrus clouds 165 !$OMP THREADPRIVATE(capa_cond_cirrus) 166 167 REAL, SAVE, PROTECTED :: mu_subl_pdf_lscp=1./3. ! [-] shape factor of the gamma distribution of water inside ice clouds 168 !$OMP THREADPRIVATE(mu_subl_pdf_lscp) 169 170 REAL, SAVE, PROTECTED :: beta_pdf_lscp=8.75E-4 ! [] tuning coefficient for the standard deviation of the PDF of water vapor in the clear sky region 171 !$OMP THREADPRIVATE(beta_pdf_lscp) 172 173 REAL, SAVE, PROTECTED :: temp_thresh_pdf_lscp=188. ! [K] factor for the PDF fit of water vapor in UTLS - below this temperature, water vapor is homogeneously distributed in the clear sky region 174 !$OMP THREADPRIVATE(temp_thresh_pdf_lscp) 175 176 REAL, SAVE, PROTECTED :: rhlmid_pdf_lscp=52.8 ! [%] factor for the PDF fit of water vapor in UTLS - below this rel hum wrt liq, std increases with RHliq, above it decreases with RHliq 177 !$OMP THREADPRIVATE(rhlmid_pdf_lscp) 178 179 REAL, SAVE, PROTECTED :: k0_pdf_lscp=2.80 ! [-] factor for the PDF fit of water vapor in UTLS 180 !$OMP THREADPRIVATE(k0_pdf_lscp) 181 182 REAL, SAVE, PROTECTED :: kappa_pdf_lscp=0.0236 ! [] factor for the PDF fit of water vapor in UTLS 183 !$OMP THREADPRIVATE(kappa_pdf_lscp) 184 185 REAL, SAVE, PROTECTED :: rhl0_pdf_lscp=88.7 ! [%] factor for the PDF fit of water vapor in UTLS 186 !$OMP THREADPRIVATE(rhl0_pdf_lscp) 187 188 REAL, SAVE, PROTECTED :: cond_thresh_pdf_lscp=1.E-10 ! [-] threshold for the formation of new cloud 189 !$OMP THREADPRIVATE(cond_thresh_pdf_lscp) 190 191 REAL, SAVE, PROTECTED :: a_homofreez=2.349 ! [-] factor for the Koop homogeneous freezing fit 192 !$OMP THREADPRIVATE(a_homofreez) 193 194 REAL, SAVE, PROTECTED :: b_homofreez=259. ! [K] factor for the Koop homogeneous freezing fit 195 !$OMP THREADPRIVATE(b_homofreez) 196 197 REAL, SAVE, PROTECTED :: delta_hetfreez=1. ! [-] value between 0 and 1 to simulate for heterogeneous freezing. 198 !$OMP THREADPRIVATE(delta_hetfreez) 199 200 REAL, SAVE, PROTECTED :: coef_mixing_lscp=1e-7 ! [-] tuning coefficient for the mixing process 201 !$OMP THREADPRIVATE(coef_mixing_lscp) 202 203 REAL, SAVE, PROTECTED :: coef_shear_lscp=0.1 ! [-] additional coefficient for the shearing process (subprocess of the mixing process) 204 !$OMP THREADPRIVATE(coef_shear_lscp) 205 206 REAL, SAVE, PROTECTED :: chi_mixing_lscp=1.1 ! [-] factor for the macro distribution of ISSRs wrt clouds in a gridbox 207 !$OMP THREADPRIVATE(chi_mixing_lscp) 208 209 ! REAL, SAVE, PROTECTED :: contrail_cross_section=200000. 210 ! !$OMP THREADPRIVATE(contrail_cross_section) 211 !--End of the parameters for condensation and ice supersaturation 144 212 145 213 !--Parameters for poprecip … … 247 315 CONTAINS 248 316 249 SUBROUTINE lscp_ini(dtime,lunout_in,prt_level_in,ok_ice_sursat, iflag_ratqs, fl_cor_ebil_in, RCPD_in, RLSTT_in, RLVTT_in, RLMLT_in, & 250 RVTMP2_in, RTT_in,RD_in,RG_in,RV_in,RPI_in) 317 SUBROUTINE lscp_ini(dtime,lunout_in,prt_level_in,ok_ice_supersat_in, iflag_ratqs, fl_cor_ebil_in, & 318 RCPD_in, RLSTT_in, RLVTT_in, RLMLT_in, RVTMP2_in, & 319 RTT_in, RD_in, RV_in, RG_in, RPI_in, EPS_W_in) 251 320 252 321 253 322 USE lmdz_ioipsl_getin_p, ONLY: getin_p 254 USE ice_sursat_mod, ONLY: ice_sursat_init255 323 USE lmdz_cloudth_ini, ONLY: cloudth_ini 256 324 USE lmdz_abort_physic, ONLY: abort_physic … … 258 326 REAL, INTENT(IN) :: dtime 259 327 INTEGER, INTENT(IN) :: lunout_in,prt_level_in,iflag_ratqs,fl_cor_ebil_in 260 LOGICAL, INTENT(IN) :: ok_ice_su rsat328 LOGICAL, INTENT(IN) :: ok_ice_supersat_in 261 329 262 330 REAL, INTENT(IN) :: RCPD_in, RLSTT_in, RLVTT_in, RLMLT_in 263 REAL, INTENT(IN) :: RVTMP2_in, RTT_in, RD_in, RG_in, RV_in, RPI_in331 REAL, INTENT(IN) :: RVTMP2_in, RTT_in, RD_in, RV_in, RG_in, RPI_in, EPS_W_in 264 332 CHARACTER (LEN=20) :: modname='lscp_ini_mod' 265 333 CHARACTER (LEN=80) :: abort_message … … 270 338 fl_cor_ebil=fl_cor_ebil_in 271 339 340 ok_ice_supersat=ok_ice_supersat_in 341 272 342 RG=RG_in 273 343 RD=RD_in 344 RV=RV_in 274 345 RCPD=RCPD_in 275 346 RLVTT=RLVTT_in … … 280 351 RVTMP2=RVTMP2_in 281 352 RPI=RPI_in 353 EPS_W=EPS_W_in 282 354 283 355 … … 327 399 CALL getin_p('gamma_taud',gamma_taud) 328 400 CALL getin_p('iflag_oldbug_fisrtilp',iflag_oldbug_fisrtilp) 401 CALL getin_p('temp_nowater',temp_nowater) 402 ! for poprecip 329 403 CALL getin_p('ok_poprecip',ok_poprecip) 330 404 CALL getin_p('ok_corr_vap_evasub',ok_corr_vap_evasub) … … 346 420 CALL getin_p('snow_fallspeed_clr',snow_fallspeed_clr) 347 421 CALL getin_p('snow_fallspeed_cld',snow_fallspeed_cld) 422 ! for condensation and ice supersaturation 423 CALL getin_p('ok_external_lognormal',ok_external_lognormal) 424 CALL getin_p('ok_unadjusted_clouds',ok_unadjusted_clouds) 425 CALL getin_p('ok_weibull_warm_clouds',ok_weibull_warm_clouds) 426 CALL getin_p('iflag_cloud_sublim_pdf',iflag_cloud_sublim_pdf) 427 CALL getin_p('depo_coef_cirrus',depo_coef_cirrus) 428 CALL getin_p('capa_cond_cirrus',capa_cond_cirrus) 429 CALL getin_p('mu_subl_pdf_lscp',mu_subl_pdf_lscp) 430 CALL getin_p('beta_pdf_lscp',beta_pdf_lscp) 431 CALL getin_p('temp_thresh_pdf_lscp',temp_thresh_pdf_lscp) 432 CALL getin_p('rhlmid_pdf_lscp',rhlmid_pdf_lscp) 433 CALL getin_p('k0_pdf_lscp',k0_pdf_lscp) 434 CALL getin_p('kappa_pdf_lscp',kappa_pdf_lscp) 435 CALL getin_p('rhl0_pdf_lscp',rhl0_pdf_lscp) 436 CALL getin_p('cond_thresh_pdf_lscp',cond_thresh_pdf_lscp) 437 CALL getin_p('a_homofreez',a_homofreez) 438 CALL getin_p('b_homofreez',b_homofreez) 439 CALL getin_p('delta_hetfreez',delta_hetfreez) 440 CALL getin_p('coef_mixing_lscp',coef_mixing_lscp) 441 CALL getin_p('coef_shear_lscp',coef_shear_lscp) 442 CALL getin_p('chi_mixing_lscp',chi_mixing_lscp) 443 !CALL getin_p('contrail_cross_section',contrail_cross_section) 348 444 349 445 … … 391 487 WRITE(lunout,*) 'lscp_ini, iflag_oldbug_fisrtilp', iflag_oldbug_fisrtilp 392 488 WRITE(lunout,*) 'lscp_ini, fl_cor_ebil', fl_cor_ebil 489 WRITE(lunout,*) 'lscp_ini, temp_nowater', temp_nowater 490 ! for poprecip 393 491 WRITE(lunout,*) 'lscp_ini, ok_poprecip', ok_poprecip 394 492 WRITE(lunout,*) 'lscp_ini, ok_corr_vap_evasub', ok_corr_vap_evasub … … 404 502 WRITE(lunout,*) 'lscp_ini, snow_fallspeed_clr:', snow_fallspeed_clr 405 503 WRITE(lunout,*) 'lscp_ini, snow_fallspeed_cld:', snow_fallspeed_cld 504 ! for condensation and ice supersaturation 505 WRITE(lunout,*) 'lscp_ini, ok_external_lognormal:', ok_external_lognormal 506 WRITE(lunout,*) 'lscp_ini, ok_ice_supersat:', ok_ice_supersat 507 WRITE(lunout,*) 'lscp_ini, ok_unadjusted_clouds:', ok_unadjusted_clouds 508 WRITE(lunout,*) 'lscp_ini, ok_weibull_warm_clouds:', ok_weibull_warm_clouds 509 WRITE(lunout,*) 'lscp_ini, iflag_cloud_sublim_pdf:', iflag_cloud_sublim_pdf 510 WRITE(lunout,*) 'lscp_ini, depo_coef_cirrus:', depo_coef_cirrus 511 WRITE(lunout,*) 'lscp_ini, capa_cond_cirrus:', capa_cond_cirrus 512 WRITE(lunout,*) 'lscp_ini, mu_subl_pdf_lscp:', mu_subl_pdf_lscp 513 WRITE(lunout,*) 'lscp_ini, beta_pdf_lscp:', beta_pdf_lscp 514 WRITE(lunout,*) 'lscp_ini, temp_thresh_pdf_lscp:', temp_thresh_pdf_lscp 515 WRITE(lunout,*) 'lscp_ini, rhlmid_pdf_lscp:', rhlmid_pdf_lscp 516 WRITE(lunout,*) 'lscp_ini, k0_pdf_lscp:', k0_pdf_lscp 517 WRITE(lunout,*) 'lscp_ini, kappa_pdf_lscp:', kappa_pdf_lscp 518 WRITE(lunout,*) 'lscp_ini, rhl0_pdf_lscp:', rhl0_pdf_lscp 519 WRITE(lunout,*) 'lscp_ini, a_homofreez:', a_homofreez 520 WRITE(lunout,*) 'lscp_ini, b_homofreez:', b_homofreez 521 WRITE(lunout,*) 'lscp_ini, delta_hetfreez', delta_hetfreez 522 WRITE(lunout,*) 'lscp_ini, coef_mixing_lscp:', coef_mixing_lscp 523 WRITE(lunout,*) 'lscp_ini, coef_shear_lscp:', coef_shear_lscp 524 WRITE(lunout,*) 'lscp_ini, chi_mixing_lscp:', chi_mixing_lscp 525 ! WRITE(lunout,*) 'lscp_ini, contrail_cross_section:', contrail_cross_section 406 526 407 527 … … 423 543 424 544 545 !--Check flags for condensation and ice supersaturation 546 IF ( ok_external_lognormal .AND. ok_ice_supersat ) THEN 547 abort_message = 'in lscp, ok_external_lognormal=y is incompatible with ok_ice_supersat=y' 548 CALL abort_physic (modname,abort_message,1) 549 ENDIF 550 551 IF ( ok_weibull_warm_clouds .AND. .NOT. ok_ice_supersat ) THEN 552 abort_message = 'in lscp, ok_weibull_warm_clouds=y needs ok_ice_supersat=y' 553 CALL abort_physic (modname,abort_message,1) 554 ENDIF 555 556 IF ( ok_unadjusted_clouds .AND. .NOT. ok_ice_supersat ) THEN 557 abort_message = 'in lscp, ok_unadjusted_clouds=y needs ok_ice_supersat=y' 558 CALL abort_physic (modname,abort_message,1) 559 ENDIF 560 561 425 562 !AA Temporary initialisation 426 563 a_tr_sca(1) = -0.5 … … 428 565 a_tr_sca(3) = -0.5 429 566 a_tr_sca(4) = -0.5 430 431 IF (ok_ice_sursat) CALL ice_sursat_init()432 567 433 568 CALL cloudth_ini(iflag_cloudth_vert,iflag_ratqs)
Note: See TracChangeset
for help on using the changeset viewer.