Changeset 1007 for palm/trunk/SOURCE/production_e.f90
- Timestamp:
- Sep 19, 2012 2:30:36 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/production_e.f90
r941 r1007 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! 6 ! Bugfix: calculation of buoyancy production has to consider the liquid water 7 ! mixing ratio in case of cloud droplets 7 8 ! 8 9 ! Former revisions: … … 164 165 165 166 tend(k,j,i) = tend(k,j,i) + km(k,j,i) * def 166 167 167 168 ENDDO 168 169 ENDDO … … 189 190 190 191 IF ( wall_e_y(j,i) /= 0.0 ) THEN 191 ! 192 ! 192 193 !-- Inconsistency removed: as the thermal stratification is 193 194 !-- not taken into account for the evaluation of the wall … … 219 220 220 221 IF ( wall_e_x(j,i) /= 0.0 ) THEN 221 ! 222 ! 222 223 !-- Inconsistency removed: as the thermal stratification is 223 224 !-- not taken into account for the evaluation of the wall … … 275 276 276 277 IF ( wall_e_y(j,i) /= 0.0 ) THEN 277 ! 278 ! 278 279 !-- Inconsistency removed: as the thermal stratification 279 280 !-- is not taken into account for the evaluation of the … … 301 302 302 303 IF ( wall_e_x(j,i) /= 0.0 ) THEN 303 ! 304 ! 304 305 !-- Inconsistency removed: as the thermal stratification 305 306 !-- is not taken into account for the evaluation of the … … 416 417 417 418 tend(k,j,i) = tend(k,j,i) + km(k,j,i) * def 418 419 419 420 ENDIF 420 421 … … 551 552 DO k = nzb_diff_s_inner(j,i), nzt_diff 552 553 553 IF ( .NOT. cloud_physics )THEN554 IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN 554 555 k1 = 1.0 + 0.61 * q(k,j,i) 555 556 k2 = 0.61 * pt(k,j,i) 556 ELSE 557 tend(k,j,i) = tend(k,j,i) - kh(k,j,i) * & 558 g / vpt(k,j,i) * & 559 ( k1 * ( pt(k+1,j,i)-pt(k-1,j,i) ) + & 560 k2 * ( q(k+1,j,i) - q(k-1,j,i) ) & 561 ) * dd2zu(k) 562 ELSE IF ( cloud_physics ) THEN 557 563 IF ( ql(k,j,i) == 0.0 ) THEN 558 564 k1 = 1.0 + 0.61 * q(k,j,i) … … 568 574 k2 = theta * ( l_d_cp / temp * k1 - 1.0 ) 569 575 ENDIF 570 ENDIF 571 572 tend(k,j,i) = tend(k,j,i) - kh(k,j,i) * g / vpt(k,j,i) * & 576 tend(k,j,i) = tend(k,j,i) - kh(k,j,i) * & 577 g / vpt(k,j,i) * & 573 578 ( k1 * ( pt(k+1,j,i)-pt(k-1,j,i) ) + & 574 579 k2 * ( q(k+1,j,i) - q(k-1,j,i) ) & 575 580 ) * dd2zu(k) 581 ELSE IF ( cloud_droplets ) THEN 582 k1 = 1.0 + 0.61 * q(k,j,i) - ql(k,j,i) 583 k2 = 0.61 * pt(k,j,i) 584 tend(k,j,i) = tend(k,j,i) - & 585 kh(k,j,i) * g / vpt(k,j,i) * & 586 ( k1 * ( pt(k+1,j,i)- pt(k-1,j,i) ) + & 587 k2 * ( q(k+1,j,i) - q(k-1,j,i) ) - & 588 pt(k,j,i) * ( ql(k+1,j,i) - & 589 ql(k-1,j,i) ) ) * dd2zu(k) 590 ENDIF 591 576 592 ENDDO 577 593 … … 584 600 k = nzb_diff_s_inner(j,i)-1 585 601 586 IF ( .NOT. cloud_physics )THEN602 IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN 587 603 k1 = 1.0 + 0.61 * q(k,j,i) 588 604 k2 = 0.61 * pt(k,j,i) 589 ELSE 605 ELSE IF ( cloud_physics ) THEN 590 606 IF ( ql(k,j,i) == 0.0 ) THEN 591 607 k1 = 1.0 + 0.61 * q(k,j,i) … … 601 617 k2 = theta * ( l_d_cp / temp * k1 - 1.0 ) 602 618 ENDIF 619 ELSE IF ( cloud_droplets ) THEN 620 k1 = 1.0 + 0.61 * q(k,j,i) - ql(k,j,i) 621 k2 = 0.61 * pt(k,j,i) 603 622 ENDIF 604 623 … … 615 634 k = nzt 616 635 617 IF ( .NOT. cloud_physics )THEN636 IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN 618 637 k1 = 1.0 + 0.61 * q(k,j,i) 619 638 k2 = 0.61 * pt(k,j,i) 620 ELSE 639 ELSE IF ( cloud_physics ) THEN 621 640 IF ( ql(k,j,i) == 0.0 ) THEN 622 641 k1 = 1.0 + 0.61 * q(k,j,i) … … 632 651 k2 = theta * ( l_d_cp / temp * k1 - 1.0 ) 633 652 ENDIF 653 ELSE IF ( cloud_droplets ) THEN 654 k1 = 1.0 + 0.61 * q(k,j,i) - ql(k,j,i) 655 k2 = 0.61 * pt(k,j,i) 634 656 ENDIF 635 657 … … 699 721 700 722 tend(k,j,i) = tend(k,j,i) + km(k,j,i) * def 701 723 702 724 ENDDO 703 725 … … 721 743 722 744 IF ( wall_e_y(j,i) /= 0.0 ) THEN 723 ! 745 ! 724 746 !-- Inconsistency removed: as the thermal stratification 725 747 !-- is not taken into account for the evaluation of the … … 751 773 752 774 IF ( wall_e_x(j,i) /= 0.0 ) THEN 753 ! 775 ! 754 776 !-- Inconsistency removed: as the thermal stratification 755 777 !-- is not taken into account for the evaluation of the … … 805 827 806 828 IF ( wall_e_y(j,i) /= 0.0 ) THEN 807 ! 829 ! 808 830 !-- Inconsistency removed: as the thermal stratification 809 831 !-- is not taken into account for the evaluation of the … … 831 853 832 854 IF ( wall_e_x(j,i) /= 0.0 ) THEN 833 ! 855 ! 834 856 !-- Inconsistency removed: as the thermal stratification 835 857 !-- is not taken into account for the evaluation of the … … 1041 1063 DO k = nzb_diff_s_inner(j,i), nzt_diff 1042 1064 1043 IF ( .NOT. cloud_physics ) THEN1065 IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN 1044 1066 k1 = 1.0 + 0.61 * q(k,j,i) 1045 1067 k2 = 0.61 * pt(k,j,i) 1046 ELSE 1068 tend(k,j,i) = tend(k,j,i) - kh(k,j,i) * g / vpt(k,j,i) * & 1069 ( k1 * ( pt(k+1,j,i)-pt(k-1,j,i) ) + & 1070 k2 * ( q(k+1,j,i) - q(k-1,j,i) ) & 1071 ) * dd2zu(k) 1072 ELSE IF ( cloud_physics ) THEN 1047 1073 IF ( ql(k,j,i) == 0.0 ) THEN 1048 1074 k1 = 1.0 + 0.61 * q(k,j,i) … … 1058 1084 k2 = theta * ( l_d_cp / temp * k1 - 1.0 ) 1059 1085 ENDIF 1060 ENDIF 1061 1062 tend(k,j,i) = tend(k,j,i) - kh(k,j,i) * g / vpt(k,j,i) * & 1086 tend(k,j,i) = tend(k,j,i) - kh(k,j,i) * g / vpt(k,j,i) * & 1063 1087 ( k1 * ( pt(k+1,j,i)-pt(k-1,j,i) ) + & 1064 1088 k2 * ( q(k+1,j,i) - q(k-1,j,i) ) & 1065 1089 ) * dd2zu(k) 1090 ELSE IF ( cloud_droplets ) THEN 1091 k1 = 1.0 + 0.61 * q(k,j,i) - ql(k,j,i) 1092 k2 = 0.61 * pt(k,j,i) 1093 tend(k,j,i) = tend(k,j,i) - kh(k,j,i) * g / vpt(k,j,i) * & 1094 ( k1 * ( pt(k+1,j,i)-pt(k-1,j,i) ) + & 1095 k2 * ( q(k+1,j,i) - q(k-1,j,i) ) - & 1096 pt(k,j,i) * ( ql(k+1,j,i) - & 1097 ql(k-1,j,i) ) ) * dd2zu(k) 1098 ENDIF 1066 1099 ENDDO 1067 1100 … … 1069 1102 k = nzb_diff_s_inner(j,i)-1 1070 1103 1071 IF ( .NOT. cloud_physics )THEN1104 IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN 1072 1105 k1 = 1.0 + 0.61 * q(k,j,i) 1073 1106 k2 = 0.61 * pt(k,j,i) 1074 ELSE 1107 ELSE IF ( cloud_physics ) THEN 1075 1108 IF ( ql(k,j,i) == 0.0 ) THEN 1076 1109 k1 = 1.0 + 0.61 * q(k,j,i) … … 1086 1119 k2 = theta * ( l_d_cp / temp * k1 - 1.0 ) 1087 1120 ENDIF 1121 ELSE IF ( cloud_droplets ) THEN 1122 k1 = 1.0 + 0.61 * q(k,j,i) - ql(k,j,i) 1123 k2 = 0.61 * pt(k,j,i) 1088 1124 ENDIF 1089 1125 … … 1095 1131 k = nzt 1096 1132 1097 IF ( .NOT. cloud_physics )THEN1133 IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN 1098 1134 k1 = 1.0 + 0.61 * q(k,j,i) 1099 1135 k2 = 0.61 * pt(k,j,i) 1100 ELSE 1136 ELSE IF ( cloud_physics ) THEN 1101 1137 IF ( ql(k,j,i) == 0.0 ) THEN 1102 1138 k1 = 1.0 + 0.61 * q(k,j,i) … … 1112 1148 k2 = theta * ( l_d_cp / temp * k1 - 1.0 ) 1113 1149 ENDIF 1150 ELSE IF ( cloud_droplets ) THEN 1151 k1 = 1.0 + 0.61 * q(k,j,i) - ql(k,j,i) 1152 k2 = 0.61 * pt(k,j,i) 1114 1153 ENDIF 1115 1154
Note: See TracChangeset
for help on using the changeset viewer.