- Timestamp:
- Feb 12, 2026, 10:54:21 PM (2 weeks ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 3 edited
-
conf_phys_m.f90 (modified) (1 diff)
-
lmdz_lscp_ini.f90 (modified) (3 diffs)
-
lmdz_lscp_phase.f90 (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/conf_phys_m.f90
r6070 r6075 2490 2490 2491 2491 ! flag_aerosol need to be different to zero if ok_cdnc is activated 2492 IF (ok_cdnc .AND. flag_aerosol .EQ. 0) THEN2493 CALL abort_physic('conf_phys', 'flag_aerosol cannot be to zero if ok_cdnc is activated ', 1)2494 ENDIF2492 !IF (ok_cdnc .AND. flag_aerosol .EQ. 0) THEN 2493 ! CALL abort_physic('conf_phys', 'flag_aerosol cannot be to zero if ok_cdnc is activated ', 1) 2494 !ENDIF 2495 2495 2496 2496 ! ok_cdnc must be set to y if ok_aie is activated -
LMDZ6/trunk/libf/phylmd/lmdz_lscp_ini.f90
r6028 r6075 244 244 REAL, SAVE, PROTECTED :: capa_crystal = 1. ! Crystal capacitance (shape factor) for lscp_icefrac_turb [-] 245 245 !$OMP THREADPRIVATE(capa_crystal) 246 247 LOGICAL, SAVE, PROTECTED :: fix_icnc = .FALSE. ! fix ice crystal number concentration for cloud phase determination 248 !$OMP THREADPRIVATE(fix_icnc) 249 250 REAL, SAVE, PROTECTED :: icnc0 = 10. ! prescribed ice crystal number concentration for cloud phase determination [L-1] 251 !$OMP THREADPRIVATE(icnc0) 246 252 247 253 REAL, SAVE, PROTECTED :: naero5 = 0.5 ! Number concentration of aerosol larger than 0.5 microns [scm-3] … … 494 500 CALL getin_p('dist_liq', dist_liq) 495 501 CALL getin_p('tresh_cl', tresh_cl) 502 CALL getin_p('fix_icnc', fix_icnc) 503 CALL getin_p('icnc0', icnc0) 496 504 CALL getin_p('capa_crystal', capa_crystal) 497 505 CALL getin_p('naero5', naero5) … … 611 619 WRITE (lunout, *) 'lscp_ini, capa_crystal', capa_crystal 612 620 WRITE (lunout, *) 'lscp_ini, naero5', naero5 621 WRITE (lunout, *) 'lscp_ini, fix_icnc', fix_icnc 622 WRITE (lunout, *) 'lscp_ini, icnc0', icnc0 613 623 WRITE (lunout, *) 'lscp_ini, gamma_snwretro', gamma_snwretro 614 624 WRITE (lunout, *) 'lscp_ini, gamma_mixth', gamma_mixth -
LMDZ6/trunk/libf/phylmd/lmdz_lscp_phase.f90
r6024 r6075 163 163 USE lmdz_lscp_ini, ONLY: seuil_neb, temp_nowater 164 164 USE lmdz_lscp_ini, ONLY: naero5, gamma_snwretro, gamma_taud, capa_crystal, rho_ice 165 USE lmdz_lscp_ini, ONLY: eps, snow_fallspeed 165 USE lmdz_lscp_ini, ONLY: eps, snow_fallspeed, fix_icnc, icnc0 166 166 USE lmdz_lscp_tools, ONLY: calc_qsat_ecmwf 167 167 … … 317 317 !--We assume an exponential ice PSD whose parameters 318 318 !--are computed following Morrison&Gettelman 2008 319 !--Ice number density is assumed equals to INP density 319 !--Ice number density is assumed equals to a constant value 320 !--if fix_icnc = True 321 !--or to the INP density 320 322 !--which is for naero5>0 a function of temperature (DeMott 2010) 321 323 !--bi and B0 are microphysical function characterizing … … 329 331 !--the Southern Ocean and the Antarctic 330 332 331 IF (naero5 .LE. 0) THEN 332 IF (temp(i) .GT. tempvig1) THEN 333 nb_crystals = 1.e3*10**(-0.14*(temp(i) - tempvig1) - 2.88) 334 ELSE IF (temp(i) .GT. tempvig2) THEN 335 nb_crystals = 1.e3*10**(-0.31*(temp(i) - tempvig1) - 2.88) 333 IF (fix_icnc) THEN 334 335 nb_crystals = icnc0 * 1000.! from L-1 to m-3 336 337 ELSE 338 339 IF (naero5 .LE. 0) THEN 340 IF (temp(i) .GT. tempvig1) THEN 341 nb_crystals = 1.e3*10**(-0.14*(temp(i) - tempvig1) - 2.88) 342 ELSE IF (temp(i) .GT. tempvig2) THEN 343 nb_crystals = 1.e3*10**(-0.31*(temp(i) - tempvig1) - 2.88) 344 ELSE 345 nb_crystals = 1.e3*10**(0.) 346 END IF 336 347 ELSE 337 nb_crystals = 1.e3* 10**(0.)338 END IF 339 ELSE340 nb_crystals = 1.e3*5.94e-5*(RTT - temp(i))**3.33*naero5**(0.0264*(RTT - temp(i)) + 0.0033)341 END IF 348 nb_crystals = 1.e3*5.94e-5*(RTT - temp(i))**3.33*naero5**(0.0264*(RTT - temp(i)) + 0.0033) 349 END IF 350 351 ENDIF 352 342 353 lambda_PSD = ((RPI*rho_ice*nb_crystals)/(rho_air*MAX(qiceini_incl, eps)))**(1./3.) 343 354 N0_PSD = nb_crystals*lambda_PSD
Note: See TracChangeset
for help on using the changeset viewer.
