Changeset 3769 for palm/trunk/SOURCE
- Timestamp:
- Feb 28, 2019 10:16:49 AM (6 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/module_interface.f90
r3767 r3769 24 24 ! Former revisions: 25 25 ! ----------------- 26 ! $Id$ 26 ! $ID: MODULE_INTERFACE.F90 3767 2019-02-27 08:18:02Z Mohamed $ 27 ! removed unused variables in module_interface_check_data_output_ts 28 ! 3767 08:18:02Z raasch 27 29 ! unused variable file_index removed from subroutine parameter list 28 30 ! … … 553 555 554 556 IF ( radiation ) THEN 555 CALL radiation_check_data_output_ts( dots_max, dots_num , dots_label, dots_unit)557 CALL radiation_check_data_output_ts( dots_max, dots_num ) 556 558 ENDIF 557 559 -
palm/trunk/SOURCE/radiation_model_mod.f90
r3767 r3769 23 23 ! Current revisions: 24 24 ! ------------------ 25 ! 25 ! 26 26 ! 27 27 ! Former revisions: 28 28 ! ----------------- 29 29 ! $Id$ 30 ! removed unused variables and subroutine radiation_radflux_gridbox 31 ! 32 ! 3767 2019-02-27 08:18:02Z raasch 30 33 ! unused variable for file index removed from rrd-subroutines parameter list 31 34 ! … … 1241 1244 END INTERFACE radiation_presimulate_solar_pos 1242 1245 1243 INTERFACE radiation_radflux_gridbox1244 MODULE PROCEDURE radiation_radflux_gridbox1245 END INTERFACE radiation_radflux_gridbox1246 1247 1246 INTERFACE radiation_calc_svf 1248 1247 MODULE PROCEDURE radiation_calc_svf … … 1272 1271 radiation_define_netcdf_grid, radiation_wrd_local, & 1273 1272 radiation_rrd_local, radiation_data_output_mask, & 1274 radiation_ radflux_gridbox, radiation_calc_svf, radiation_write_svf,&1273 radiation_calc_svf, radiation_write_svf, & 1275 1274 radiation_interaction, radiation_interaction_init, & 1276 1275 radiation_read_svf, radiation_presimulate_solar_pos … … 1352 1351 CHARACTER (LEN=*) :: variable !< 1353 1352 1354 INTEGER(iwp) :: i, j, k, l1353 INTEGER(iwp) :: i, k 1355 1354 INTEGER(iwp) :: ilen 1356 1355 CHARACTER(LEN=varnamelength) :: var !< TRIM(variable) … … 1481 1480 !> Set module-specific timeseries units and labels 1482 1481 !------------------------------------------------------------------------------! 1483 SUBROUTINE radiation_check_data_output_ts( dots_max, dots_num , dots_label, dots_unit)1482 SUBROUTINE radiation_check_data_output_ts( dots_max, dots_num ) 1484 1483 1485 1484 1486 1485 INTEGER(iwp), INTENT(IN) :: dots_max 1487 1486 INTEGER(iwp), INTENT(INOUT) :: dots_num 1488 CHARACTER (LEN=*), DIMENSION(dots_max), INTENT(INOUT) :: dots_label1489 CHARACTER (LEN=*), DIMENSION(dots_max), INTENT(INOUT) :: dots_unit1490 1487 1491 1488 ! … … 4960 4957 IMPLICIT NONE 4961 4958 4962 INTEGER(iwp) :: i, j, k, kk, is, js, d, ku, refstep, m, mm, l, ll4959 INTEGER(iwp) :: i, j, k, kk, d, refstep, m, mm, l, ll 4963 4960 INTEGER(iwp) :: isurf, isurfsrc, isvf, icsf, ipcgb 4964 4961 INTEGER(iwp) :: imrt, imrtf … … 8788 8785 END FUNCTION searchsorted 8789 8786 8790 !------------------------------------------------------------------------------!8791 ! Description:8792 ! ------------8793 !8794 !> radiation_radflux_gridbox subroutine gives the sw and lw radiation fluxes at the8795 !> faces of a gridbox defined at i,j,k and located in the urban layer.8796 !> The total sw and the diffuse sw radiation as well as the lw radiation fluxes at8797 !> the gridbox 6 faces are stored in sw_gridbox, swd_gridbox, and lw_gridbox arrays,8798 !> respectively, in the following order:8799 !> up_face, down_face, north_face, south_face, east_face, west_face8800 !>8801 !> The subroutine reports also how successful was the search process via the parameter8802 !> i_feedback as follow:8803 !> - i_feedback = 1 : successful8804 !> - i_feedback = -1 : unsuccessful; the requisted point is outside the urban domain8805 !> - i_feedback = 0 : uncomplete; some gridbox faces fluxes are missing8806 !>8807 !>8808 !> It is called outside from usm_urban_surface_mod whenever the radiation fluxes8809 !> are needed.8810 !>8811 !> This routine is not used so far. However, it may serve as an interface for radiation8812 !> fluxes of urban and land surfaces8813 !>8814 !> TODO:8815 !> - Compare performance when using some combination of the Fortran intrinsic8816 !> functions, e.g. MINLOC, MAXLOC, ALL, ANY and COUNT functions, which search8817 !> surfl array for elements meeting user-specified criterion, i.e. i,j,k8818 !> - Report non-found or incomplete radiation fluxes arrays , if any, at the8819 !> gridbox faces in an error message form8820 !>8821 !------------------------------------------------------------------------------!8822 SUBROUTINE radiation_radflux_gridbox(i,j,k,sw_gridbox,swd_gridbox,lw_gridbox,i_feedback)8823 8824 IMPLICIT NONE8825 8826 INTEGER(iwp), INTENT(in) :: i,j,k !< gridbox indices at which fluxes are required8827 INTEGER(iwp) :: ii,jj,kk,d !< surface indices and type8828 INTEGER(iwp) :: l !< surface id8829 REAL(wp) , DIMENSION(1:6), INTENT(out) :: sw_gridbox,lw_gridbox !< total sw and lw radiation fluxes of 6 faces of a gridbox, w/m28830 REAL(wp) , DIMENSION(1:6), INTENT(out) :: swd_gridbox !< diffuse sw radiation from sky and model boundary of 6 faces of a gridbox, w/m28831 INTEGER(iwp), INTENT(out) :: i_feedback !< feedback to report how the search was successful8832 8833 8834 !-- initialize variables8835 i_feedback = -9999998836 sw_gridbox = -999999.9_wp8837 lw_gridbox = -999999.9_wp8838 swd_gridbox = -999999.9_wp8839 8840 !-- check the requisted grid indices8841 IF ( k < nzb .OR. k > nzut .OR. &8842 j < nysg .OR. j > nyng .OR. &8843 i < nxlg .OR. i > nxrg &8844 ) THEN8845 i_feedback = -18846 RETURN8847 ENDIF8848 8849 !-- search for the required grid and formulate the fluxes at the 6 gridbox faces8850 DO l = 1, nsurfl8851 ii = surfl(ix,l)8852 jj = surfl(iy,l)8853 kk = surfl(iz,l)8854 8855 IF ( ii == i .AND. jj == j .AND. kk == k ) THEN8856 d = surfl(id,l)8857 8858 SELECT CASE ( d )8859 8860 CASE (iup_u,iup_l) !- gridbox up_facing face8861 sw_gridbox(1) = surfinsw(l)8862 lw_gridbox(1) = surfinlw(l)8863 swd_gridbox(1) = surfinswdif(l)8864 8865 CASE (inorth_u,inorth_l) !- gridbox north_facing face8866 sw_gridbox(3) = surfinsw(l)8867 lw_gridbox(3) = surfinlw(l)8868 swd_gridbox(3) = surfinswdif(l)8869 8870 CASE (isouth_u,isouth_l) !- gridbox south_facing face8871 sw_gridbox(4) = surfinsw(l)8872 lw_gridbox(4) = surfinlw(l)8873 swd_gridbox(4) = surfinswdif(l)8874 8875 CASE (ieast_u,ieast_l) !- gridbox east_facing face8876 sw_gridbox(5) = surfinsw(l)8877 lw_gridbox(5) = surfinlw(l)8878 swd_gridbox(5) = surfinswdif(l)8879 8880 CASE (iwest_u,iwest_l) !- gridbox west_facing face8881 sw_gridbox(6) = surfinsw(l)8882 lw_gridbox(6) = surfinlw(l)8883 swd_gridbox(6) = surfinswdif(l)8884 8885 END SELECT8886 8887 ENDIF8888 8889 IF ( ALL( sw_gridbox(:) /= -999999.9_wp ) ) EXIT8890 ENDDO8891 8892 !-- check the completeness of the fluxes at all gidbox faces8893 !-- TODO: report non-found or incomplete rad fluxes arrays in an error message form8894 IF ( ANY( sw_gridbox(:) <= -999999.9_wp ) .OR. &8895 ANY( swd_gridbox(:) <= -999999.9_wp ) .OR. &8896 ANY( lw_gridbox(:) <= -999999.9_wp ) ) THEN8897 i_feedback = 08898 ELSE8899 i_feedback = 18900 ENDIF8901 8902 RETURN8903 8904 END SUBROUTINE radiation_radflux_gridbox8905 8787 8906 8788 !------------------------------------------------------------------------------! -
palm/trunk/SOURCE/urban_surface_mod.f90
r3767 r3769 28 28 ! ----------------- 29 29 ! $Id$ 30 ! removed unused variables 31 ! 32 ! 3767 2019-02-27 08:18:02Z raasch 30 33 ! unused variables removed from rrd-subroutines parameter list 31 34 ! … … 529 532 field_capacity = 9999999.9_wp, & !< NAMELIST fc 530 533 hydraulic_conductivity = 9999999.9_wp, & !< NAMELIST gamma_w_green_sat 531 lambda_h_green_sat = 0.0_wp, & !< heat conductivity for saturated soil532 534 l_vangenuchten = 9999999.9_wp, & !< NAMELIST l_vg 533 535 n_vangenuchten = 9999999.9_wp, & !< NAMELIST n_vg … … 2842 2844 REAL(wp), DIMENSION(nzb:nzt+1,nys:nyn,nxl:nxr) :: temp_pf !< temp array for urban surface output procedure 2843 2845 2844 CHARACTER (len=varnamelength) 2845 INTEGER(iwp), PARAMETER 2846 CHARACTER(len=6), DIMENSION(0:nd-1), PARAMETER 2847 INTEGER(iwp), DIMENSION(0:nd-1), PARAMETER 2848 INTEGER(iwp), DIMENSION(0:nd-1), PARAMETER 2849 !< index for surf_*_v: 0:3 = (North, South, East, West)2850 INTEGER(iwp) :: ids,idsint,idsidx,isvf2851 INTEGER(iwp) 2846 CHARACTER (len=varnamelength) :: var !< trimmed variable name 2847 INTEGER(iwp), PARAMETER :: nd = 5 !< number of directions 2848 CHARACTER(len=6), DIMENSION(0:nd-1), PARAMETER :: dirname = (/ '_roof ', '_south', '_north', '_west ', '_east ' /) 2849 INTEGER(iwp), DIMENSION(0:nd-1), PARAMETER :: dirint = (/ iup_u, isouth_u, inorth_u, iwest_u, ieast_u /) 2850 INTEGER(iwp), DIMENSION(0:nd-1), PARAMETER :: diridx = (/ -1, 1, 0, 3, 2 /) 2851 !< index for surf_*_v: 0:3 = (North, South, East, West) 2852 INTEGER(iwp) :: ids,idsint,idsidx 2853 INTEGER(iwp) :: i,j,k,iwl,istat, l, m !< running indices 2852 2854 2853 2855 found = .TRUE. … … 4026 4028 INTEGER(iwp) :: st !< dummy 4027 4029 4028 REAL(wp) :: c, d,tin, twin4030 REAL(wp) :: c, tin, twin 4029 4031 REAL(wp) :: ground_floor_level_l !< local height of ground floor level 4030 4032 REAL(wp) :: z_agl !< height above ground
Note: See TracChangeset
for help on using the changeset viewer.