Changeset 5087 for LMDZ6/branches/Amaury_dev/libf/phylmd/cosp
- Timestamp:
- Jul 20, 2024, 12:00:23 PM (12 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/cosp/lidar_simulator.F90
r5082 r5087 378 378 ! opt. thick of each layer 379 379 tau_mol(:,1:nlev) = alpha_mol(:,1:nlev) & 380 &*(zheight(:,2:nlev+1)-zheight(:,1:nlev))380 *(zheight(:,2:nlev+1)-zheight(:,1:nlev)) 381 381 ! opt. thick from TOA 382 382 DO k = nlev-1, 1, -1 … … 390 390 ! opt. thick of each layer 391 391 tau_part(:,:,i) = tau_part(:,:,i) & 392 &* (zheight(:,2:nlev+1)-zheight(:,1:nlev) )392 * (zheight(:,2:nlev+1)-zheight(:,1:nlev) ) 393 393 ! opt. thick from TOA 394 394 DO k = nlev-1, 1, -1 … … 400 400 ! Upper layer 401 401 pmol(:,nlev) = beta_mol(:,nlev) / (2.*tau_mol(:,nlev)) & 402 &* (1.-exp(-2.0*tau_mol(:,nlev)))402 * (1.-exp(-2.0*tau_mol(:,nlev))) 403 403 ! Other layers 404 404 DO k= nlev-1, 1, -1 … … 406 406 WHERE (tau_mol_lay(:)>0.) 407 407 pmol(:,k) = beta_mol(:,k) * EXP(-2.0*tau_mol(:,k+1)) / (2.*tau_mol_lay(:)) & 408 &* (1.-exp(-2.0*tau_mol_lay(:)))408 * (1.-exp(-2.0*tau_mol_lay(:))) 409 409 ELSEWHERE 410 410 ! This must never happend, but just in case, to avoid div. by 0 … … 429 429 ! Upper layer 430 430 pnorm(:,nlev) = betatot(:,nlev) / (2.*tautot(:,nlev)) & 431 &* (1.-exp(-2.0*tautot(:,nlev)))431 * (1.-exp(-2.0*tautot(:,nlev))) 432 432 433 433 ! Other layers … … 436 436 WHERE (tautot_lay(:)>0.) 437 437 pnorm(:,k) = betatot(:,k) * EXP(-2.0*tautot(:,k+1)) / (2.*tautot_lay(:)) & 438 &* (1.-EXP(-2.0*tautot_lay(:)))438 * (1.-EXP(-2.0*tautot_lay(:))) 439 439 ELSEWHERE 440 440 ! This must never happend, but just in case, to avoid div. by 0 … … 468 468 ! Upper layer 469 469 pnorm_ice(:,nlev) = betatot_ice(:,nlev) / (2.*tautot_ice(:,nlev)) & 470 &* (1.-exp(-2.0*tautot_ice(:,nlev)))470 * (1.-exp(-2.0*tautot_ice(:,nlev))) 471 471 472 472 DO k= nlev-1, 1, -1 … … 474 474 WHERE (tautot_lay_ice(:)>0.) 475 475 pnorm_ice(:,k)=betatot_ice(:,k)*EXP(-2.0*tautot_ice(:,k+1))/(2.*tautot_lay_ice(:)) & 476 &* (1.-EXP(-2.0*tautot_lay_ice(:)))476 * (1.-EXP(-2.0*tautot_lay_ice(:))) 477 477 ELSEWHERE 478 478 pnorm_ice(:,k)=betatot_ice(:,k)*EXP(-2.0*tautot_ice(:,k+1)) … … 483 483 ! Upper layer 484 484 pnorm_liq(:,nlev) = betatot_liq(:,nlev) / (2.*tautot_liq(:,nlev)) & 485 &* (1.-exp(-2.0*tautot_liq(:,nlev)))485 * (1.-exp(-2.0*tautot_liq(:,nlev))) 486 486 487 487 DO k= nlev-1, 1, -1 … … 489 489 WHERE (tautot_lay_liq(:)>0.) 490 490 pnorm_liq(:,k)=betatot_liq(:,k)*EXP(-2.0*tautot_liq(:,k+1))/(2.*tautot_lay_liq(:)) & 491 &* (1.-EXP(-2.0*tautot_lay_liq(:)))491 * (1.-EXP(-2.0*tautot_lay_liq(:))) 492 492 ELSEWHERE 493 493 pnorm_liq(:,k)=betatot_liq(:,k)*EXP(-2.0*tautot_liq(:,k+1)) … … 510 510 ! Upper layer 511 511 beta_perp_ice(:,nlev) = pnorm_perp_ice(:,nlev) * (2.*tautot_ice(:,nlev)) & 512 &/ (1.-exp(-2.0*tautot_ice(:,nlev)))512 / (1.-exp(-2.0*tautot_ice(:,nlev))) 513 513 514 514 DO k= nlev-1, 1, -1 … … 516 516 WHERE (tautot_lay_ice(:)>0.) 517 517 beta_perp_ice(:,k) = pnorm_perp_ice(:,k)/ EXP(-2.0*tautot_ice(:,k+1)) * (2.*tautot_lay_ice(:)) & 518 &/ (1.-exp(-2.0*tautot_lay_ice(:)))518 / (1.-exp(-2.0*tautot_lay_ice(:))) 519 519 520 520 ELSEWHERE … … 526 526 ! Upper layer 527 527 beta_perp_liq(:,nlev) = pnorm_perp_liq(:,nlev) * (2.*tautot_liq(:,nlev)) & 528 &/ (1.-exp(-2.0*tautot_liq(:,nlev)))528 / (1.-exp(-2.0*tautot_liq(:,nlev))) 529 529 530 530 DO k= nlev-1, 1, -1 … … 532 532 WHERE (tautot_lay_liq(:)>0.) 533 533 beta_perp_liq(:,k) = pnorm_perp_liq(:,k)/ max(seuil,EXP(-2.0*tautot_liq(:,k+1))) & 534 &* (2.*tautot_lay_liq(:)) / (1.-exp(-2.0*tautot_lay_liq(:)))534 * (2.*tautot_lay_liq(:)) / (1.-exp(-2.0*tautot_lay_liq(:))) 535 535 536 536 ELSEWHERE … … 550 550 pnorm_perp_tot(:,nlev) = & 551 551 (beta_perp_ice(:,nlev)+beta_perp_liq(:,nlev)-(beta_mol(:,nlev)/(1+1/0.0284))) / (2.*tautot(:,nlev)) & 552 &* (1.-exp(-2.0*tautot(:,nlev)))552 * (1.-exp(-2.0*tautot(:,nlev))) 553 553 ELSEWHERE 554 554 pnorm_perp_tot(:,nlev) = 0. … … 570 570 (beta_perp_ice(:,k)+beta_perp_liq(:,k)-(beta_mol(:,k)/(1+1/0.0284))) * & 571 571 EXP(-2.0*tautot(:,k+1)) / (2.*tautot_lay(:)) & 572 &* (1.-EXP(-2.0*tautot_lay(:)))572 * (1.-EXP(-2.0*tautot_lay(:))) 573 573 ELSEWHERE 574 574 ! This must never happen, but just in case, to avoid div. by 0
Note: See TracChangeset
for help on using the changeset viewer.