Changeset 359 for palm/trunk/SOURCE/init_3d_model.f90
- Timestamp:
- Aug 19, 2009 4:56:44 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/init_3d_model.f90
r333 r359 7 7 ! Current revisions: 8 8 ! ----------------- 9 ! bugfix: correction of initial volume flow for non-flat topography 10 ! bugfix: zero initialization of arrays within buildings for 'cyclic_fill' 9 11 ! bugfix: avoid that ngp_2dh_s_inner becomes zero 10 12 ! initializing_actions='read_data_for_recycling' renamed to 'cyclic_fill', now … … 485 487 DO j = nys, nyn 486 488 DO k = nzb + 1, nzb_u_inner(j,nx) 487 u_nzb_p1_for_vfc(j) = u1d(k) * dzu(k) 489 u_nzb_p1_for_vfc(j) = u_nzb_p1_for_vfc(j) + & 490 u1d(k) * dzu(k) 488 491 ENDDO 489 492 ENDDO … … 492 495 DO i = nxl, nxr 493 496 DO k = nzb + 1, nzb_v_inner(ny,i) 494 v_nzb_p1_for_vfc(i) = v1d(k) * dzu(k) 497 v_nzb_p1_for_vfc(i) = v_nzb_p1_for_vfc(i) + & 498 v1d(k) * dzu(k) 495 499 ENDDO 496 500 ENDDO … … 558 562 DO j = nys, nyn 559 563 DO k = nzb + 1, nzb_u_inner(j,nx) + 1 560 u_nzb_p1_for_vfc(j) = u_init(k) * dzu(k) 564 u_nzb_p1_for_vfc(j) = u_nzb_p1_for_vfc(j) + & 565 u_init(k) * dzu(k) 561 566 ENDDO 562 567 ENDDO … … 565 570 DO i = nxl, nxr 566 571 DO k = nzb + 1, nzb_v_inner(ny,i) + 1 567 v_nzb_p1_for_vfc(i) = v_init(k) * dzu(k) 572 v_nzb_p1_for_vfc(i) = v_nzb_p1_for_vfc(i) + & 573 v_init(k) * dzu(k) 568 574 ENDDO 569 575 ENDDO … … 1028 1034 1029 1035 ! 1036 !-- Inside buildings set velocities and TKE back to zero 1037 IF ( TRIM( initializing_actions ) == 'cyclic_fill' .AND. & 1038 topography /= 'flat' ) THEN 1039 ! 1040 !-- Correction of initial volume flow 1041 IF ( conserve_volume_flow ) THEN 1042 IF ( nxr == nx ) THEN 1043 DO j = nys, nyn 1044 DO k = nzb + 1, nzb_u_inner(j,nx) 1045 u_nzb_p1_for_vfc(j) = u_nzb_p1_for_vfc(j) + & 1046 u(k,j,nx) * dzu(k) 1047 ENDDO 1048 ENDDO 1049 ENDIF 1050 IF ( nyn == ny ) THEN 1051 DO i = nxl, nxr 1052 DO k = nzb + 1, nzb_v_inner(ny,i) 1053 v_nzb_p1_for_vfc(i) = v_nzb_p1_for_vfc(i) + & 1054 v(k,ny,i) * dzu(k) 1055 ENDDO 1056 ENDDO 1057 ENDIF 1058 ENDIF 1059 1060 ! 1061 !-- Inside buildings set velocities and TKE back to zero. 1062 !-- Other scalars (pt, q, s, km, kh, p, sa, ...) are ignored at present, 1063 !-- maybe revise later. 1064 IF ( timestep_scheme(1:5) == 'runge' ) THEN 1065 DO i = nxl-1, nxr+1 1066 DO j = nys-1, nyn+1 1067 u (nzb:nzb_u_inner(j,i),j,i) = 0.0 1068 v (nzb:nzb_v_inner(j,i),j,i) = 0.0 1069 w (nzb:nzb_w_inner(j,i),j,i) = 0.0 1070 e (nzb:nzb_w_inner(j,i),j,i) = 0.0 1071 u_m(nzb:nzb_u_inner(j,i),j,i) = 0.0 1072 v_m(nzb:nzb_v_inner(j,i),j,i) = 0.0 1073 w_m(nzb:nzb_w_inner(j,i),j,i) = 0.0 1074 e_m(nzb:nzb_w_inner(j,i),j,i) = 0.0 1075 tu_m(nzb:nzb_u_inner(j,i),j,i) = 0.0 1076 tv_m(nzb:nzb_v_inner(j,i),j,i) = 0.0 1077 tw_m(nzb:nzb_w_inner(j,i),j,i) = 0.0 1078 te_m(nzb:nzb_w_inner(j,i),j,i) = 0.0 1079 tpt_m(nzb:nzb_w_inner(j,i),j,i) = 0.0 1080 ENDDO 1081 ENDDO 1082 ELSE 1083 DO i = nxl-1, nxr+1 1084 DO j = nys-1, nyn+1 1085 u (nzb:nzb_u_inner(j,i),j,i) = 0.0 1086 v (nzb:nzb_v_inner(j,i),j,i) = 0.0 1087 w (nzb:nzb_w_inner(j,i),j,i) = 0.0 1088 e (nzb:nzb_w_inner(j,i),j,i) = 0.0 1089 u_m(nzb:nzb_u_inner(j,i),j,i) = 0.0 1090 v_m(nzb:nzb_v_inner(j,i),j,i) = 0.0 1091 w_m(nzb:nzb_w_inner(j,i),j,i) = 0.0 1092 e_m(nzb:nzb_w_inner(j,i),j,i) = 0.0 1093 u_p(nzb:nzb_u_inner(j,i),j,i) = 0.0 1094 v_p(nzb:nzb_v_inner(j,i),j,i) = 0.0 1095 w_p(nzb:nzb_w_inner(j,i),j,i) = 0.0 1096 e_p(nzb:nzb_w_inner(j,i),j,i) = 0.0 1097 ENDDO 1098 ENDDO 1099 ENDIF 1100 1101 ENDIF 1102 1103 ! 1030 1104 !-- Calculate the initial volume flow at the right and north boundary 1031 1105 IF ( conserve_volume_flow .AND. & … … 1043 1117 ENDDO 1044 1118 ! 1045 !-- Correction if velocity at nzb+1 has been set zero further above1046 !-- Note: at present, u_nzb_p1_for_vfc is zero (maybe revise later)1119 !-- Correction if velocity inside buildings has been set to zero 1120 !-- further above 1047 1121 volume_flow_initial_l(1) = volume_flow_initial_l(1) + & 1048 1122 u_nzb_p1_for_vfc(j) … … 1058 1132 ENDDO 1059 1133 ! 1060 !-- Correction if velocity at nzb+1 has been set zero further above1061 !-- Note: at present, v_nzb_p1_for_vfc is zero (maybe revise later)1134 !-- Correction if velocity inside buildings has been set to zero 1135 !-- further above 1062 1136 volume_flow_initial_l(2) = volume_flow_initial_l(2) + & 1063 1137 v_nzb_p1_for_vfc(i)
Note: See TracChangeset
for help on using the changeset viewer.