Changeset 1551 for palm/trunk/SOURCE/flow_statistics.f90
- Timestamp:
- Mar 3, 2015 2:18:16 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/flow_statistics.f90
r1499 r1551 21 21 ! Current revisions: 22 22 ! ----------------- 23 ! 23 ! Added suppport for land surface model and radiation model output. 24 24 ! 25 25 ! Former revisions: … … 132 132 133 133 USE cloud_parameters, & 134 ONLY :l_d_cp, prr, pt_d_t134 ONLY: l_d_cp, prr, pt_d_t 135 135 136 136 USE control_parameters, & 137 ONLY :average_count_pr, cloud_droplets, cloud_physics, do_sum, &137 ONLY: average_count_pr, cloud_droplets, cloud_physics, do_sum, & 138 138 dt_3d, g, humidity, icloud_scheme, kappa, large_scale_forcing, & 139 139 large_scale_subsidence, max_pr_user, message_string, ocean, & … … 143 143 144 144 USE cpulog, & 145 ONLY :cpu_log, log_point145 ONLY: cpu_log, log_point 146 146 147 147 USE grid_variables, & 148 ONLY :ddx, ddy148 ONLY: ddx, ddy 149 149 150 150 USE indices, & 151 ONLY :ngp_2dh, ngp_2dh_s_inner, ngp_3d, ngp_3d_inner, ngp_sums, &151 ONLY: ngp_2dh, ngp_2dh_s_inner, ngp_3d, ngp_3d_inner, ngp_sums, & 152 152 ngp_sums_ls, nxl, nxr, nyn, nys, nzb, nzb_diff_s_inner, & 153 153 nzb_s_inner, nzt, nzt_diff … … 155 155 USE kinds 156 156 157 USE land_surface_model_mod, & 158 ONLY: dots_soil, ghf_eb, land_surface, m_soil, nzb_soil, nzt_soil, & 159 qsws_eb, qsws_liq_eb, qsws_soil_eb, qsws_veg_eb, shf_eb, & 160 t_soil 161 157 162 USE pegrid 163 164 USE radiation_model_mod, & 165 ONLY : dots_rad, rad_net, rad_sw_in, radiation 158 166 159 167 USE statistics … … 703 711 qsws(j,i) * rmask(j,i,sr) ! w"q" (w"qv") 704 712 ENDIF 713 ENDIF 714 715 IF ( land_surface ) THEN 716 sums_l(nzb,93,tn) = sums_l(nzb,93,tn) + ghf_eb(j,i) 717 sums_l(nzb,94,tn) = sums_l(nzb,94,tn) + shf_eb(j,i) 718 sums_l(nzb,95,tn) = sums_l(nzb,95,tn) + qsws_eb(j,i) 719 sums_l(nzb,96,tn) = sums_l(nzb,96,tn) + qsws_liq_eb(j,i) 720 sums_l(nzb,97,tn) = sums_l(nzb,97,tn) + qsws_soil_eb(j,i) 721 sums_l(nzb,98,tn) = sums_l(nzb,98,tn) + qsws_veg_eb(j,i) 722 ENDIF 723 724 IF ( radiation ) THEN 725 sums_l(nzb,99,tn) = sums_l(nzb,99,tn) + rad_net(j,i) 726 sums_l(nzb,100,tn) = sums_l(nzb,100,tn) + rad_sw_in(j,i) 705 727 ENDIF 706 728 … … 1074 1096 ENDIF 1075 1097 1098 1099 IF ( land_surface ) THEN 1100 !$OMP DO 1101 DO i = nxl, nxr 1102 DO j = nys, nyn 1103 DO k = nzb_soil, nzt_soil 1104 sums_l(k,89,tn) = sums_l(k,89,tn) + t_soil(k,j,i) * rmask(j,i,sr) 1105 sums_l(k,91,tn) = sums_l(k,91,tn) + m_soil(k,j,i) * rmask(j,i,sr) 1106 ENDDO 1107 ENDDO 1108 ENDDO 1109 ENDIF 1110 1111 1076 1112 ! 1077 1113 !-- Calculate the user-defined profiles … … 1133 1169 sums(k,70:80) = sums(k,70:80) / ngp_2dh_s_inner(k,sr) 1134 1170 sums(k,81:88) = sums(k,81:88) / ngp_2dh(sr) 1135 sums(k,89:pr_palm-2) = sums(k,89:pr_palm-2)/ ngp_2dh_s_inner(k,sr) 1171 sums(k,89:100) = sums(k,89:100) / ngp_2dh(sr) 1172 sums(k,101:pr_palm-2) = sums(k,101:pr_palm-2)/ ngp_2dh_s_inner(k,sr) 1136 1173 ENDDO 1137 1174 … … 1248 1285 ENDIF 1249 1286 1287 IF ( land_surface ) THEN 1288 hom(:,1,89,sr) = sums(:,89) ! t_soil 1289 ! 90 is initial t_soil profile 1290 hom(:,1,91,sr) = sums(:,91) ! m_soil 1291 ! 92 is initial m_soil profile 1292 hom(:,1,93,sr) = sums(:,93) ! ghf_eb 1293 hom(:,1,94,sr) = sums(:,94) ! shf_eb 1294 hom(:,1,95,sr) = sums(:,95) ! qsws_eb 1295 hom(:,1,96,sr) = sums(:,96) ! qsws_liq_eb 1296 hom(:,1,97,sr) = sums(:,97) ! qsws_soil_eb 1297 hom(:,1,98,sr) = sums(:,98) ! qsws_veg_eb 1298 ENDIF 1299 1300 IF ( radiation ) THEN 1301 hom(:,1,99 ,sr) = sums(:,99) ! rad_net 1302 hom(:,1,100,sr) = sums(:,100) ! rad_sw_in 1303 ENDIF 1304 1250 1305 hom(:,1,pr_palm-1,sr) = sums(:,pr_palm-1) 1251 1306 ! upstream-parts u_x, u_y, u_z, v_x, … … 1392 1447 1393 1448 ts_value(23,sr) = hom(nzb+12,1,pr_palm,sr) ! q* 1449 1450 ! 1451 !-- Collect land surface model timeseries 1452 IF ( land_surface ) THEN 1453 ts_value(dots_soil ,sr) = hom(nzb,1,93,sr) ! ghf_eb 1454 ts_value(dots_soil+1,sr) = hom(nzb,1,94,sr) ! shf_eb 1455 ts_value(dots_soil+2,sr) = hom(nzb,1,95,sr) ! qsws_eb 1456 ts_value(dots_soil+3,sr) = hom(nzb,1,96,sr) ! qsws_liq_eb 1457 ts_value(dots_soil+4,sr) = hom(nzb,1,97,sr) ! qsws_soil_eb 1458 ts_value(dots_soil+5,sr) = hom(nzb,1,98,sr) ! qsws_veg_eb 1459 ENDIF 1460 ! 1461 !-- Collect radiation model timeseries 1462 IF ( radiation ) THEN 1463 ts_value(dots_rad,sr) = hom(nzb,1,99,sr) ! rad_net 1464 ts_value(dots_rad+1,sr) = hom(nzb,1,100,sr) ! rad_sw_in 1465 ENDIF 1466 1394 1467 ! 1395 1468 !-- Calculate additional statistics provided by the user interface … … 2842 2915 ENDIF 2843 2916 2917 2918 IF ( land_surface ) THEN 2919 !$OMP DO 2920 DO i = nxl, nxr 2921 DO j = nys, nyn 2922 DO k = nzb_soil, nzt_soil 2923 sums_l(k,89,tn) = sums_l(k,89,tn) + t_soil(k,j,i) * rmask(j,i,sr) 2924 sums_l(k,91,tn) = sums_l(k,91,tn) + m_soil(k,j,i) * rmask(j,i,sr) 2925 ENDDO 2926 ENDDO 2927 ENDDO 2928 ENDIF 2929 2930 2844 2931 ! 2845 2932 !-- Calculate the user-defined profiles … … 2903 2990 sums(k,70:80) = sums(k,70:80) / ngp_2dh_s_inner(k,sr) 2904 2991 sums(k,81:88) = sums(k,81:88) / ngp_2dh(sr) 2905 sums(k,89:pr_palm-2) = sums(k,89:pr_palm-2)/ ngp_2dh_s_inner(k,sr) 2992 sums(k,89:100) = sums(k,89:100) / ngp_2dh(sr) 2993 sums(k,101:pr_palm-2) = sums(k,101:pr_palm-2)/ ngp_2dh_s_inner(k,sr) 2906 2994 ENDDO 2907 2995 … … 3162 3250 3163 3251 ts_value(23,sr) = hom(nzb+12,1,pr_palm,sr) ! q* 3252 3253 ! 3254 !-- Collect land surface model timeseries 3255 IF ( land_surface ) THEN 3256 ts_value(dots_soil ,sr) = hom(nzb,1,93,sr) ! ghf_eb 3257 ts_value(dots_soil+1,sr) = hom(nzb,1,94,sr) ! shf_eb 3258 ts_value(dots_soil+2,sr) = hom(nzb,1,95,sr) ! qsws_eb 3259 ts_value(dots_soil+3,sr) = hom(nzb,1,96,sr) ! qsws_liq_eb 3260 ts_value(dots_soil+4,sr) = hom(nzb,1,97,sr) ! qsws_soil_eb 3261 ts_value(dots_soil+5,sr) = hom(nzb,1,98,sr) ! qsws_veg_eb 3262 ENDIF 3263 ! 3264 !-- Collect radiation model timeseries 3265 IF ( radiation ) THEN 3266 ts_value(dots_rad,sr) = hom(nzb,1,99,sr) ! rad_net 3267 ts_value(dots_rad+1,sr) = hom(nzb,1,100,sr) ! rad_sw_in 3268 ENDIF 3269 3164 3270 ! 3165 3271 !-- Calculate additional statistics provided by the user interface
Note: See TracChangeset
for help on using the changeset viewer.