Changeset 4514 for palm/trunk/SOURCE/sum_up_3d_data.f90
- Timestamp:
- Apr 30, 2020 4:29:59 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/sum_up_3d_data.f90
r4442 r4514 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Enable output of qsurf and ssurf 28 ! 29 ! 4442 2020-03-04 19:21:13Z suehring 27 30 ! Change order of dimension in surface array %frac to allow for better 28 31 ! vectorization. … … 77 80 USE averaging, & 78 81 ONLY: e_av, ghf_av, lpt_av, lwp_av, ol_av, p_av, pc_av, pr_av, pt_av, & 79 q_av, ql_av, ql_c_av, ql_v_av, ql_vp_av, qsws_av, & 80 qv_av, r_a_av, s_av, shf_av, ssws_av, ts_av, tsurf_av, u_av, & 82 q_av, ql_av, ql_c_av, ql_v_av, ql_vp_av, qsurf_av, qsws_av, & 83 qv_av, r_a_av, s_av, shf_av, ssurf_av, & 84 ssws_av, ts_av, tsurf_av, u_av, & 81 85 us_av, v_av, vpt_av, w_av, z0_av, z0h_av, z0q_av 82 86 … … 95 99 96 100 USE indices, & 97 ONLY: nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nzb, nzt 101 ONLY: nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nzb, nzt, & 102 topo_top_ind 98 103 99 104 USE kinds … … 232 237 ql_vp_av = 0.0_wp 233 238 239 CASE ( 'qsurf*' ) 240 IF ( .NOT. ALLOCATED( qsurf_av ) ) THEN 241 ALLOCATE( qsurf_av(nysg:nyng,nxlg:nxrg) ) 242 ENDIF 243 qsurf_av = 0.0_wp 244 234 245 CASE ( 'qsws*' ) 235 246 IF ( .NOT. ALLOCATED( qsws_av ) ) THEN … … 261 272 ENDIF 262 273 shf_av = 0.0_wp 263 274 275 CASE ( 'ssurf*' ) 276 IF ( .NOT. ALLOCATED( ssurf_av ) ) THEN 277 ALLOCATE( ssurf_av(nysg:nyng,nxlg:nxrg) ) 278 ENDIF 279 ssurf_av = 0.0_wp 280 264 281 CASE ( 'ssws*' ) 265 282 IF ( .NOT. ALLOCATED( ssws_av ) ) THEN … … 587 604 ENDIF 588 605 606 CASE ( 'qsurf*' ) 607 IF ( ALLOCATED( qsurf_av ) ) THEN 608 DO i = nxl, nxr 609 DO j = nys, nyn 610 match_def = surf_def_h(0)%start_index(j,i) <= & 611 surf_def_h(0)%end_index(j,i) 612 match_lsm = surf_lsm_h%start_index(j,i) <= & 613 surf_lsm_h%end_index(j,i) 614 match_usm = surf_usm_h%start_index(j,i) <= & 615 surf_usm_h%end_index(j,i) 616 617 IF ( match_def ) THEN 618 m = surf_def_h(0)%end_index(j,i) 619 qsurf_av(j,i) = qsurf_av(j,i) + & 620 surf_def_h(0)%q_surface(m) 621 ELSEIF ( match_lsm .AND. .NOT. match_usm ) THEN 622 m = surf_lsm_h%end_index(j,i) 623 qsurf_av(j,i) = qsurf_av(j,i) + & 624 surf_lsm_h%q_surface(m) 625 ELSEIF ( match_usm ) THEN 626 m = surf_usm_h%end_index(j,i) 627 qsurf_av(j,i) = qsurf_av(j,i) + & 628 surf_usm_h%q_surface(m) 629 ENDIF 630 ENDDO 631 ENDDO 632 ENDIF 633 589 634 CASE ( 'qsws*' ) 590 635 ! … … 703 748 ENDIF 704 749 750 CASE ( 'ssurf*' ) 751 IF ( ALLOCATED( ssurf_av ) ) THEN 752 DO i = nxl, nxr 753 DO j = nys, nyn 754 k = topo_top_ind(j,i,0) 755 ssurf_av(j,i) = ssurf_av(j,i) + s(k,j,i) 756 ENDDO 757 ENDDO 758 ENDIF 759 705 760 CASE ( 'ssws*' ) 706 761 IF ( ALLOCATED( ssws_av ) ) THEN
Note: See TracChangeset
for help on using the changeset viewer.