- Timestamp:
- Nov 18, 2008 9:54:31 AM (16 years ago)
- Location:
- palm/trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SCRIPTS/mbuild
r210 r215 95 95 # ({mainprog}_current_version) 96 96 # 02/10/08 - Siggi - adapted for lcxt4 97 # 14/11/08 - Siggi - update mechanism completely revised: source tarfile 98 # remains in source directory, one depository per block 99 # (given in the config-file) is created, always all files 100 # from the source directory are copied to the respective 101 # depository, no additional file checks are done any more 102 # (version 2.1) 97 103 98 104 … … 121 127 typeset -L50 column2 122 128 typeset -L70 column3 123 typeset -L40 version="MBUILD 2. 0Rev$Rev$"129 typeset -L40 version="MBUILD 2.1 Rev$Rev$" 124 130 125 131 # FEHLERBEHANDLUNG … … 141 147 142 148 149 tmp_mbuild=${working_directory}/tmp_mbuild 143 150 144 151 # SHELLSCRIPT-OPTIONEN EINLESEN … … 187 194 # HOST-IDENTIFIER (local_host) AUS KONFIGURATIONSDATEI BESTIMMEN 188 195 line="" 189 grep "%host_identifier" $config_file > tmp_mbuild196 grep "%host_identifier" $config_file > $tmp_mbuild 190 197 while read line 191 198 do … … 200 207 fi 201 208 fi 202 done < tmp_mbuild209 done < $tmp_mbuild 203 210 204 211 if [[ "$local_host" = "" ]] … … 230 237 # BENUTZERNAMEN AUF LOKALEM RECHNER AUS KONFIGURATIONSDATEI ERMITTELN 231 238 line="" 232 grep " $local_host" $config_file | grep "%remote_username" > tmp_mbuild239 grep " $local_host" $config_file | grep "%remote_username" > $tmp_mbuild 233 240 while read line 234 241 do … … 237 244 local_username=`echo $line | cut -d" " -s -f2` 238 245 fi 239 done < tmp_mbuild246 done < $tmp_mbuild 240 247 241 248 … … 254 261 # VARIABLEN SETZEN, WEIL DIESE EVTL. IN PFADNAMEN VERWENDET WERDEN 255 262 line="" 256 grep "%" $config_file > tmp_mbuild263 grep "%" $config_file > $tmp_mbuild 257 264 while read line 258 265 do … … 264 271 # eval echo \" $var=\$$var \" # AUSGABE ZU TESTZWECKEN 265 272 fi 266 done < tmp_mbuild273 done < $tmp_mbuild 267 274 268 275 # NUN PRUEFEN, OB EIN GLOBALER QUELLTEXTPFAD VEREINBART WURDE 269 276 line="" 270 grep "%source_path" $config_file > tmp_mbuild277 grep "%source_path" $config_file > $tmp_mbuild 271 278 while read line 272 279 do … … 278 285 fi 279 286 fi 280 done < tmp_mbuild287 done < $tmp_mbuild 281 288 282 289 line="" 283 grep " $local_host" $config_file | grep "%source_path" > tmp_mbuild290 grep " $local_host" $config_file | grep "%source_path" > $tmp_mbuild 284 291 while read line 285 292 do … … 288 295 local_source_path=`echo $line | cut -d" " -s -f2` 289 296 fi 290 done < tmp_mbuild297 done < $tmp_mbuild 291 298 292 299 if [[ "$local_source_path" = "" ]] … … 306 313 307 314 308 # EBENSO PFAD FUER DAS MAKE-DEPOSITORY ERMITTELN 315 316 # GLOBALEN DEPOSITORY-PFAD ERMITTELN 309 317 line="" 310 grep "%depository_path" $config_file > tmp_mbuild318 grep "%depository_path" $config_file > $tmp_mbuild 311 319 while read line 312 320 do … … 318 326 fi 319 327 fi 320 done < tmp_mbuild 321 322 line="" 323 grep " $local_host" $config_file | grep "%depository_path" > tmp_mbuild 324 while read line 325 do 326 if [[ "$line" != "" && $(echo $line | cut -c1) != "#" ]] 327 then 328 local_depository_path=`echo $line | cut -d" " -s -f2` 329 fi 330 done < tmp_mbuild 331 332 if [[ "$local_depository_path" = "" ]] 333 then 334 if [[ "$global_depository_path" != "" ]] 335 then 336 local_depository_path=$global_depository_path 337 else 338 printf "\n +++ no depository path found in configuration file" 339 printf "\n for local host \"$local_host\" " 340 printf "\n please set \"\%depository_path\" in configuration file" 341 locat=config_file; exit 342 fi 343 fi 344 eval local_depository_path=$local_depository_path 345 eval local_depository_path=$local_depository_path 328 done < $tmp_mbuild 346 329 347 330 … … 395 378 column1="local source path:"; column2=$local_source_path 396 379 printf "| $column1$column2 | \n" 397 column1="make depository:"; column2=$local_depository_path398 printf "| $column1$column2 | \n"399 380 printf "#------------------------------------------------------------------------# \n" 400 381 … … 405 386 then 406 387 407 cd $local_source_path408 409 410 # LISTE DER ZU PRUEFENDEN QUELLTEXTDATEIEN ERSTELLEN411 source_code_files=`ls -1 *.$suf`412 413 414 415 # VERZEICHNIS FUER DAS MAKE-DEPOSITORY ERZEUGEN,416 # FALLS NOCH NICHT VORHANDEN. ANSONSTEN ALLE DATEIEN417 # NEUEREN DATUMS IN DIESES VERZEICHNIS KOPIEREN418 if [[ ! -d $local_depository_path ]]419 then420 if mkdir $local_depository_path421 then422 printf "\n\n *** directory for make depository:"423 printf "\n $local_depository_path"424 printf "\n was created\n"425 426 # MAKEFILE UND QUELLTEXTDATEIEN UNTER BEIBEHALTUNG427 # IHRES DATUMS INS VERZEICHNIS KOPIEREN428 printf "\n *** makefile and source code files are copied to"429 printf "\n $local_depository_path\n"430 printf "\n copying makefile \"$makefile\" ..."431 cp -p $makefile $local_depository_path/Makefile432 433 # QUELLTEXTDATEIEN MUESSEN IM MAKEFILE AUFGEFUEHRT434 # SEIN435 for filename in $source_code_files436 do437 if [[ $(grep -c $filename $makefile) = 0 ]]438 then439 printf "\n +++ source code file:"440 printf "\n $filename"441 printf "\n is not listed in makefile"442 locat=makefile; exit443 else444 printf "\n copying source code file \"$filename\" ..."445 cp -p $filename $local_depository_path446 fi447 done448 printf "\n"449 else450 printf "\n +++ directory for make depository:"451 printf "\n $local_depository_path"452 printf "\n cannot be created"453 locat=local_depository_path; exit454 fi455 else456 457 printf "\n *** checking file status ..."458 459 # MAKEFILE KOPIEREN, FALLS NEUEREN DATUMS460 if [[ $makefile -nt $local_depository_path/Makefile ]]461 then462 printf "\n *** update of \"$makefile\" "463 cp -f -p $makefile $local_depository_path/Makefile464 update=true465 466 # PRUEFEN, OB ALLE DATEIEN IM DEPOSITORY AUCH IM NEUEN MAKEFILE467 # VERZEICHNET SIND UND GEGEBENENFALLS DATEIEN LOESCHEN468 cd $local_depository_path469 source_code_files_in_depository=`ls -1 *.$suf`470 for filename in $source_code_files_in_depository471 do472 if [[ $(grep -c $filename Makefile) = 0 ]]473 then474 printf "\n *** source code file in \"$local_depository_path\":"475 printf "\n $filename"476 printf "\n is not listed in makefile"477 if [[ $silent = false ]]478 then479 answer=dummy480 printf "\n\n"481 while [[ "$answer" != y && "$answer" != Y && "$answer" != n && "$answer" != N ]]482 do483 printf " >>> delete \"$filename\" in \"$local_depository_path\" (y/n) ? "484 read answer485 done486 if [[ $answer = y || $answer = Y ]]487 then488 base=`echo $filename | cut -d. -f2`489 rm -f $filename490 rm -f ${base}.o ${base}.mod491 printf "\n *** \"$filename\" deleted in \"$local_depository_path\" "492 else493 printf "\n *** \"$filename\" not deleted in \"$local_depository_path\" "494 fi495 fi496 fi497 done498 cd - > /dev/null 2>&1499 500 elif [[ $local_depository_path/Makefile -nt $makefile ]]501 then502 printf "\n *** makefile in depository is newer than"503 printf "\n \"$makefile\" "504 if [[ $silent = false ]]505 then506 answer=dummy507 printf "\n\n"508 while [[ "$answer" != y && "$answer" != Y && "$answer" != n && "$answer" != N ]]509 do510 printf " >>> update \"$makefile\" (y/n) ? "511 read answer512 done513 if [[ $answer = y || $answer = Y ]]514 then515 cp -f -p $local_depository_path/Makefile $makefile516 printf "\n *** \"$makefile\" updated"517 else518 printf "\n *** \"$makefile\" not updated"519 fi520 fi521 fi522 523 # QUELLTEXTDATEIEN KOPIEREN, FALLS NEUEREN DATUMS524 # SIE MUESSEN IM MAKEFILE AUFGEFUEHRT SEIN525 for filename in $source_code_files526 do527 if [[ $(grep -c $filename $makefile) = 0 ]]528 then529 printf "\n +++ source code file:"530 printf "\n $filename"531 printf "\n is not listed in makefile"532 locat=makefile; exit533 else534 if [[ ! -f $local_depository_path/$filename ]]535 then536 cp -p $filename $local_depository_path537 printf "\n *** source code file \"$filename\" created in \"$local_depository_path\" "538 fi539 if [[ $filename -nt $local_depository_path/$filename ]]540 then541 printf "\n *** update of source code file \"$filename\" "542 cp -f -p $filename $local_depository_path543 update=true544 fi545 fi546 done547 548 549 # PRUEFEN, OB ALLE DATEIEN IM DEPOSITORY IM AKTUELLEN ARBEITSVERZEICHNIS VORHANDEN550 # ODER EVTL. NEUEREN DATUMS SIND551 cd $local_depository_path552 source_code_files_in_depository=`ls -1 *.$suf`553 cd - > /dev/null 2>&1554 for filename in $source_code_files_in_depository555 do556 if [[ ! -f $filename ]]557 then558 printf "\n *** source code file \"$filename\" does not exist in current directory"559 if [[ $silent = false ]]560 then561 answer=dummy562 printf "\n\n"563 while [[ "$answer" != y && "$answer" != Y && "$answer" != n && "$answer" != N ]]564 do565 printf " >>> create \"$filename\" in current directory (y/n) ? "566 read answer567 done568 if [[ $answer = y || $answer = Y ]]569 then570 cp -p $local_depository_path/$filename $filename571 printf "\n *** source code file \"$filename\" created in current directory"572 else573 printf "\n *** source code file \"$filename\" not created in current directory"574 fi575 fi576 elif [[ $local_depository_path/$filename -nt $filename ]]577 then578 ls -al $local_depository_path/$filename579 ls -al $filename580 printf "\n *** source code file \"$filename\" in depository is newer than in current directory"581 if [[ $silent = false ]]582 then583 answer=dummy584 printf "\n\n"585 while [[ "$answer" != y && "$answer" != Y && "$answer" != n && "$answer" != N ]]586 do587 printf " >>> update \"$filename\" in current directory (y/n) ? "588 read answer589 done590 if [[ $answer = y || $answer = Y ]]591 then592 cp -f -p $local_depository_path/$filename $filename593 printf "\n *** source code file \"$filename\" updated in current directory"594 else595 printf "\n *** source code file \"$filename\" not updated in current directory"596 fi597 fi598 fi599 done600 601 if [[ $update = false ]]602 then603 printf "\n *** no updates necessary in \"$local_depository_path\" "604 if [[ $silent = false ]]605 then606 answer=dummy607 printf "\n\n"608 while [[ "$answer" != y && "$answer" != Y && "$answer" != n && "$answer" != N ]]609 do610 printf " >>> continue with updates on remote hosts (y/n) ? "611 read answer612 done613 if [[ $answer = n || $answer = N ]]614 then615 locat=user_abort; exit616 fi617 fi618 fi619 fi620 621 622 623 # QUELLTEXTDATEIEN UND MAKEFILE MIT TAR ZUSAMMENBINDEN624 388 # IN JEDEM FALL ALLEN DATEIEN WRITE-PERMIT GEBEN, DAMIT ES AUF 625 389 # DEN REMOTE-RECHNERN NICHT EVTL. ZU PROBLEMEN BEIM UEBERSCHREIBEN KOMMT 626 printf "\n\n *** tar of makefile and source files in depository ..." 627 cd $local_depository_path 628 chmod u+w Makefile *.$suf 390 cd $local_source_path 391 printf "\n\n *** tar of makefile and source files in $local_source_path" 629 392 tar -cf ${mainprog}_sources.tar Makefile *.$suf 630 393 printf "\n" … … 665 428 printf "\n *** scanning configuration file for host(s) ..." 666 429 667 grep %fopts $config_file > tmp_mbuild430 grep %fopts $config_file > $tmp_mbuild 668 431 while read line 669 432 do … … 672 435 (( ihost = ihost + 1 )) 673 436 hostline[$ihost]="$line" 674 done < tmp_mbuild437 done < $tmp_mbuild 675 438 676 439 … … 750 513 line="" 751 514 found=false 752 grep "$remote_host_string" $config_file | grep "%remote_username" > tmp_mbuild515 grep "$remote_host_string" $config_file | grep "%remote_username" > $tmp_mbuild 753 516 while read line1 754 517 do … … 765 528 fi 766 529 767 done < tmp_mbuild530 done < $tmp_mbuild 768 531 769 532 if [[ $found = false ]] … … 778 541 line="" 779 542 remote_source_path="" 780 grep "$remote_host_string" $config_file | grep "%source_path" > tmp_mbuild543 grep "$remote_host_string" $config_file | grep "%source_path" > $tmp_mbuild 781 544 while read line1 782 545 do … … 792 555 fi 793 556 794 done < tmp_mbuild557 done < $tmp_mbuild 795 558 796 559 if [[ "$remote_source_path" = "" ]] … … 813 576 remote_md="" 814 577 line="" 815 grep "$remote_host_string" $config_file | grep "%depository_path" > tmp_mbuild578 grep "$remote_host_string" $config_file | grep "%depository_path" > $tmp_mbuild 816 579 while read line1 817 580 do … … 827 590 fi 828 591 829 done < tmp_mbuild592 done < $tmp_mbuild 830 593 831 594 if [[ "$remote_md" = "" ]] … … 843 606 844 607 remote_md=$(eval echo $remote_md) 608 [[ "$condition1" != "" ]] && remote_md=${remote_md}_$condition1 609 [[ "$condition2" != "" ]] && remote_md=${remote_md}_$condition2 845 610 846 611 … … 848 613 line="" 849 614 found=false 850 grep "$remote_host_string" $config_file | grep "%compiler_name " > tmp_mbuild615 grep "$remote_host_string" $config_file | grep "%compiler_name " > $tmp_mbuild 851 616 while read line1 852 617 do … … 863 628 fi 864 629 865 done < tmp_mbuild630 done < $tmp_mbuild 866 631 867 632 if [[ $found = false ]] … … 879 644 line="" 880 645 found=false 881 grep "$remote_host_string" $config_file | grep "%compiler_name_ser" > tmp_mbuild646 grep "$remote_host_string" $config_file | grep "%compiler_name_ser" > $tmp_mbuild 882 647 while read line1 883 648 do … … 894 659 fi 895 660 896 done < tmp_mbuild661 done < $tmp_mbuild 897 662 898 663 if [[ $found = false ]] … … 911 676 line="" 912 677 found=false 913 grep "$remote_host_string" $config_file | grep "%cpp_options" > tmp_mbuild678 grep "$remote_host_string" $config_file | grep "%cpp_options" > $tmp_mbuild 914 679 while read line1 915 680 do … … 927 692 fi 928 693 929 done < tmp_mbuild694 done < $tmp_mbuild 930 695 931 696 if [[ $found = false ]] … … 963 728 # NETCDF-OPTIONEN ERMITTELN 964 729 line="" 965 grep "$remote_host_string" $config_file | grep "%netcdf_inc" > tmp_mbuild730 grep "$remote_host_string" $config_file | grep "%netcdf_inc" > $tmp_mbuild 966 731 while read line1 967 732 do … … 978 743 fi 979 744 980 done < tmp_mbuild745 done < $tmp_mbuild 981 746 982 747 line="" 983 grep "$remote_host_string" $config_file | grep "%netcdf_lib" > tmp_mbuild748 grep "$remote_host_string" $config_file | grep "%netcdf_lib" > $tmp_mbuild 984 749 while read line1 985 750 do … … 996 761 fi 997 762 998 done < tmp_mbuild763 done < $tmp_mbuild 999 764 1000 765 … … 1003 768 line="" 1004 769 found=false 1005 grep "$remote_host_string" $config_file | grep "%fopts" > tmp_mbuild770 grep "$remote_host_string" $config_file | grep "%fopts" > $tmp_mbuild 1006 771 while read line1 1007 772 do … … 1022 787 fi 1023 788 1024 done < tmp_mbuild789 done < $tmp_mbuild 1025 790 1026 791 if [[ $found = false ]] … … 1036 801 line="" 1037 802 found=false 1038 grep "$remote_host_string" $config_file | grep "%lopts" > tmp_mbuild803 grep "$remote_host_string" $config_file | grep "%lopts" > $tmp_mbuild 1039 804 while read line1 1040 805 do … … 1055 820 fi 1056 821 1057 done < tmp_mbuild822 done < $tmp_mbuild 1058 823 1059 824 if [[ $found = false ]] … … 1078 843 column1="make depository:"; column2=$remote_md 1079 844 printf "| $column1$column2 | \n" 845 line=$(echo "$remote_md" | cut -c51-) 846 while [[ "$line" != "" ]] 847 do 848 column1="" 849 column2=$line 850 printf "| $column1$column2 | \n" 851 line=$(echo "$line" | cut -c51-) 852 done 1080 853 if [[ $compile_utility_programs = true ]] 1081 854 then … … 1247 1020 # KOENNEN DOLLAR-ZEICHEN NICHT BENUTZT WERDEN 1248 1021 remote_md=`echo $remote_md | sed 's/\$HOME\///'` 1249 /bin/scp ${ mainprog}_sources.tar ${remote_username}@${remote_addres}:${remote_md}/${mainprog}_sources.tar1022 /bin/scp ${local_source_path}/${mainprog}_sources.tar ${remote_username}@${remote_addres}:${remote_md}/${mainprog}_sources.tar 1250 1023 else 1251 scp ${ mainprog}_sources.tar ${remote_username}@${remote_addres}:${remote_md}/${mainprog}_sources.tar1024 scp ${local_source_path}/${mainprog}_sources.tar ${remote_username}@${remote_addres}:${remote_md}/${mainprog}_sources.tar 1252 1025 fi 1253 1026 … … 1477 1250 then 1478 1251 1252 # DEPOSITORY VERZEICHNIS ERZEUGEN, FALLS NOCH NICHT VORHANDEN 1253 eval remote_md=$remote_md 1254 if [[ ! -d $remote_md ]] 1255 then 1256 if mkdir $remote_md 1257 then 1258 printf "\n\n *** directory for make depository:" 1259 printf "\n $remote_md" 1260 printf "\n was created\n" 1261 else 1262 printf "\n +++ directory for make depository:" 1263 printf "\n $remote_md" 1264 printf "\n cannot be created" 1265 locat=local_depository_path; exit 1266 fi 1267 fi 1268 1269 # QUELLTEXT-DATEIEN AUS REPOSITORY INS DEPOSITORY KOPIEREN 1270 echo " " 1271 echo " *** updating sources in $remote_md" 1272 cd $remote_md 1273 cp $local_source_path/${mainprog}_sources.tar . 1274 tar xf ${mainprog}_sources.tar 1275 1479 1276 # MAKE MIT ZUVOR ERMITTELTEN OPTIONEN AUF LOKALEM RECHNER AUSFUEHREN 1480 1277 echo " " -
palm/trunk/SCRIPTS/mrun
r211 r215 163 163 # user can provide his/her own makefile, only 164 164 # default source-code filenames are allowed 165 # 14/11/08 - Siggi - cond1 and cond2 are part of the depository name 165 166 166 167 … … 2286 2287 fi 2287 2288 eval local_depository_path=$local_depository_path 2289 [[ "$cond1" != "" ]] && local_depository_path=${local_depository_path}_$cond1 2290 [[ "$cond2" != "" ]] && local_depository_path=${local_depository_path}_$cond2 2291 2288 2292 2289 2293 basename=`print $mainprog | cut -f1 -d"."` -
palm/trunk/SOURCE
-
Property
svn:ignore
set to
palm_sources.tar
-
Property
svn:ignore
set to
-
palm/trunk/SOURCE/CURRENT_MODIFICATIONS
r213 r215 21 21 User interface has been split into single files. 22 22 23 Precompilation mechanism (mbuild) completely revised: the source tarfile remains in 24 the source directory. One depository per block (given in the config-file) is 25 created. Always all files from the source directory are copied to the respective 26 depository. No additional file checks are done any more (version 2.1). The 27 depository name used contains the conditions given by mrun-option "-K". 28 (mbuild, mrun) 29 23 30 Output messages (including required stop of execution) can now be handled with 24 31 the new subroutine handle_palm_message. All output messages will be replaced 25 32 by this routine step by step within the next revisions. 26 33 27 Makefile, check_parameters, local_stop, modules34 Makefile, mbuild, mrun, check_parameters, local_stop, modules 28 35 29 36 New: handle_palm_message, user_3d_data_averaging user_actions user_advec_particles user_check_data_output user_check_data_output_pr user_data_output_2d user_data_output_3d user_data_output_dvrp user_define_netcdf_grid user_dvrp_coltab user_header user_init user_init_3d_model user_init_grid user_init_particles user_init_plant_canopy user_last_actions user_module user_parin user_particle_attributes user_read_restart_data user_spectra user_statistics … … 47 54 Bugfix in calculating k index in case of oceans runs. (sort_particles) 48 55 49 advec_particles, combine_plot_fields, header, production_e 56 Bugfix: zero output of particle concentration and radius unless particles 57 have been started (data_output_2d) 58 59 60 advec_particles, combine_plot_fields, data_output_2d, header, production_e -
palm/trunk/SOURCE/check_parameters.f90
r214 r215 938 938 !-- Ocean version must use flux boundary conditions at the top 939 939 IF ( ocean .AND. .NOT. use_top_fluxes ) THEN 940 IF ( myid == 0 ) PRINT*, '+++ check_parameters: use_top_fluxes ',& 941 'must be .TRUE. in ocean version' 942 CALL local_stop 940 message_string = 'use_top_fluxes must be .TRUE. in ocean version' 941 CALL handle_palm_message( 'check_parameters', 'PA0042', 1, 2, 0, 6, 0 ) 943 942 ENDIF 944 943 … … 947 946 IF ( alpha_surface /= 0.0 ) THEN 948 947 IF ( ABS( alpha_surface ) > 90.0 ) THEN 949 IF ( myid == 0 ) PRINT*, '+++ check_parameters: ABS( alpha_surface',& 950 '=', alpha_surface, ' ) must be < 90.0' 951 CALL local_stop 948 WRITE( message_string, * ) 'ABS( alpha_surface = ', alpha_surface, & 949 ' ) must be < 90.0' 950 CALL handle_palm_message( 'check_parameters', 'PA0043', 1, 2, 0, 6, & 951 0 ) 952 952 ENDIF 953 953 sloping_surface = .TRUE. … … 960 960 IF ( dt /= -1.0 ) THEN 961 961 IF ( dt <= 0.0 .AND. dt /= -1.0 ) THEN 962 IF ( myid == 0 ) PRINT*, '+++ check_parameters: dt=', dt, ' <= 0.0' 963 CALL local_stop 962 WRITE( message_string, * ) 'dt = ', dt , ' <= 0.0' 963 CALL handle_palm_message( 'check_parameters', 'PA0044', 1, 2, 0, 6, & 964 0 ) 964 965 ENDIF 965 966 dt_3d = dt … … 982 983 ENDIF 983 984 ELSE 984 IF ( myid == 0 ) THEN 985 PRINT*, '+++ check_parameters: cfl_factor=', cfl_factor, & 986 ' out of range' 987 PRINT*, '+++ 0.0 < cfl_factor <= 1.0 is required' 988 ENDIF 989 CALL local_stop 985 WRITE( message_string, * ) 'cfl_factor = ', cfl_factor, & 986 ' out of range & 0.0 < cfl_factor <= 1.0 is required' 987 CALL handle_palm_message( 'check_parameters', 'PA0045', 1, 2, 0, 6, & 988 0 ) 990 989 ENDIF 991 990 ENDIF … … 1005 1004 ELSEIF ( use_ug_for_galilei_tr .AND. & 1006 1005 ug_vertical_gradient_level(1) /= 0.0 ) THEN 1007 IF ( myid == 0 ) THEN 1008 PRINT*, '+++ check_parameters:' 1009 PRINT*, ' baroclinicity (ug) not allowed' 1010 PRINT*, ' simultaneously with galilei transformation' 1011 ENDIF 1012 CALL local_stop 1006 message_string = 'baroclinicity (ug) not allowed simultaneously' // & 1007 ' with galilei transformation' 1008 CALL handle_palm_message( 'check_parameters', 'PA0046', 1, 2, 0, 6, & 1009 0 ) 1013 1010 ELSEIF ( use_ug_for_galilei_tr .AND. & 1014 1011 vg_vertical_gradient_level(1) /= 0.0 ) THEN 1015 IF ( myid == 0 ) THEN 1016 PRINT*, '+++ check_parameters:' 1017 PRINT*, ' baroclinicity (vg) not allowed' 1018 PRINT*, ' simultaneously with galilei transformation' 1019 ENDIF 1020 CALL local_stop 1012 message_string = 'baroclinicity (vg) not allowed simultaneously' // & 1013 ' with galilei transformation' 1014 CALL handle_palm_message( 'check_parameters', 'PA0047', 1, 2, 0, 6, & 1015 0 ) 1021 1016 ELSE 1022 IF ( myid == 0 ) THEN 1023 PRINT*, '+++ WARNING: check_parameters:' 1024 PRINT*, ' variable translation speed used for galilei-tran' // & 1025 'sformation, which' 1026 PRINT*, ' may cause instabilities in stably stratified regions' 1027 ENDIF 1017 message_string = 'variable translation speed used for galilei-' // & 1018 'transformation, which may cause & instabilities in stably ' // & 1019 'stratified regions' 1020 CALL handle_palm_message( 'check_parameters', 'PA0048', 0, 1, 0, 6, & 1021 0 ) 1028 1022 ENDIF 1029 1023 ENDIF … … 1039 1033 IF ( bc_lr /= 'cyclic' .AND. bc_lr /= 'dirichlet/radiation' .AND. & 1040 1034 bc_lr /= 'radiation/dirichlet' ) THEN 1041 IF ( myid == 0 ) THEN 1042 PRINT*, '+++ check_parameters:' 1043 PRINT*, ' unknown boundary condition: bc_lr = ', bc_lr 1044 ENDIF 1045 CALL local_stop 1035 message_string = 'unknown boundary condition: bc_lr = "' // & 1036 TRIM( bc_lr ) // '"' 1037 CALL handle_palm_message( 'check_parameters', 'PA0049', 1, 2, 0, 6, 0 ) 1046 1038 ENDIF 1047 1039 IF ( bc_ns /= 'cyclic' .AND. bc_ns /= 'dirichlet/radiation' .AND. & 1048 1040 bc_ns /= 'radiation/dirichlet' ) THEN 1049 IF ( myid == 0 ) THEN 1050 PRINT*, '+++ check_parameters:' 1051 PRINT*, ' unknown boundary condition: bc_ns = ', bc_ns 1052 ENDIF 1053 CALL local_stop 1041 message_string = 'unknown boundary condition: bc_ns = "' // & 1042 TRIM( bc_ns ) // '"' 1043 CALL handle_palm_message( 'check_parameters', 'PA0050', 1, 2, 0, 6, 0 ) 1054 1044 ENDIF 1055 1045 … … 1060 1050 IF ( bc_lr /= 'cyclic' .OR. bc_ns /= 'cyclic' ) THEN 1061 1051 IF ( psolver /= 'multigrid' ) THEN 1062 IF ( myid == 0 ) THEN 1063 PRINT*, '+++ check_parameters:' 1064 PRINT*, ' non-cyclic lateral boundaries do not allow', & 1065 ' psolver = ', psolver 1066 ENDIF 1067 CALL local_stop 1052 message_string = 'non-cyclic lateral boundaries do not allow ' // & 1053 'psolver = "' // TRIM( psolver ) // '"' 1054 CALL handle_palm_message( 'check_parameters', 'PA0051', 1, 2, 0, 6, & 1055 0 ) 1068 1056 ENDIF 1069 1057 IF ( momentum_advec /= 'pw-scheme' ) THEN 1070 IF ( myid == 0 ) THEN 1071 PRINT*, '+++ check_parameters:' 1072 PRINT*, ' non-cyclic lateral boundaries do not allow', & 1073 ' momentum_advec = ', momentum_advec 1074 ENDIF 1075 CALL local_stop 1058 message_string = 'non-cyclic lateral boundaries do not allow ' // & 1059 'momentum_advec = "' // TRIM( momentum_advec ) // '"' 1060 CALL handle_palm_message( 'check_parameters', 'PA0052', 1, 2, 0, 6, & 1061 0 ) 1076 1062 ENDIF 1077 1063 IF ( scalar_advec /= 'pw-scheme' ) THEN 1078 IF ( myid == 0 ) THEN 1079 PRINT*, '+++ check_parameters:' 1080 PRINT*, ' non-cyclic lateral boundaries do not allow', & 1081 ' scalar_advec = ', scalar_advec 1082 ENDIF 1083 CALL local_stop 1064 message_string = 'non-cyclic lateral boundaries do not allow ' // & 1065 'scalar_advec = "' // TRIM( scalar_advec ) // '"' 1066 CALL handle_palm_message( 'check_parameters', 'PA0053', 1, 2, 0, 6, & 1067 0 ) 1084 1068 ENDIF 1085 1069 IF ( galilei_transformation ) THEN 1086 IF ( myid == 0 ) THEN 1087 PRINT*, '+++ check_parameters:' 1088 PRINT*, ' non-cyclic lateral boundaries do not allow', & 1089 ' galilei_transformation = .T.' 1090 ENDIF 1091 CALL local_stop 1092 ENDIF 1093 ! IF ( conserve_volume_flow ) THEN 1094 ! IF ( myid == 0 ) THEN 1095 ! PRINT*, '+++ check_parameters:' 1096 ! PRINT*, ' non-cyclic lateral boundaries do not allow', & 1097 ! ' conserve_volume_flow = .T.' 1098 ! ENDIF 1099 ! CALL local_stop 1100 ! ENDIF 1070 message_string = 'non-cyclic lateral boundaries do not allow ' // & 1071 'galilei_transformation = .T.' 1072 CALL handle_palm_message( 'check_parameters', 'PA0054', 1, 2, 0, 6, & 1073 0 ) 1074 ENDIF 1101 1075 ENDIF 1102 1076 … … 1106 1080 ibc_e_b = 1 1107 1081 IF ( adjust_mixing_length .AND. prandtl_layer ) THEN 1108 IF ( myid == 0 ) THEN 1109 PRINT*, '+++ WARNING: check_parameters:' 1110 PRINT*, ' adjust_mixing_length = TRUE and bc_e_b = ', bc_e_b 1111 ENDIF 1082 message_string = 'adjust_mixing_length = TRUE and bc_e_b = "neumann"' 1083 CALL handle_palm_message( 'check_parameters', 'PA0055', 0, 1, 0, 6, & 1084 0 ) 1112 1085 ENDIF 1113 1086 ELSEIF ( bc_e_b == '(u*)**2+neumann' ) THEN 1114 1087 ibc_e_b = 2 1115 1088 IF ( .NOT. adjust_mixing_length .AND. prandtl_layer ) THEN 1116 IF ( myid == 0 ) THEN1117 PRINT*, '+++ WARNING: check_parameters:'1118 PRINT*, ' adjust_mixing_length = FALSE and bc_e_b = ', bc_e_b1119 ENDIF1089 message_string = 'adjust_mixing_length = FALSE and bc_e_b = "' // & 1090 TRIM( bc_e_b ) // '"' 1091 CALL handle_palm_message( 'check_parameters', 'PA0056', 0, 1, 0, 6, & 1092 0 ) 1120 1093 ENDIF 1121 1094 IF ( .NOT. prandtl_layer ) THEN 1122 1095 bc_e_b = 'neumann' 1123 1096 ibc_e_b = 1 1124 IF ( myid == 0 ) THEN1125 PRINT*, '+++ WARNING: check_parameters:'1126 PRINT*, ' boundary condition bc_e_b changed to "', bc_e_b, '"'1127 ENDIF1097 message_string = 'boundary condition bc_e_b changed to "' // & 1098 TRIM( bc_e_b ) // '"' 1099 CALL handle_palm_message( 'check_parameters', 'PA0057', 0, 1, 0, 6, & 1100 0 ) 1128 1101 ENDIF 1129 1102 ELSE 1130 IF ( myid == 0 ) THEN 1131 PRINT*, '+++ check_parameters:' 1132 PRINT*, ' unknown boundary condition: bc_e_b = ', bc_e_b 1133 ENDIF 1134 CALL local_stop 1103 message_string = 'unknown boundary condition: bc_e_b = "' // & 1104 TRIM( bc_e_b ) // '"' 1105 CALL handle_palm_message( 'check_parameters', 'PA0058', 1, 2, 0, 6, 0 ) 1135 1106 ENDIF 1136 1107 … … 1144 1115 ibc_p_b = 2 1145 1116 ELSE 1146 IF ( myid == 0 ) THEN 1147 PRINT*, '+++ check_parameters:' 1148 PRINT*, ' unknown boundary condition: bc_p_b = ', bc_p_b 1149 ENDIF 1150 CALL local_stop 1117 message_string = 'unknown boundary condition: bc_p_b = "' // & 1118 TRIM( bc_p_b ) // '"' 1119 CALL handle_palm_message( 'check_parameters', 'PA0059', 1, 2, 0, 6, 0 ) 1151 1120 ENDIF 1152 1121 IF ( ibc_p_b == 2 .AND. .NOT. prandtl_layer ) THEN 1153 IF ( myid == 0 ) THEN 1154 PRINT*, '+++ check_parameters:' 1155 PRINT*, ' boundary condition: bc_p_b = ', TRIM( bc_p_b ), & 1156 ' not allowed with' 1157 PRINT*, ' prandtl_layer = .FALSE.' 1158 ENDIF 1159 CALL local_stop 1122 message_string = 'boundary condition: bc_p_b = "' // TRIM( bc_p_b ) // & 1123 '" not allowed with prandtl_layer = .FALSE.' 1124 CALL handle_palm_message( 'check_parameters', 'PA0060', 1, 2, 0, 6, 0 ) 1160 1125 ENDIF 1161 1126 IF ( bc_p_t == 'dirichlet' ) THEN … … 1164 1129 ibc_p_t = 1 1165 1130 ELSE 1166 IF ( myid == 0 ) THEN 1167 PRINT*, '+++ check_parameters:' 1168 PRINT*, ' unknown boundary condition: bc_p_t = ', bc_p_t 1169 ENDIF 1170 CALL local_stop 1131 message_string = 'unknown boundary condition: bc_p_t = "' // & 1132 TRIM( bc_p_t ) // '"' 1133 CALL handle_palm_message( 'check_parameters', 'PA0061', 1, 2, 0, 6, 0 ) 1171 1134 ENDIF 1172 1135 … … 1181 1144 ibc_pt_b = 1 1182 1145 ELSE 1183 IF ( myid == 0 ) THEN 1184 PRINT*, '+++ check_parameters:' 1185 PRINT*, ' unknown boundary condition: bc_pt_b = ', bc_pt_b 1186 ENDIF 1187 CALL local_stop 1146 message_string = 'unknown boundary condition: bc_pt_b = "' // & 1147 TRIM( bc_pt_b ) // '"' 1148 CALL handle_palm_message( 'check_parameters', 'PA0062', 1, 2, 0, 6, & 1149 0 ) 1188 1150 ENDIF 1189 1151 ENDIF … … 1196 1158 ibc_pt_t = 2 1197 1159 ELSE 1198 IF ( myid == 0 ) THEN 1199 PRINT*, '+++ check_parameters:' 1200 PRINT*, ' unknown boundary condition: bc_pt_t = ', bc_pt_t 1201 ENDIF 1202 CALL local_stop 1160 message_string = 'unknown boundary condition: bc_pt_t = "' // & 1161 TRIM( bc_pt_t ) // '"' 1162 CALL handle_palm_message( 'check_parameters', 'PA0063', 1, 2, 0, 6, 0 ) 1203 1163 ENDIF 1204 1164 … … 1209 1169 constant_top_momentumflux = .TRUE. 1210 1170 ELSEIF ( .NOT. ( top_momentumflux_u == 9999999.9 .AND. & 1211 top_momentumflux_v == 9999999.9 ) ) THEN 1212 IF ( myid == 0 ) THEN 1213 PRINT*, '+++ check_parameters:' 1214 PRINT*, ' both, top_momentumflux_u AND top_momentumflux_v' 1215 PRINT*, ' must be set' 1216 ENDIF 1217 CALL local_stop 1171 top_momentumflux_v == 9999999.9 ) ) THEN 1172 message_string = 'both, top_momentumflux_u AND top_momentumflux_v ' // & 1173 'must be set' 1174 CALL handle_palm_message( 'check_parameters', 'PA0064', 1, 2, 0, 6, 0 ) 1218 1175 ENDIF 1219 1176 … … 1224 1181 IF ( ibc_pt_b == 0 .AND. constant_heatflux .AND. & 1225 1182 surface_heatflux /= 0.0 ) THEN 1226 IF ( myid == 0 ) THEN 1227 PRINT*, '+++ check_parameters:' 1228 PRINT*, ' boundary_condition: bc_pt_b = ', bc_pt_b 1229 PRINT*, ' is not allowed with constant_heatflux = .TRUE.' 1230 ENDIF 1231 CALL local_stop 1183 message_string = 'boundary_condition: bc_pt_b = "' // TRIM( bc_pt_b ) //& 1184 '& is not allowed with constant_heatflux = .TRUE.' 1185 CALL handle_palm_message( 'check_parameters', 'PA0065', 1, 2, 0, 6, 0 ) 1232 1186 ENDIF 1233 1187 IF ( constant_heatflux .AND. pt_surface_initial_change /= 0.0 ) THEN 1234 IF ( myid == 0 ) THEN 1235 PRINT*, '+++ check_parameters: constant_heatflux = .TRUE. is not' 1236 PRINT*, ' allowed with pt_surface_initial_change (/=0) = ', & 1237 pt_surface_initial_change 1238 ENDIF 1239 CALL local_stop 1188 WRITE ( message_string, * ) 'constant_heatflux = .TRUE. is not allo', & 1189 'wed with pt_surface_initial_change (/=0) = ', & 1190 pt_surface_initial_change 1191 CALL handle_palm_message( 'check_parameters', 'PA0066', 1, 2, 0, 6, 0 ) 1240 1192 ENDIF 1241 1193 … … 1246 1198 IF ( ibc_pt_t == 0 .AND. constant_top_heatflux .AND. & 1247 1199 top_heatflux /= 0.0 ) THEN 1248 IF ( myid == 0 ) THEN 1249 PRINT*, '+++ check_parameters:' 1250 PRINT*, ' boundary_condition: bc_pt_t = ', bc_pt_t 1251 PRINT*, ' is not allowed with constant_top_heatflux = .TRUE.' 1252 ENDIF 1253 CALL local_stop 1200 message_string = 'boundary_condition: bc_pt_t = "' // TRIM( bc_pt_t ) //& 1201 '" is not allowed with constant_top_heatflux = .TRUE.' 1202 CALL handle_palm_message( 'check_parameters', 'PA0067', 1, 2, 0, 6, 0 ) 1254 1203 ENDIF 1255 1204 … … 1262 1211 ibc_sa_t = 1 1263 1212 ELSE 1264 IF ( myid == 0 ) THEN 1265 PRINT*, '+++ check_parameters:' 1266 PRINT*, ' unknown boundary condition: bc_sa_t = ', bc_sa_t 1267 ENDIF 1268 CALL local_stop 1213 message_string = 'unknown boundary condition: bc_sa_t = "' // & 1214 TRIM( bc_sa_t ) // '"' 1215 CALL handle_palm_message( 'check_parameters', 'PA0068', 1, 2, 0, 6, & 1216 0 ) 1269 1217 ENDIF 1270 1218 1271 1219 IF ( top_salinityflux == 9999999.9 ) constant_top_salinityflux = .FALSE. 1272 1220 IF ( ibc_sa_t == 1 .AND. top_salinityflux == 9999999.9 ) THEN 1273 IF ( myid == 0 ) THEN 1274 PRINT*, '+++ check_parameters:' 1275 PRINT*, ' boundary_condition: bc_sa_t = ', bc_sa_t 1276 PRINT*, ' requires to set top_salinityflux ' 1277 ENDIF 1278 CALL local_stop 1221 message_string = 'boundary condition: bc_sa_t = "' // & 1222 TRIM( bc_sa_t ) // '" requires to set ' // & 1223 'top_salinityflux' 1224 CALL handle_palm_message( 'check_parameters', 'PA0069', 1, 2, 0, 6, & 1225 0 ) 1279 1226 ENDIF 1280 1227 … … 1285 1232 IF ( ibc_sa_t == 0 .AND. constant_top_salinityflux .AND. & 1286 1233 top_salinityflux /= 0.0 ) THEN 1287 IF ( myid == 0 ) THEN 1288 PRINT*, '+++ check_parameters:' 1289 PRINT*, ' boundary_condition: bc_sa_t = ', bc_sa_t 1290 PRINT*, ' is not allowed with constant_top_salinityflux = ', & 1291 '.TRUE.' 1292 ENDIF 1293 CALL local_stop 1234 message_string = 'boundary condition: bc_sa_t = "' // & 1235 TRIM( bc_sa_t ) // '" is not allowed with ' // & 1236 'constant_top_salinityflux = .TRUE.' 1237 CALL handle_palm_message( 'check_parameters', 'PA0070', 1, 2, 0, 6, & 1238 0 ) 1294 1239 ENDIF 1295 1240 … … 1310 1255 ibc_q_b = 1 1311 1256 ELSE 1312 IF ( myid == 0 ) THEN 1313 PRINT*, '+++ check_parameters:' 1314 PRINT*, ' unknown boundary condition: bc_', sq, '_b = ', bc_q_b 1315 ENDIF 1316 CALL local_stop 1257 message_string = 'unknown boundary condition: bc_' // TRIM( sq ) // & 1258 '_b ="' // TRIM( bc_q_b ) // '"' 1259 CALL handle_palm_message( 'check_parameters', 'PA0071', 1, 2, 0, 6, & 1260 0 ) 1317 1261 ENDIF 1318 1262 IF ( bc_q_t == 'dirichlet' ) THEN … … 1321 1265 ibc_q_t = 1 1322 1266 ELSE 1323 IF ( myid == 0 ) THEN 1324 PRINT*, '+++ check_parameters:' 1325 PRINT*, ' unknown boundary condition: bc_', sq, '_t = ', bc_q_t 1326 ENDIF 1327 CALL local_stop 1267 message_string = 'unknown boundary condition: bc_' // TRIM( sq ) // & 1268 '_t ="' // TRIM( bc_q_t ) // '"' 1269 CALL handle_palm_message( 'check_parameters', 'PA0072', 1, 2, 0, 6, & 1270 0 ) 1328 1271 ENDIF 1329 1272 … … 1335 1278 !-- forbidden. 1336 1279 IF ( ibc_q_b == 0 .AND. constant_waterflux ) THEN 1337 IF ( myid == 0 ) THEN 1338 PRINT*, '+++ check_parameters:' 1339 PRINT*, ' boundary_condition: bc_', sq, '_b = ', bc_q_b 1340 PRINT*, ' is not allowed with prescribed surface flux' 1341 ENDIF 1342 CALL local_stop 1280 message_string = 'boundary condition: bc_' // TRIM( sq ) // '_b ' // & 1281 '= "' // TRIM( bc_q_b ) // '" is not allowed wi' // & 1282 'th prescribed surface flux' 1283 CALL handle_palm_message( 'check_parameters', 'PA0073', 1, 2, 0, 6, & 1284 0 ) 1343 1285 ENDIF 1344 1286 IF ( constant_waterflux .AND. q_surface_initial_change /= 0.0 ) THEN 1345 IF ( myid == 0 ) THEN 1346 PRINT*, '+++ check_parameters: a prescribed surface flux is not' 1347 PRINT*, ' allowed with ', sq, '_surface_initial_change (/=0)', & 1348 ' = ', q_surface_initial_change 1349 ENDIF 1350 CALL local_stop 1287 WRITE( message_string, * ) 'a prescribed surface flux is not allo', & 1288 'wed with ', sq, '_surface_initial_change (/=0) = ', & 1289 q_surface_initial_change 1290 CALL handle_palm_message( 'check_parameters', 'PA0074', 1, 2, 0, 6, & 1291 0 ) 1351 1292 ENDIF 1352 1293 … … 1360 1301 ibc_uv_b = 1 1361 1302 IF ( prandtl_layer ) THEN 1362 IF ( myid == 0 ) THEN 1363 PRINT*, '+++ check_parameters:' 1364 PRINT*, ' boundary condition: bc_uv_b = ', TRIM( bc_uv_b ), & 1365 ' is not allowed with' 1366 PRINT*, ' prandtl_layer = .TRUE.' 1367 ENDIF 1368 CALL local_stop 1303 message_string = 'boundary condition: bc_uv_b = "' // & 1304 TRIM( bc_uv_b ) // '" is not allowed with prandtl_layer = .TRUE.' 1305 CALL handle_palm_message( 'check_parameters', 'PA0075', 1, 2, 0, 6, & 1306 0 ) 1369 1307 ENDIF 1370 1308 ELSE 1371 IF ( myid == 0 ) THEN 1372 PRINT*, '+++ check_parameters:' 1373 PRINT*, ' unknown boundary condition: bc_uv_b = ', bc_uv_b 1374 ENDIF 1375 CALL local_stop 1376 ENDIF 1309 message_string = 'unknown boundary condition: bc_uv_b = "' // & 1310 TRIM( bc_uv_b ) // '"' 1311 CALL handle_palm_message( 'check_parameters', 'PA0076', 1, 2, 0, 6, 0 ) 1312 ENDIF 1313 1377 1314 IF ( coupling_mode == 'ocean_to_atmosphere' ) THEN 1378 1315 bc_uv_t = 'neumann' … … 1384 1321 ibc_uv_t = 1 1385 1322 ELSE 1386 IF ( myid == 0 ) THEN 1387 PRINT*, '+++ check_parameters:' 1388 PRINT*, ' unknown boundary condition: bc_uv_t = ', bc_uv_t 1389 ENDIF 1390 CALL local_stop 1323 message_string = 'unknown boundary condition: bc_uv_t = "' // & 1324 TRIM( bc_uv_t ) // '"' 1325 CALL handle_palm_message( 'check_parameters', 'PA0077', 1, 2, 0, 6, & 1326 0 ) 1391 1327 ENDIF 1392 1328 ENDIF … … 1403 1339 IF ( rayleigh_damping_factor < 0.0 .OR. rayleigh_damping_factor > 1.0 ) & 1404 1340 THEN 1405 IF ( myid == 0 ) THEN 1406 PRINT*, '+++ check_parameters:' 1407 PRINT*, ' rayleigh_damping_factor = ', rayleigh_damping_factor,& 1408 ' out of range [0.0,1.0]' 1409 ENDIF 1410 CALL local_stop 1341 WRITE( message_string, * ) 'rayleigh_damping_factor = ', & 1342 rayleigh_damping_factor, ' out of range [0.0,1.0]' 1343 CALL handle_palm_message( 'check_parameters', 'PA0078', 1, 2, 0, 6, & 1344 0 ) 1411 1345 ENDIF 1412 1346 ENDIF … … 1422 1356 IF ( rayleigh_damping_height < 0.0 .OR. & 1423 1357 rayleigh_damping_height > zu(nzt) ) THEN 1424 IF ( myid == 0 ) THEN 1425 PRINT*, '+++ check_parameters:' 1426 PRINT*, ' rayleigh_damping_height = ', rayleigh_damping_height,& 1427 ' out of range [0.0,', zu(nzt), ']' 1428 ENDIF 1429 CALL local_stop 1358 WRITE( message_string, * ) 'rayleigh_damping_height = ', & 1359 rayleigh_damping_height, ' out of range [0.0,', zu(nzt), ']' 1360 CALL handle_palm_message( 'check_parameters', 'PA0079', 1, 2, 0, & 1361 6, 0 ) 1430 1362 ENDIF 1431 1363 ELSE 1432 1364 IF ( rayleigh_damping_height > 0.0 .OR. & 1433 1365 rayleigh_damping_height < zu(nzb) ) THEN 1434 IF ( myid == 0 ) THEN 1435 PRINT*, '+++ check_parameters:' 1436 PRINT*, ' rayleigh_damping_height = ', rayleigh_damping_height,& 1437 ' out of range [0.0,', zu(nzb), ']' 1438 ENDIF 1439 CALL local_stop 1366 WRITE( message_string, * ) 'rayleigh_damping_height = ', & 1367 rayleigh_damping_height, ' out of range [0.0,', zu(nzb), ']' 1368 CALL handle_palm_message( 'check_parameters', 'PA0079', 1, 2, 0, & 1369 6, 0 ) 1440 1370 ENDIF 1441 1371 ENDIF … … 1447 1377 overshoot_limit_w < 0.0 .OR. overshoot_limit_pt < 0.0 .OR. & 1448 1378 overshoot_limit_e < 0.0 ) THEN 1449 IF ( myid == 0 ) THEN 1450 PRINT*, '+++ check_parameters:' 1451 PRINT*, ' overshoot_limit_... < 0.0 is not allowed' 1452 ENDIF 1453 CALL local_stop 1379 message_string = 'overshoot_limit_... < 0.0 is not allowed' 1380 CALL handle_palm_message( 'check_parameters', 'PA0080', 1, 2, 0, 6, 0 ) 1454 1381 ENDIF 1455 1382 IF ( ups_limit_u < 0.0 .OR. ups_limit_v < 0.0 .OR. ups_limit_w < 0.0 .OR. & 1456 1383 ups_limit_pt < 0.0 .OR. ups_limit_e < 0.0 ) THEN 1457 IF ( myid == 0 ) THEN 1458 PRINT*, '+++ check_parameters:' 1459 PRINT*, ' ups_limit_... < 0.0 is not allowed' 1460 ENDIF 1461 CALL local_stop 1384 message_string = 'ups_limit_... < 0.0 is not allowed' 1385 CALL handle_palm_message( 'check_parameters', 'PA0081', 1, 2, 0, 6, 0 ) 1462 1386 ENDIF 1463 1387 … … 1467 1391 !-- be opened (cf. check_open) 1468 1392 IF ( statistic_regions > 9 .OR. statistic_regions < 0 ) THEN 1469 IF ( myid == 0 ) THEN 1470 PRINT*, '+++ check_parameters: Number of statistic_regions = ', & 1471 statistic_regions+1 1472 PRINT*, ' Only 10 regions are allowed' 1473 ENDIF 1474 CALL local_stop 1393 WRITE ( message_string, * ) 'number of statistic_regions = ', & 1394 statistic_regions+1, ' but only 10 regions are allowed' 1395 CALL handle_palm_message( 'check_parameters', 'PA0082', 1, 2, 0, 6, 0 ) 1475 1396 ENDIF 1476 1397 IF ( normalizing_region > statistic_regions .OR. & 1477 1398 normalizing_region < 0) THEN 1478 IF ( myid == 0 ) THEN 1479 PRINT*, '+++ check_parameters: normalizing_region = ', & 1480 normalizing_region, ' is unknown' 1481 PRINT*, ' Must be <= ', statistic_regions 1482 ENDIF 1483 CALL local_stop 1399 WRITE ( message_string, * ) 'normalizing_region = ', & 1400 normalizing_region, ' must be >= 0 and <= ',statistic_regions, & 1401 ' (value of statistic_regions)' 1402 CALL handle_palm_message( 'check_parameters', 'PA0083', 1, 2, 0, 6, 0 ) 1484 1403 ENDIF 1485 1404 … … 1489 1408 IF ( dt_sort_particles /= 0.0 .AND. cloud_droplets ) THEN 1490 1409 dt_sort_particles = 0.0 1491 IF ( myid == 0 ) THEN 1492 PRINT*, '+++ WARNING: check_parameters:' 1493 PRINT*, ' dt_sort_particles is reset to 0.0 because ', & 1494 'of cloud_droplets = .TRUE.' 1495 ENDIF 1410 message_string = 'dt_sort_particles is reset to 0.0 because of cloud' //& 1411 '_droplets = .TRUE.' 1412 CALL handle_palm_message( 'check_parameters', 'PA0084', 0, 1, 0, 6, 0 ) 1496 1413 ENDIF 1497 1414 … … 1530 1447 !-- spectra) 1531 1448 IF ( averaging_interval > dt_data_output_av ) THEN 1532 IF ( myid == 0 ) THEN 1533 PRINT*, '+++ check_parameters: average_interval=', & 1534 averaging_interval, ' must be <= dt_data_output=', & 1535 dt_data_output 1536 ENDIF 1537 CALL local_stop 1449 WRITE( message_string, * ) 'averaging_interval = ', & 1450 averaging_interval, ' must be <= dt_data_output = ', dt_data_output 1451 CALL handle_palm_message( 'check_parameters', 'PA0085', 1, 2, 0, 6, 0 ) 1538 1452 ENDIF 1539 1453 … … 1543 1457 1544 1458 IF ( averaging_interval_pr > dt_dopr ) THEN 1545 IF ( myid == 0 ) THEN 1546 PRINT*, '+++ check_parameters: averaging_interval_pr=', & 1547 averaging_interval_pr, ' must be <= dt_dopr=', dt_dopr 1548 ENDIF 1549 CALL local_stop 1459 WRITE( message_string, * ) 'averaging_interval_pr = ', & 1460 averaging_interval_pr, ' must be <= dt_dopr = ', dt_dopr 1461 CALL handle_palm_message( 'check_parameters', 'PA0086', 1, 2, 0, 6, 0 ) 1550 1462 ENDIF 1551 1463 … … 1555 1467 1556 1468 IF ( averaging_interval_sp > dt_dosp ) THEN 1557 IF ( myid == 0 ) THEN 1558 PRINT*, '+++ check_parameters: averaging_interval_sp=', & 1559 averaging_interval_sp, ' must be <= dt_dosp=', dt_dosp 1560 ENDIF 1561 CALL local_stop 1469 WRITE( message_string, * ) 'averaging_interval_sp = ', & 1470 averaging_interval_sp, ' must be <= dt_dosp = ', dt_dosp 1471 CALL handle_palm_message( 'check_parameters', 'PA0087', 1, 2, 0, 6, 0 ) 1562 1472 ENDIF 1563 1473 … … 1582 1492 !-- Check the sample rate for averaging (first for 3d-data, then for profiles) 1583 1493 IF ( dt_averaging_input > averaging_interval ) THEN 1584 IF ( myid == 0 ) THEN 1585 PRINT*, '+++ check_parameters: dt_averaging_input=', & 1586 dt_averaging_input, ' must be <= averaging_interval=', & 1587 averaging_interval 1588 ENDIF 1589 CALL local_stop 1494 WRITE( message_string, * ) 'dt_averaging_input = ', & 1495 dt_averaging_input, ' must be <= averaging_interval = ', & 1496 averaging_interval 1497 CALL handle_palm_message( 'check_parameters', 'PA0088', 1, 2, 0, 6, 0 ) 1590 1498 ENDIF 1591 1499 1592 1500 IF ( dt_averaging_input_pr > averaging_interval_pr ) THEN 1593 IF ( myid == 0 ) THEN 1594 PRINT*, '+++ check_parameters: dt_averaging_input_pr=', & 1595 dt_averaging_input_pr, & 1596 ' must be <= averaging_interval_pr=', & 1597 averaging_interval_pr 1598 ENDIF 1599 CALL local_stop 1501 WRITE( message_string, * ) 'dt_averaging_input_pr = ', & 1502 dt_averaging_input_pr, ' must be <= averaging_interval_pr = ', & 1503 averaging_interval_pr 1504 CALL handle_palm_message( 'check_parameters', 'PA0089', 1, 2, 0, 6, 0 ) 1600 1505 ENDIF 1601 1506 … … 1607 1512 ELSE 1608 1513 IF ( precipitation_amount_interval > dt_do2d_xy ) THEN 1609 IF ( myid == 0 ) PRINT*, '+++ check_parameters: ', & 1610 'precipitation_amount_interval =', & 1611 precipitation_amount_interval, & 1612 ' must not be larger than dt_do2d_xy', & 1613 ' = ', dt_do2d_xy 1614 CALL local_stop 1514 WRITE( message_string, * ) 'precipitation_amount_interval = ', & 1515 precipitation_amount_interval, ' must not be larger than ', & 1516 'dt_do2d_xy = ', dt_do2d_xy 1517 CALL handle_palm_message( 'check_parameters', 'PA0090', 1, 2, 0, & 1518 6, 0 ) 1615 1519 ENDIF 1616 1520 ENDIF … … 1778 1682 CASE ( 'sa', '#sa' ) 1779 1683 IF ( .NOT. ocean ) THEN 1780 IF ( myid == 0 ) THEN 1781 PRINT*, '+++ check_parameters: data_output_pr = ', & 1782 data_output_pr(i), & 1783 ' is not implemented for ocean = FALSE' 1784 ENDIF 1785 CALL local_stop 1684 message_string = 'data_output_pr = ' // & 1685 TRIM( data_output_pr(i) ) // ' is not imp' // & 1686 'lemented for ocean = .FALSE.' 1687 CALL handle_palm_message( 'check_parameters', 'PA0091', 1, 2, & 1688 0, 6, 0 ) 1786 1689 ELSE 1787 1690 dopr_index(i) = 23 … … 1848 1751 CASE ( 'q', '#q' ) 1849 1752 IF ( .NOT. humidity ) THEN 1850 IF ( myid == 0 ) THEN 1851 PRINT*, '+++ check_parameters: data_output_pr = ', & 1852 data_output_pr(i), & 1853 ' is not implemented for humidity = FALSE' 1854 ENDIF 1855 CALL local_stop 1753 message_string = 'data_output_pr = ' // & 1754 TRIM( data_output_pr(i) ) // ' is not imp' // & 1755 'lemented for humidity = .FALSE.' 1756 CALL handle_palm_message( 'check_parameters', 'PA0092', 1, 2, & 1757 0, 6, 0 ) 1856 1758 ELSE 1857 1759 dopr_index(i) = 41 … … 1868 1770 CASE ( 's', '#s' ) 1869 1771 IF ( .NOT. passive_scalar ) THEN 1870 IF ( myid == 0 ) THEN 1871 PRINT*, '+++ check_parameters: data_output_pr = ', & 1872 data_output_pr(i), & 1873 ' is not implemented for passive_scalar = FALSE' 1874 ENDIF 1875 CALL local_stop 1772 message_string = 'data_output_pr = ' // & 1773 TRIM( data_output_pr(i) ) // ' is not imp' // & 1774 'lemented for passive_scalar = .FALSE.' 1775 CALL handle_palm_message( 'check_parameters', 'PA0093', 1, 2, & 1776 0, 6, 0 ) 1876 1777 ELSE 1877 1778 dopr_index(i) = 41 … … 1911 1812 CASE ( 'lpt', '#lpt' ) 1912 1813 IF ( .NOT. cloud_physics ) THEN 1913 IF ( myid == 0 ) THEN 1914 PRINT*, '+++ check_parameters: data_output_pr = ', & 1915 data_output_pr(i), & 1916 ' is not implemented for cloud_physics = FALSE' 1917 ENDIF 1918 CALL local_stop 1814 message_string = 'data_output_pr = ' // & 1815 TRIM( data_output_pr(i) ) // ' is not imp' // & 1816 'lemented for cloud_physics = .FALSE.' 1817 CALL handle_palm_message( 'check_parameters', 'PA0094', 1, 2, & 1818 0, 6, 0 ) 1919 1819 ELSE 1920 1820 dopr_index(i) = 4 … … 1957 1857 CASE ( 'w"q"' ) 1958 1858 IF ( .NOT. humidity ) THEN 1959 IF ( myid == 0 ) THEN 1960 PRINT*, '+++ check_parameters: data_output_pr = ', & 1961 data_output_pr(i), & 1962 ' is not implemented for humidity = FALSE' 1963 ENDIF 1964 CALL local_stop 1859 message_string = 'data_output_pr = ' // & 1860 TRIM( data_output_pr(i) ) // ' is not imp' // & 1861 'lemented for humidity = .FALSE.' 1862 CALL handle_palm_message( 'check_parameters', 'PA0092', 1, 2, & 1863 0, 6, 0 ) 1965 1864 ELSE 1966 1865 dopr_index(i) = 48 … … 1971 1870 CASE ( 'w*q*' ) 1972 1871 IF ( .NOT. humidity ) THEN 1973 IF ( myid == 0 ) THEN 1974 PRINT*, '+++ check_parameters: data_output_pr = ', & 1975 data_output_pr(i), & 1976 ' is not implemented for humidity = FALSE' 1977 ENDIF 1978 CALL local_stop 1872 message_string = 'data_output_pr = ' // & 1873 TRIM( data_output_pr(i) ) // ' is not imp' // & 1874 'lemented for humidity = .FALSE.' 1875 CALL handle_palm_message( 'check_parameters', 'PA0092', 1, 2, & 1876 0, 6, 0 ) 1979 1877 ELSE 1980 1878 dopr_index(i) = 49 … … 1985 1883 CASE ( 'wq' ) 1986 1884 IF ( .NOT. humidity ) THEN 1987 IF ( myid == 0 ) THEN 1988 PRINT*, '+++ check_parameters: data_output_pr = ', & 1989 data_output_pr(i), & 1990 ' is not implemented for humidity = FALSE' 1991 ENDIF 1992 CALL local_stop 1885 message_string = 'data_output_pr = ' // & 1886 TRIM( data_output_pr(i) ) // ' is not imp' // & 1887 'lemented for humidity = .FALSE.' 1888 CALL handle_palm_message( 'check_parameters', 'PA0092', 1, 2, & 1889 0, 6, 0 ) 1993 1890 ELSE 1994 1891 dopr_index(i) = 50 … … 1999 1896 CASE ( 'w"s"' ) 2000 1897 IF ( .NOT. passive_scalar ) THEN 2001 IF ( myid == 0 ) THEN 2002 PRINT*, '+++ check_parameters: data_output_pr = ', & 2003 data_output_pr(i), & 2004 ' is not implemented for passive_scalar = FALSE' 2005 ENDIF 2006 CALL local_stop 1898 message_string = 'data_output_pr = ' // & 1899 TRIM( data_output_pr(i) ) // ' is not imp' // & 1900 'lemented for passive_scalar = .FALSE.' 1901 CALL handle_palm_message( 'check_parameters', 'PA0093', 1, 2, & 1902 0, 6, 0 ) 2007 1903 ELSE 2008 1904 dopr_index(i) = 48 … … 2013 1909 CASE ( 'w*s*' ) 2014 1910 IF ( .NOT. passive_scalar ) THEN 2015 IF ( myid == 0 ) THEN 2016 PRINT*, '+++ check_parameters: data_output_pr = ', & 2017 data_output_pr(i), & 2018 ' is not implemented for passive_scalar = FALSE' 2019 ENDIF 2020 CALL local_stop 1911 message_string = 'data_output_pr = ' // & 1912 TRIM( data_output_pr(i) ) // ' is not imp' // & 1913 'lemented for passive_scalar = .FALSE.' 1914 CALL handle_palm_message( 'check_parameters', 'PA0093', 1, 2, & 1915 0, 6, 0 ) 2021 1916 ELSE 2022 1917 dopr_index(i) = 49 … … 2027 1922 CASE ( 'ws' ) 2028 1923 IF ( .NOT. passive_scalar ) THEN 2029 IF ( myid == 0 ) THEN 2030 PRINT*, '+++ check_parameters: data_output_pr = ', & 2031 data_output_pr(i), & 2032 ' is not implemented for passive_scalar = FALSE' 2033 ENDIF 2034 CALL local_stop 1924 message_string = 'data_output_pr = ' // & 1925 TRIM( data_output_pr(i) ) // ' is not imp' // & 1926 'lemented for passive_scalar = .FALSE.' 1927 CALL handle_palm_message( 'check_parameters', 'PA0093', 1, 2, & 1928 0, 6, 0 ) 2035 1929 ELSE 2036 1930 dopr_index(i) = 50 … … 2050 1944 hom(:,2,51,:) = SPREAD( zw, 2, statistic_regions+1 ) 2051 1945 ELSE 2052 IF ( myid == 0 ) THEN 2053 PRINT*, '+++ check_parameters: data_output_pr = ', & 2054 data_output_pr(i), & 2055 ' is not implemented for cloud_physics = FALSE', & 2056 ' and humidity = FALSE' 2057 ENDIF 2058 CALL local_stop 1946 message_string = 'data_output_pr = ' // & 1947 TRIM( data_output_pr(i) ) // ' is not imp' // & 1948 'lemented for cloud_physics = .FALSE. an&' // & 1949 'd humidity = .FALSE.' 1950 CALL handle_palm_message( 'check_parameters', 'PA0095', 1, 2, & 1951 0, 6, 0 ) 2059 1952 ENDIF 2060 1953 … … 2070 1963 hom(:,2,52,:) = SPREAD( zw, 2, statistic_regions+1 ) 2071 1964 ELSE 2072 IF ( myid == 0 ) THEN 2073 PRINT*, '+++ check_parameters: data_output_pr = ', & 2074 data_output_pr(i), & 2075 ' is not implemented for cloud_physics = FALSE', & 2076 ' and humidity = FALSE' 2077 ENDIF 2078 CALL local_stop 1965 message_string = 'data_output_pr = ' // & 1966 TRIM( data_output_pr(i) ) // ' is not imp' // & 1967 'lemented for cloud_physics = .FALSE. an&' // & 1968 'd humidity = .FALSE.' 1969 CALL handle_palm_message( 'check_parameters', 'PA0095', 1, 2, & 1970 0, 6, 0 ) 2079 1971 ENDIF 2080 1972 … … 2090 1982 hom(:,2,53,:) = SPREAD( zw, 2, statistic_regions+1 ) 2091 1983 ELSE 2092 IF ( myid == 0 ) THEN 2093 PRINT*, '+++ check_parameters: data_output_pr = ', & 2094 data_output_pr(i), & 2095 ' is not implemented for cloud_physics = FALSE', & 2096 ' and humidity = FALSE' 2097 ENDIF 2098 CALL local_stop 1984 message_string = 'data_output_pr = ' // & 1985 TRIM( data_output_pr(i) ) // ' is not imp' // & 1986 'lemented for cloud_physics = .FALSE. an&' // & 1987 'd humidity = .FALSE.' 1988 CALL handle_palm_message( 'check_parameters', 'PA0095', 1, 2, & 1989 0, 6, 0 ) 2099 1990 ENDIF 2100 1991 2101 1992 CASE ( 'ql' ) 2102 1993 IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN 2103 IF ( myid == 0 ) THEN2104 PRINT*, '+++ check_parameters: data_output_pr = ',&2105 data_output_pr(i),&2106 ' is not implemented for cloud_physics = FALSE'2107 ENDIF2108 CALL local_stop1994 message_string = 'data_output_pr = ' // & 1995 TRIM( data_output_pr(i) ) // ' is not imp' // & 1996 'lemented for cloud_physics = .FALSE. or' // & 1997 '&cloud_droplets = .FALSE.' 1998 CALL handle_palm_message( 'check_parameters', 'PA0096', 1, 2, & 1999 0, 6, 0 ) 2109 2000 ELSE 2110 2001 dopr_index(i) = 54 … … 2165 2056 CASE ( 'w"sa"' ) 2166 2057 IF ( .NOT. ocean ) THEN 2167 IF ( myid == 0 ) THEN 2168 PRINT*, '+++ check_parameters: data_output_pr = ', & 2169 data_output_pr(i), & 2170 ' is not implemented for ocean = FALSE' 2171 ENDIF 2172 CALL local_stop 2058 message_string = 'data_output_pr = ' // & 2059 TRIM( data_output_pr(i) ) // ' is not imp' // & 2060 'lemented for ocean = .FALSE.' 2061 CALL handle_palm_message( 'check_parameters', 'PA0091', 1, 2, & 2062 0, 6, 0 ) 2173 2063 ELSE 2174 2064 dopr_index(i) = 65 … … 2179 2069 CASE ( 'w*sa*' ) 2180 2070 IF ( .NOT. ocean ) THEN 2181 IF ( myid == 0 ) THEN 2182 PRINT*, '+++ check_parameters: data_output_pr = ', & 2183 data_output_pr(i), & 2184 ' is not implemented for ocean = FALSE' 2185 ENDIF 2186 CALL local_stop 2071 message_string = 'data_output_pr = ' // & 2072 TRIM( data_output_pr(i) ) // ' is not imp' // & 2073 'lemented for ocean = .FALSE.' 2074 CALL handle_palm_message( 'check_parameters', 'PA0091', 1, 2, & 2075 0, 6, 0 ) 2187 2076 ELSE 2188 2077 dopr_index(i) = 66 … … 2193 2082 CASE ( 'wsa' ) 2194 2083 IF ( .NOT. ocean ) THEN 2195 IF ( myid == 0 ) THEN 2196 PRINT*, '+++ check_parameters: data_output_pr = ', & 2197 data_output_pr(i), & 2198 ' is not implemented for ocean = FALSE' 2199 ENDIF 2200 CALL local_stop 2084 message_string = 'data_output_pr = ' // & 2085 TRIM( data_output_pr(i) ) // ' is not imp' // & 2086 'lemented for ocean = .FALSE.' 2087 CALL handle_palm_message( 'check_parameters', 'PA0091', 1, 2, & 2088 0, 6, 0 ) 2201 2089 ELSE 2202 2090 dopr_index(i) = 67 … … 2217 2105 CASE ( 'q*2' ) 2218 2106 IF ( .NOT. humidity ) THEN 2219 IF ( myid == 0 ) THEN 2220 PRINT*, '+++ check_parameters: data_output_pr = ', & 2221 data_output_pr(i), & 2222 ' is not implemented for humidity = FALSE' 2223 ENDIF 2224 CALL local_stop 2107 message_string = 'data_output_pr = ' // & 2108 TRIM( data_output_pr(i) ) // ' is not imp' // & 2109 'lemented for humidity = .FALSE.' 2110 CALL handle_palm_message( 'check_parameters', 'PA0092', 1, 2, & 2111 0, 6, 0 ) 2225 2112 ELSE 2226 2113 dopr_index(i) = 70 … … 2234 2121 2235 2122 IF ( unit == 'illegal' ) THEN 2236 IF ( myid == 0 ) THEN 2237 IF ( data_output_pr_user(1) /= ' ' ) THEN 2238 PRINT*, '+++ check_parameters: illegal value for data_',& 2239 'output_pr or data_output_pr_user: "', & 2240 TRIM( data_output_pr(i) ), '"' 2241 ELSE 2242 PRINT*, '+++ check_parameters: illegal value for data_',& 2243 'output_pr: "', TRIM( data_output_pr(i) ),'"' 2244 ENDIF 2123 IF ( data_output_pr_user(1) /= ' ' ) THEN 2124 message_string = 'illegal value for data_output_pr or ' // & 2125 'data_output_pr_user = "' // & 2126 TRIM( data_output_pr(i) ) // '"' 2127 CALL handle_palm_message( 'check_parameters', 'PA0097', 1, & 2128 2, 0, 6, 0 ) 2129 ELSE 2130 message_string = 'illegal value for data_output_pr = "' // & 2131 TRIM( data_output_pr(i) ) // '"' 2132 CALL handle_palm_message( 'check_parameters', 'PA0098', 1, & 2133 2, 0, 6, 0 ) 2245 2134 ENDIF 2246 CALL local_stop2247 2135 ENDIF 2248 2136 … … 2279 2167 cross_uymax = zu(nzt+1) 2280 2168 ELSEIF ( z_max_do1d < zu(nzb+1) .OR. z_max_do1d > zu(nzt+1) ) THEN 2281 IF ( myid == 0 ) PRINT*, '+++ check_parameters: z_max_do1d=',&2282 z_max_do1d,' must be >= ', zu(nzb+1), &2283 ' or <= ', zu(nzt+1)2284 CALL local_stop2169 WRITE( message_string, * ) 'z_max_do1d = ', z_max_do1d, ' must ', & 2170 'be >= ', zu(nzb+1), ' or <= ', zu(nzt+1) 2171 CALL handle_palm_message( 'check_parameters', 'PA0099', 1, 2, 0, 6, & 2172 0 ) 2285 2173 ELSE 2286 2174 cross_uymax = z_max_do1d … … 2298 2186 2299 2187 CASE DEFAULT 2300 IF ( myid == 0 ) THEN2301 PRINT*, '+++ check_parameters: unknown normalize method'2302 PRINT*, ' cross_normalized_x="',cross_normalized_x(i),'"'2303 ENDIF2304 CALL local_stop2188 message_string = 'unknown normalization method cross_normali' // & 2189 'zed_x = "' // TRIM( cross_normalized_x(i) ) // & 2190 '"' 2191 CALL handle_palm_message( 'check_parameters', 'PA0100', 1, 2, 0, & 2192 6, 0 ) 2305 2193 2306 2194 END SELECT … … 2311 2199 2312 2200 CASE DEFAULT 2313 IF ( myid == 0 ) THEN2314 PRINT*, '+++ check_parameters: unknown normalize method'2315 PRINT*, ' cross_normalized_y="',cross_normalized_y(i),'"'2316 ENDIF2317 CALL local_stop2201 message_string = 'unknown normalization method cross_normali' // & 2202 'zed_y = "' // TRIM( cross_normalized_y(i) ) // & 2203 '"' 2204 CALL handle_palm_message( 'check_parameters', 'PA0101', 1, 2, 0, & 2205 6, 0 ) 2318 2206 2319 2207 END SELECT … … 2323 2211 IF ( z_max_do1d_normalized /= -1.0 .AND. z_max_do1d_normalized <= 0.0 ) & 2324 2212 THEN 2325 IF ( myid == 0 ) PRINT*,'+++ check_parameters: z_max_do1d_normalize', &2326 'd=',z_max_do1d_normalized, ' must be >= 0.0'2327 CALL local_stop2213 WRITE( message_string, * ) 'z_max_do1d_normalized = ', & 2214 z_max_do1d_normalized, ' must be >= 0.0' 2215 CALL handle_palm_message( 'check_parameters', 'PA0101', 1, 2, 0, 6, 0 ) 2328 2216 ENDIF 2329 2217 … … 2339 2227 DO WHILE ( data_output_user(j) /= ' ' .AND. j <= 100 ) 2340 2228 IF ( i > 100 ) THEN 2341 IF ( myid == 0 ) THEN 2342 PRINT*, '+++ check_parameters: number of output quantitities', & 2343 ' given by data_output and data_output_user' 2344 PRINT*, ' exceeds the limit of 100' 2345 ENDIF 2346 CALL local_stop 2229 message_string = 'number of output quantitities given by data' // & 2230 '_output and data_output_user exceeds the limit of 100' 2231 CALL handle_palm_message( 'check_parameters', 'PA0102', 1, 2, 0, & 2232 6, 0 ) 2347 2233 ENDIF 2348 2234 data_output(i) = data_output_user(j) … … 2385 2271 CASE ( 'e' ) 2386 2272 IF ( constant_diffusion ) THEN 2387 IF ( myid == 0 ) THEN 2388 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2389 '" requires constant_diffusion = .FALSE.' 2390 ENDIF 2391 CALL local_stop 2273 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2274 'res constant_diffusion = .FALSE.' 2275 CALL handle_palm_message( 'check_parameters', 'PA0103', 1, 2, & 2276 0, 6, 0 ) 2392 2277 ENDIF 2393 2278 unit = 'm2/s2' … … 2395 2280 CASE ( 'pc', 'pr' ) 2396 2281 IF ( .NOT. particle_advection ) THEN 2397 IF ( myid == 0 ) THEN 2398 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2399 '" requires a "particles_par"-NAMELIST' 2400 PRINT*, ' in the parameter file (PARIN)' 2401 ENDIF 2402 CALL local_stop 2282 message_string = 'output of "' // TRIM( var ) // '" requir' // & 2283 'es a "particles_par"-NAMELIST in the parameter file (PARIN)' 2284 CALL handle_palm_message( 'check_parameters', 'PA0104', 1, 2, & 2285 0, 6, 0 ) 2403 2286 ENDIF 2404 2287 IF ( TRIM( var ) == 'pc' ) unit = 'number' … … 2407 2290 CASE ( 'q', 'vpt' ) 2408 2291 IF ( .NOT. humidity ) THEN 2409 IF ( myid == 0 ) THEN 2410 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2411 '" requires humidity = .TRUE.' 2412 ENDIF 2413 CALL local_stop 2292 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2293 'res humidity = .TRUE.' 2294 CALL handle_palm_message( 'check_parameters', 'PA0105', 1, 2, & 2295 0, 6, 0 ) 2414 2296 ENDIF 2415 2297 IF ( TRIM( var ) == 'q' ) unit = 'kg/kg' … … 2418 2300 CASE ( 'ql' ) 2419 2301 IF ( .NOT. ( cloud_physics .OR. cloud_droplets ) ) THEN 2420 IF ( myid == 0 ) THEN 2421 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2422 '" requires cloud_physics = .TRUE.' 2423 PRINT*, ' or cloud_droplets = .TRUE.' 2424 ENDIF 2425 CALL local_stop 2302 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2303 'res cloud_physics = .TRUE. or cloud_droplets = .TRUE.' 2304 CALL handle_palm_message( 'check_parameters', 'PA0106', 1, 2, & 2305 0, 6, 0 ) 2426 2306 ENDIF 2427 2307 unit = 'kg/kg' … … 2429 2309 CASE ( 'ql_c', 'ql_v', 'ql_vp' ) 2430 2310 IF ( .NOT. cloud_droplets ) THEN 2431 IF ( myid == 0 ) THEN 2432 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2433 '" requires cloud_droplets = .TRUE.' 2434 ENDIF 2435 CALL local_stop 2311 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2312 'res cloud_droplets = .TRUE.' 2313 CALL handle_palm_message( 'check_parameters', 'PA0107', 1, 2, & 2314 0, 6, 0 ) 2436 2315 ENDIF 2437 2316 IF ( TRIM( var ) == 'ql_c' ) unit = 'kg/kg' … … 2441 2320 CASE ( 'qv' ) 2442 2321 IF ( .NOT. cloud_physics ) THEN 2443 IF ( myid == 0 ) THEN 2444 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2445 '" requires cloud_physics = .TRUE.' 2446 ENDIF 2447 CALL local_stop 2322 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2323 'res cloud_physics = .TRUE.' 2324 CALL handle_palm_message( 'check_parameters', 'PA0108', 1, 2, & 2325 0, 6, 0 ) 2448 2326 ENDIF 2449 2327 unit = 'kg/kg' … … 2451 2329 CASE ( 'rho' ) 2452 2330 IF ( .NOT. ocean ) THEN 2453 IF ( myid == 0 ) THEN 2454 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2455 '" requires ocean = .TRUE.' 2456 ENDIF 2457 CALL local_stop 2331 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2332 'res ocean = .TRUE.' 2333 CALL handle_palm_message( 'check_parameters', 'PA0109', 1, 2, & 2334 0, 6, 0 ) 2458 2335 ENDIF 2459 2336 unit = 'kg/m3' … … 2461 2338 CASE ( 's' ) 2462 2339 IF ( .NOT. passive_scalar ) THEN 2463 IF ( myid == 0 ) THEN 2464 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2465 '" requires passive_scalar = .TRUE.' 2466 ENDIF 2467 CALL local_stop 2340 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2341 'res passive_scalar = .TRUE.' 2342 CALL handle_palm_message( 'check_parameters', 'PA0110', 1, 2, & 2343 0, 6, 0 ) 2468 2344 ENDIF 2469 2345 unit = 'conc' … … 2471 2347 CASE ( 'sa' ) 2472 2348 IF ( .NOT. ocean ) THEN 2473 IF ( myid == 0 ) THEN 2474 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2475 '" requires ocean = .TRUE.' 2476 ENDIF 2477 CALL local_stop 2349 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2350 'res ocean = .TRUE.' 2351 CALL handle_palm_message( 'check_parameters', 'PA0109', 1, 2, & 2352 0, 6, 0 ) 2478 2353 ENDIF 2479 2354 unit = 'psu' … … 2481 2356 CASE ( 'u*', 't*', 'lwp*', 'pra*', 'prr*', 'z0*' ) 2482 2357 IF ( k == 0 .OR. data_output(i)(ilen-2:ilen) /= '_xy' ) THEN 2483 IF ( myid == 0 ) THEN 2484 PRINT*, '+++ check_parameters: illegal value for data_',& 2485 'output: "', TRIM( var ), '" is only allowed' 2486 PRINT*, ' for horizontal cross section' 2487 ENDIF 2488 CALL local_stop 2358 message_string = 'illegal value for data_output: "' // & 2359 TRIM( var ) // '" & only 2d-horizontal ' // & 2360 'cross sections are allowed for this value' 2361 CALL handle_palm_message( 'check_parameters', 'PA0111', 1, 2, & 2362 0, 6, 0 ) 2489 2363 ENDIF 2490 2364 IF ( TRIM( var ) == 'lwp*' .AND. .NOT. cloud_physics ) THEN 2491 IF ( myid == 0 ) THEN 2492 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2493 '" requires cloud_physics = .TRUE.' 2494 ENDIF 2495 CALL local_stop 2365 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2366 'res cloud_physics = .TRUE.' 2367 CALL handle_palm_message( 'check_parameters', 'PA0108', 1, 2, & 2368 0, 6, 0 ) 2496 2369 ENDIF 2497 2370 IF ( TRIM( var ) == 'pra*' .AND. .NOT. precipitation ) THEN 2498 IF ( myid == 0 ) THEN 2499 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2500 '" requires precipitation = .TRUE.' 2501 ENDIF 2502 CALL local_stop 2371 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2372 'res precipitation = .TRUE.' 2373 CALL handle_palm_message( 'check_parameters', 'PA0112', 1, 2, & 2374 0, 6, 0 ) 2503 2375 ENDIF 2504 2376 IF ( TRIM( var ) == 'pra*' .AND. j == 1 ) THEN 2505 IF ( myid == 0 ) THEN 2506 PRINT*, '+++ check_parameters: temporal averaging of ', & 2507 ' precipitation amount "', TRIM( var ), & 2508 '" not possible' 2509 ENDIF 2510 CALL local_stop 2377 message_string = 'temporal averaging of precipitation ' // & 2378 'amount "' // TRIM( var ) // '" is not possible' 2379 CALL handle_palm_message( 'check_parameters', 'PA0113', 1, 2, & 2380 0, 6, 0 ) 2511 2381 ENDIF 2512 2382 IF ( TRIM( var ) == 'prr*' .AND. .NOT. precipitation ) THEN 2513 IF ( myid == 0 ) THEN 2514 PRINT*, '+++ check_parameters: output of "', TRIM( var ), & 2515 '" requires precipitation = .TRUE.' 2516 ENDIF 2517 CALL local_stop 2383 message_string = 'output of "' // TRIM( var ) // '" requi' // & 2384 'res precipitation = .TRUE.' 2385 CALL handle_palm_message( 'check_parameters', 'PA0112', 1, 2, & 2386 0, 6, 0 ) 2518 2387 ENDIF 2519 2388 … … 2538 2407 2539 2408 IF ( unit == 'illegal' ) THEN 2540 IF ( myid == 0 ) THEN 2541 IF ( data_output_user(1) /= ' ' ) THEN 2542 PRINT*, '+++ check_parameters: illegal value for data_',& 2543 'output or data_output_user: "', & 2544 TRIM( data_output(i) ), '"' 2545 ELSE 2546 PRINT*, '+++ check_parameters: illegal value for data_',& 2547 'output: "', TRIM( data_output(i) ), '"' 2548 ENDIF 2409 IF ( data_output_user(1) /= ' ' ) THEN 2410 message_string = 'illegal value for data_output or ' // & 2411 'data_output_user = "' // TRIM( data_output(i) ) // '"' 2412 CALL handle_palm_message( 'check_parameters', 'PA0114', 1, & 2413 2, 0, 6, 0 ) 2414 ELSE 2415 message_string = 'illegal value for data_output =' // & 2416 TRIM( data_output(i) ) // '"' 2417 CALL handle_palm_message( 'check_parameters', 'PA0115', 1, & 2418 2, 0, 6, 0 ) 2549 2419 ENDIF 2550 CALL local_stop2551 2420 ENDIF 2552 2421 … … 2611 2480 IF ( z_max_do2d == -1.0 ) z_max_do2d = zu(nzt) 2612 2481 IF ( z_max_do2d < zu(nzb+1) .OR. z_max_do2d > zu(nzt) ) THEN 2613 IF ( myid == 0 ) PRINT*, '+++ check_parameters: z_max_do2d=',&2614 z_max_do2d, ' must be >= ', zu(nzb+1),&2615 '(zu(nzb+1)) and <= ', zu(nzt),' (zu(nzt))'2616 CALL local_stop2482 WRITE( message_string, * ) 'z_max_do2d = ', z_max_do2d, & 2483 ' must be >= ', zu(nzb+1), '(zu(nzb+1)) and <= ', zu(nzt), & 2484 ' (zu(nzt))' 2485 CALL handle_palm_message( 'check_parameters', 'PA0116', 1, 2, 0, 6, 0 ) 2617 2486 ENDIF 2618 2487 … … 2627 2496 !-- Compression only permissible on T3E machines 2628 2497 IF ( host(1:3) /= 't3e' ) THEN 2629 IF ( myid == 0 ) THEN 2630 PRINT*, '+++ check_parameters: do3d_compress = .TRUE. not allow', & 2631 'ed on host "', TRIM( host ), '"' 2632 ENDIF 2633 CALL local_stop 2498 message_string = 'do3d_compress = .TRUE. not allowed on host "' // & 2499 TRIM( host ) // '"' 2500 CALL handle_palm_message( 'check_parameters', 'PA0117', 1, 2, 0, 6, & 2501 0 ) 2634 2502 ENDIF 2635 2503 … … 2640 2508 IF ( LLT( do3d_comp_prec(i)(ilen:ilen), '0' ) .OR. & 2641 2509 LGT( do3d_comp_prec(i)(ilen:ilen), '9' ) ) THEN 2642 IF ( myid == 0 ) THEN 2643 PRINT*, '+++ check_parameters: illegal precision: ', & 2644 'do3d_comp_prec(', i, ')="', TRIM(do3d_comp_prec(i)),'"' 2645 ENDIF 2646 CALL local_stop 2510 WRITE( message_string, * ) 'illegal precision: do3d_comp_prec', & 2511 '(', i, ') = "', TRIM(do3d_comp_prec(i)),'"' 2512 CALL handle_palm_message( 'check_parameters', 'PA0118', 1, 2, 0, & 2513 6, 0 ) 2647 2514 ENDIF 2648 2515 … … 2664 2531 2665 2532 CASE DEFAULT 2666 IF ( myid == 0 ) THEN 2667 PRINT*, '+++ check_parameters: unknown variable in ', & 2668 'assignment' 2669 PRINT*, ' do3d_comp_prec(', i, ')="', & 2670 TRIM( do3d_comp_prec(i) ),'"' 2671 ENDIF 2672 CALL local_stop 2533 WRITE( message_string, * ) 'unknown variable "', & 2534 TRIM( do3d_comp_prec(i) ), '" given for do3d_comp_prec(', & 2535 i, ')' 2536 CALL handle_palm_message( 'check_parameters', 'PA0119', 1, 2, & 2537 0, 6, 0 ) 2673 2538 2674 2539 END SELECT … … 2702 2567 2703 2568 CASE DEFAULT 2704 IF ( myid == 0 ) THEN 2705 PRINT*, '+++ check_parameters:' 2706 PRINT*, ' unknown value for data_output_format "', & 2707 TRIM( data_output_format(i) ),'"' 2708 ENDIF 2709 CALL local_stop 2569 message_string = 'unknown value for data_output_format "' // & 2570 TRIM( data_output_format(i) ) // '"' 2571 CALL handle_palm_message( 'check_parameters', 'PA0120', 1, 2, & 2572 0, 6, 0 ) 2710 2573 2711 2574 END SELECT … … 2727 2590 IF ( km_constant /= -1.0 ) THEN 2728 2591 IF ( km_constant < 0.0 ) THEN 2729 IF ( myid == 0 ) PRINT*, '+++ check_parameters: km_constant=', &2730 km_constant, ' < 0.0'2731 CALL local_stop2592 WRITE( message_string, * ) 'km_constant = ', km_constant, ' < 0.0' 2593 CALL handle_palm_message( 'check_parameters', 'PA0121', 1, 2, 0, 6, & 2594 0 ) 2732 2595 ELSE 2733 2596 IF ( prandtl_number < 0.0 ) THEN 2734 IF ( myid == 0 ) PRINT*,'+++ check_parameters: prandtl_number=',& 2735 prandtl_number, ' < 0.0' 2736 CALL local_stop 2597 WRITE( message_string, * ) 'prandtl_number = ', prandtl_number, & 2598 ' < 0.0' 2599 CALL handle_palm_message( 'check_parameters', 'PA0122', 1, 2, 0, & 2600 6, 0 ) 2737 2601 ENDIF 2738 2602 constant_diffusion = .TRUE. 2739 2603 2740 2604 IF ( prandtl_layer ) THEN 2741 IF ( myid == 0 ) PRINT*, '+++ check_parameters: prandtl_layer ',& 2742 'is not allowed with fixed value of km' 2743 CALL local_stop 2605 message_string = 'prandtl_layer is not allowed with fixed ' // & 2606 'value of km' 2607 CALL handle_palm_message( 'check_parameters', 'PA0123', 1, 2, 0, & 2608 6, 0 ) 2744 2609 ENDIF 2745 2610 ENDIF … … 2758 2623 ENDIF 2759 2624 IF ( outflow_damping_width <= 0 .OR. outflow_damping_width > nx ) THEN 2760 IF ( myid == 0 ) PRINT*, '+++ check_parameters: outflow_damping w',&2761 'idth out of range'2762 CALL local_stop2625 message_string = 'outflow_damping width out of range' 2626 CALL handle_palm_message( 'check_parameters', 'PA0124', 1, 2, 0, 6, & 2627 0 ) 2763 2628 ENDIF 2764 2629 ENDIF … … 2772 2637 ENDIF 2773 2638 IF ( outflow_damping_width <= 0 .OR. outflow_damping_width > ny ) THEN 2774 IF ( myid == 0 ) PRINT*, '+++ check_parameters: outflow_damping w',&2775 'idth out of range'2776 CALL local_stop2639 message_string = 'outflow_damping width out of range' 2640 CALL handle_palm_message( 'check_parameters', 'PA0124', 1, 2, 0, 6, & 2641 0 ) 2777 2642 ENDIF 2778 2643 ENDIF … … 2781 2646 !-- Check value range for rif 2782 2647 IF ( rif_min >= rif_max ) THEN 2783 IF ( myid == 0 ) PRINT*, '+++ check_parameters: rif_min=', rif_min, &2784 ' must be less than rif_max=', rif_max2785 CALL local_stop2648 WRITE( message_string, * ) 'rif_min = ', rif_min, ' must be less ', & 2649 'than rif_max = ', rif_max 2650 CALL handle_palm_message( 'check_parameters', 'PA0125', 1, 2, 0, 6, 0 ) 2786 2651 ENDIF 2787 2652 … … 2797 2662 ENDIF 2798 2663 ELSEIF ( disturbance_level_b < zu(3) ) THEN 2799 IF ( myid == 0 ) PRINT*, '+++ check_parameters: disturbance_level_b=',& 2800 disturbance_level_b, ' must be >= ',zu(3), & 2801 '(zu(3))' 2802 CALL local_stop 2664 WRITE( message_string, * ) 'disturbance_level_b = ', & 2665 disturbance_level_b, ' must be >= ', zu(3), '(zu(3))' 2666 CALL handle_palm_message( 'check_parameters', 'PA0126', 1, 2, 0, 6, 0 ) 2803 2667 ELSEIF ( disturbance_level_b > zu(nzt-2) ) THEN 2804 IF ( myid == 0 ) PRINT*, '+++ check_parameters: disturbance_level_b=',& 2805 disturbance_level_b, ' must be <= ',zu(nzt-2),& 2806 '(zu(nzt-2))' 2807 CALL local_stop 2668 WRITE( message_string, * ) 'disturbance_level_b = ', & 2669 disturbance_level_b, ' must be <= ', zu(nzt-2), '(zu(nzt-2))' 2670 CALL handle_palm_message( 'check_parameters', 'PA0127', 1, 2, 0, 6, 0 ) 2808 2671 ELSE 2809 2672 DO k = 3, nzt-2 … … 2824 2687 ENDIF 2825 2688 ELSEIF ( disturbance_level_t > zu(nzt-2) ) THEN 2826 IF ( myid == 0 ) PRINT*, '+++ check_parameters: disturbance_level_t=',& 2827 disturbance_level_t, ' must be <= ',zu(nzt-2),& 2828 '(zu(nzt-2))' 2829 CALL local_stop 2689 WRITE( message_string, * ) 'disturbance_level_t = ', & 2690 disturbance_level_t, ' must be <= ', zu(nzt-2), '(zu(nzt-2))' 2691 CALL handle_palm_message( 'check_parameters', 'PA0128', 1, 2, 0, 6, 0 ) 2830 2692 ELSEIF ( disturbance_level_t < disturbance_level_b ) THEN 2831 IF ( myid == 0 ) PRINT*, '+++ check_parameters: disturbance_level_t=',&2832 disturbance_level_t, ' must be >= ',&2833 'disturbance_level_b=',disturbance_level_b2834 CALL local_stop2693 WRITE( message_string, * ) 'disturbance_level_t = ', & 2694 disturbance_level_t, ' must be >= disturbance_level_b = ', & 2695 disturbance_level_b 2696 CALL handle_palm_message( 'check_parameters', 'PA0129', 1, 2, 0, 6, 0 ) 2835 2697 ELSE 2836 2698 DO k = 3, nzt-2 … … 2847 2709 !-- z-direction. 2848 2710 IF ( disturbance_level_ind_t < disturbance_level_ind_b ) THEN 2849 IF ( myid == 0 ) PRINT*, '+++ check_parameters: ', & 2850 'disturbance_level_ind_t=', & 2851 disturbance_level_ind_t, ' must be >= ', & 2852 'disturbance_level_ind_b=', & 2853 disturbance_level_ind_b 2854 CALL local_stop 2711 WRITE( message_string, * ) 'disturbance_level_ind_t = ', & 2712 disturbance_level_ind_t, ' must be >= disturbance_level_b = ', & 2713 disturbance_level_b 2714 CALL handle_palm_message( 'check_parameters', 'PA0130', 1, 2, 0, 6, 0 ) 2855 2715 ENDIF 2856 2716 … … 2868 2728 IF ( inflow_disturbance_begin < 0 .OR. inflow_disturbance_begin > nx )& 2869 2729 THEN 2870 IF ( myid == 0 ) PRINT*, '+++ check_parameters: inflow_disturbance',&2871 '_begin out of range'2872 CALL local_stop2730 message_string = 'inflow_disturbance_begin out of range' 2731 CALL handle_palm_message( 'check_parameters', 'PA0131', 1, 2, 0, 6, & 2732 0 ) 2873 2733 ENDIF 2874 2734 IF ( inflow_disturbance_end == -1 ) THEN … … 2877 2737 IF ( inflow_disturbance_end < 0 .OR. inflow_disturbance_end > nx ) & 2878 2738 THEN 2879 IF ( myid == 0 ) PRINT*, '+++ check_parameters: inflow_disturbance',&2880 '_end out of range'2881 CALL local_stop2739 message_string = 'inflow_disturbance_end out of range' 2740 CALL handle_palm_message( 'check_parameters', 'PA0132', 1, 2, 0, 6, & 2741 0 ) 2882 2742 ENDIF 2883 2743 ELSEIF ( bc_ns /= 'cyclic' ) THEN … … 2887 2747 IF ( inflow_disturbance_begin < 0 .OR. inflow_disturbance_begin > ny )& 2888 2748 THEN 2889 IF ( myid == 0 ) PRINT*, '+++ check_parameters: inflow_disturbance',&2890 '_begin out of range'2891 CALL local_stop2749 message_string = 'inflow_disturbance_begin out of range' 2750 CALL handle_palm_message( 'check_parameters', 'PA0131', 1, 2, 0, 6, & 2751 0 ) 2892 2752 ENDIF 2893 2753 IF ( inflow_disturbance_end == -1 ) THEN … … 2896 2756 IF ( inflow_disturbance_end < 0 .OR. inflow_disturbance_end > ny ) & 2897 2757 THEN 2898 IF ( myid == 0 ) PRINT*, '+++ check_parameters: inflow_disturbance',&2899 '_end out of range'2900 CALL local_stop2758 message_string = 'inflow_disturbance_end out of range' 2759 CALL handle_palm_message( 'check_parameters', 'PA0132', 1, 2, 0, 6, & 2760 0 ) 2901 2761 ENDIF 2902 2762 ENDIF … … 2921 2781 !-- boundary (so far, a turbulent inflow is realized from the left side only) 2922 2782 IF ( turbulent_inflow .AND. bc_lr /= 'dirichlet/radiation' ) THEN 2923 IF ( myid == 0 ) THEN 2924 PRINT*, '+++ check_parameters:' 2925 PRINT*, ' turbulent_inflow = .T. requires a Dirichlet condition', & 2926 ' at the inflow boundary' 2927 ENDIF 2928 CALL local_stop 2783 message_string = 'turbulent_inflow = .T. requires a Dirichlet ' // & 2784 'condition at the inflow boundary' 2785 CALL handle_palm_message( 'check_parameters', 'PA0133', 1, 2, 0, 6, 0 ) 2929 2786 ENDIF 2930 2787 … … 2938 2795 ELSE 2939 2796 IF ( recycling_width < dx .OR. recycling_width > nx * dx ) THEN 2940 IF ( myid == 0 ) THEN 2941 PRINT*, '+++ check_parameters:' 2942 PRINT*, ' illegal value for recycling_width: ', & 2943 recycling_width 2944 ENDIF 2945 CALL local_stop 2797 WRITE( message_string, * ) 'illegal value for recycling_width:', & 2798 ' ', recycling_width 2799 CALL handle_palm_message( 'check_parameters', 'PA0134', 1, 2, 0, & 2800 6, 0 ) 2946 2801 ENDIF 2947 2802 ENDIF … … 2955 2810 IF ( random_generator /= 'system-specific' .AND. & 2956 2811 random_generator /= 'numerical-recipes' ) THEN 2957 IF ( myid == 0 ) THEN 2958 PRINT*, '+++ check_parameters:' 2959 PRINT*, ' unknown random generator: random_generator=', & 2960 random_generator 2961 ENDIF 2962 CALL local_stop 2812 message_string = 'unknown random generator: random_generator = "' // & 2813 TRIM( random_generator ) // '"' 2814 CALL handle_palm_message( 'check_parameters', 'PA0135', 1, 2, 0, 6, 0 ) 2963 2815 ENDIF 2964 2816 … … 2970 2822 damp_level_ind_1d = nzt + 1 2971 2823 ELSEIF ( damp_level_1d < 0.0 .OR. damp_level_1d > zu(nzt+1) ) THEN 2972 IF ( myid == 0 ) PRINT*, '+++ check_parameters: damp_level_1d=', &2973 damp_level_1d, ' must be > 0.0 and < ', &2974 'zu(nzt+1)', zu(nzt+1)2975 CALL local_stop2824 WRITE( message_string, * ) 'damp_level_1d = ', damp_level_1d, & 2825 ' must be > 0.0 and < ', zu(nzt+1), '(zu(nzt+1))' 2826 CALL handle_palm_message( 'check_parameters', 'PA0136', 1, 2, 0, 6, & 2827 0 ) 2976 2828 ELSE 2977 2829 DO k = 1, nzt+1 … … 2983 2835 ENDIF 2984 2836 ENDIF 2837 2985 2838 ! 2986 2839 !-- Check some other 1d-model parameters 2987 2840 IF ( TRIM( mixing_length_1d ) /= 'as_in_3d_model' .AND. & 2988 2841 TRIM( mixing_length_1d ) /= 'blackadar' ) THEN 2989 IF ( myid == 0 ) PRINT*, '+++ check_parameters: mixing_length_1d = "',&2990 TRIM( mixing_length_1d ),'" is unknown'2991 CALL local_stop2842 message_string = 'mixing_length_1d = "' // TRIM( mixing_length_1d ) // & 2843 '" is unknown' 2844 CALL handle_palm_message( 'check_parameters', 'PA0137', 1, 2, 0, 6, 0 ) 2992 2845 ENDIF 2993 2846 IF ( TRIM( dissipation_1d ) /= 'as_in_3d_model' .AND. & 2994 2847 TRIM( dissipation_1d ) /= 'detering' ) THEN 2995 IF ( myid == 0 ) PRINT*, '+++ check_parameters: dissipation_1d = "',&2996 TRIM( dissipation_1d ),'" is unknown'2997 CALL local_stop2848 message_string = 'dissipation_1d = "' // TRIM( dissipation_1d ) // & 2849 '" is unknown' 2850 CALL handle_palm_message( 'check_parameters', 'PA0138', 1, 2, 0, 6, 0 ) 2998 2851 ENDIF 2999 2852 … … 3027 2880 !-- MPP_TREMAIN gives the remaining CPU time only in steps of 30 seconds 3028 2881 IF ( termination_time_needed <= 30.0 ) THEN 3029 IF ( myid == 0 ) THEN 3030 PRINT*, '+++ check_parameters: termination_time_needed', & 3031 termination_time_needed 3032 PRINT*, ' must be > 30.0 on host "', host, & 3033 '"' 3034 ENDIF 3035 CALL local_stop 2882 WRITE( message_string, * ) 'termination_time_needed = ', & 2883 termination_time_needed, ' must be > 30.0 on host "', & 2884 TRIM( host ), '"' 2885 CALL handle_palm_message( 'check_parameters', 'PA0139', 1, 2, 0, 6, & 2886 0 ) 3036 2887 ENDIF 3037 2888 ELSEIF ( host(1:3) == 'ibm' ) THEN … … 3041 2892 !-- copying of files, etc.) has to be regarded 3042 2893 IF ( termination_time_needed < 300.0 ) THEN 3043 IF ( myid == 0 ) THEN 3044 PRINT*, '+++ WARNING: check_parameters: termination_time_', & 3045 'needed', termination_time_needed 3046 PRINT*, ' should be >= 300.0', & 3047 ' on host "', host, '"' 3048 ENDIF 2894 WRITE( message_string, * ) 'termination_time_needed = ', & 2895 termination_time_needed, ' should be >= 300.0 on host "', & 2896 TRIM( host ), '"' 2897 CALL handle_palm_message( 'check_parameters', 'PA0140', 1, 2, 0, 6, & 2898 0 ) 3049 2899 ENDIF 3050 2900 ENDIF -
palm/trunk/SOURCE/data_output_2d.f90
r108 r215 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! Bugfix: zero output of particle concentration and radius unless particles 7 ! have been started 7 8 ! 8 9 ! Former revisions: … … 215 216 CASE ( 'pc_xy', 'pc_xz', 'pc_yz' ) ! particle concentration 216 217 IF ( av == 0 ) THEN 217 tend = prt_count 218 CALL exchange_horiz( tend ) 218 IF ( simulated_time >= particle_advection_start ) THEN 219 tend = prt_count 220 CALL exchange_horiz( tend ) 221 ELSE 222 tend = 0.0 223 ENDIF 219 224 DO i = nxl-1, nxr+1 220 225 DO j = nys-1, nyn+1 … … 232 237 CASE ( 'pr_xy', 'pr_xz', 'pr_yz' ) ! mean particle radius 233 238 IF ( av == 0 ) THEN 234 DO i = nxl, nxr 235 DO j = nys, nyn 236 DO k = nzb, nzt+1 237 psi = prt_start_index(k,j,i) 238 s_r3 = 0.0 239 s_r4 = 0.0 240 DO n = psi, psi+prt_count(k,j,i)-1 241 s_r3 = s_r3 + particles(n)%radius**3 242 s_r4 = s_r4 + particles(n)%radius**4 239 IF ( simulated_time >= particle_advection_start ) THEN 240 DO i = nxl, nxr 241 DO j = nys, nyn 242 DO k = nzb, nzt+1 243 psi = prt_start_index(k,j,i) 244 s_r3 = 0.0 245 s_r4 = 0.0 246 DO n = psi, psi+prt_count(k,j,i)-1 247 s_r3 = s_r3 + particles(n)%radius**3 248 s_r4 = s_r4 + particles(n)%radius**4 249 ENDDO 250 IF ( s_r3 /= 0.0 ) THEN 251 mean_r = s_r4 / s_r3 252 ELSE 253 mean_r = 0.0 254 ENDIF 255 tend(k,j,i) = mean_r 243 256 ENDDO 244 IF ( s_r3 /= 0.0 ) THEN245 mean_r = s_r4 / s_r3246 ELSE247 mean_r = 0.0248 ENDIF249 tend(k,j,i) = mean_r250 257 ENDDO 251 258 ENDDO 252 ENDDO 253 CALL exchange_horiz( tend ) 259 CALL exchange_horiz( tend ) 260 ELSE 261 tend = 0.0 262 ENDIF 254 263 DO i = nxl-1, nxr+1 255 264 DO j = nys-1, nyn+1 -
palm/trunk/SOURCE/palm.f90
r206 r215 112 112 WRITE(9,*) '*** coupling_mode = "', TRIM( coupling_mode ), '"' 113 113 CALL LOCAL_FLUSH( 9 ) 114 PRINT*, '*** PE', myid, ' Global target PE:', target_id, & 115 TRIM( coupling_mode ) 114 IF ( TRIM( coupling_mode ) /= 'uncoupled' ) THEN 115 PRINT*, '*** PE', myid, ' Global target PE:', target_id, & 116 TRIM( coupling_mode ) 117 ENDIF 116 118 #endif 117 119
Note: See TracChangeset
for help on using the changeset viewer.