Changeset 3947 for trunk/LMDZ.PLUTO/libf
- Timestamp:
- Nov 3, 2025, 3:44:51 PM (6 weeks ago)
- File:
-
- 1 edited
-
trunk/LMDZ.PLUTO/libf/phypluto/optcv.F90 (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.PLUTO/libf/phypluto/optcv.F90
r3929 r3947 144 144 DTAUKV(:,:,:) = 0.0 145 145 dtauv_aer(:,:,:) = 0.0 146 wbarv_aer(:,:,:) = 0.0146 wbarv_aer(:,:,:) = 1.0 147 147 148 148 if(callmufi) then … … 353 353 ! Aerosol absorption correction --> impact on single scattering albedo. 354 354 if (callmufi) then 355 ! Spherical aerosols 355 356 if ((TAEROS(K,NW,1).gt.0.d0) .and. TAEROS(K+1,NW,1).gt.0.d0) then 356 357 btemp(L,NW) = TAUAEROLK(K,NW,1) / & … … 363 364 btemp(L,NW) = TAUAEROLK(K,NW,1) + TAUAEROLK(K+1,NW,1) 364 365 endif 366 ! Fractal aerosols 365 367 if ((TAEROS(K,NW,2).gt.0.d0) .and. TAEROS(K+1,NW,2).gt.0.d0) then 366 368 btemp(L,NW) = btemp(L,NW) + & … … 390 392 ! Aerosol absorption correction --> impact on single scattering albedo. 391 393 if (callmufi) then 394 ! Spherical aerosols 392 395 if (TAEROS(K,NW,1).gt.0.d0) then 393 396 btemp(L,NW) = TAUAEROLK(K,NW,1) / & … … 397 400 btemp(L,NW) = TAUAEROLK(K,NW,1) 398 401 endif 402 ! Fractal aerosols 399 403 if (TAEROS(K,NW,2).gt.0.d0) then 400 404 btemp(L,NW) = btemp(L,NW) + & … … 442 446 DTAUV_AER(L,nw,iaer) = TAEROS(K,nw,iaer) + TAEROS(K+1,nw,iaer) 443 447 444 wbarv_prime = (QSVAER(K,nw,iaer)/QXVAER(K,nw,iaer)) / & 445 (QSVAER(K,nw,iaer)/QXVAER(K,nw,iaer) + Fabs_aer(iaer)*(1.-QSVAER(K,nw,iaer)/QXVAER(K,nw,iaer))) 448 IF (QXVAER(K,nw,iaer) > 0.0D0) THEN 449 wbarv_prime = (QSVAER(K,nw,iaer)/QXVAER(K,nw,iaer)) / & 450 (QSVAER(K,nw,iaer)/QXVAER(K,nw,iaer) + Fabs_aer(iaer)*(1.-QSVAER(K,nw,iaer)/QXVAER(K,nw,iaer))) 451 ELSE 452 wbarv_prime = 1.0 453 ENDIF 446 454 WBARV_AER(L,nw,iaer) = wbarv_prime * TAEROS(K,nw,iaer) 447 wbarv_prime = (QSVAER(K+1,nw,iaer)/QXVAER(K+1,nw,iaer)) / & 448 (QSVAER(K+1,nw,iaer)/QXVAER(K+1,nw,iaer) + Fabs_aer(iaer)*(1.-QSVAER(K+1,nw,iaer)/QXVAER(K+1,nw,iaer))) 455 IF (QXVAER(K+1,nw,iaer) > 0.0D0) THEN 456 wbarv_prime = (QSVAER(K+1,nw,iaer)/QXVAER(K+1,nw,iaer)) / & 457 (QSVAER(K+1,nw,iaer)/QXVAER(K+1,nw,iaer) + Fabs_aer(iaer)*(1.-QSVAER(K+1,nw,iaer)/QXVAER(K+1,nw,iaer))) 458 ELSE 459 wbarv_prime = 1.0 460 ENDIF 449 461 WBARV_AER(L,nw,iaer) = WBARV_AER(L,nw,iaer) + (wbarv_prime * TAEROS(K+1,nw,iaer)) 450 WBARV_AER(L,nw,iaer) = WBARV_AER(L,nw,iaer) / DTAUV_AER(L,nw,iaer) 451 END DO ! L vertical loop 452 ! Last level 453 L = L_NLAYRAD 454 K = 2*L+1 455 DTAUV_AER(L,nw,iaer) = TAEROS(K,nw,iaer) 456 WBARV_AER(L,nw,iaer) = (QSVAER(K,nw,iaer)/QXVAER(K,nw,iaer)) / & 457 (QSVAER(K,nw,iaer)/QXVAER(K,nw,iaer) + Fabs_aer(iaer)*(1.-QSVAER(K,nw,iaer)/QXVAER(K,nw,iaer))) 462 IF (DTAUV_AER(L,nw,iaer) > 0.0D0) THEN 463 WBARV_AER(L,nw,iaer) = WBARV_AER(L,nw,iaer) / DTAUV_AER(L,nw,iaer) 464 ELSE 465 WBARV_AER(L,nw,iaer) = 1.0 466 ENDIF 467 END DO ! L vertical loop 468 469 ! Last level 470 !----------- 471 L = L_NLAYRAD 472 K = 2*L+1 473 DTAUV_AER(L,nw,iaer) = TAEROS(K,nw,iaer) 474 IF (QXVAER(K,nw,iaer) > 0.0D0) THEN 475 WBARV_AER(L,nw,iaer) = (QSVAER(K,nw,iaer)/QXVAER(K,nw,iaer)) / & 476 (QSVAER(K,nw,iaer)/QXVAER(K,nw,iaer) + Fabs_aer(iaer)*(1.-QSVAER(K,nw,iaer)/QXVAER(K,nw,iaer))) 477 ELSE 478 WBARV_AER(L,nw,iaer) = 1.0 479 ENDIF 458 480 END DO ! nw spectral loop 459 481 END DO ! iaer Gauss loop
Note: See TracChangeset
for help on using the changeset viewer.
