Changeset 4489 for LMDZ6/trunk/libf/phylmd/ecrad/radiation_cloud_optics.F90
- Timestamp:
- Mar 31, 2023, 8:42:57 PM (17 months ago)
- Location:
- LMDZ6/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk
- Property svn:mergeinfo changed
/LMDZ6/branches/LMDZ_ECRad (added) merged: 4175,4177-4183,4188,4192,4200-4203,4355,4366,4387-4388,4390,4444,4482,4486,4488
- Property svn:mergeinfo changed
-
LMDZ6/trunk/libf/phylmd/ecrad/radiation_cloud_optics.F90
r3908 r4489 19 19 20 20 implicit none 21 21 22 public 22 23 … … 271 272 type(cloud_optics_type), pointer :: ho 272 273 273 integer :: jcol, jlev 274 integer :: jcol, jlev, jb 274 275 275 276 real(jprb) :: hook_handle … … 345 346 end if 346 347 348 ! Delta-Eddington scaling in the shortwave only 347 349 if (.not. config%do_sw_delta_scaling_with_gases) then 348 ! Delta-Eddington scaling in the shortwave only349 350 call delta_eddington_scat_od(od_sw_liq, scat_od_sw_liq, g_sw_liq) 350 351 end if 352 !call delta_eddington_scat_od(od_lw_liq, scat_od_lw_liq, g_lw_liq) 353 351 354 else 352 355 ! Liquid not present: set properties to zero … … 437 440 end if 438 441 442 ! Delta-Eddington scaling in both longwave and shortwave 443 ! (assume that particles are larger than wavelength even 444 ! in longwave) 439 445 if (.not. config%do_sw_delta_scaling_with_gases) then 440 ! Delta-Eddington scaling in both longwave and shortwave441 ! (assume that particles are larger than wavelength even442 ! in longwave)443 446 call delta_eddington_scat_od(od_sw_ice, scat_od_sw_ice, g_sw_ice) 444 447 end if 445 446 448 call delta_eddington_scat_od(od_lw_ice, scat_od_lw_ice, g_lw_ice) 449 447 450 else 448 451 ! Ice not present: set properties to zero … … 458 461 ! Combine liquid and ice 459 462 if (config%do_lw_cloud_scattering) then 460 od_lw_cloud(:,jlev,jcol) = od_lw_liq + od_lw_ice 461 where (scat_od_lw_liq+scat_od_lw_ice > 0.0_jprb) 462 g_lw_cloud(:,jlev,jcol) = (g_lw_liq * scat_od_lw_liq & 463 & + g_lw_ice * scat_od_lw_ice) & 464 & / (scat_od_lw_liq+scat_od_lw_ice) 465 elsewhere 466 g_lw_cloud(:,jlev,jcol) = 0.0_jprb 467 end where 468 ssa_lw_cloud(:,jlev,jcol) = (scat_od_lw_liq + scat_od_lw_ice) & 469 & / (od_lw_liq + od_lw_ice) 463 ! Added for DWD (2020) 464 !NEC$ shortloop 465 do jb = 1, config%n_bands_lw 466 od_lw_cloud(jb,jlev,jcol) = od_lw_liq(jb) + od_lw_ice(jb) 467 if (scat_od_lw_liq(jb)+scat_od_lw_ice(jb) > 0.0_jprb) then 468 g_lw_cloud(jb,jlev,jcol) = (g_lw_liq(jb) * scat_od_lw_liq(jb) & 469 & + g_lw_ice(jb) * scat_od_lw_ice(jb)) & 470 & / (scat_od_lw_liq(jb)+scat_od_lw_ice(jb)) 471 else 472 g_lw_cloud(jb,jlev,jcol) = 0.0_jprb 473 end if 474 ssa_lw_cloud(jb,jlev,jcol) = (scat_od_lw_liq(jb) + scat_od_lw_ice(jb)) & 475 & / (od_lw_liq(jb) + od_lw_ice(jb)) 476 end do 470 477 else 471 478 ! If longwave scattering is to be neglected then the 472 479 ! best approximation is to set the optical depth equal 473 480 ! to the absorption optical depth 474 od_lw_cloud(:,jlev,jcol) = od_lw_liq - scat_od_lw_liq & 475 & + od_lw_ice - scat_od_lw_ice 481 ! Added for DWD (2020) 482 !NEC$ shortloop 483 do jb = 1, config%n_bands_lw 484 od_lw_cloud(jb,jlev,jcol) = od_lw_liq(jb) - scat_od_lw_liq(jb) & 485 & + od_lw_ice(jb) - scat_od_lw_ice(jb) 486 end do 476 487 end if 477 od_sw_cloud(:,jlev,jcol) = od_sw_liq + od_sw_ice 478 g_sw_cloud(:,jlev,jcol) = (g_sw_liq * scat_od_sw_liq & 479 & + g_sw_ice * scat_od_sw_ice) & 480 & / (scat_od_sw_liq + scat_od_sw_ice) 481 ssa_sw_cloud(:,jlev,jcol) & 482 & = (scat_od_sw_liq + scat_od_sw_ice) / (od_sw_liq + od_sw_ice) 488 ! Added for DWD (2020) 489 !NEC$ shortloop 490 do jb = 1, config%n_bands_sw 491 od_sw_cloud(jb,jlev,jcol) = od_sw_liq(jb) + od_sw_ice(jb) 492 g_sw_cloud(jb,jlev,jcol) = (g_sw_liq(jb) * scat_od_sw_liq(jb) & 493 & + g_sw_ice(jb) * scat_od_sw_ice(jb)) & 494 & / (scat_od_sw_liq(jb) + scat_od_sw_ice(jb)) 495 ssa_sw_cloud(jb,jlev,jcol) & 496 & = (scat_od_sw_liq(jb) + scat_od_sw_ice(jb)) / (od_sw_liq(jb) + od_sw_ice(jb)) 497 end do 483 498 end if ! Cloud present 484 499 end do ! Loop over column
Note: See TracChangeset
for help on using the changeset viewer.