Changeset 19 for palm/trunk/SOURCE/production_e.f90
- Timestamp:
- Feb 23, 2007 4:53:48 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/production_e.f90
r4 r19 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! Calculation extended for gridpoint nzt, extended for given temperature / 7 ! humidity fluxes at the top 7 8 ! 8 9 ! Former revisions: … … 67 68 68 69 DO j = nys, nyn 69 DO k = nzb_diff_s_outer(j,i), nzt -170 DO k = nzb_diff_s_outer(j,i), nzt 70 71 71 72 dudx = ( u(k,j,i+1) - u(k,j,i) ) * ddx … … 327 328 DO j = nys, nyn 328 329 329 DO k = nzb_diff_s_inner(j,i), nzt -1330 DO k = nzb_diff_s_inner(j,i), nzt_diff 330 331 tend(k,j,i) = tend(k,j,i) - kh(k,j,i) * g / pt(k,j,i) * & 331 332 ( pt(k+1,j,i) - pt(k-1,j,i) ) * dd2zu(k) 332 333 ENDDO 334 333 335 IF ( use_surface_fluxes ) THEN 334 336 k = nzb_diff_s_inner(j,i)-1 … … 336 338 ENDIF 337 339 340 IF ( use_top_fluxes ) THEN 341 k = nzt 342 tend(k,j,i) = tend(k,j,i) + g / pt(k,j,i) * tswst(j,i) 343 ENDIF 344 338 345 ENDDO 339 346 … … 342 349 DO j = nys, nyn 343 350 344 DO k = nzb_diff_s_inner(j,i), nzt -1351 DO k = nzb_diff_s_inner(j,i), nzt_diff 345 352 346 353 IF ( .NOT. cloud_physics ) THEN … … 375 382 DO j = nys, nyn 376 383 377 k = nzb_diff_s_inner(j,i) -1384 k = nzb_diff_s_inner(j,i) 378 385 379 386 IF ( .NOT. cloud_physics ) THEN … … 402 409 ENDIF 403 410 411 IF ( use_top_fluxes ) THEN 412 413 DO j = nys, nyn 414 415 k = nzt 416 417 IF ( .NOT. cloud_physics ) THEN 418 k1 = 1.0 + 0.61 * q(k,j,i) 419 k2 = 0.61 * pt(k,j,i) 420 ELSE 421 IF ( ql(k,j,i) == 0.0 ) THEN 422 k1 = 1.0 + 0.61 * q(k,j,i) 423 k2 = 0.61 * pt(k,j,i) 424 ELSE 425 theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i) 426 temp = theta * t_d_pt(k) 427 k1 = ( 1.0 - q(k,j,i) + 1.61 * & 428 ( q(k,j,i) - ql(k,j,i) ) * & 429 ( 1.0 + 0.622 * l_d_r / temp ) ) / & 430 ( 1.0 + 0.622 * l_d_r * l_d_cp * & 431 ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) ) 432 k2 = theta * ( l_d_cp / temp * k1 - 1.0 ) 433 ENDIF 434 ENDIF 435 436 tend(k,j,i) = tend(k,j,i) + g / vpt(k,j,i) * & 437 ( k1* tswst(j,i) + k2 * qswst(j,i) ) 438 ENDDO 439 440 ENDIF 441 404 442 ENDIF 405 443 … … 430 468 ! 431 469 !-- Calculate TKE production by shear 432 DO k = nzb_diff_s_outer(j,i), nzt -1470 DO k = nzb_diff_s_outer(j,i), nzt 433 471 434 472 dudx = ( u(k,j,i+1) - u(k,j,i) ) * ddx … … 657 695 IF ( .NOT. moisture ) THEN 658 696 659 DO k = nzb_diff_s_inner(j,i), nzt -1697 DO k = nzb_diff_s_inner(j,i), nzt_diff 660 698 tend(k,j,i) = tend(k,j,i) - kh(k,j,i) * g / pt(k,j,i) * & 661 699 ( pt(k+1,j,i) - pt(k-1,j,i) ) * dd2zu(k) 662 700 ENDDO 701 663 702 IF ( use_surface_fluxes ) THEN 664 703 k = nzb_diff_s_inner(j,i)-1 … … 666 705 ENDIF 667 706 707 IF ( use_top_fluxes ) THEN 708 k = nzt 709 tend(k,j,i) = tend(k,j,i) + g / pt(k,j,i) * tswst(j,i) 710 ENDIF 711 668 712 ELSE 669 713 670 DO k = nzb_diff_s_inner(j,i), nzt -1714 DO k = nzb_diff_s_inner(j,i), nzt_diff 671 715 672 716 IF ( .NOT. cloud_physics ) THEN … … 694 738 ) * dd2zu(k) 695 739 ENDDO 740 696 741 IF ( use_surface_fluxes ) THEN 697 742 k = nzb_diff_s_inner(j,i)-1 … … 720 765 ENDIF 721 766 767 IF ( use_top_fluxes ) THEN 768 k = nzt 769 770 IF ( .NOT. cloud_physics ) THEN 771 k1 = 1.0 + 0.61 * q(k,j,i) 772 k2 = 0.61 * pt(k,j,i) 773 ELSE 774 IF ( ql(k,j,i) == 0.0 ) THEN 775 k1 = 1.0 + 0.61 * q(k,j,i) 776 k2 = 0.61 * pt(k,j,i) 777 ELSE 778 theta = pt(k,j,i) + pt_d_t(k) * l_d_cp * ql(k,j,i) 779 temp = theta * t_d_pt(k) 780 k1 = ( 1.0 - q(k,j,i) + 1.61 * & 781 ( q(k,j,i) - ql(k,j,i) ) * & 782 ( 1.0 + 0.622 * l_d_r / temp ) ) / & 783 ( 1.0 + 0.622 * l_d_r * l_d_cp * & 784 ( q(k,j,i) - ql(k,j,i) ) / ( temp * temp ) ) 785 k2 = theta * ( l_d_cp / temp * k1 - 1.0 ) 786 ENDIF 787 ENDIF 788 789 tend(k,j,i) = tend(k,j,i) + g / vpt(k,j,i) * & 790 ( k1* tswst(j,i) + k2 * qswst(j,i) ) 791 ENDIF 792 722 793 ENDIF 723 794
Note: See TracChangeset
for help on using the changeset viewer.