Changeset 3607 for palm/trunk/SOURCE/urban_surface_mod.f90
- Timestamp:
- Dec 7, 2018 11:56:58 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/urban_surface_mod.f90
r3597 r3607 28 28 ! ----------------- 29 29 ! $Id$ 30 ! Output of radiation-related quantities migrated to radiation_model_mod. 31 ! 32 ! 3597 2018-12-04 08:40:18Z maronga 30 33 ! Fixed calculation method of near surface air potential temperature at 10 cm 31 34 ! and moved to surface_layer_fluxes. Removed unnecessary _eb strings. … … 438 441 radiation, rad_sw_in, rad_lw_in, rad_sw_out, rad_lw_out, & 439 442 sigma_sb, sun_direction, sun_dir_lat, sun_dir_lon, & 440 force_radiation_call, surfinsw, surfinlw, surfinswdir, & 441 surfinswdif, surfoutsw, surfoutlw, surfins,nsvfl, svf, svfsurf, & 442 surfinl, surfinlwdif, rad_sw_in_dir, rad_sw_in_diff, & 443 rad_lw_in_diff, surfouts, surfoutl, surfoutsl, surfoutll, surf, & 444 surfl, nsurfl, pcbinsw, pcbinlw, pcbinswdir, & 445 pcbinswdif, iup_u, inorth_u, isouth_u, ieast_u, iwest_u, iup_l, & 446 inorth_l, isouth_l, ieast_l, iwest_l, id, & 443 force_radiation_call, iup_u, inorth_u, isouth_u, ieast_u, & 444 iwest_u, iup_l, inorth_l, isouth_l, ieast_l, iwest_l, id, & 447 445 iz, iy, ix, nsurf, idsvf, ndsvf, & 448 446 idcsf, ndcsf, kdcsf, pct, & 449 startland, endland, startwall, endwall, skyvf, skyvft, nzub, & 450 nzut, npcbl, pcbl, unscheduled_radiation_calls 447 nzub, nzut, unscheduled_radiation_calls 451 448 452 449 USE statistics, & … … 461 458 IMPLICIT NONE 462 459 463 460 ! 464 461 !-- USM model constants 465 462 466 463 REAL(wp), PARAMETER :: & 467 464 b_ch = 6.04_wp, & ! Clapp & Hornberger exponent 468 lambda_h_green_dry 469 lambda_h_green_sm 465 lambda_h_green_dry = 0.19_wp, & ! heat conductivity for dry soil 466 lambda_h_green_sm = 3.44_wp, & ! heat conductivity of the soil matrix 470 467 lambda_h_water = 0.57_wp, & ! heat conductivity of water 471 468 psi_sat = -0.388_wp, & ! soil matrix potential at saturation … … 965 962 !-- arrays for time averages 966 963 !-- Attention: the variable rad_net_av is also used in the 3d field variable in radiation_model_mod.f90. It may be better to rename it 967 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfinsw_av !< average of sw radiation falling to local surface including radiation from reflections968 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfinlw_av !< average of lw radiation falling to local surface including radiation from reflections969 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfinswdir_av !< average of direct sw radiation falling to local surface970 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfinswdif_av !< average of diffuse sw radiation from sky and model boundary falling to local surface971 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfinlwdif_av !< average of diffuse lw radiation from sky and model boundary falling to local surface972 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfinswref_av !< average of sw radiation falling to surface from reflections973 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfinlwref_av !< average of lw radiation falling to surface from reflections974 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfoutsw_av !< average of total sw radiation outgoing from nonvirtual surfaces surfaces after all reflection975 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfoutlw_av !< average of total lw radiation outgoing from nonvirtual surfaces surfaces after all reflection976 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfins_av !< average of array of residua of sw radiation absorbed in surface after last reflection977 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfinl_av !< average of array of residua of lw radiation absorbed in surface after last reflection978 REAL(wp), DIMENSION(:), ALLOCATABLE :: pcbinlw_av !< Average of pcbinlw979 REAL(wp), DIMENSION(:), ALLOCATABLE :: pcbinsw_av !< Average of pcbinsw980 REAL(wp), DIMENSION(:), ALLOCATABLE :: pcbinswdir_av !< Average of pcbinswdir981 REAL(wp), DIMENSION(:), ALLOCATABLE :: pcbinswdif_av !< Average of pcbinswdif982 REAL(wp), DIMENSION(:), ALLOCATABLE :: pcbinswref_av !< Average of pcbinswref983 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfhf_av !< average of total radiation flux incoming to minus outgoing from local surface984 964 REAL(wp), DIMENSION(:), ALLOCATABLE :: wghf_eb_av !< average of wghf_eb 985 965 REAL(wp), DIMENSION(:), ALLOCATABLE :: wshf_eb_av !< average of wshf_eb … … 1833 1813 1834 1814 SELECT CASE ( TRIM( var ) ) 1835 1836 CASE ( 'usm_rad_net' )1837 !-- array of complete radiation balance1838 IF ( l == -1 ) THEN1839 IF ( .NOT. ALLOCATED(surf_usm_h%rad_net_av) ) THEN1840 ALLOCATE( surf_usm_h%rad_net_av(1:surf_usm_h%ns) )1841 surf_usm_h%rad_net_av = 0.0_wp1842 ENDIF1843 ELSE1844 IF ( .NOT. ALLOCATED(surf_usm_v(l)%rad_net_av) ) THEN1845 ALLOCATE( surf_usm_v(l)%rad_net_av(1:surf_usm_v(l)%ns) )1846 surf_usm_v(l)%rad_net_av = 0.0_wp1847 ENDIF1848 ENDIF1849 1850 CASE ( 'usm_rad_insw' )1851 !-- array of sw radiation falling to surface after i-th reflection1852 IF ( .NOT. ALLOCATED(surfinsw_av) ) THEN1853 ALLOCATE( surfinsw_av(nsurfl) )1854 surfinsw_av = 0.0_wp1855 ENDIF1856 1857 CASE ( 'usm_rad_inlw' )1858 !-- array of lw radiation falling to surface after i-th reflection1859 IF ( .NOT. ALLOCATED(surfinlw_av) ) THEN1860 ALLOCATE( surfinlw_av(nsurfl) )1861 surfinlw_av = 0.0_wp1862 ENDIF1863 1864 CASE ( 'usm_rad_inswdir' )1865 !-- array of direct sw radiation falling to surface from sun1866 IF ( .NOT. ALLOCATED(surfinswdir_av) ) THEN1867 ALLOCATE( surfinswdir_av(nsurfl) )1868 surfinswdir_av = 0.0_wp1869 ENDIF1870 1871 CASE ( 'usm_rad_inswdif' )1872 !-- array of difusion sw radiation falling to surface from sky and borders of the domain1873 IF ( .NOT. ALLOCATED(surfinswdif_av) ) THEN1874 ALLOCATE( surfinswdif_av(nsurfl) )1875 surfinswdif_av = 0.0_wp1876 ENDIF1877 1878 CASE ( 'usm_rad_inswref' )1879 !-- array of sw radiation falling to surface from reflections1880 IF ( .NOT. ALLOCATED(surfinswref_av) ) THEN1881 ALLOCATE( surfinswref_av(nsurfl) )1882 surfinswref_av = 0.0_wp1883 ENDIF1884 1885 CASE ( 'usm_rad_inlwdif' )1886 !-- array of sw radiation falling to surface after i-th reflection1887 IF ( .NOT. ALLOCATED(surfinlwdif_av) ) THEN1888 ALLOCATE( surfinlwdif_av(nsurfl) )1889 surfinlwdif_av = 0.0_wp1890 ENDIF1891 1892 CASE ( 'usm_rad_inlwref' )1893 !-- array of lw radiation falling to surface from reflections1894 IF ( .NOT. ALLOCATED(surfinlwref_av) ) THEN1895 ALLOCATE( surfinlwref_av(nsurfl) )1896 surfinlwref_av = 0.0_wp1897 ENDIF1898 1899 CASE ( 'usm_rad_outsw' )1900 !-- array of sw radiation emitted from surface after i-th reflection1901 IF ( .NOT. ALLOCATED(surfoutsw_av) ) THEN1902 ALLOCATE( surfoutsw_av(nsurfl) )1903 surfoutsw_av = 0.0_wp1904 ENDIF1905 1906 CASE ( 'usm_rad_outlw' )1907 !-- array of lw radiation emitted from surface after i-th reflection1908 IF ( .NOT. ALLOCATED(surfoutlw_av) ) THEN1909 ALLOCATE( surfoutlw_av(nsurfl) )1910 surfoutlw_av = 0.0_wp1911 ENDIF1912 CASE ( 'usm_rad_ressw' )1913 !-- array of residua of sw radiation absorbed in surface after last reflection1914 IF ( .NOT. ALLOCATED(surfins_av) ) THEN1915 ALLOCATE( surfins_av(nsurfl) )1916 surfins_av = 0.0_wp1917 ENDIF1918 1919 CASE ( 'usm_rad_reslw' )1920 !-- array of residua of lw radiation absorbed in surface after last reflection1921 IF ( .NOT. ALLOCATED(surfinl_av) ) THEN1922 ALLOCATE( surfinl_av(nsurfl) )1923 surfinl_av = 0.0_wp1924 ENDIF1925 1926 CASE ( 'usm_rad_pc_inlw' )1927 !-- array of of lw radiation absorbed in plant canopy1928 IF ( .NOT. ALLOCATED(pcbinlw_av) ) THEN1929 ALLOCATE( pcbinlw_av(1:npcbl) )1930 pcbinlw_av = 0.0_wp1931 ENDIF1932 1933 CASE ( 'usm_rad_pc_insw' )1934 !-- array of of sw radiation absorbed in plant canopy1935 IF ( .NOT. ALLOCATED(pcbinsw_av) ) THEN1936 ALLOCATE( pcbinsw_av(1:npcbl) )1937 pcbinsw_av = 0.0_wp1938 ENDIF1939 1940 CASE ( 'usm_rad_pc_inswdir' )1941 !-- array of of direct sw radiation absorbed in plant canopy1942 IF ( .NOT. ALLOCATED(pcbinswdir_av) ) THEN1943 ALLOCATE( pcbinswdir_av(1:npcbl) )1944 pcbinswdir_av = 0.0_wp1945 ENDIF1946 1947 CASE ( 'usm_rad_pc_inswdif' )1948 !-- array of of diffuse sw radiation absorbed in plant canopy1949 IF ( .NOT. ALLOCATED(pcbinswdif_av) ) THEN1950 ALLOCATE( pcbinswdif_av(1:npcbl) )1951 pcbinswdif_av = 0.0_wp1952 ENDIF1953 1954 CASE ( 'usm_rad_pc_inswref' )1955 !-- array of of reflected sw radiation absorbed in plant canopy1956 IF ( .NOT. ALLOCATED(pcbinswref_av) ) THEN1957 ALLOCATE( pcbinswref_av(1:npcbl) )1958 pcbinswref_av = 0.0_wp1959 ENDIF1960 1961 CASE ( 'usm_rad_hf' )1962 !-- array of heat flux from radiation for surfaces after i-th reflection1963 IF ( l == -1 ) THEN1964 IF ( .NOT. ALLOCATED(surf_usm_h%surfhf_av) ) THEN1965 ALLOCATE( surf_usm_h%surfhf_av(1:surf_usm_h%ns) )1966 surf_usm_h%surfhf_av = 0.0_wp1967 ENDIF1968 ELSE1969 IF ( .NOT. ALLOCATED(surf_usm_v(l)%surfhf_av) ) THEN1970 ALLOCATE( surf_usm_v(l)%surfhf_av(1:surf_usm_v(l)%ns) )1971 surf_usm_v(l)%surfhf_av = 0.0_wp1972 ENDIF1973 ENDIF1974 1815 1975 1816 CASE ( 'usm_wshf' ) … … 2218 2059 2219 2060 SELECT CASE ( TRIM( var ) ) 2220 2221 CASE ( 'usm_rad_net' ) 2222 !-- array of complete radiation balance 2223 IF ( l == -1 ) THEN 2224 DO m = 1, surf_usm_h%ns 2225 surf_usm_h%rad_net_av(m) = & 2226 surf_usm_h%rad_net_av(m) + & 2227 surf_usm_h%rad_net_l(m) 2228 ENDDO 2229 ELSE 2230 DO m = 1, surf_usm_v(l)%ns 2231 surf_usm_v(l)%rad_net_av(m) = & 2232 surf_usm_v(l)%rad_net_av(m) + & 2233 surf_usm_v(l)%rad_net_l(m) 2234 ENDDO 2235 ENDIF 2236 2237 CASE ( 'usm_rad_insw' ) 2238 !-- array of sw radiation falling to surface after i-th reflection 2239 DO l = 1, nsurfl 2240 IF ( surfl(id,l) == idsint ) THEN 2241 surfinsw_av(l) = surfinsw_av(l) + surfinsw(l) 2242 ENDIF 2243 ENDDO 2244 2245 CASE ( 'usm_rad_inlw' ) 2246 !-- array of lw radiation falling to surface after i-th reflection 2247 DO l = 1, nsurfl 2248 IF ( surfl(id,l) == idsint ) THEN 2249 surfinlw_av(l) = surfinlw_av(l) + surfinlw(l) 2250 ENDIF 2251 ENDDO 2252 2253 CASE ( 'usm_rad_inswdir' ) 2254 !-- array of direct sw radiation falling to surface from sun 2255 DO l = 1, nsurfl 2256 IF ( surfl(id,l) == idsint ) THEN 2257 surfinswdir_av(l) = surfinswdir_av(l) + surfinswdir(l) 2258 ENDIF 2259 ENDDO 2260 2261 CASE ( 'usm_rad_inswdif' ) 2262 !-- array of difusion sw radiation falling to surface from sky and borders of the domain 2263 DO l = 1, nsurfl 2264 IF ( surfl(id,l) == idsint ) THEN 2265 surfinswdif_av(l) = surfinswdif_av(l) + surfinswdif(l) 2266 ENDIF 2267 ENDDO 2268 2269 CASE ( 'usm_rad_inswref' ) 2270 !-- array of sw radiation falling to surface from reflections 2271 DO l = 1, nsurfl 2272 IF ( surfl(id,l) == idsint ) THEN 2273 surfinswref_av(l) = surfinswref_av(l) + surfinsw(l) - & 2274 surfinswdir(l) - surfinswdif(l) 2275 ENDIF 2276 ENDDO 2277 2278 2279 CASE ( 'usm_rad_inlwdif' ) 2280 !-- array of sw radiation falling to surface after i-th reflection 2281 DO l = 1, nsurfl 2282 IF ( surfl(id,l) == idsint ) THEN 2283 surfinlwdif_av(l) = surfinlwdif_av(l) + surfinlwdif(l) 2284 ENDIF 2285 ENDDO 2286 ! 2287 CASE ( 'usm_rad_inlwref' ) 2288 !-- array of lw radiation falling to surface from reflections 2289 DO l = 1, nsurfl 2290 IF ( surfl(id,l) == idsint ) THEN 2291 surfinlwref_av(l) = surfinlwref_av(l) + & 2292 surfinlw(l) - surfinlwdif(l) 2293 ENDIF 2294 ENDDO 2295 2296 CASE ( 'usm_rad_outsw' ) 2297 !-- array of sw radiation emitted from surface after i-th reflection 2298 DO l = 1, nsurfl 2299 IF ( surfl(id,l) == idsint ) THEN 2300 surfoutsw_av(l) = surfoutsw_av(l) + surfoutsw(l) 2301 ENDIF 2302 ENDDO 2303 2304 CASE ( 'usm_rad_outlw' ) 2305 !-- array of lw radiation emitted from surface after i-th reflection 2306 DO l = 1, nsurfl 2307 IF ( surfl(id,l) == idsint ) THEN 2308 surfoutlw_av(l) = surfoutlw_av(l) + surfoutlw(l) 2309 ENDIF 2310 ENDDO 2311 2312 CASE ( 'usm_rad_ressw' ) 2313 !-- array of residua of sw radiation absorbed in surface after last reflection 2314 DO l = 1, nsurfl 2315 IF ( surfl(id,l) == idsint ) THEN 2316 surfins_av(l) = surfins_av(l) + surfins(l) 2317 ENDIF 2318 ENDDO 2319 2320 CASE ( 'usm_rad_reslw' ) 2321 !-- array of residua of lw radiation absorbed in surface after last reflection 2322 DO l = 1, nsurfl 2323 IF ( surfl(id,l) == idsint ) THEN 2324 surfinl_av(l) = surfinl_av(l) + surfinl(l) 2325 ENDIF 2326 ENDDO 2327 2328 CASE ( 'usm_rad_pc_inlw' ) 2329 pcbinlw_av(:) = pcbinlw_av(:) + pcbinlw(:) 2330 2331 CASE ( 'usm_rad_pc_insw' ) 2332 pcbinsw_av(:) = pcbinsw_av(:) + pcbinsw(:) 2333 2334 CASE ( 'usm_rad_pc_inswdir' ) 2335 pcbinswdir_av(:) = pcbinswdir_av(:) + pcbinswdir(:) 2336 2337 CASE ( 'usm_rad_pc_inswdif' ) 2338 pcbinswdif_av(:) = pcbinswdif_av(:) + pcbinswdif(:) 2339 2340 CASE ( 'usm_rad_pc_inswref' ) 2341 pcbinswref_av(:) = pcbinswref_av(:) + pcbinsw(:) & 2342 - pcbinswdir(:) & 2343 - pcbinswdif(:) 2344 2345 CASE ( 'usm_rad_hf' ) 2346 !-- array of heat flux from radiation for surfaces after i-th reflection 2347 IF ( l == -1 ) THEN 2348 DO m = 1, surf_usm_h%ns 2349 surf_usm_h%surfhf_av(m) = & 2350 surf_usm_h%surfhf_av(m) + & 2351 surf_usm_h%surfhf(m) 2352 ENDDO 2353 ELSE 2354 DO m = 1, surf_usm_v(l)%ns 2355 surf_usm_v(l)%surfhf_av(m) = & 2356 surf_usm_v(l)%surfhf_av(m) + & 2357 surf_usm_v(l)%surfhf(m) 2358 ENDDO 2359 ENDIF 2360 2061 2361 2062 CASE ( 'usm_wshf' ) 2362 2063 !-- array of sensible heat flux from surfaces (land, roof, wall) … … 2639 2340 2640 2341 SELECT CASE ( TRIM( var ) ) 2641 2642 CASE ( 'usm_rad_net' ) 2643 !-- array of complete radiation balance 2644 IF ( l == -1 ) THEN 2645 DO m = 1, surf_usm_h%ns 2646 surf_usm_h%rad_net_av(m) = & 2647 surf_usm_h%rad_net_av(m) / & 2648 REAL( average_count_3d, kind=wp ) 2649 ENDDO 2650 ELSE 2651 DO m = 1, surf_usm_v(l)%ns 2652 surf_usm_v(l)%rad_net_av(m) = & 2653 surf_usm_v(l)%rad_net_av(m) / & 2654 REAL( average_count_3d, kind=wp ) 2655 ENDDO 2656 ENDIF 2657 2658 CASE ( 'usm_rad_insw' ) 2659 !-- array of sw radiation falling to surface after i-th reflection 2660 DO l = 1, nsurfl 2661 IF ( surfl(id,l) == idsint ) THEN 2662 surfinsw_av(l) = surfinsw_av(l) / REAL( average_count_3d, kind=wp ) 2663 ENDIF 2664 ENDDO 2665 2666 CASE ( 'usm_rad_inlw' ) 2667 !-- array of lw radiation falling to surface after i-th reflection 2668 DO l = 1, nsurfl 2669 IF ( surfl(id,l) == idsint ) THEN 2670 surfinlw_av(l) = surfinlw_av(l) / REAL( average_count_3d, kind=wp ) 2671 ENDIF 2672 ENDDO 2673 2674 CASE ( 'usm_rad_inswdir' ) 2675 !-- array of direct sw radiation falling to surface from sun 2676 DO l = 1, nsurfl 2677 IF ( surfl(id,l) == idsint ) THEN 2678 surfinswdir_av(l) = surfinswdir_av(l) / REAL( average_count_3d, kind=wp ) 2679 ENDIF 2680 ENDDO 2681 2682 CASE ( 'usm_rad_inswdif' ) 2683 !-- array of difusion sw radiation falling to surface from sky and borders of the domain 2684 DO l = 1, nsurfl 2685 IF ( surfl(id,l) == idsint ) THEN 2686 surfinswdif_av(l) = surfinswdif_av(l) / REAL( average_count_3d, kind=wp ) 2687 ENDIF 2688 ENDDO 2689 2690 CASE ( 'usm_rad_inswref' ) 2691 !-- array of sw radiation falling to surface from reflections 2692 DO l = 1, nsurfl 2693 IF ( surfl(id,l) == idsint ) THEN 2694 surfinswref_av(l) = surfinswref_av(l) / REAL( average_count_3d, kind=wp ) 2695 ENDIF 2696 ENDDO 2697 2698 CASE ( 'usm_rad_inlwdif' ) 2699 !-- array of sw radiation falling to surface after i-th reflection 2700 DO l = 1, nsurfl 2701 IF ( surfl(id,l) == idsint ) THEN 2702 surfinlwdif_av(l) = surfinlwdif_av(l) / REAL( average_count_3d, kind=wp ) 2703 ENDIF 2704 ENDDO 2705 2706 CASE ( 'usm_rad_inlwref' ) 2707 !-- array of lw radiation falling to surface from reflections 2708 DO l = 1, nsurfl 2709 IF ( surfl(id,l) == idsint ) THEN 2710 surfinlwref_av(l) = surfinlwref_av(l) / REAL( average_count_3d, kind=wp ) 2711 ENDIF 2712 ENDDO 2713 2714 CASE ( 'usm_rad_outsw' ) 2715 !-- array of sw radiation emitted from surface after i-th reflection 2716 DO l = 1, nsurfl 2717 IF ( surfl(id,l) == idsint ) THEN 2718 surfoutsw_av(l) = surfoutsw_av(l) / REAL( average_count_3d, kind=wp ) 2719 ENDIF 2720 ENDDO 2721 2722 CASE ( 'usm_rad_outlw' ) 2723 !-- array of lw radiation emitted from surface after i-th reflection 2724 DO l = 1, nsurfl 2725 IF ( surfl(id,l) == idsint ) THEN 2726 surfoutlw_av(l) = surfoutlw_av(l) / REAL( average_count_3d, kind=wp ) 2727 ENDIF 2728 ENDDO 2729 2730 CASE ( 'usm_rad_ressw' ) 2731 !-- array of residua of sw radiation absorbed in surface after last reflection 2732 DO l = 1, nsurfl 2733 IF ( surfl(id,l) == idsint ) THEN 2734 surfins_av(l) = surfins_av(l) / REAL( average_count_3d, kind=wp ) 2735 ENDIF 2736 ENDDO 2737 2738 CASE ( 'usm_rad_reslw' ) 2739 !-- array of residua of lw radiation absorbed in surface after last reflection 2740 DO l = 1, nsurfl 2741 IF ( surfl(id,l) == idsint ) THEN 2742 surfinl_av(l) = surfinl_av(l) / REAL( average_count_3d, kind=wp ) 2743 ENDIF 2744 ENDDO 2745 2746 CASE ( 'usm_rad_pc_inlw' ) 2747 pcbinlw_av(:) = pcbinlw_av(:) / REAL( average_count_3d, kind=wp ) 2748 2749 CASE ( 'usm_rad_pc_insw' ) 2750 pcbinsw_av(:) = pcbinsw_av(:) / REAL( average_count_3d, kind=wp ) 2751 2752 CASE ( 'usm_rad_pc_inswdir' ) 2753 pcbinswdir_av(:) = pcbinswdir_av(:) / REAL( average_count_3d, kind=wp ) 2754 2755 CASE ( 'usm_rad_pc_inswdif' ) 2756 pcbinswdif_av(:) = pcbinswdif_av(:) / REAL( average_count_3d, kind=wp ) 2757 2758 CASE ( 'usm_rad_pc_inswref' ) 2759 pcbinswref_av(:) = pcbinswref_av(:) / REAL( average_count_3d, kind=wp ) 2760 2761 CASE ( 'usm_rad_hf' ) 2762 !-- array of heat flux from radiation for surfaces after i-th reflection 2763 IF ( l == -1 ) THEN 2764 DO m = 1, surf_usm_h%ns 2765 surf_usm_h%surfhf_av(m) = & 2766 surf_usm_h%surfhf_av(m) / & 2767 REAL( average_count_3d, kind=wp ) 2768 ENDDO 2769 ELSE 2770 DO m = 1, surf_usm_v(l)%ns 2771 surf_usm_v(l)%surfhf_av(m) = & 2772 surf_usm_v(l)%surfhf_av(m) / & 2773 REAL( average_count_3d, kind=wp ) 2774 ENDDO 2775 ENDIF 2776 2342 2777 2343 CASE ( 'usm_wshf' ) 2778 2344 !-- array of sensible heat flux from surfaces (land, roof, wall) … … 3115 2681 CHARACTER(LEN=2) :: ls 3116 2682 CHARACTER(LEN=varnamelength) :: var !< TRIM(variable) 3117 INTEGER(iwp), PARAMETER :: nl1 = 31!< number of directional usm variables2683 INTEGER(iwp), PARAMETER :: nl1 = 16 !< number of directional usm variables 3118 2684 CHARACTER(LEN=varnamelength), DIMENSION(nl1) :: varlist1 = & !< list of directional usm variables 3119 (/'usm_rad_net ', & 3120 'usm_rad_insw ', & 3121 'usm_rad_inlw ', & 3122 'usm_rad_inswdir ', & 3123 'usm_rad_inswdif ', & 3124 'usm_rad_inswref ', & 3125 'usm_rad_inlwdif ', & 3126 'usm_wshf ', & 3127 'usm_rad_inlwref ', & 3128 'usm_rad_outsw ', & 3129 'usm_rad_outlw ', & 3130 'usm_rad_hf ', & 3131 'usm_rad_ressw ', & 3132 'usm_rad_reslw ', & 2685 (/'usm_wshf ', & 3133 2686 'usm_wghf ', & 3134 2687 'usm_wghf_window ', & … … 3145 2698 'usm_t_surf_green ', & 3146 2699 'usm_t_green ', & 3147 'usm_theta_10cm ', & 3148 'usm_skyvf ', & 3149 'usm_skyvft '/) 3150 3151 INTEGER(iwp), PARAMETER :: nl2 = 7 !< number of other variables 3152 CHARACTER(LEN=varnamelength), DIMENSION(nl2) :: varlist2 = & !< list of other usm variables 3153 (/'usm_svf ', & 3154 'usm_dif ', & 3155 'usm_rad_pc_inlw ', & 3156 'usm_rad_pc_insw ', & 3157 'usm_rad_pc_inswdir ', & 3158 'usm_rad_pc_inswdif ', & 3159 'usm_rad_pc_inswref '/) 3160 3161 INTEGER(iwp), PARAMETER :: nl3 = 3 !< number of directional layer usm variables 3162 CHARACTER(LEN=varnamelength), DIMENSION(nl3) :: varlist3 = & !< list of directional layer usm variables 2700 'usm_theta_10cm '/) 2701 2702 INTEGER(iwp), PARAMETER :: nl2 = 3 !< number of directional layer usm variables 2703 CHARACTER(LEN=varnamelength), DIMENSION(nl2) :: varlist2 = & !< list of directional layer usm variables 3163 2704 (/'usm_t_wall ', & 3164 2705 'usm_t_window ', & … … 3188 2729 IF ( lfound ) GOTO 10 3189 2730 ! directional layer variables 3190 DO i = 1, nl 32731 DO i = 1, nl2 3191 2732 DO j = 1, nd 3192 2733 DO l = nzb_wall, nzt_wall 3193 2734 WRITE(ls,'(A1,I1)') '_',l 3194 IF ( TRIM(var) == TRIM(varlist 3(i))//TRIM(ls)//TRIM(dirname(j)) ) THEN2735 IF ( TRIM(var) == TRIM(varlist2(i))//TRIM(ls)//TRIM(dirname(j)) ) THEN 3195 2736 lfound = .TRUE. 3196 2737 EXIT … … 3200 2741 ENDDO 3201 2742 ENDDO 3202 IF ( lfound ) GOTO 103203 ! other variables3204 DO i = 1, nl23205 IF ( TRIM(var) == TRIM(varlist2(i)) ) THEN3206 lfound = .TRUE.3207 EXIT3208 ENDIF3209 ENDDO3210 2743 IF ( .NOT. lfound ) THEN 3211 2744 unit = 'illegal' … … 3214 2747 10 CONTINUE 3215 2748 3216 IF ( var(1:12) == 'usm_rad_net_' .OR. var(1:13) == 'usm_rad_insw_' .OR. & 3217 var(1:13) == 'usm_rad_inlw_' .OR. var(1:16) == 'usm_rad_inswdir_' .OR. & 3218 var(1:16) == 'usm_rad_inswdif_' .OR. var(1:16) == 'usm_rad_inswref_' .OR. & 3219 var(1:16) == 'usm_rad_inlwdif_' .OR. var(1:16) == 'usm_rad_inlwref_' .OR. & 3220 var(1:14) == 'usm_rad_outsw_' .OR. var(1:14) == 'usm_rad_outlw_' .OR. & 3221 var(1:14) == 'usm_rad_ressw_' .OR. var(1:14) == 'usm_rad_reslw_' .OR. & 3222 var(1:11) == 'usm_rad_hf_' .OR. & 3223 var(1:9) == 'usm_wshf_' .OR. var(1:9) == 'usm_wghf_' .OR. & 2749 IF ( var(1:9) == 'usm_wshf_' .OR. var(1:9) == 'usm_wghf_' .OR. & 3224 2750 var(1:16) == 'usm_wghf_window_' .OR. var(1:15) == 'usm_wghf_green_' .OR. & 3225 2751 var(1:10) == 'usm_iwghf_' .OR. var(1:17) == 'usm_iwghf_window_' .OR. & … … 3234 2760 var(1:14) == 'usm_theta_10cm' ) THEN 3235 2761 unit = 'K' 3236 ELSE IF ( var == 'usm_rad_pc_inlw' .OR. var == 'usm_rad_pc_insw' .OR. & 3237 var == 'usm_rad_pc_inswdir' .OR. var == 'usm_rad_pc_inswdif' .OR. & 3238 var == 'usm_rad_pc_inswref' ) THEN 3239 unit = 'W' 3240 ELSE IF ( var(1:9) == 'usm_surfz' .OR. var(1:7) == 'usm_svf' .OR. & 3241 var(1:7) == 'usm_dif' .OR. var(1:11) == 'usm_surfcat' .OR. & 3242 var(1:11) == 'usm_surfalb' .OR. var(1:12) == 'usm_surfemis' .OR. & 3243 var(1:9) == 'usm_skyvf' .OR. var(1:9) == 'usm_skyvft' ) THEN 2762 ELSE IF ( var(1:9) == 'usm_surfz' .OR. var(1:11) == 'usm_surfcat' .OR. & 2763 var(1:11) == 'usm_surfalb' .OR. var(1:12) == 'usm_surfemis' ) THEN 3244 2764 unit = '1' 3245 2765 ELSE … … 3336 2856 INTEGER(iwp), DIMENSION(0:nd-1), PARAMETER :: diridx = (/ -1, 1, 0, 3, 2 /) 3337 2857 !< index for surf_*_v: 0:3 = (North, South, East, West) 3338 INTEGER(iwp), DIMENSION(0:nd-1) :: dirstart3339 INTEGER(iwp), DIMENSION(0:nd-1) :: dirend3340 2858 INTEGER(iwp) :: ids,idsint,idsidx,isurf,isvf,isurfs,isurflt,ipcgb 3341 2859 INTEGER(iwp) :: is,js,ks,i,j,k,iwl,istat, l, m 3342 3343 dirstart = (/ startland, startwall, startwall, startwall, startwall /)3344 dirend = (/ endland, endwall, endwall, endwall, endwall /)3345 2860 3346 2861 found = .TRUE. … … 3388 2903 READ(var(9:9), '(I1)', iostat=istat ) iwl 3389 2904 IF ( istat == 0 .AND. iwl >= nzb_wall .AND. iwl <= nzt_wall ) THEN 3390 var = var(1:7)3391 ENDIF3392 ENDIF3393 IF ( (var(1:8) == 'usm_svf_' .OR. var(1:8) == 'usm_dif_') .AND. len(TRIM(var)) >= 13 ) THEN3394 !-- svf values to particular surface3395 surfid = var(9:)3396 i = index(surfid,'_')3397 j = index(surfid(i+1:),'_')3398 READ(surfid(1:i-1),*, iostat=istat ) is3399 IF ( istat == 0 ) THEN3400 READ(surfid(i+1:i+j-1),*, iostat=istat ) js3401 ENDIF3402 IF ( istat == 0 ) THEN3403 READ(surfid(i+j+1:),*, iostat=istat ) ks3404 ENDIF3405 IF ( istat == 0 ) THEN3406 2905 var = var(1:7) 3407 2906 ENDIF … … 3525 3024 ENDIF 3526 3025 3527 CASE ( 'usm_skyvf' )3528 !-- sky view factor3529 DO isurf = dirstart(ids), dirend(ids)3530 IF ( surfl(id,isurf) == idsint ) THEN3531 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = skyvf(isurf)3532 ENDIF3533 ENDDO3534 3535 CASE ( 'usm_skyvft' )3536 !-- sky view factor3537 DO isurf = dirstart(ids), dirend(ids)3538 IF ( surfl(id,isurf) == ids ) THEN3539 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = skyvft(isurf)3540 ENDIF3541 ENDDO3542 3543 !3544 !-- Not adjusted so far3545 CASE ( 'usm_svf', 'usm_dif' )3546 !-- shape view factors or iradiance factors to selected surface3547 IF ( TRIM(var)=='usm_svf' ) THEN3548 k = 13549 ELSE3550 k = 23551 ENDIF3552 DO isvf = 1, nsvfl3553 isurflt = svfsurf(1, isvf)3554 isurfs = svfsurf(2, isvf)3555 3556 IF ( surf(ix,isurfs) == is .AND. surf(iy,isurfs) == js .AND. &3557 surf(iz,isurfs) == ks .AND. surf(id,isurfs) == idsint ) THEN3558 !-- correct source surface3559 temp_pf(surfl(iz,isurflt),surfl(iy,isurflt),surfl(ix,isurflt)) = svf(k,isvf)3560 ENDIF3561 ENDDO3562 3563 CASE ( 'usm_rad_net' )3564 !-- array of complete radiation balance3565 IF ( av == 0 ) THEN3566 IF ( idsint == iup_u ) THEN3567 DO m = 1, surf_usm_h%ns3568 i = surf_usm_h%i(m)3569 j = surf_usm_h%j(m)3570 k = surf_usm_h%k(m)3571 temp_pf(k,j,i) = surf_usm_h%rad_net_l(m)3572 ENDDO3573 ELSE3574 l = idsidx3575 DO m = 1, surf_usm_v(l)%ns3576 i = surf_usm_v(l)%i(m)3577 j = surf_usm_v(l)%j(m)3578 k = surf_usm_v(l)%k(m)3579 temp_pf(k,j,i) = surf_usm_v(l)%rad_net_l(m)3580 ENDDO3581 ENDIF3582 ELSE3583 IF ( idsint == iup_u ) THEN3584 DO m = 1, surf_usm_h%ns3585 i = surf_usm_h%i(m)3586 j = surf_usm_h%j(m)3587 k = surf_usm_h%k(m)3588 temp_pf(k,j,i) = surf_usm_h%rad_net_av(m)3589 ENDDO3590 ELSE3591 l = idsidx3592 DO m = 1, surf_usm_v(l)%ns3593 i = surf_usm_v(l)%i(m)3594 j = surf_usm_v(l)%j(m)3595 k = surf_usm_v(l)%k(m)3596 temp_pf(k,j,i) = surf_usm_v(l)%rad_net_av(m)3597 ENDDO3598 ENDIF3599 ENDIF3600 3601 CASE ( 'usm_rad_insw' )3602 !-- array of sw radiation falling to surface after i-th reflection3603 DO isurf = dirstart(ids), dirend(ids)3604 IF ( surfl(id,isurf) == idsint ) THEN3605 IF ( av == 0 ) THEN3606 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfinsw(isurf)3607 ELSE3608 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfinsw_av(isurf)3609 ENDIF3610 ENDIF3611 ENDDO3612 3613 CASE ( 'usm_rad_inlw' )3614 !-- array of lw radiation falling to surface after i-th reflection3615 DO isurf = dirstart(ids), dirend(ids)3616 IF ( surfl(id,isurf) == idsint ) THEN3617 IF ( av == 0 ) THEN3618 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfinlw(isurf)3619 ELSE3620 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfinlw_av(isurf)3621 ENDIF3622 ENDIF3623 ENDDO3624 3625 CASE ( 'usm_rad_inswdir' )3626 !-- array of direct sw radiation falling to surface from sun3627 DO isurf = dirstart(ids), dirend(ids)3628 IF ( surfl(id,isurf) == idsint ) THEN3629 IF ( av == 0 ) THEN3630 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfinswdir(isurf)3631 ELSE3632 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfinswdir_av(isurf)3633 ENDIF3634 ENDIF3635 ENDDO3636 3637 CASE ( 'usm_rad_inswdif' )3638 !-- array of difusion sw radiation falling to surface from sky and borders of the domain3639 DO isurf = dirstart(ids), dirend(ids)3640 IF ( surfl(id,isurf) == idsint ) THEN3641 IF ( av == 0 ) THEN3642 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfinswdif(isurf)3643 ELSE3644 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfinswdif_av(isurf)3645 ENDIF3646 ENDIF3647 ENDDO3648 3649 CASE ( 'usm_rad_inswref' )3650 !-- array of sw radiation falling to surface from reflections3651 DO isurf = dirstart(ids), dirend(ids)3652 IF ( surfl(id,isurf) == idsint ) THEN3653 IF ( av == 0 ) THEN3654 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = &3655 surfinsw(isurf) - surfinswdir(isurf) - surfinswdif(isurf)3656 ELSE3657 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfinswref_av(isurf)3658 ENDIF3659 ENDIF3660 ENDDO3661 3662 CASE ( 'usm_rad_inlwdif' )3663 !-- array of difusion lw radiation falling to surface from sky and borders of the domain3664 DO isurf = dirstart(ids), dirend(ids)3665 IF ( surfl(id,isurf) == idsint ) THEN3666 IF ( av == 0 ) THEN3667 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfinlwdif(isurf)3668 ELSE3669 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfinlwdif_av(isurf)3670 ENDIF3671 ENDIF3672 ENDDO3673 3674 CASE ( 'usm_rad_inlwref' )3675 !-- array of lw radiation falling to surface from reflections3676 DO isurf = dirstart(ids), dirend(ids)3677 IF ( surfl(id,isurf) == idsint ) THEN3678 IF ( av == 0 ) THEN3679 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfinlw(isurf) - surfinlwdif(isurf)3680 ELSE3681 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfinlwref_av(isurf)3682 ENDIF3683 ENDIF3684 ENDDO3685 3686 CASE ( 'usm_rad_outsw' )3687 !-- array of sw radiation emitted from surface after i-th reflection3688 DO isurf = dirstart(ids), dirend(ids)3689 IF ( surfl(id,isurf) == idsint ) THEN3690 IF ( av == 0 ) THEN3691 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfoutsw(isurf)3692 ELSE3693 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfoutsw_av(isurf)3694 ENDIF3695 ENDIF3696 ENDDO3697 3698 CASE ( 'usm_rad_outlw' )3699 !-- array of lw radiation emitted from surface after i-th reflection3700 DO isurf = dirstart(ids), dirend(ids)3701 IF ( surfl(id,isurf) == idsint ) THEN3702 IF ( av == 0 ) THEN3703 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfoutlw(isurf)3704 ELSE3705 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfoutlw_av(isurf)3706 ENDIF3707 ENDIF3708 ENDDO3709 3710 CASE ( 'usm_rad_ressw' )3711 !-- average of array of residua of sw radiation absorbed in surface after last reflection3712 DO isurf = dirstart(ids), dirend(ids)3713 IF ( surfl(id,isurf) == idsint ) THEN3714 IF ( av == 0 ) THEN3715 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfins(isurf)3716 ELSE3717 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfins_av(isurf)3718 ENDIF3719 ENDIF3720 ENDDO3721 3722 CASE ( 'usm_rad_reslw' )3723 !-- average of array of residua of lw radiation absorbed in surface after last reflection3724 DO isurf = dirstart(ids), dirend(ids)3725 IF ( surfl(id,isurf) == idsint ) THEN3726 IF ( av == 0 ) THEN3727 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfinl(isurf)3728 ELSE3729 temp_pf(surfl(iz,isurf),surfl(iy,isurf),surfl(ix,isurf)) = surfinl_av(isurf)3730 ENDIF3731 ENDIF3732 ENDDO3733 3734 CASE ( 'usm_rad_pc_inlw' )3735 !-- array of lw radiation absorbed by plant canopy3736 DO ipcgb = 1, npcbl3737 IF ( av == 0 ) THEN3738 temp_pf(pcbl(iz,ipcgb),pcbl(iy,ipcgb),pcbl(ix,ipcgb)) = pcbinlw(ipcgb)3739 ELSE3740 temp_pf(pcbl(iz,ipcgb),pcbl(iy,ipcgb),pcbl(ix,ipcgb)) = pcbinlw_av(ipcgb)3741 ENDIF3742 ENDDO3743 3744 CASE ( 'usm_rad_pc_insw' )3745 !-- array of sw radiation absorbed by plant canopy3746 DO ipcgb = 1, npcbl3747 IF ( av == 0 ) THEN3748 temp_pf(pcbl(iz,ipcgb),pcbl(iy,ipcgb),pcbl(ix,ipcgb)) = pcbinsw(ipcgb)3749 ELSE3750 temp_pf(pcbl(iz,ipcgb),pcbl(iy,ipcgb),pcbl(ix,ipcgb)) = pcbinsw_av(ipcgb)3751 ENDIF3752 ENDDO3753 3754 CASE ( 'usm_rad_pc_inswdir' )3755 !-- array of direct sw radiation absorbed by plant canopy3756 DO ipcgb = 1, npcbl3757 IF ( av == 0 ) THEN3758 temp_pf(pcbl(iz,ipcgb),pcbl(iy,ipcgb),pcbl(ix,ipcgb)) = pcbinswdir(ipcgb)3759 ELSE3760 temp_pf(pcbl(iz,ipcgb),pcbl(iy,ipcgb),pcbl(ix,ipcgb)) = pcbinswdir_av(ipcgb)3761 ENDIF3762 ENDDO3763 3764 CASE ( 'usm_rad_pc_inswdif' )3765 !-- array of diffuse sw radiation absorbed by plant canopy3766 DO ipcgb = 1, npcbl3767 IF ( av == 0 ) THEN3768 temp_pf(pcbl(iz,ipcgb),pcbl(iy,ipcgb),pcbl(ix,ipcgb)) = pcbinswdif(ipcgb)3769 ELSE3770 temp_pf(pcbl(iz,ipcgb),pcbl(iy,ipcgb),pcbl(ix,ipcgb)) = pcbinswdif_av(ipcgb)3771 ENDIF3772 ENDDO3773 3774 CASE ( 'usm_rad_pc_inswref' )3775 !-- array of reflected sw radiation absorbed by plant canopy3776 DO ipcgb = 1, npcbl3777 IF ( av == 0 ) THEN3778 temp_pf(pcbl(iz,ipcgb),pcbl(iy,ipcgb),pcbl(ix,ipcgb)) = pcbinsw(ipcgb) &3779 - pcbinswdir(ipcgb) &3780 - pcbinswdif(ipcgb)3781 ELSE3782 temp_pf(pcbl(iz,ipcgb),pcbl(iy,ipcgb),pcbl(ix,ipcgb)) = pcbinswref_av(ipcgb)3783 ENDIF3784 ENDDO3785 3786 CASE ( 'usm_rad_hf' )3787 !-- array of heat flux from radiation for surfaces after all reflections3788 IF ( av == 0 ) THEN3789 IF ( idsint == iup_u ) THEN3790 DO m = 1, surf_usm_h%ns3791 i = surf_usm_h%i(m)3792 j = surf_usm_h%j(m)3793 k = surf_usm_h%k(m)3794 temp_pf(k,j,i) = surf_usm_h%surfhf(m)3795 ENDDO3796 ELSE3797 l = idsidx3798 DO m = 1, surf_usm_v(l)%ns3799 i = surf_usm_v(l)%i(m)3800 j = surf_usm_v(l)%j(m)3801 k = surf_usm_v(l)%k(m)3802 temp_pf(k,j,i) = surf_usm_v(l)%surfhf(m)3803 ENDDO3804 ENDIF3805 ELSE3806 IF ( idsint == iup_u ) THEN3807 DO m = 1, surf_usm_h%ns3808 i = surf_usm_h%i(m)3809 j = surf_usm_h%j(m)3810 k = surf_usm_h%k(m)3811 temp_pf(k,j,i) = surf_usm_h%surfhf_av(m)3812 ENDDO3813 ELSE3814 l = idsidx3815 DO m = 1, surf_usm_v(l)%ns3816 i = surf_usm_v(l)%i(m)3817 j = surf_usm_v(l)%j(m)3818 k = surf_usm_v(l)%k(m)3819 temp_pf(k,j,i) = surf_usm_v(l)%surfhf_av(m)3820 ENDDO3821 ENDIF3822 ENDIF3823 3824 3026 CASE ( 'usm_wshf' ) 3825 3027 !-- array of sensible heat flux from surfaces … … 3975 3177 ENDIF 3976 3178 3977 3978 3979 3980 3179 CASE ( 'usm_wghf' ) 3981 3180 !-- array of heat flux from ground (land, wall, roof) … … 4527 3726 4528 3727 var = TRIM(variable) 4529 IF ( var(1:12) == 'usm_rad_net_' .OR. var(1:13) == 'usm_rad_insw_' .OR. & 4530 var(1:13) == 'usm_rad_inlw_' .OR. var(1:16) == 'usm_rad_inswdir_' .OR. & 4531 var(1:16) == 'usm_rad_inswdif_' .OR. var(1:16) == 'usm_rad_inswref_' .OR. & 4532 var(1:16) == 'usm_rad_inlwdif_' .OR. var(1:16) == 'usm_rad_inlwref_' .OR. & 4533 var(1:14) == 'usm_rad_outsw_' .OR. var(1:14) == 'usm_rad_outlw_' .OR. & 4534 var(1:14) == 'usm_rad_ressw_' .OR. var(1:14) == 'usm_rad_reslw_' .OR. & 4535 var(1:11) == 'usm_rad_hf_' .OR. var == 'usm_rad_pc_inlw' .OR. & 4536 var == 'usm_rad_pc_insw' .OR. var == 'usm_rad_pc_inswdir' .OR. & 4537 var == 'usm_rad_pc_inswdif' .OR. var == 'usm_rad_pc_inswref' .OR. & 4538 var(1:9) == 'usm_wshf_' .OR. var(1:9) == 'usm_wghf_' .OR. & 3728 IF ( var(1:9) == 'usm_wshf_' .OR. var(1:9) == 'usm_wghf_' .OR. & 4539 3729 var(1:16) == 'usm_wghf_window_' .OR. var(1:15) == 'usm_wghf_green_' .OR. & 4540 3730 var(1:10) == 'usm_iwghf_' .OR. var(1:17) == 'usm_iwghf_window_' .OR. & … … 4545 3735 var(1:16) == 'usm_t_surf_green' .OR. var(1:11) == 'usm_t_green' .OR. & 4546 3736 var(1:15) == 'usm_theta_10cm' .OR. & 4547 var(1:9) == 'usm_surfz' .OR. var(1:7) == 'usm_svf' .OR. & 4548 var(1:7) == 'usm_dif' .OR. var(1:11) == 'usm_surfcat' .OR. & 3737 var(1:9) == 'usm_surfz' .OR. var(1:11) == 'usm_surfcat' .OR. & 4549 3738 var(1:11) == 'usm_surfalb' .OR. var(1:12) == 'usm_surfemis' .OR. & 4550 var(1:16) == 'usm_surfwintrans' .OR. var(1:7) == 'usm_swc' .OR. & 4551 var(1:9) == 'usm_skyvf' .OR. var(1:9) == 'usm_skyvft' ) THEN 3739 var(1:16) == 'usm_surfwintrans' .OR. var(1:7) == 'usm_swc' ) THEN 4552 3740 4553 3741 found = .TRUE. … … 10176 9364 CALL wrd_write_string( 't_green_v(' // dum // ')' ) 10177 9365 WRITE ( 14 ) t_green_v(l)%t 10178 !9366 10179 9367 ENDDO 10180 9368
Note: See TracChangeset
for help on using the changeset viewer.