Changeset 116
- Timestamp:
- Oct 11, 2007 2:30:27 AM (17 years ago)
- Location:
- palm/trunk
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/DOC/app/chapter_4.1.html
r115 r116 1 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html> 3 <head> 2 <html><head> 4 3 5 4 … … 20 19 21 20 22 <title>PALM chapter 4.1</title> 23 </head> 21 <title>PALM chapter 4.1</title></head> 24 22 25 23 <body> … … 2153 2151 2154 2152 2155 Cloud droplets require to use the particle package (<span style="font-weight: bold;">mrun</span>-option <span style="font-family: monospace;">-p particles</span>), 2156 so in this case a particle corresponds to a droplet. The droplet 2153 <span style="font-weight: bold;"></span><span style="font-family: monospace;"></span> 2154 2155 2156 2157 2158 Cloud droplets require to use particles (i.e. the NAMELIST group <span style="font-family: Courier New,Courier,monospace;">particles_par</span> has to be included in the parameter file<span style="font-family: monospace;"></span>). Then each particle is a representative for a certain number of droplets. The droplet 2157 2159 features (number of droplets, initial radius, etc.) can be steered with 2158 2160 the respective particle parameters (see e.g. <a href="#chapter_4.2.html#radius">radius</a>). … … 12602 12604 12603 12605 12604 </body> 12605 </html> 12606 </body></html> -
palm/trunk/DOC/app/chapter_4.2.html
r108 r116 1 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html> 3 <head> 2 <html><head> 4 3 5 4 … … 12 11 13 12 14 <title>PALM chapter 4.2</title> 15 </head> 16 13 <title>PALM chapter 4.2</title></head> 17 14 18 15 <body> … … 8686 8683 8687 8684 8688 <tr> 8685 <tr><td style="vertical-align: top;"><span style="font-weight: bold;"><a name="dt_sort_particles"></a>dt_sort_particles</span></td><td style="vertical-align: top;">R</td><td style="vertical-align: top;"><span style="font-style: italic;">0.0</span></td><td style="vertical-align: top;">Temporal interval for sorting particles (in s).<br><br>By 8686 default, particles are sorted in memory in a way that their order 8687 follows the order in which the gridpoint values are stored. This may 8688 improve cache coherence in case of larger numbers of particles and 8689 gridpoints. However, since the sorting itself is time consuming and 8690 since the requirement of sorting depends on the strength of mixing in 8691 the flow, performance can be improved if the sorting is applied only 8692 after certain time intervals. The proper length of this interval <span style="font-weight: bold;">dt_sort_particles</span> must be determined empirically by carrying out test runs with different intervals. Check file <a href="chapter_3.4.html#CPU_MEASURES">CPU_MEASURES</a> to find the value of <span style="font-weight: bold;">dt_sort_particles</span> which gives the best performance.<br><br><span style="font-weight: bold;">Note:</span><br>In case of <a href="chapter_4.1.html#cloud_droplets">cloud_droplets</a> = <span style="font-style: italic;">.T.</span>, any given non-zero value of <span style="font-weight: bold;">dt_sort_particles</span> will be reset to zero and a corresponding warning message will appear in the job protocol.</td></tr><tr> 8689 8693 8690 8694 … … 11590 11594 11591 11595 11592 </body> 11593 </html> 11596 </body></html> -
palm/trunk/DOC/app/chapter_4.6.html
r115 r116 1 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2 <html> 3 <head> 2 <html><head> 4 3 5 4 … … 15 14 16 15 17 <title>PALM chapter 4.6</title>18 < meta name="GENERATOR" content="StarOffice 7 (Win32)">16 17 <title>PALM chapter 4.6</title><meta name="GENERATOR" content="StarOffice 7 (Win32)"> 19 18 20 19 … … 50 49 @page { size: 21cm 29.7cm } 51 50 --> 52 </style> 53 </head> 54 51 </style></head> 55 52 56 53 <body style="direction: ltr;" lang="en-US"> … … 3732 3729 3733 3730 3734 <tr> 3731 <tr><td><a href="chapter_4.2.html#dt_sort_particles"><span style="font-weight: bold;">dt_sort_particles</span></a></td><td>P</td><td>R</td><td><span style="font-style: italic;">0.0</span></td><td>Temporal interval for sorting particles (in s).</td></tr><tr> 3735 3732 3736 3733 … … 11820 11817 11821 11818 11822 </body> 11823 </html> 11819 </body></html> -
palm/trunk/SCRIPTS/mbuild
r83 r116 90 90 # from configuration file 91 91 # host identifier (local_host) is read from config file 92 # 10/10/07 - Siggi - bugfix: handling of comment lines 92 93 93 94 … … 185 186 while read line 186 187 do 187 if [[ "$line" != "" ||$(echo $line | cut -c1) != "#" ]]188 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]] 188 189 then 189 190 HOSTNAME=`echo $line | cut -d" " -s -f2` … … 228 229 while read line 229 230 do 230 if [[ "$line" != "" ||$(echo $line | cut -c1) != "#" ]]231 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]] 231 232 then 232 233 local_username=`echo $line | cut -d" " -s -f2` … … 252 253 while read line 253 254 do 254 if [[ "$line" != "" && "$(echo $line | cut -d" " -s -f3)" = "" ]]255 if [[ "$line" != "" && "$(echo $line | cut -d" " -s -f3)" = "" && $(echo $line | cut -c1) != "#" ]] 255 256 then 256 257 var=`echo $line | cut -d" " -s -f1 | cut -c2-` … … 721 722 # IP-ADRESSE DES REMOTE-RECHNERS BESTIMMEN 722 723 case $remote_host in 723 (lcmuk) remote_addres=130.75.105. 3;;724 (lcmuk) remote_addres=130.75.105.2;; 724 725 (lctit) remote_addres=172.17.75.161;; 725 726 (decalpha) remote_addres=165.132.26.56;; … … 741 742 # REMOTE-USERNAMEN ERMITTELN 742 743 line="" 744 found=false 743 745 grep "$remote_host_string" $config_file | grep "%remote_username" > tmp_mbuild 744 746 while read line1 745 747 do 748 746 749 if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]] 747 750 then 748 751 line="$line1" 749 752 fi 753 754 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]] 755 then 756 remote_username=`echo $line | cut -d" " -s -f2` 757 found=true 758 fi 759 750 760 done < tmp_mbuild 751 761 752 if [[ "$line" = "" || $(echo $line | cut -c1) = "#"]]762 if [[ $found = false ]] 753 763 then 754 764 printf "\n +++ no remote username found in configuration file" 755 765 printf "\n for \"$remote_host_string\" " 756 766 locat=config_file; exit 757 else758 remote_username=`echo $line | cut -d" " -s -f2`759 767 fi 760 768 … … 766 774 while read line1 767 775 do 776 768 777 if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]] 769 778 then 770 779 line="$line1" 771 780 fi 781 782 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]] 783 then 784 remote_source_path=`echo $line | cut -d" " -s -f2` 785 fi 786 772 787 done < tmp_mbuild 773 788 774 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]]775 then776 remote_source_path=`echo $line | cut -d" " -s -f2`777 fi778 789 if [[ "$remote_source_path" = "" ]] 779 790 then … … 798 809 while read line1 799 810 do 811 800 812 if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]] 801 813 then 802 814 line="$line1" 803 815 fi 816 817 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]] 818 then 819 remote_md=`echo $line | cut -d" " -s -f2` 820 fi 821 804 822 done < tmp_mbuild 805 823 806 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]]807 then808 remote_md=`echo $line | cut -d" " -s -f2`809 fi810 824 if [[ "$remote_md" = "" ]] 811 825 then … … 826 840 # COMPILERNAMEN ERMITTELN 827 841 line="" 842 found=false 828 843 grep "$remote_host_string" $config_file | grep "%compiler_name " > tmp_mbuild 829 844 while read line1 830 845 do 846 831 847 if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]] 832 848 then 833 849 line="$line1" 834 850 fi 851 852 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]] 853 then 854 compiler_name=`echo $line | cut -d" " -s -f2` 855 found=true 856 fi 857 835 858 done < tmp_mbuild 836 859 837 if [[ "$line" = "" || $(echo $line | cut -c1) = "#"]]860 if [[ $found = false ]] 838 861 then 839 862 printf "\n +++ no compiler name found in configuration file" 840 863 printf "\n for \"$remote_host_string\" " 841 864 locat=config_file; exit 842 else843 compiler_name=`echo $line | cut -d" " -s -f2`844 865 fi 845 866 … … 850 871 then 851 872 line="" 873 found=false 852 874 grep "$remote_host_string" $config_file | grep "%compiler_name_ser" > tmp_mbuild 853 875 while read line1 854 876 do 877 855 878 if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]] 856 879 then 857 880 line="$line1" 858 881 fi 882 883 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]] 884 then 885 compiler_name_ser=`echo $line | cut -d" " -s -f2` 886 found=true 887 fi 888 859 889 done < tmp_mbuild 860 890 861 if [[ "$line" = "" || $(echo $line | cut -c1) = "#"]]891 if [[ $found = false ]] 862 892 then 863 893 printf "\n +++ no serial compiler name found in configuration file" 864 894 printf "\n for \"$remote_host_string\" " 865 895 locat=config_file; exit 866 else867 compiler_name_ser=`echo $line | cut -d" " -s -f2`868 896 fi 869 897 else … … 875 903 # PRAEPROZESSOR-OPTIONEN/DIREKTIVEN ERMITTELN 876 904 line="" 905 found=false 877 906 grep "$remote_host_string" $config_file | grep "%cpp_options" > tmp_mbuild 878 907 while read line1 879 908 do 909 880 910 if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]] 881 911 then 882 912 line="$line1" 883 913 fi 914 915 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]] 916 then 917 # EVENTUELLE DOPPELPUNKTE AUS OPTIONSSTRING ENTFERNEN 918 cpp_options=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'` 919 found=true 920 fi 921 884 922 done < tmp_mbuild 885 if [[ "$line" = "" || $(echo $line | cut -c1) = "#" ]] 923 924 if [[ $found = false ]] 886 925 then 887 926 printf "\n +++ no preprocessor options found in configuration file" 888 927 printf "\n for \"$remote_host_string\" " 889 928 locat=config_file; exit 890 else 891 # EVENTUELLE DOPPELPUNKTE AUS OPTIONSSTRING ENTFERNEN 892 cpp_options=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'` 893 fi 929 fi 930 894 931 895 932 # RECHNERSPEZIFISCHE CPP-DIREKTIVEN HINZUFUEGEN … … 922 959 while read line1 923 960 do 961 924 962 if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]] 925 963 then 926 964 line="$line1" 927 965 fi 966 967 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]] 968 then 969 # EVENTUELLE DOPPELPUNKTE AUS OPTIONSSTRING ENTFERNEN 970 netcdf_inc=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'` 971 fi 972 928 973 done < tmp_mbuild 929 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]]930 then931 # EVENTUELLE DOPPELPUNKTE AUS OPTIONSSTRING ENTFERNEN932 netcdf_inc=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'`933 fi934 974 935 975 line="" … … 937 977 while read line1 938 978 do 979 939 980 if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]] 940 981 then 941 982 line="$line1" 942 983 fi 984 985 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]] 986 then 987 # EVENTUELLE DOPPELPUNKTE AUS OPTIONSSTRING ENTFERNEN 988 netcdf_lib=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'` 989 fi 990 943 991 done < tmp_mbuild 944 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]]945 then946 # EVENTUELLE DOPPELPUNKTE AUS OPTIONSSTRING ENTFERNEN947 netcdf_lib=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'`948 fi949 992 950 993 … … 952 995 # COMPILEROPTIONEN ERMITTELN 953 996 line="" 997 found=false 954 998 grep "$remote_host_string" $config_file | grep "%fopts" > tmp_mbuild 955 999 while read line1 956 1000 do 1001 957 1002 if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]] 958 1003 then 959 1004 line="$line1" 960 1005 fi 1006 1007 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]] 1008 then 1009 # EVENTUELLE DOPPELPUNKTE AUS DIREKTIVENSTRING ENTFERNEN 1010 compiler_options=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'` 1011 found=true 1012 1013 # NETCDF-INCLUDEVERZEICHNIS HINZUFUEGEN 1014 compiler_options="$compiler_options $netcdf_inc" 1015 fi 1016 961 1017 done < tmp_mbuild 962 if [[ "$line" = "" || $(echo $line | cut -c1) = "#" ]] 1018 1019 if [[ $found = false ]] 963 1020 then 964 1021 printf "\n +++ no compiler options found in configuration file" 965 1022 printf "\n for \"$remote_host_string\" " 966 1023 locat=config_file; exit 967 else968 # EVENTUELLE DOPPELPUNKTE AUS DIREKTIVENSTRING ENTFERNEN969 compiler_options=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'`970 971 # NETCDF-INCLUDEVERZEICHNIS HINZUFUEGEN972 compiler_options="$compiler_options $netcdf_inc"973 1024 fi 974 1025 … … 977 1028 # LADER-OPTIONEN ERMITTELN 978 1029 line="" 1030 found=false 979 1031 grep "$remote_host_string" $config_file | grep "%lopts" > tmp_mbuild 980 1032 while read line1 981 1033 do 1034 982 1035 if [[ $(echo $line1 | cut -d" " -s -f3-) = "$remote_host_string" ]] 983 1036 then 984 1037 line="$line1" 985 1038 fi 1039 1040 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]] 1041 then 1042 # EVENTUELLE DOPPELPUNKTE AUS DIREKTIVENSTRING ENTFERNEN 1043 loader_options=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'` 1044 found=true 1045 1046 # NETCDF-LIBRARY HINZUFUEGEN 1047 loader_options="$loader_options $netcdf_lib" 1048 fi 1049 986 1050 done < tmp_mbuild 987 1051 988 if [[ "$line" = "" || $(echo $line | cut -c1) = "#"]]1052 if [[ $found = false ]] 989 1053 then 990 1054 printf "\n +++ no loader options found in configuration file" 991 1055 printf "\n for \"$remote_host_string\" " 992 1056 locat=config_file; exit 993 else994 # EVENTUELLE DOPPELPUNKTE AUS DIREKTIVENSTRING ENTFERNEN995 loader_options=`echo $line | cut -d" " -s -f2 | sed 's/::/%DUM%/g' | sed 's/:/ /g' | sed 's/%DUM%/:/g'`996 997 # NETCDF-LIBRARY HINZUFUEGEN998 loader_options="$loader_options $netcdf_lib"999 1057 fi 1000 1058 -
palm/trunk/SOURCE/CURRENT_MODIFICATIONS
r114 r116 7 7 (user_interface). 8 8 9 init_grid, init_pegrid, modules, user_interface 9 Frequence of sorting particles can be controlled with new particles_par 10 parameter dt_sort_particles. Sorting is moved from the SGS timestep loop in 11 advec_particles after the end of this loop. 12 13 advec_particles, check_parameters, init_grid, init_pegrid, modules, package_parin, read_var_list, user_interface, write_var_list 10 14 11 15 -
palm/trunk/SOURCE/advec_particles.f90
r114 r116 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! Sorting of particles is controlled by dt_sort_particles and moved from 7 ! the SGS timestep loop after the end of this loop. 6 8 ! Bugfix: pleft/pright changed to pnorth/psouth in sendrecv of particle tail 7 9 ! numbers along y … … 3254 3256 ! ENDDO 3255 3257 3256 !3257 !-- Sort particles in the sequence the gridboxes are stored in the memory3258 CALL sort_particles3259 3260 3258 ! WRITE ( 9, * ) '*** advec_particles: ##9' 3261 3259 ! CALL local_flush( 9 ) … … 3286 3284 3287 3285 ENDDO ! timestep loop 3286 3287 3288 ! 3289 !-- Sort particles in the sequence the gridboxes are stored in the memory 3290 time_sort_particles = time_sort_particles + dt_3d 3291 IF ( time_sort_particles >= dt_sort_particles ) THEN 3292 CALL sort_particles 3293 time_sort_particles = MOD( time_sort_particles, & 3294 MAX( dt_sort_particles, dt_3d ) ) 3295 ENDIF 3288 3296 3289 3297 -
palm/trunk/SOURCE/check_parameters.f90
r114 r116 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! Multigrid solver allows topography 6 ! Multigrid solver allows topography, checking of dt_sort_particles 7 7 ! 8 8 ! Former revisions: … … 1500 1500 1501 1501 ! 1502 !-- Check the interval for sorting particles. 1503 !-- Using particles as cloud droplets requires sorting after each timestep. 1504 IF ( dt_sort_particles /= 0.0 .AND. cloud_droplets ) THEN 1505 dt_sort_particles = 0.0 1506 IF ( myid == 0 ) THEN 1507 PRINT*, '+++ WARNING: check_parameters:' 1508 PRINT*, ' dt_sort_particles is reset to 0.0 because ', & 1509 'of cloud_droplets = .TRUE.' 1510 ENDIF 1511 ENDIF 1512 1513 ! 1502 1514 !-- Set the default intervals for data output, if necessary 1503 1515 !-- NOTE: dt_dosp has already been set in package_parin -
palm/trunk/SOURCE/init_grid.f90
r114 r116 789 789 !-- Bit 4: wall to the left 790 790 !-- Bit 5: wall to the right 791 !-- Bit 6: inside / outside building (1/0)791 !-- Bit 6: inside building 792 792 793 793 flags = 0 -
palm/trunk/SOURCE/modules.f90
r114 r116 5 5 ! Actual revisions: 6 6 ! ----------------- 7 ! + flags, wall_flags_1..107 ! +dt_sort_particles, time_sort_particles, flags, wall_flags_1..10 8 8 ! 9 9 ! Former revisions: … … 876 876 LOGICAL, DIMENSION(:), ALLOCATABLE :: particle_mask, tail_mask 877 877 878 REAL :: c_0 = 3.0, dt_min_part = 0.0002, 878 REAL :: c_0 = 3.0, dt_min_part = 0.0002, dt_sort_particles = 0.0, & 879 879 dt_write_particle_data = 9999999.9, dvrp_psize = 9999999.9, & 880 880 end_time_prel = 9999999.9, initial_weighting_factor = 1.0, & … … 883 883 particle_advection_start = 0.0, sgs_wfu_part = 0.3333333, & 884 884 sgs_wfv_part = 0.3333333, sgs_wfw_part = 0.3333333, & 885 time_ write_particle_data = 0.0885 time_sort_particles = 0.0, time_write_particle_data = 0.0 886 886 887 887 REAL, DIMENSION(max_number_of_particle_groups) :: & -
palm/trunk/SOURCE/package_parin.f90
r77 r116 45 45 NAMELIST /particles_par/ bc_par_b, bc_par_lr, bc_par_ns, bc_par_t, & 46 46 density_ratio, radius, dt_dopts, & 47 dt_min_part, dt_prel, 47 dt_min_part, dt_prel, dt_sort_particles, & 48 48 dt_write_particle_data, dvrp_psize, & 49 49 end_time_prel, initial_weighting_factor, & -
palm/trunk/SOURCE/read_var_list.f90
r110 r116 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! +time_sort_particles 7 7 ! 8 8 ! Former revisions: … … 46 46 USE indices 47 47 USE model_1d 48 USE particle_attributes 48 49 USE pegrid 49 50 USE profil_parameter … … 395 396 CASE ( 'time_run_control' ) 396 397 READ ( 13 ) time_run_control 398 CASE ( 'time_sort_particles' ) 399 READ ( 13 ) time_sort_particles 397 400 CASE ( 'timestep_scheme' ) 398 401 READ ( 13 ) timestep_scheme -
palm/trunk/SOURCE/write_var_list.f90
r110 r116 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! +time_sort_particles 7 7 ! 8 8 ! Former revisions: … … 46 46 USE indices 47 47 USE model_1d 48 USE particle_attributes 48 49 USE pegrid 49 50 USE profil_parameter … … 341 342 WRITE ( 14 ) 'time_run_control ' 342 343 WRITE ( 14 ) time_run_control 344 WRITE ( 14 ) 'time_sort_particles ' 345 WRITE ( 14 ) time_sort_particles 343 346 WRITE ( 14 ) 'timestep_scheme ' 344 347 WRITE ( 14 ) timestep_scheme
Note: See TracChangeset
for help on using the changeset viewer.