Changeset 2242 for palm/trunk/SOURCE/radiation_model_mod.f90
- Timestamp:
- Jun 1, 2017 2:12:31 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/radiation_model_mod.f90
r2233 r2242 25 25 ! ----------------- 26 26 ! $Id$ 27 ! 27 ! Allow for RRTMG runs without humidity/cloud physics 28 ! 29 ! 2233 2017-05-30 18:08:54Z suehring 30 ! 28 31 ! 2232 2017-05-30 17:47:52Z suehring 29 32 ! Adjustments to new topography concept … … 1415 1418 / 1000.0_wp )**0.286_wp 1416 1419 1417 DO k = nzb+1, nzt+1 1418 rrtm_tlay(0,k) = pt(k,j,i) * ( (hyp(k) ) / 100000.0_wp & 1419 )**0.286_wp + l_d_cp * ql(k,j,i) 1420 rrtm_h2ovmr(0,k) = mol_mass_air_d_wv * (q(k,j,i) - ql(k,j,i)) 1421 1422 ENDDO 1420 1421 IF ( cloud_physics ) THEN 1422 DO k = nzb+1, nzt+1 1423 rrtm_tlay(0,k) = pt(k,j,i) * ( (hyp(k) ) / 100000.0_wp & 1424 )**0.286_wp + l_d_cp * ql(k,j,i) 1425 rrtm_h2ovmr(0,k) = mol_mass_air_d_wv * (q(k,j,i) - ql(k,j,i)) 1426 ENDDO 1427 ELSE 1428 DO k = nzb+1, nzt+1 1429 rrtm_tlay(0,k) = pt(k,j,i) * ( (hyp(k) ) / 100000.0_wp & 1430 )**0.286_wp 1431 rrtm_h2ovmr(0,k) = 0.0_wp 1432 ENDDO 1433 ENDIF 1423 1434 1424 1435 ! … … 1455 1466 rrtm_icld = 0 1456 1467 1457 DO k = nzb+1, nzt+1 1458 rrtm_cliqwp(0,k) = ql(k,j,i) * 1000.0_wp * & 1459 (rrtm_plev(0,k) - rrtm_plev(0,k+1)) & 1460 * 100.0_wp / g 1461 1462 IF ( rrtm_cliqwp(0,k) > 0.0_wp ) THEN 1463 rrtm_cldfr(0,k) = 1.0_wp 1464 IF ( rrtm_icld == 0 ) rrtm_icld = 1 1465 1466 ! 1467 !-- Calculate cloud droplet effective radius 1468 IF ( cloud_physics ) THEN 1469 rrtm_reliq(0,k) = 1.0E6_wp * ( 3.0_wp * ql(k,j,i) & 1470 * rho_surface & 1471 / ( 4.0_wp * pi * nc_const * rho_l ) & 1472 )**0.33333333333333_wp & 1473 * EXP( LOG( sigma_gc )**2 ) 1474 1475 ELSEIF ( cloud_droplets ) THEN 1476 number_of_particles = prt_count(k,j,i) 1477 1478 IF (number_of_particles <= 0) CYCLE 1479 particles => grid_particles(k,j,i)%particles(1:number_of_particles) 1480 s_r2 = 0.0_wp 1481 s_r3 = 0.0_wp 1482 1483 DO n = 1, number_of_particles 1484 IF ( particles(n)%particle_mask ) THEN 1485 s_r2 = s_r2 + particles(n)%radius**2 * & 1486 particles(n)%weight_factor 1487 s_r3 = s_r3 + particles(n)%radius**3 * & 1488 particles(n)%weight_factor 1489 ENDIF 1490 ENDDO 1491 1492 IF ( s_r2 > 0.0_wp ) rrtm_reliq(0,k) = s_r3 / s_r2 1493 1468 IF ( cloud_physics ) THEN 1469 DO k = nzb+1, nzt+1 1470 rrtm_cliqwp(0,k) = ql(k,j,i) * 1000.0_wp * & 1471 (rrtm_plev(0,k) - rrtm_plev(0,k+1)) & 1472 * 100.0_wp / g 1473 1474 IF ( rrtm_cliqwp(0,k) > 0.0_wp ) THEN 1475 rrtm_cldfr(0,k) = 1.0_wp 1476 IF ( rrtm_icld == 0 ) rrtm_icld = 1 1477 1478 ! 1479 !-- Calculate cloud droplet effective radius 1480 IF ( cloud_physics ) THEN 1481 rrtm_reliq(0,k) = 1.0E6_wp * ( 3.0_wp * ql(k,j,i) & 1482 * rho_surface & 1483 / ( 4.0_wp * pi * nc_const * rho_l ) & 1484 )**0.33333333333333_wp & 1485 * EXP( LOG( sigma_gc )**2 ) 1486 1487 ELSEIF ( cloud_droplets ) THEN 1488 number_of_particles = prt_count(k,j,i) 1489 1490 IF (number_of_particles <= 0) CYCLE 1491 particles => grid_particles(k,j,i)%particles(1:number_of_particles) 1492 s_r2 = 0.0_wp 1493 s_r3 = 0.0_wp 1494 1495 DO n = 1, number_of_particles 1496 IF ( particles(n)%particle_mask ) THEN 1497 s_r2 = s_r2 + particles(n)%radius**2 * & 1498 particles(n)%weight_factor 1499 s_r3 = s_r3 + particles(n)%radius**3 * & 1500 particles(n)%weight_factor 1501 ENDIF 1502 ENDDO 1503 1504 IF ( s_r2 > 0.0_wp ) rrtm_reliq(0,k) = s_r3 / s_r2 1505 1506 ENDIF 1507 1508 ! 1509 !-- Limit effective radius 1510 IF ( rrtm_reliq(0,k) > 0.0_wp ) THEN 1511 rrtm_reliq(0,k) = MAX(rrtm_reliq(0,k),2.5_wp) 1512 rrtm_reliq(0,k) = MIN(rrtm_reliq(0,k),60.0_wp) 1513 ENDIF 1494 1514 ENDIF 1495 1496 ! 1497 !-- Limit effective radius 1498 IF ( rrtm_reliq(0,k) > 0.0_wp ) THEN 1499 rrtm_reliq(0,k) = MAX(rrtm_reliq(0,k),2.5_wp) 1500 rrtm_reliq(0,k) = MIN(rrtm_reliq(0,k),60.0_wp) 1501 ENDIF 1502 ENDIF 1503 ENDDO 1515 ENDDO 1516 ENDIF 1504 1517 1505 1518 !
Note: See TracChangeset
for help on using the changeset viewer.