Changeset 3241 for palm/trunk/SOURCE/urban_surface_mod.f90
- Timestamp:
- Sep 12, 2018 3:02:00 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/urban_surface_mod.f90
r3223 r3241 28 28 ! ----------------- 29 29 ! $Id$ 30 ! unused variables removed 31 ! 32 ! 3223 2018-08-30 13:48:17Z suehring 30 33 ! Bugfix for commit 3222 31 34 ! … … 406 409 INTEGER(iwp) :: pedestrian_category = 2 !< default category for wall surface in pedestrian zone 407 410 INTEGER(iwp) :: roof_category = 2 !< default category for root surface 408 REAL(wp) :: roughness_concrete = 0.001_wp !< roughness length of average concrete surface409 411 ! 410 412 !-- Indices of input attributes for (above) ground floor level … … 587 589 !-- arrays for time averages 588 590 !-- 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 589 REAL(wp), DIMENSION(:), ALLOCATABLE :: rad_net_av !< average of rad_net_l590 591 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfinsw_av !< average of sw radiation falling to local surface including radiation from reflections 591 592 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfinlw_av !< average of lw radiation falling to local surface including radiation from reflections … … 599 600 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfins_av !< average of array of residua of sw radiation absorbed in surface after last reflection 600 601 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfinl_av !< average of array of residua of lw radiation absorbed in surface after last reflection 601 REAL(wp), DIMENSION(:), ALLOCATABLE :: surfhf_av !< average of total radiation flux incoming to minus outgoing from local surface602 REAL(wp), DIMENSION(:), ALLOCATABLE :: wghf_eb_av !< average of wghf_eb603 REAL(wp), DIMENSION(:), ALLOCATABLE :: wshf_eb_av !< average of wshf_eb604 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: t_wall_av !< Average of t_wall605 REAL(wp), DIMENSION(:), ALLOCATABLE :: wghf_eb_green_av !< average of wghf_eb_green606 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: t_green_av !< Average of t_green607 REAL(wp), DIMENSION(:), ALLOCATABLE :: wghf_eb_window_av !< average of wghf_eb_window608 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: t_window_av !< Average of t_window609 602 610 603 … … 704 697 705 698 #endif 706 REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET :: t_surf_av !< average of wall surface temperature (K)707 REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET :: t_surf_window_av !< average of window surface temperature (K)708 REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET :: t_surf_green_av !< average of green wall surface temperature (K)709 REAL(wp), DIMENSION(:), ALLOCATABLE, TARGET :: t_surf_10cm_av !< average of whole wall surface temperature (K)710 711 !-- Temporal tendencies for time stepping712 REAL(wp), DIMENSION(:), ALLOCATABLE :: tt_surface_m !< surface temperature tendency of wall (K)713 REAL(wp), DIMENSION(:), ALLOCATABLE :: tt_surface_window_m !< surface temperature tendency of window (K)714 REAL(wp), DIMENSION(:), ALLOCATABLE :: tt_surface_green_m !< surface temperature tendency of green wall (K)715 699 716 700 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 721 705 #if defined( __nopointer ) 722 706 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_wall_h !< Wall temperature (K) 723 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_wall_h_av !< Average of t_wall724 707 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_wall_h_p !< Prog. wall temperature (K) 725 708 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_window_h !< Window temperature (K) 726 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_window_h_av !< Average of t_window727 709 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_window_h_p !< Prog. window temperature (K) 728 710 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_green_h !< Green temperature (K) 729 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_green_h_av !< Average of t_green730 711 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_green_h_p !< Prog. green temperature (K) 731 712 732 713 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_wall_v !< Wall temperature (K) 733 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_wall_v_av !< Average of t_wall734 714 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_wall_v_p !< Prog. wall temperature (K) 735 715 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_window_v !< Window temperature (K) 736 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_window_v_av !< Average of t_window737 716 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_window_v_p !< Prog. window temperature (K) 738 717 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_green_v !< Green temperature (K) 739 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_green_v_av !< Average of t_green740 718 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_green_v_p !< Prog. green temperature (K) 741 719 #else 742 720 REAL(wp), DIMENSION(:,:), POINTER :: t_wall_h, t_wall_h_p 743 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_wall_h_ av, t_wall_h_1, t_wall_h_2721 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_wall_h_1, t_wall_h_2 744 722 REAL(wp), DIMENSION(:,:), POINTER :: t_window_h, t_window_h_p 745 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_window_h_ av, t_window_h_1, t_window_h_2723 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_window_h_1, t_window_h_2 746 724 REAL(wp), DIMENSION(:,:), POINTER :: t_green_h, t_green_h_p 747 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_green_h_ av, t_green_h_1, t_green_h_2725 REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_green_h_1, t_green_h_2 748 726 749 727 TYPE(t_wall_vertical), DIMENSION(:), POINTER :: t_wall_v, t_wall_v_p 750 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_wall_v_ av, t_wall_v_1, t_wall_v_2728 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_wall_v_1, t_wall_v_2 751 729 TYPE(t_wall_vertical), DIMENSION(:), POINTER :: t_window_v, t_window_v_p 752 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_window_v_ av, t_window_v_1, t_window_v_2730 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_window_v_1, t_window_v_2 753 731 TYPE(t_wall_vertical), DIMENSION(:), POINTER :: t_green_v, t_green_v_p 754 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_green_v_ av, t_green_v_1, t_green_v_2732 TYPE(t_wall_vertical), DIMENSION(0:3), TARGET :: t_green_v_1, t_green_v_2 755 733 #endif 756 734 757 !-- Wall temporal tendencies for time stepping 758 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: tt_wall_m !< t_wall prognostic array 759 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: tt_window_m !< t_window prognostic array 760 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: tt_green_m !< t_green prognostic array 761 735 ! 762 736 !-- Surface and material parameters classes (surface_type) 763 737 !-- albedo, emissivity, lambda_surf, roughness, thickness, volumetric heat capacity, thermal conductivity … … 1270 1244 IMPLICIT NONE 1271 1245 1272 CHARACTER (len=*), INTENT(IN) :: mode1273 CHARACTER (len=*), INTENT(IN) :: variable1246 CHARACTER(LEN=*), INTENT(IN) :: mode 1247 CHARACTER(LEN=*), INTENT(IN) :: variable 1274 1248 1275 1249 INTEGER(iwp) :: i, j, k, l, m, ids, idsint, iwl, istat 1276 CHARACTER (len=varnamelength) :: var, surfid1250 CHARACTER(LEN=varnamelength) :: var 1277 1251 INTEGER(iwp), PARAMETER :: nd = 5 1278 CHARACTER( len=6), DIMENSION(0:nd-1), PARAMETER :: dirname = (/ '_roof ', '_south', '_north', '_west ', '_east ' /)1252 CHARACTER(LEN=6), DIMENSION(0:nd-1), PARAMETER :: dirname = (/ '_roof ', '_south', '_north', '_west ', '_east ' /) 1279 1253 INTEGER(iwp), DIMENSION(0:nd-1), PARAMETER :: dirint = (/ iup_u, isouth_u, inorth_u, iwest_u, ieast_u /) 1280 1254 … … 2440 2414 INTEGER(iwp) :: ids,idsint,idsidx,isurf,isvf,isurfs,isurflt 2441 2415 INTEGER(iwp) :: is,js,ks,i,j,k,iwl,istat, l, m 2442 INTEGER(iwp) :: k_topo !< topography top index2443 2416 2444 2417 dirstart = (/ startland, startwall, startwall, startwall, startwall /) … … 3621 3594 INTEGER(iwp) :: st !< dummy 3622 3595 3623 REAL(wp) :: c, d,tin, twin3596 REAL(wp) :: c, tin, twin 3624 3597 REAL(wp) :: ground_floor_level_l !< local height of ground floor level 3625 3598 REAL(wp) :: z_agl !< height above ground … … 5348 5321 naheatlayers, & 5349 5322 pedestrian_category, & 5350 roughness_concrete, &5351 5323 read_wall_temp_3d, & 5352 5324 roof_category, & … … 5366 5338 naheatlayers, & 5367 5339 pedestrian_category, & 5368 roughness_concrete, &5369 5340 read_wall_temp_3d, & 5370 5341 roof_category, & … … 5574 5545 5575 5546 IMPLICIT NONE 5576 5577 CHARACTER (LEN=1) :: dum !< dummy to create correct string for reading input variable5578 5547 5579 5548 INTEGER(iwp) :: l !< index variable for surface type … … 6758 6727 INTEGER(iwp), DIMENSION(0:17, nysg:nyng, nxlg:nxrg) :: usm_par 6759 6728 REAL(wp), DIMENSION(1:14, nysg:nyng, nxlg:nxrg) :: usm_val 6760 INTEGER(iwp) :: k, l, d,iw, jw, kw, it, ip, ii, ij, m6729 INTEGER(iwp) :: k, l, iw, jw, kw, it, ip, ii, ij, m 6761 6730 INTEGER(iwp) :: i, j 6762 6731 INTEGER(iwp) :: nz, roof, dirwe, dirsn … … 6769 6738 REAL(wp) :: wealbedo2, wethick2, snalbedo2, snthick2 6770 6739 REAL(wp) :: wealbedo3, wethick3, snalbedo3, snthick3 6771 6772 LOGICAL :: surfpar6773 LOGICAL :: urbsurf6774 6740 6775 6741 ! … … 7332 7298 IMPLICIT NONE 7333 7299 7334 INTEGER(iwp) :: i, j, k, l, d, m!< running indices7300 INTEGER(iwp) :: i, j, k, l, m !< running indices 7335 7301 7336 7302 REAL(wp) :: stend !< surface tendency … … 7839 7805 !> called out from subroutine swap_timelevel 7840 7806 !------------------------------------------------------------------------------! 7841 SUBROUTINE usm_swap_timelevel 7807 SUBROUTINE usm_swap_timelevel( mod_count ) 7842 7808 7843 7809 IMPLICIT NONE 7844 7810 7845 INTEGER(iwp), INTENT(IN) :: mod_count 7846 INTEGER(iwp) :: i 7811 INTEGER(iwp), INTENT(IN) :: mod_count 7847 7812 7848 7813 #if defined( __nopointer )
Note: See TracChangeset
for help on using the changeset viewer.