Changeset 4671 for palm/trunk/SOURCE/virtual_measurement_mod.f90
- Timestamp:
- Sep 9, 2020 8:27:58 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/virtual_measurement_mod.f90
r4645 r4671 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Implementation of downward facing USM and LSM surfaces 28 ! 29 ! 4645 2020-08-24 13:55:58Z suehring 27 30 ! Bugfix in output of E_UTM_soil coordinate 28 31 ! … … 1201 1204 DO j = nys, nyn 1202 1205 IF ( ANY( BTEST( meas_flag(:,j,i), 0 ) ) ) THEN 1203 IF ( surf_lsm_h %start_index(j,i) <= surf_lsm_h%end_index(j,i) ) THEN1206 IF ( surf_lsm_h(0)%start_index(j,i) <= surf_lsm_h(0)%end_index(j,i) ) THEN 1204 1207 vmea(l)%ns_soil = vmea(l)%ns_soil + nzt_soil - nzb_soil + 1 1205 1208 ENDIF 1206 IF ( surf_usm_h %start_index(j,i) <= surf_usm_h%end_index(j,i) ) THEN1209 IF ( surf_usm_h(0)%start_index(j,i) <= surf_usm_h(0)%end_index(j,i) ) THEN 1207 1210 vmea(l)%ns_soil = vmea(l)%ns_soil + nzt_wall - nzb_wall + 1 1208 1211 ENDIF … … 1226 1229 DO j = nys, nyn 1227 1230 IF ( ANY( BTEST( meas_flag(:,j,i), 0 ) ) ) THEN 1228 IF ( surf_lsm_h %start_index(j,i) <= surf_lsm_h%end_index(j,i) ) THEN1229 m = surf_lsm_h %start_index(j,i)1231 IF ( surf_lsm_h(0)%start_index(j,i) <= surf_lsm_h(0)%end_index(j,i) ) THEN 1232 m = surf_lsm_h(0)%start_index(j,i) 1230 1233 DO k = nzb_soil, nzt_soil 1231 1234 ns = ns + 1 … … 1237 1240 ENDIF 1238 1241 1239 IF ( surf_usm_h %start_index(j,i) <= surf_usm_h%end_index(j,i) ) THEN1240 m = surf_usm_h %start_index(j,i)1242 IF ( surf_usm_h(0)%start_index(j,i) <= surf_usm_h(0)%end_index(j,i) ) THEN 1243 m = surf_usm_h(0)%start_index(j,i) 1241 1244 DO k = nzb_wall, nzt_wall 1242 1245 ns = ns + 1 … … 1244 1247 vmea(l)%j_soil(ns) = j 1245 1248 vmea(l)%k_soil(ns) = k 1246 vmea(l)%depth(ns) = - surf_usm_h %zw(k,m)1249 vmea(l)%depth(ns) = - surf_usm_h(0)%zw(k,m) 1247 1250 ENDDO 1248 1251 ENDIF … … 2552 2555 vmea(l)%measured_vars(m,n) = surf_def_h(0)%us(mm) 2553 2556 ENDDO 2554 DO mm = surf_lsm_h %start_index(j,i), surf_lsm_h%end_index(j,i)2555 vmea(l)%measured_vars(m,n) = surf_lsm_h %us(mm)2556 ENDDO 2557 DO mm = surf_usm_h %start_index(j,i), surf_usm_h%end_index(j,i)2558 vmea(l)%measured_vars(m,n) = surf_usm_h %us(mm)2557 DO mm = surf_lsm_h(0)%start_index(j,i), surf_lsm_h(0)%end_index(j,i) 2558 vmea(l)%measured_vars(m,n) = surf_lsm_h(0)%us(mm) 2559 ENDDO 2560 DO mm = surf_usm_h(0)%start_index(j,i), surf_usm_h(0)%end_index(j,i) 2561 vmea(l)%measured_vars(m,n) = surf_usm_h(0)%us(mm) 2559 2562 ENDDO 2560 2563 ENDDO … … 2573 2576 vmea(l)%measured_vars(m,n) = surf_def_h(0)%ts(mm) 2574 2577 ENDDO 2575 DO mm = surf_lsm_h %start_index(j,i), surf_lsm_h%end_index(j,i)2576 vmea(l)%measured_vars(m,n) = surf_lsm_h %ts(mm)2577 ENDDO 2578 DO mm = surf_usm_h %start_index(j,i), surf_usm_h%end_index(j,i)2579 vmea(l)%measured_vars(m,n) = surf_usm_h %ts(mm)2578 DO mm = surf_lsm_h(0)%start_index(j,i), surf_lsm_h(0)%end_index(j,i) 2579 vmea(l)%measured_vars(m,n) = surf_lsm_h(0)%ts(mm) 2580 ENDDO 2581 DO mm = surf_usm_h(0)%start_index(j,i), surf_usm_h(0)%end_index(j,i) 2582 vmea(l)%measured_vars(m,n) = surf_usm_h(0)%ts(mm) 2580 2583 ENDDO 2581 2584 ENDDO … … 2594 2597 vmea(l)%measured_vars(m,n) = surf_def_h(0)%qsws(mm) 2595 2598 ENDDO 2596 DO mm = surf_lsm_h %start_index(j,i), surf_lsm_h%end_index(j,i)2597 vmea(l)%measured_vars(m,n) = surf_lsm_h %qsws(mm)2598 ENDDO 2599 DO mm = surf_usm_h %start_index(j,i), surf_usm_h%end_index(j,i)2600 vmea(l)%measured_vars(m,n) = surf_usm_h %qsws(mm)2599 DO mm = surf_lsm_h(0)%start_index(j,i), surf_lsm_h(0)%end_index(j,i) 2600 vmea(l)%measured_vars(m,n) = surf_lsm_h(0)%qsws(mm) 2601 ENDDO 2602 DO mm = surf_usm_h(0)%start_index(j,i), surf_usm_h(0)%end_index(j,i) 2603 vmea(l)%measured_vars(m,n) = surf_usm_h(0)%qsws(mm) 2601 2604 ENDDO 2602 2605 ENDDO … … 2615 2618 vmea(l)%measured_vars(m,n) = surf_def_h(0)%shf(mm) 2616 2619 ENDDO 2617 DO mm = surf_lsm_h %start_index(j,i), surf_lsm_h%end_index(j,i)2618 vmea(l)%measured_vars(m,n) = surf_lsm_h %shf(mm)2619 ENDDO 2620 DO mm = surf_usm_h %start_index(j,i), surf_usm_h%end_index(j,i)2621 vmea(l)%measured_vars(m,n) = surf_usm_h %shf(mm)2620 DO mm = surf_lsm_h(0)%start_index(j,i), surf_lsm_h(0)%end_index(j,i) 2621 vmea(l)%measured_vars(m,n) = surf_lsm_h(0)%shf(mm) 2622 ENDDO 2623 DO mm = surf_usm_h(0)%start_index(j,i), surf_usm_h(0)%end_index(j,i) 2624 vmea(l)%measured_vars(m,n) = surf_usm_h(0)%shf(mm) 2622 2625 ENDDO 2623 2626 ENDDO … … 2633 2636 i = MERGE( i , nxr, i < nxr ) 2634 2637 2635 DO mm = surf_lsm_h %start_index(j,i), surf_lsm_h%end_index(j,i)2636 vmea(l)%measured_vars(m,n) = surf_lsm_h %ghf(mm)2638 DO mm = surf_lsm_h(0)%start_index(j,i), surf_lsm_h(0)%end_index(j,i) 2639 vmea(l)%measured_vars(m,n) = surf_lsm_h(0)%ghf(mm) 2637 2640 ENDDO 2638 2641 ENDDO … … 2648 2651 ! i = MERGE( i , nxr, i < nxr ) 2649 2652 ! 2650 ! DO mm = surf_lsm_h %start_index(j,i), surf_lsm_h%end_index(j,i)2653 ! DO mm = surf_lsm_h(0)%start_index(j,i), surf_lsm_h(0)%end_index(j,i) 2651 2654 ! vmea(l)%measured_vars(m,n) = ? 2652 2655 ! ENDDO … … 2664 2667 i = MERGE( i , nxr, i < nxr ) 2665 2668 2666 DO mm = surf_lsm_h %start_index(j,i), surf_lsm_h%end_index(j,i)2667 vmea(l)%measured_vars(m,n) = surf_lsm_h %rad_net(mm)2669 DO mm = surf_lsm_h(0)%start_index(j,i), surf_lsm_h(0)%end_index(j,i) 2670 vmea(l)%measured_vars(m,n) = surf_lsm_h(0)%rad_net(mm) 2668 2671 ENDDO 2669 DO mm = surf_usm_h %start_index(j,i), surf_usm_h%end_index(j,i)2670 vmea(l)%measured_vars(m,n) = surf_usm_h %rad_net(mm)2672 DO mm = surf_usm_h(0)%start_index(j,i), surf_usm_h(0)%end_index(j,i) 2673 vmea(l)%measured_vars(m,n) = surf_usm_h(0)%rad_net(mm) 2671 2674 ENDDO 2672 2675 ENDDO … … 2684 2687 i = MERGE( i , nxr, i < nxr ) 2685 2688 2686 DO mm = surf_lsm_h %start_index(j,i), surf_lsm_h%end_index(j,i)2687 vmea(l)%measured_vars(m,n) = surf_lsm_h %rad_sw_out(mm)2689 DO mm = surf_lsm_h(0)%start_index(j,i), surf_lsm_h(0)%end_index(j,i) 2690 vmea(l)%measured_vars(m,n) = surf_lsm_h(0)%rad_sw_out(mm) 2688 2691 ENDDO 2689 DO mm = surf_usm_h %start_index(j,i), surf_usm_h%end_index(j,i)2690 vmea(l)%measured_vars(m,n) = surf_usm_h %rad_sw_out(mm)2692 DO mm = surf_usm_h(0)%start_index(j,i), surf_usm_h(0)%end_index(j,i) 2693 vmea(l)%measured_vars(m,n) = surf_usm_h(0)%rad_sw_out(mm) 2691 2694 ENDDO 2692 2695 ENDDO … … 2704 2707 i = MERGE( i , nxr, i < nxr ) 2705 2708 2706 DO mm = surf_lsm_h %start_index(j,i), surf_lsm_h%end_index(j,i)2707 vmea(l)%measured_vars(m,n) = surf_lsm_h %rad_sw_in(mm)2709 DO mm = surf_lsm_h(0)%start_index(j,i), surf_lsm_h(0)%end_index(j,i) 2710 vmea(l)%measured_vars(m,n) = surf_lsm_h(0)%rad_sw_in(mm) 2708 2711 ENDDO 2709 DO mm = surf_usm_h %start_index(j,i), surf_usm_h%end_index(j,i)2710 vmea(l)%measured_vars(m,n) = surf_usm_h %rad_sw_in(mm)2712 DO mm = surf_usm_h(0)%start_index(j,i), surf_usm_h(0)%end_index(j,i) 2713 vmea(l)%measured_vars(m,n) = surf_usm_h(0)%rad_sw_in(mm) 2711 2714 ENDDO 2712 2715 ENDDO … … 2724 2727 i = MERGE( i , nxr, i < nxr ) 2725 2728 2726 DO mm = surf_lsm_h %start_index(j,i), surf_lsm_h%end_index(j,i)2727 vmea(l)%measured_vars(m,n) = surf_lsm_h %rad_lw_out(mm)2729 DO mm = surf_lsm_h(0)%start_index(j,i), surf_lsm_h(0)%end_index(j,i) 2730 vmea(l)%measured_vars(m,n) = surf_lsm_h(0)%rad_lw_out(mm) 2728 2731 ENDDO 2729 DO mm = surf_usm_h %start_index(j,i), surf_usm_h%end_index(j,i)2730 vmea(l)%measured_vars(m,n) = surf_usm_h %rad_lw_out(mm)2732 DO mm = surf_usm_h(0)%start_index(j,i), surf_usm_h(0)%end_index(j,i) 2733 vmea(l)%measured_vars(m,n) = surf_usm_h(0)%rad_lw_out(mm) 2731 2734 ENDDO 2732 2735 ENDDO … … 2744 2747 i = MERGE( i , nxr, i < nxr ) 2745 2748 2746 DO mm = surf_lsm_h %start_index(j,i), surf_lsm_h%end_index(j,i)2747 vmea(l)%measured_vars(m,n) = surf_lsm_h %rad_lw_in(mm)2749 DO mm = surf_lsm_h(0)%start_index(j,i), surf_lsm_h(0)%end_index(j,i) 2750 vmea(l)%measured_vars(m,n) = surf_lsm_h(0)%rad_lw_in(mm) 2748 2751 ENDDO 2749 DO mm = surf_usm_h %start_index(j,i), surf_usm_h%end_index(j,i)2750 vmea(l)%measured_vars(m,n) = surf_usm_h %rad_lw_in(mm)2752 DO mm = surf_usm_h(0)%start_index(j,i), surf_usm_h(0)%end_index(j,i) 2753 vmea(l)%measured_vars(m,n) = surf_usm_h(0)%rad_lw_in(mm) 2751 2754 ENDDO 2752 2755 ENDDO … … 2853 2856 k = vmea(l)%k_soil(m) 2854 2857 2855 match_lsm = surf_lsm_h %start_index(j,i) <= surf_lsm_h%end_index(j,i)2856 match_usm = surf_usm_h %start_index(j,i) <= surf_usm_h%end_index(j,i)2858 match_lsm = surf_lsm_h(0)%start_index(j,i) <= surf_lsm_h(0)%end_index(j,i) 2859 match_usm = surf_usm_h(0)%start_index(j,i) <= surf_usm_h(0)%end_index(j,i) 2857 2860 2858 2861 IF ( match_lsm ) THEN 2859 mm = surf_lsm_h %start_index(j,i)2860 vmea(l)%measured_vars_soil(m,n) = t_soil_h %var_2d(k,mm)2862 mm = surf_lsm_h(0)%start_index(j,i) 2863 vmea(l)%measured_vars_soil(m,n) = t_soil_h(0)%var_2d(k,mm) 2861 2864 ENDIF 2862 2865 2863 2866 IF ( match_usm ) THEN 2864 mm = surf_usm_h %start_index(j,i)2865 vmea(l)%measured_vars_soil(m,n) = t_wall_h( k,mm)2867 mm = surf_usm_h(0)%start_index(j,i) 2868 vmea(l)%measured_vars_soil(m,n) = t_wall_h(0)%val(k,mm) 2866 2869 ENDIF 2867 2870 ENDDO … … 2875 2878 k = vmea(l)%k_soil(m) 2876 2879 2877 match_lsm = surf_lsm_h %start_index(j,i) <= surf_lsm_h%end_index(j,i)2880 match_lsm = surf_lsm_h(0)%start_index(j,i) <= surf_lsm_h(0)%end_index(j,i) 2878 2881 2879 2882 IF ( match_lsm ) THEN 2880 mm = surf_lsm_h %start_index(j,i)2881 vmea(l)%measured_vars_soil(m,n) = m_soil_h %var_2d(k,mm)2883 mm = surf_lsm_h(0)%start_index(j,i) 2884 vmea(l)%measured_vars_soil(m,n) = m_soil_h(0)%var_2d(k,mm) 2882 2885 ENDIF 2883 2886 … … 2897 2900 vmea(l)%measured_vars(m,n) = surf_def_h(0)%pt_surface(mm) 2898 2901 ENDDO 2899 DO mm = surf_lsm_h %start_index(j,i), surf_lsm_h%end_index(j,i)2900 vmea(l)%measured_vars(m,n) = surf_lsm_h %pt_surface(mm)2901 ENDDO 2902 DO mm = surf_usm_h %start_index(j,i), surf_usm_h%end_index(j,i)2903 vmea(l)%measured_vars(m,n) = surf_usm_h %pt_surface(mm)2902 DO mm = surf_lsm_h(0)%start_index(j,i), surf_lsm_h(0)%end_index(j,i) 2903 vmea(l)%measured_vars(m,n) = surf_lsm_h(0)%pt_surface(mm) 2904 ENDDO 2905 DO mm = surf_usm_h(0)%start_index(j,i), surf_usm_h(0)%end_index(j,i) 2906 vmea(l)%measured_vars(m,n) = surf_usm_h(0)%pt_surface(mm) 2904 2907 ENDDO 2905 2908 ENDDO … … 2935 2938 i = MERGE( i , nxr, i < nxr ) 2936 2939 2937 DO mm = surf_lsm_h %start_index(j,i), surf_lsm_h%end_index(j,i)2938 IF ( surf_lsm_h %water_surface(m) ) &2939 vmea(l)%measured_vars(m,n) = t_soil_h %var_2d(nzt,m)2940 DO mm = surf_lsm_h(0)%start_index(j,i), surf_lsm_h(0)%end_index(j,i) 2941 IF ( surf_lsm_h(0)%water_surface(m) ) & 2942 vmea(l)%measured_vars(m,n) = t_soil_h(0)%var_2d(nzt,m) 2940 2943 ENDDO 2941 2944
Note: See TracChangeset
for help on using the changeset viewer.