Changeset 4238 for palm/trunk/SOURCE
 Timestamp:
 Sep 25, 2019 4:06:01 PM (4 years ago)
 Location:
 palm/trunk/SOURCE
 Files:

 3 edited
Legend:
 Unmodified
 Added
 Removed

palm/trunk/SOURCE/indoor_model_mod.f90
r4227 r4238 26 26 !  27 27 ! $Id$ 28 !  Bugfix in determination of minimum facade height and in location message 29 !  Bugfix, avoid division by zero 30 !  Some optimization 31 ! 32 ! 4227 20190910 18:04:34Z gronemeier 28 33 ! implement new palm_date_time_mod 29 34 ! … … 469 474 !< on local subdomain 470 475 471 CALL location_message( 'initializing indoor model', .FALSE.)476 CALL location_message( 'initializing indoor model', 'start' ) 472 477 ! 473 478 ! Initializing of indoor model is only possible if buildings can be … … 615 620 ENDDO 616 621 617 DO nb = 1, num_build618 622 #if defined( __parallel ) 619 CALL MPI_ALLREDUCE( k_min_l(nb), buildings(nb)%kb_min, 1, MPI_INTEGER,&620 621 CALL MPI_ALLREDUCE( k_max_l(nb), buildings(nb)%kb_max, 1, MPI_INTEGER,&622 623 CALL MPI_ALLREDUCE( k_min_l(:), buildings(:)%kb_min, num_build, & 624 MPI_INTEGER, MPI_MIN, comm2d, ierr ) 625 CALL MPI_ALLREDUCE( k_max_l(:), buildings(:)%kb_max, num_build, & 626 MPI_INTEGER, MPI_MAX, comm2d, ierr ) 623 627 #else 624 buildings(nb)%kb_min = k_min_l(nb)625 buildings(nb)%kb_max = k_max_l(nb)628 buildings(:)%kb_min = k_min_l(:) 629 buildings(:)%kb_max = k_max_l(:) 626 630 #endif 627 628 ENDDO629 631 630 632 DEALLOCATE( k_min_l ) … … 746 748 ENDDO 747 749 ! 748 ! Vertical facades !750 ! Vertical facades 749 751 buildings(:)%num_facades_per_building_v_l = 0 750 752 DO l = 0, 3 … … 842 844 ENDIF 843 845 ! 844 ! 846 ! Determine volume per facade element (vpf) 845 847 IF ( buildings(nb)%on_pe ) THEN 846 848 ALLOCATE( buildings(nb)%vpf(buildings(nb)%kb_min:buildings(nb)%kb_max) ) 849 buildings(nb)%vpf = 0.0_wp 847 850 848 851 DO k = buildings(nb)%kb_min, buildings(nb)%kb_max 849 buildings(nb)%vpf(k) = buildings(nb)%volume(k) / & 852 ! 853 ! In order to avoid division by zero, check if the number of facade 854 ! elements is /= 0. This can e.g. happen if a building is embedded 855 ! in higher terrain and at a given klevel neither horizontal nor 856 ! vertical facade elements are located. 857 IF ( buildings(nb)%num_facade_h(k) & 858 + buildings(nb)%num_facade_v(k) > 0 ) THEN 859 buildings(nb)%vpf(k) = buildings(nb)%volume(k) / & 850 860 REAL( buildings(nb)%num_facade_h(k) + & 851 861 buildings(nb)%num_facade_v(k), KIND = wp ) 862 ENDIF 852 863 ENDDO 853 864 ENDIF … … 1037 1048 ENDDO 1038 1049 1039 CALL location_message( ' finished', .TRUE.)1050 CALL location_message( 'initializing indoor model', 'finished' ) 1040 1051 1041 1052 END SUBROUTINE im_init … … 1790 1801 IF ( av == 0 ) THEN 1791 1802 DO m = 1, surf_usm_h%ns 1792 1793 1794 1795 1803 i = surf_usm_h%i(m) !+ surf_usm_h%ioff 1804 j = surf_usm_h%j(m) !+ surf_usm_h%joff 1805 k = surf_usm_h%k(m) !+ surf_usm_h%koff 1806 local_pf(i,j,k) = surf_usm_h%iwghf_eb(m) 1796 1807 ENDDO 1797 1808 ENDIF 
palm/trunk/SOURCE/radiation_model_mod.f90
r4227 r4238 28 28 !  29 29 ! $Id$ 30 ! Modify check in order to avoid equality comparisons of floating points 31 ! 32 ! 4227 20190910 18:04:34Z gronemeier 30 33 ! implement new palm_date_time_mod 31 34 ! … … 2653 2656 CALL get_date_time( 0.0_wp, second_of_day=second_of_day ) 2654 2657 2655 IF ( time_rad_f%var1d(0) /= second_of_day) THEN2658 IF ( ABS( time_rad_f%var1d(0)  second_of_day ) > 1E6_wp ) THEN 2656 2659 message_string = 'External radiation forcing: first point in ' // & 2657 2660 'time is /= origin_date_time.' 
palm/trunk/SOURCE/urban_surface_mod.f90
r4230 r4238 28 28 !  29 29 ! $Id$ 30 ! Indoormodel parameters for some building types adjusted in order to avoid 31 ! unrealistically high indoor temperatures (S. Rissmann) 32 ! 33 ! 4230 20190911 13:58:14Z suehring 30 34 ! Bugfix, initialize canopy resistance. Even if no green fraction is set, 31 35 ! r_canopy must be initialized for output purposes. … … 5019 5023 surf_usm_h%ddz_wall_stag(nzb_wall,m) 5020 5024 ! 5021 ! if indoor model is tused inner wall layer is calculated by using iwghf (indoor wall ground heat flux)5025 ! if indoor model is used inner wall layer is calculated by using iwghf (indoor wall ground heat flux) 5022 5026 IF ( indoor_model ) THEN 5023 5027 DO kw = nzb_wall+1, nzt_wall1 … … 8945 8949 0.001_wp, & !< parameter 18  z0 roughness above ground floor level 8946 8950 0.0001_wp, & !< parameter 19  z0h/z0g roughness heat/humidity above ground floor level 8947 4.0_wp, & !< parameter 20  ground floor level height8951 3.0_wp, & !< parameter 20  ground floor level height 8948 8952 0.75_wp, & !< parameter 21  wall fraction ground floor level 8949 8953 0.25_wp, & !< parameter 22  window fraction ground floor level … … 9046 9050 0.8_wp, & !< parameter 119  shading factor 9047 9051 0.5_wp, & !< parameter 120  gvalue windows 9048 0.6_wp, & !< parameter 121  uvalue windows9052 2.5_wp, & !< parameter 121  uvalue windows 9049 9053 0.1_wp, & !< parameter 122  basical airflow without occupancy of the room 9050 9054 0.5_wp, & !< parameter 123  additional airflow depend of occupancy of the room … … 9059 9063 3.0_wp, & !< parameter 132  storey height 9060 9064 0.2_wp, & !< parameter 133  ceiling construction height 9061 0.1_wp,& !< parameter 134  anthropogenic heat output for heating9062 1. 333_wp& !< parameter 135  anthropogenic heat output for cooling9063 /) 9065 2.0_wp, & !< parameter 134  anthropogenic heat output for heating 9066 1.25_wp & !< parameter 135  anthropogenic heat output for cooling 9067 /) 9064 9068 9065 9069 building_pars(:,4) = (/ & … … 9463 9467 0.8_wp, & !< parameter 119  shading factor 9464 9468 0.5_wp, & !< parameter 120  gvalue windows 9465 0.6_wp, & !< parameter 121  uvalue windows9469 2.5_wp, & !< parameter 121  uvalue windows 9466 9470 0.1_wp, & !< parameter 122  basical airflow without occupancy of the room 9467 9471 1.5_wp, & !< parameter 123  additional airflow depend of occupancy of the room
Note: See TracChangeset
for help on using the changeset viewer.